Google bigquery 以增量方式将数据从GCP数据存储移动到BigQuery的最佳实践
我们正在从数据存储数据源设计数据仓库解决方案。我们希望在预定义的时间间隔内将新插入/更新/删除的数据存储实体加载到BigQuery for analytics中 似乎有几种选择:Google bigquery 以增量方式将数据从GCP数据存储移动到BigQuery的最佳实践,google-bigquery,google-cloud-datastore,Google Bigquery,Google Cloud Datastore,我们正在从数据存储数据源设计数据仓库解决方案。我们希望在预定义的时间间隔内将新插入/更新/删除的数据存储实体加载到BigQuery for analytics中 似乎有几种选择: 进行完整备份,并将数据加载到BigQuery中。以及BigQuery中的重复数据消除。这在概念上非常简单,但每次加载/处理所有数据对我来说效率很低 执行操作时发布所有新的/更新的/删除的实体,并让Dataflow subscribe和TL订阅BigQuery 在实体上具有上次修改的时间戳,并仅拉出在指定时间范围内修改的
有关于最佳实践的建议吗?我们还实施了另一个选项:) 您对所有操作进行BQ流式插入(最好使用基于插入时间的分区),然后,如果需要,您可以定期生成合并表(其中每个记录只有一个实例),这样您就可以正确地考虑更新/删除 我发现有趣的是,这个包含所有(只是流式传输的)非整合数据的表可以提供一些非常有趣的见解,比如更新/删除模式,它们在整合时会消失 你的#1相当浪费,效率低下。您必须导出所有数据,而不仅仅是您关心的更改的增量。备份+加载过程会在GCS中创建中间文件,速度有点慢,加载过程也会随之进行 选项2是可行的,但它需要更多的基础设施。更多的失败点 我认为方案3是最好的。正如您已经提到的,软删除会有所帮助——您不需要实际删除数据,只需在时间戳处添加
active/inactive
标志或deleted\u即可。此外,要使ETL递增,还需要在
处更新或在处修改