众所周知,-incremental sqoop import switch不适用于通过SQOOP进行HIVE导入。但是解决方法是什么?
1)我可以做的一件事是我们可以创建一个HIVE表,并通过SQOOP将增量数据传递给HDFS,然后手动加载它们。但如果我们这样做,每次加载时,数据都会被覆盖。如果我错了,请纠正我。
2)将数据流式传输到HIVE时,是否有效 - 是什么?
谢谢
答案 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表上基本连接的灵活性以及使用日期和时间格式的灵活性。如果我在你的鞋子里,我会这样做,使用查询我将以我需要的方式导入数据,而不是将其附加到我的原始表格,并且从临时表格加载到主表格时,我可以更多地使用数据。如果更新不太频繁,我建议使用查询。