2017-10-18 15 views
0

Microsoft Azure HDInsights Hadoop Cluster에서 Oracle 데이터베이스의 데이터를 Hive 스키마로 직접로드하는 SQOOP 작업이 있습니다. 그러나 기반 필드 (예 : varchar 변수)를 가져올 때 문자열로 가져 오는 것으로 나타났습니다. 이것은 잘못된 것이 아니며 완벽하게 작동합니다. 그러나 Hive Database의 문자열 필드에는 해당 필드의 최대 길이가 사용된다는 사실은 약간 불편합니다. 이것은 해당 필드에서 조건을 수행 할 때마다 TRIM 기능을 사용한다는 것을 의미합니다. TRIM을 사용하지 못하게하는 SQOOP 매개 변수 또는 해결 방법이 있습니까?TRIM 기능없이 SQOOP에서 가져온 테이블을 사용할 수 있습니까?

안부

답변

0

당신은 문자열로 변환 얻을 방지하기 위해뿐만 아니라 VARCHAR 데이터 타입으로 데이터를 가져올 수 있습니다. 이를 달성하기 위해 --map-column-hive 인수를 사용할 수 있습니다. 이 인수는 구성된 열의 SQL 형식에서 하이브 형식으로의 기본 매핑을 재정의합니다.

사용법 :

sqoop import <generic args> --map-column-hive column_name=varchar(200) 
+0

나는 이미으로 보았다하지만 난 +와 데이터베이스를 수입하고 같은 테이블의 이름을 지정을 통해 좀 더 무신론자가 될 필요 - 200 표. 따라서 특별히 어떤 열을 지정하지 않는 것을 선호합니다. 이런 의미에서 할 수 있다고 생각합니까? –

+0

Sqoop은이 기능을 제외하고는이 기능을 가지고 있지 않지만 소스에서 하이브로 데이터 스타일을 매핑 할 수있는 사용자 정의 개발을 통해이를 해결할 수 있습니다. –

+0

그래, 고마워.) –