sql - 没有日期和主键的表
问题描述
我有 900 万条记录。我们需要做以下操作:-
每天我们都会收到 9M 记录的整个文件,文件大小为 150GB
它被截断并加载到雪花中。每天删除整个9B记录并加载
我们只想将增量文件加载发送到雪花。意思是:
例如,在 900 万条记录中,我们只有 50 万条记录中的更新(0.1 万条插入、0.3 条删除和 0.2 条更新)。我们将如何比较文件并仅提取增量文件并加载到雪花。如何在 AWS 原生工具中以经济高效且快速的方式执行此操作并加载到 S3。
ps 数据没有任何日期列。这是 2012 年写的一个相当古老的概念。我们需要对此进行优化。文件格式为固定宽度。附加样本 RAW 数据。
Sample Data:
https://paste.ubuntu.com/p/dPpDx7VZ5g/
简而言之,我只想将插入、更新和删除提取到文件中。您如何对这种最佳且最具成本效益的方式进行分类。
解决方案
您需要识别使行唯一的列,不建议对所有列执行 CDC,如果您在 CDC 阶段添加更多更改列,则具有 CDC 阶段的 DataStage 作业会消耗更多资源。
与您的 BA 一起识别使行在数据中唯一的列。
推荐阅读
- java - CompletableFuture allof(..).join() 与 CompletableFuture.join()
- android - AIDL 在调试 APK 中工作,但在签名APK 中不工作
- java - 为什么我看不到运行 JavaFX Web 视图的 URL 网站?
- javascript - 使用 JavaScript 在悬停时添加类
- python - 基于半一致特征拆分字符串
- forms - Symfony - 需要的个人递归函数 = true 返回 false
- java - Guage 测试自动化框架是否允许在同一个 repo 中使用多种语言?
- python - 如何检查图像切片中是否有 5 个或 6 个复选框?
- selenium - Jenkins Xvfb libcrypto 问题
- laravel - Laravel Nova 模板自定义