增量导入没有 HDFS 主键的 Oracle 表

Posted

技术标签:

【中文标题】增量导入没有 HDFS 主键的 Oracle 表【英文标题】:Incremental import of Oracle tables which does not have primary key to HDFS 【发布时间】:2018-04-17 11:30:00 【问题描述】:

我有 Oracle 数据库,其中 200 个表中有近 300 个表没有任何主键,很少有表具有复合主键。我的要求是以增量方式将所有表数据导入HDFS。您能否让我知道如何使用 Sqoop 实现这一点。如果建议任何其他选项,那将是非常有帮助的。

【问题讨论】:

请详细说明您尝试了什么,以及您卡在哪里。 对于具有单个主键的表,我可以使用带有增量选项的 Sqoop 导入来导入数据。我在为没有任何主键并且它们没有任何时间戳列的表进行增量导入时被卡住了。 您有什么方法可以识别“新”行吗?您是否尝试过使用这些知识? 只有行数被改变,新行被追加到最后。据我了解,没有办法识别新行 我们可以使用Oracle ROWNUM 函数来识别新插入的行而不是更新的行。 【参考方案1】:

不幸的是,由于无法识别更新的行(您表示不跟踪更新时间戳),因此几乎不可能使用增量加载来捕获更改。

一些可能性:

    添加时间戳 做一个完整的负载 使用行号标识新记录,不处理更新记录

【讨论】:

以上是关于增量导入没有 HDFS 主键的 Oracle 表的主要内容,如果未能解决你的问题,请参考以下文章

在 RDBMS 中没有主键的 Sqoop 导入

Oracle:比较两个不同表中没有主键的字符串列以查找匹配/不匹配的字符串

Oracle对没有主键的表分页

oracle 查询外键的名称

oracle在建表时如何指定主键的索引名和主键的表空间

Oracle中如何将自动增量添加到现有表中