增量sqoop到HIVE表

时间:2017-12-14 15:03:43

标签: hadoop hive sqoop

众所周知,-incremental sqoop import switch不适用于通过SQOOP进行HIVE导入。但是解决方法是什么?

1)我可以做的一件事是我们可以创建一个HIVE表,并通过SQOOP将增量数据传递给HDFS,然后手动加载它们。但如果我们这样做,每次加载时,数据都会被覆盖。如果我错了,请纠正我。

2)将数据流式传输到HIVE时,是否有效 - 是什么?

谢谢

1 个答案:

答案 0 :(得分:2)

你可以将sqoop增量附加到hive表,但是没有直接的选项,下面是你可以实现它的方法之一。

将增量表存储为Hive中的外部表。 自上次更新数据并将其合并以来,更常见的是导入增量更改。在以下示例中, - check-column用于获取比last_import_date更新的记录,这是最后一次增量数据更新的日期:

sqoop import --connect jdbc:teradata://{host name}/Database=retail —connection manager org.apache.sqoop.teradata.TeradataConnManager --username dbc -password dbc --table SOURCE_TBL --target-dir /user/hive/incremental_table -m 1 --check-column modified_date --incremental lastmodified --last-value {last_import_date}

问题的第二部分

查询也是一个非常有用的参数,您可以在swoop import中使用它,这将为您提供rdbms表上基本连接的灵活性以及使用日期和时间格式的灵活性。如果我在你的鞋子里,我会这样做,使用查询我将以我需要的方式导入数据,而不是将其附加到我的原始表格,并且从临时表格加载到主表格时,我可以更多地使用数据。如果更新不太频繁,我建议使用查询。