对包含连接的表执行增量 Sqoop?
·
问题:对包含连接的表执行增量 Sqoop?
我有一些非常大的表,我试图将它们从源系统数据仓库中 sqoop 到 HDFS,但这样做的带宽有限。我只想拉出我需要的列,并尽量减少让桌子站起来的运行时间。
sqoop 当前拉取如下内容:
SELECT
ColumnA,
ColumnB,
....
ColumnN
FROM
TABLE_A
LEFT JOIN
TABLE_B
ON
...
LEFT JOIN
TABLE_N
....
考虑到数据以星型模式格式存储,并且维度可以独立于事实更新,是否可以执行增量 sqoop?
或者,对于我需要的列,增量地对整个表进行 sqoop 并在 HDFS 端执行连接是唯一的解决方案吗?
解答
对于增量导入,您需要使用 --incremental 标志。请参阅以下链接以获取更多信息:-
https://sqoop.apache.org/docs/1.4.2/SqoopUserGuide.html#_incremental_imports
您需要指定--incremental 告诉sqoop 您想要增量加载--check-column 指定用于增量sqooping 的列和--last-value 来说明您希望从哪个值开始sqooping 下一次加载。这只是图片的一半。有更多方法可以做到这一点。例如。您可以使用 --query 选项,您的查询就像 Select * from table where column > 123 一样。这基本上是一回事。您需要记录所选列的最后/最大值并将其用于下一次导入。
更多推荐

所有评论(0)