2013-04-15 3 views
9

Sqoop을 사용하여 HDFS에서 RDBMS 테이블로 데이터를 내보낼 수 있습니다. 하지만 기존 테이블이 필요할 것 같습니다.Sqoop 내보내기가 새로운 테이블을 생성 할 수 있습니까?

Sqoop에 'CREATE TABLE'기능을 수행하고 새롭게 작성된 테이블로 데이터를 내 보내라는 매개 변수가 있습니까?

그렇다면 오라클과 함께 사용할 예정입니까?

답변

8

Sqoop이 현재 RDBMS에서 테이블 생성을 지원하지 않는다고 생각합니다. Sqoop은 RDBMS의 테이블을 사용하여 메타 데이터 (열 수와 데이터 유형)를 얻으므로 Sqoop이 메타 데이터를 가져와 테이블을 만들 수있는 위치를 알 수 없습니다.

2

적어도 MySQL과 MSSQL에서는 sqoop eval을 통해 임의의 SQL 쿼리와 DDL을 실제로 실행할 수 있습니다. 나는 오라클과 함께 일하기를 기대한다. MSSQL 예 :

sqoop eval --connect 'jdbc:sqlserver://<DB SERVER>:<DB PORT>; 
database=<DB NAME>' --query "CREATE TABLE..." 
--username <USERNAME> -P 
+1

Sqoop 사용자 가이드는 생산 워크 플로우에서 eval을 사용해서는 안된다고 언급합니다 - "평가 도구는 평가 용도로만 제공되며 Sqoop 내에서 데이터베이스 연결을 확인하거나 간단한 쿼리를 테스트하는 데 사용할 수 있습니다. 프로덕션 워크 플로에 사용됩니다. " –

0

오라클을 사용하는 것으로 나타났습니다. 일부 sqoop 공급 업체별 sqoop 커넥터는 Oracle을 포함하여이를 지원합니다. Sqoop을의 오라클 직접 연결 모드는 그

https://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_create_oracle_tables

24.8.5.4을 할 수있는 옵션이 있습니다. 오라클 테이블

-Doraoop.template.table = TemplateTableName

이 TemplateTableName의 구조와 데이터 유형을 복제하여 OracleTableName를 작성

을 만듭니다. TemplateTableName은 Sqoop 명령을 실행하기 전에 Oracle 에 존재하는 테이블입니다.

ps. sqoop direct mode = 'Oracle 및 Hadoop 용 데이터 커넥터'(일명 OraOOP - 이전 이름)를 활성화하려면 --direct sqoop 내보내기 옵션을 사용해야합니다.

관련 문제