2016-08-16 7 views
0

私はTeradata DBからHiveへ増分インポートを実行するためにsqoopを試みています。以下はクエリです:増分 "lastmodified"がsqoopで動作しない

sqoop import --connect jdbc:teradata://xxx.xxx.x.xx/DATABASE=DBN --driver com.teradata.jdbc.TeraDriver --username userN --password pass --query "SELECT alias.colA, alias.call_date, alias.colB, alias.colC FROM tableName alias where \$CONDITIONS" --target-dir /apps/hive/warehouse/staging.db/tableName -m 26 --check-column call_date --incremental append --split-by alias.colA --last-value '2016-02-01' 

call_dateの列の値は、 'YYYY-MM-DD'の形式です。

--incrementalに使用すると、すべて正常に動作します。私は'lastmodified'を入れたときには、次のエラーがスローされます。

ERROR util.SqlTypeMap: It seems like you are looking up a column that does not 
ERROR util.SqlTypeMap: exist in the table. Please ensure that you've specified 
ERROR util.SqlTypeMap: correct column names in Sqoop options.     
ERROR tool.ImportTool: Imported Failed: column not found: call_date 

のTeradata DBは14.10

任意のポインタが参考になりますですが、私はHDP 2.1sqoop 1.4.4.2.1を使用しています。

+0

をエラーで見ることによって、あなたは正しく、列名を提供したのですか? –

+0

はい、すべて正しいです。 私が上でも述べたように、私が '最後に改造した'を 'append'に変更すると、すべて正常に動作します。 – knowone

+0

テラデータが最後に変更された増分インポートを処理する際に、このバグに関連している可能性がありますか? https://issues.apache.org/jira/browse/SQOOP-2402 –

答えて

0

私が思うに、クエリの場合、あなたは自分自身いくつかは、この

"SELECT alias.colA, alias.call_date, alias.colB, alias.colC FROM tableName alias where call_date >'2016-02-01' and \$CONDITIONS"ように考えるクエリの最後の値のチェックを行うことができます。

リファレンス(データ1.Ingest増分セクションハイブ内のデータを更新>を参照してください。

https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.0/bk_dataintegration/content/incrementally-updating-hive-table-with-sqoop-and-ext-table.html

関連する問題