google-bigquery - replace 和 delete_in_advance 之间的 embulk-output-bigquery 模式区别
问题描述
https://github.com/embulk/embulk-output-bigquery
我很好地使用了这个插件。但我有一点很好奇。delete_in_advance 和 replace in mode 有什么区别?
情况如下。我正在迁移到 bigquery。但这项工作是完全转储,所以我认为 delete_in_advance 比替换更接近。但是我对两者都得到了相同的结果。请让我知道有什么区别。
解决方案
https://github.com/embulk/embulk-output-bigquery/issues/124#issuecomment-734256930
delete_in_advance:表在 (1) 和 (2) 之前将变为空。这很容易实现,但通常不需要。如果在 embulk 运行时读取表的另一批 > 使用 delete_in_advance,则另一批可能会在 (1) 和 (2) 之间的间隙时间读取一个空表或具有几行的表。
(1) 删除
(2) 插入替换:在替换的情况下,因为我们使用原子操作,所以不会出现表变空或只有几行的间隙时间。非常希望这种行为能够构建稳健的数据 > 工程。
(1) 创建临时表
(2) 建议使用原子操作替换模式将目标表替换为临时表。
推荐阅读
- sql - 在 SQL 查询中使用 XMLNamespaces
- html - 我将如何将我的 3 个按钮集中在我的网页上?
- express - Heroku:构建后没有这样的文件或目录
- semantic-ui - 如何通过单击来更新反应语义 UI 进度条的值?
- javascript - 打字稿:数组的函数查找正在工作,但如果我检查它是否使用 if 语句返回一个值,它就不起作用
- sql - 直接实现EF Core多对多关系无法检测到相关表
- python-3.x - 从流式视频中抓取图像链接
- java - 如何使用 ANTLR 访问者处理逻辑连接的表达式
- javascript - 我的函数有问题,我不想用现有坐标创建节点
- python - 通过 for 循环将列表项传输到 mySql 数据库