sqoop incrementmantal计算差异

时间:2018-05-23 13:54:51

标签: sql hive sqoop sqoop2

我想使用sqoop导入我的表的所有新行到hive表,这个问题我没有用于我的增量更新的列。

  • 所以我尝试计算我桌子上的所有lignes,然后用时间戳列将它存储到hive中。
  • 然后我选择该数字的最大值并将其与源表的行数进行比较。

我的问题是,如何使用sqoop导入我的hive表和源表之间的差异?

1 个答案:

答案 0 :(得分:0)

我们的想法是通过某些列或所有列连接两个数据集,然后找到右侧为空的位置,以便我们只有新的记录要加载
您可以按照以下步骤操作

1) The initial load data (previous day data) is in hdfs  - Relation A
2) Import the current data into HDFS using sqoop -- Relation B
3) Use pig Load the above two hdfs directories in relation A and B define schema.
4) Convert them to tuples and join them by all columns
5) The join result will have two tuples in each row((A,B),(A,B)) , fetch the result from join where tuple B is null ((A,D),).
6) Now flatten the join by tuple A you will have new/updated records(A,D).