【发布时间】:2016-08-17 23:22:55
【问题描述】:
目前,我使用 Google 的两步法备份数据存储,然后将其导入 BigQuery。 我还使用管道查看了代码。 这两种方法效率不高,成本高,因为每次都要导入所有数据。 我只需要添加上次导入添加的记录。
正确的做法是什么? 是否有关于如何在 python 中执行此操作的工作示例?
【问题讨论】:
标签: python google-app-engine google-bigquery google-cloud-datastore
目前,我使用 Google 的两步法备份数据存储,然后将其导入 BigQuery。 我还使用管道查看了代码。 这两种方法效率不高,成本高,因为每次都要导入所有数据。 我只需要添加上次导入添加的记录。
正确的做法是什么? 是否有关于如何在 python 中执行此操作的工作示例?
【问题讨论】:
标签: python google-app-engine google-bigquery google-cloud-datastore
您可以查看Streaming inserts。我现在实际上正在考虑在 Java 中做同样的事情。
如果您想每小时执行一次,您可以在每次将新实体放入 Datastore 时将插入添加到拉取队列(作为序列化实体或键/ID)。然后,您可以使用 cron 作业每小时处理一次队列。
【讨论】:
没有完整的工作示例(据我所知),但我相信以下过程可以帮助您:
1- 您需要向您的实体添加“上次更改”,然后对其进行更新。
2- 您可以每小时运行一次 MapReduce 作业,您的映射器可以有一个过滤器来检查上次更新的时间,并且只选择在过去一小时内更新的实体
3- 手动添加需要添加到备份中的内容。
正如我所说,这是相当高的水平,但实际答案将需要一堆代码。老实说,我认为它不适合 Stack Overflow 的格式。
【讨论】: