问题描述
我有9M条记录。我们需要执行以下操作:-
它被截断并加载到SNowflake中。每天删除全部9B记录并加载
例如,在900万条记录中,我们只会有50万条记录的更新(10万条插入,0.3条删除和0.2条更新)。我们将如何比较文件并仅提取增量文件并加载到雪花。如何在AWS本机工具中以经济高效的方式进行此操作并加载到S3。
P.s的数据没有任何日期列。这是一个很古老的概念,写于2012年。我们需要对此进行优化。文件格式为固定宽度。附加示例RAW数据。
Sample Data:
https://paste.ubuntu.com/p/dPpDx7VZ5g/
简而言之,我只想将“插入”,“更新”和“删除”提取到文件中。您如何对这种最佳且具有成本效益的方式进行分类。
解决方法
您的标记和问题内容不匹配,但是我猜您正在尝试将数据从Oracle加载到Snowflake。您想从Oracle进行增量加载,但是表中没有增量键来标识增量行。您有两种选择。
- 与数据所有者合作,并努力确定增量密钥。必须有一个。人们有时懒于付出这一努力。这将是最佳选择
- 如果不能,请寻找像Golden Gate这样的CDC(更改数据捕获)解决方案
在DataStage中,CDC阶段是默认设置。
结合CDC阶段和Transformer阶段,是识别新行,更改的行和要删除的行的最佳方法。
,您需要确定使行唯一的列,不建议对所有列进行CDC,如果在CDC阶段添加更多更改列,则CDC阶段的DataStage作业会消耗更多资源。
与您的BA一起识别使数据中的行唯一的列。