银行应用程序每天运行并生成一个csv文件(具有帐户详细信息),我们将数据加载到数据库中。
第二天,将生成另外一个日常文件。在此文件中,对于某些帐号,详细信息已更新/修改/删除。 将此插入数据库时,我们如何只加载已更改的数据。
flow是csv file-> HDFS->如果适用,在蜂巢/火花中转换 - >红移
答案 0 :(得分:0)
创建HDFS位置/banking
将第一张CSV直接加载到Hadoop中的/banking/dt=20180529
文件夹中。除非您实际查询数据库,否则请跳过数据库。
在其上生成一个Hive表,由dt STRING
分区。
第二天,将第二张CSV加载到/banking/dt=20180530
。
上传文件后,使用Hive查找当天存在的所有行,这些行也存在于昨天,可选择从中创建新表
-- CREATE TABLE changed_accts AS
SELECT acct --, other columns
FROM table
WHERE dt = '20180530'
AND acct IN (SELECT acct FROM table WHERE dt = '20180529')
这应该过滤掉当天的全新帐户。我假设删除的帐户根本不会显示出来。您需要额外的数据才能确定更新(例如帐户余额更改)