2017-01-23 1 views
1

Oracle 데이터베이스에서 표를 가져올 때 다음 오류가 발생합니다. Sqoop 가져 오기 실패 : Oracle 테이블을 가져 오려고 할 때 SQL 형식 2005를 변환 할 수 없습니다

ERROR tool.ImportTool: Imported Failed: Cannot convert SQL type 2005 

이 질문에

이미 here을 제기되었지만, 제안 된 솔루션은 나에게 도움이되지 않습니다. 나는 그들의 대응하는 값으로 채워> <에서 매개 변수를 사용하여 다음 명령을 사용하여 명령 행에서 테이블을 가져 오기 위해 노력하고 있어요

:

sqoop import --connect jdbc:oracle:thin:@<host>:<port>/<service> --username <user> --password <password> --hive-import --query 'SELECT * FROM <DB>.<table> WHERE $CONDITIONS' --split-by <ID> --hive-database <HIVE_DB> --hive-table <HIVE_TABLE> --incremental append --check-column <ID> --map-column-hive <ID>=integer --compression-codec=snappy --target-dir=/user/hive/<FOLDER> --as-parquetfile --last-value 0 -m 1

사람이이 문제를 해결하는 방법을 알고 있나요? 필자는 오라클 데이터베이스의 전문가는 아니지만 CLOB 데이터 유형이있는 것으로 보입니다. 이 명령은 sqoop 1.4.6 CDH 5.8에서 실행 중임

--as-parquetfile없이 작업을 실행하면 0 % 감소 0 % 맵에서 멈춘 것처럼 보이는 sqoop 작업이 발생합니다.

+0

try 구문 분석 입력 : 의견 [here] (https://reviews.apache.org/r/38554/)을 참조하십시오. 여기로 리디렉션됩니다. http://sqoop.apache.org/docs/ 1.4.6/SqoopUserGuide.html # _large_objects –

+0

나는 이들 중 일부를 이미 추가하려했지만 아직 도움을주지 못했습니다. 나는 그것을 더 깊이 조사 할 것이다. 대답 주셔서 감사합니다 – spijs

+0

@RonakPatel이 오라클 가져 오기에 어떤 인수를 제공하겠습니까? – spijs

답변

2

--map-column-java을 사용하면 clob 데이터 유형을 Java String에 매핑 할 수 있습니다.

예를 들어, 열 C1이 있습니다. 용도 :

--map-column-java C1=String 

자세한 내용은 docs을 확인하십시오.

+0

더 일반적인 방법으로 개별 열을 지정할 필요가 없습니까? – spijs

+0

@ThijsDieltjens 아니요 Java 매핑을 제공 할 다른 방법은 없습니다. –

+0

map-column-java 옵션을 사용하는 것이 도움이되는 것처럼 보이며 (확실히 DATA 유형의 경우) 오류가 사라지게합니다. 그러나 데이터로드는 0 % 맵에서 멈추지 만 클로브 열이 없으면 1 분 이내에 완료됩니다. Ronak Patel이 입력 한 구문 분석 인수가 필요합니까? 그리고 만약 그렇다면 문서 자체가 제게 훨씬 더 명확하지 않기 때문에 이것들 중 어느 것이 필요합니까? – spijs

관련 문제