从 Google Cloud Datastore 到 BigQuery 的增量数据传输

Posted

技术标签:

【中文标题】从 Google Cloud Datastore 到 BigQuery 的增量数据传输【英文标题】:Incremental Data Transfer from Google Cloud Datastore to BigQuery 【发布时间】:2020-02-10 13:09:38 【问题描述】:

我们每天都在尝试通过使用 Compute Engine VM 实例将数据从 Google Cloud DataStore 复制到 BigQuery,但是对我来说将整个数据集复制到 BigQuery 的成本非常高,基本上我们只需要更新的数据(已更改的记录仅)我们不想使用 shell 脚本将整个表从数据存储复制到 bigquery。 请帮助我们解决这个问题...

【问题讨论】:

您为什么不尝试仅将更新写入 DataStore,然后使用合并命令将它们带入 BigQuery。 cloud.google.com/bigquery/docs/reference/standard-sql/… 【参考方案1】:

当您将数据从数据存储区导出到 Bigquery you cannot append data to an existing table 时。您可以创建新表或覆盖现有表。无论哪种方式,您都必须从数据存储中导出所有实体或特定类型的实体,但不能只导出新数据。

可以在here 找到可以处理从数据存储区导出数据到 Bigquery 的示例脚本。

如果您想降低使用成本: - preemtibale instances 与普通实例相比非常便宜 --> 对于 cron 作业

我发现的另一种方法是this。但我不确定它是否会起作用,因为它是一个旧帖子并且它使用MapReduce API。

【讨论】:

以上是关于从 Google Cloud Datastore 到 BigQuery 的增量数据传输的主要内容,如果未能解决你的问题,请参考以下文章

Apache Beam/Google Dataflow - 将数据从 Google Datastore 导出到 Cloud Storage 中的文件

Google Cloud DataStore 说明

Google Cloud Datastore备份 - 已弃用?

库 appengine.api.datastore 和 com.google.cloud.datastore 有啥区别?

App Engine 上 Cloud Datastore 的客户端库 - NDB 或 google-cloud-datastore

Google Cloud Datastore 客户端库创建实体