2014-01-08 4 views
2

하이브에 이미 존재하는 테이블에 데이터를 추가하려고합니다. 먼저 다음 명령을 사용하여 MS-SQL 서버에서 하이브로 테이블을 가져옵니다.Sqoop을 사용하여 하이브 테이블에 데이터 추가하기

Sqoop을 명령 :
sqoop import --connect "jdbc:sqlserver://XXX.XX.XX.XX;databaseName=mydatabase" --table "my_table" --where "Batch_Id > 100" --username myuser --password mypassword --hive-import

지금은 하이브에 같은 기존의 테이블에 데이터를 추가 할 위치 "BATCH_ID < (100)"나는 다음 명령을 사용하고 :

sqoop import --connect "jdbc:sqlserver://XXX.XX.XX.XX;databaseName=mydatabase" --table "my_table" --where "Batch_Id < 100" --username myuser --password mypassword --append --hive-table my_table

을 그러나이 명령은 성공적으로 실행되어 HDFS 데이터도 업데이트하지만 하이브 셸에 연결하고 테이블을 쿼리하면 추가되는 레코드가 표시되지 않습니다. Sqoop이 hdfs 의 데이터를 "/ user/hduser/my_table"으로 업데이트했지만 /user/hive/warehouse/batch_dim의 데이터가으로 업데이트되지 않았습니다.

어떻게이 문제를 해결할 수 있습니까?

감사합니다, Bhagwant Bhobe

답변

0

당신이 (--import)를 사용중인 Sqoop을 명령은 HDFS에 기록을 섭취입니다. 레코드를 하이브로 가져 오려면 --hive-import 플래그를 사용해야합니다.

자세한 내용 및 추가 가져 오기 구성 옵션에 대해서는 http://sqoop.apache.org/docs/1.4.2/SqoopUserGuide.html#_importing_data_into_hive을 참조하십시오. 물론 문서 참조를 Sqoop 버전으로 변경할 수도 있습니다.

1

시도는 --append 매개 변수를 사용하지 마십시오 --hive-import을 사용하는 경우

sqoop import --connect "jdbc:sqlserver://XXX.XX.XX.XX;databaseName=mydatabase" 
       --table "my_table" --where "Batch_Id < 100" 
       --username myuser --password mypassword 
       --hive-import --hive-table my_table 

를 사용하여.

관련 문제