데이터 가 져 오기 내 보 내기

최근 에 서버 의 테스트 데이터베이스 데 이 터 를 로 컬 컴퓨터 로 유도 하려 고 합 니 다.로 컬 컴퓨터 데이터 베 이 스 는 windows 시스템 에 설치 되 어 있 습 니 다.
이전에 pgsql 을 사용 한 적 이 없 는데 인터넷 에서 자 료 를 찾 아 다음 과 같이 기록 합 니 다.
첫째,먼저 서버 의 데 이 터 를 백업 합 니 다.

pg_dump-U 사용자 이름 데이터베이스 이름(-t 표 이름)>데이터 저장 경로
둘째,.sql 파일 을 로 컬 에 다운로드 한 후,먼저 pgsql 경로 의 bin 디 렉 터 리 로 전환 합 니 다.

그리고 이 명령 을 실행 합 니 다.

-d:데이터베이스 이름
-h:주소
-p:포트
-u:사용자 이름
-f:sql 파일 경로
이후 암 호 를 입력:

이렇게 하면 돼!
질문
어제 Sqoop 을 사용 하여 PostgreSQL 에서 Hive 로 데 이 터 를 옮 기 려 고 시 도 했 습 니 다.그 과정 에서 두 가지 문제 가 발생 했 습 니 다.이 기록 을 통 해 비슷 한 문제 가 발생 하면 해결 방안 을 신속하게 찾 을 수 있 습 니 다.
질문 1:PostgreSQL 표 에 json 형식 이 있 을 때 Sqoop 명령 은 다음 과 같은 오 류 를 보고 합 니 다.
No Java type for SQL type 1111 for
column voting_info
솔 루 션:sqoop 명령 에 다음 형식 맵 추가
--map-column-hive voting_info=String --map-column-java voting_info=String
질문 2:PostgreSQL 에서 schema 이름 을 지정 하 는 방법
PostgreSQL 의 대상 은 데이터베이스->schema->table 의 3 층 모델 에 속 합 니 다.PostgreSQL 에는 일반적으로 여러 개의 database 가 포함 되 어 있 으 며,데이터베이스 마다 여러 개의 schema 가 포함 되 어 있 으 며,schema 에는 여러 개의 표 가 포함 되 어 있 습 니 다.따라서 scoop 을 사용 하여 데 이 터 를 추출 할 때 어떤 schema 에 속 하 는 지 지정 해 야 할 때 가 있 습 니 다.
솔 루 션:sqoop 명령 에 다음 형식 맵 추가
-- --schema szyd
다음은 PostgreSQL 에서 Hive 로 데 이 터 를 안내 하 는 sqoop-import 스 크 립 트 를 보 여 줍 니 다.참고 하 시기 바 랍 니 다.

sqoop-import --connect jdbc:postgresql://$PG_HOST:$PG_PORT/$PG_SID \
--username $PG_UNAME --password $PG_PWD --table $TABLE_NAME \
--hive-import --hive-table $TABLE_NAME --hive-overwrite \
--null-string '\\N' --null-non-string '\\N' --hive-drop-import-delims \
-m 1 --map-column-hive voting_info=String --map-column-java voting_info=String -- --schema $SCHEMA_NAME
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.만약 잘못 이 있 거나 완전히 고려 하지 않 은 부분 이 있다 면 아낌없이 가르침 을 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기