对包含联接的表执行增量sqoop?

kmbjn2e3  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(334)

我尝试将一些非常大的表从源系统数据仓库sqoop到hdfs,但这样做的带宽有限。我只想拉我需要的列,并尽量减少运行时间,让表站起来。
sqoop当前拉取如下内容:

SELECT
    ColumnA,
    ColumnB,
    ....
    ColumnN
FROM
    TABLE_A
LEFT JOIN
    TABLE_B
ON
     ...
LEFT JOIN
    TABLE_N
....

假设数据以星型模式格式存储,并且维度可以独立于事实进行更新,那么是否可以执行增量sqoop?
或者,对于我需要的列,sqoop的唯一解决方案是以增量方式处理整个表,并在hdfs端执行连接吗?

xa9qqrwz

xa9qqrwz1#

对于增量导入,需要使用--incremental标志。更多信息请参考以下链接:-
https://sqoop.apache.org/docs/1.4.2/sqoopuserguide.html#_incremental_imports
您需要指定-incremental来告诉sqoop您想要一个增量加载-check列来指定哪个列用于增量sqooping,以及-last值来说明您想要从哪个值开始下一个加载。这只是照片的一半。有更多的方法可以做到这一点。例如,您可以使用-query选项,您的查询就像select*from table where column>123。这基本上是一样的。您需要记录所选列的last/max值,并将其用于下一次导入。

相关问题