首页 > 解决方案 > replace 和 delete_in_advance 之间的 embulk-output-bigquery 模式区别

问题描述

https://github.com/embulk/embulk-output-bigquery

我很好地使用了这个插件。但我有一点很好奇。delete_in_advance 和 replace in mode 有什么区别?

情况如下。我正在迁移到 bigquery。但这项工作是完全转储,所以我认为 delete_in_advance 比替换更接近。但是我对两者都得到了相同的结果。请让我知道有什么区别。

标签: google-bigquerymigration

解决方案


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) 建议使用原子操作替换模式将目标表替换为临时表。


推荐阅读