使用Sqoop将数据附加到配置单元表

时间:2014-01-08 12:32:34

标签: hadoop sqoop

我正在尝试将数据附加到hive中已存在的表。首先使用以下命令将表从MS-SQL Server导入到配置单元。

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数据,但是当您连接到hive shell并查询该表时,附加的记录将不可见。 Sqoop更新了hdfs “/ user / hduser / my_table”上的数据,但“/ user / hive / warehouse / batch_dim”上的数据未更新。

如何重新解决这个问题。

此致 Bhagwant Bhobe

2 个答案:

答案 0 :(得分:1)

尝试使用

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

当您使用--hive-import时请勿使用--append参数。

答案 1 :(得分:0)

您正在使用的Sqoop命令(--import)仅用于将记录摄取到HDFS中。您需要使用--hive-import标志将记录导入Hive。

有关详细信息和其他导入配置选项,请参阅http://sqoop.apache.org/docs/1.4.2/SqoopUserGuide.html#_importing_data_into_hive(当然,您可能希望将文档引用更改为您的Sqoop版本)。