每小时高效地从Datastore导入数据到BigQuery - Python

2 投票
2 回答
559 浏览
提问于 2025-05-01 09:36

目前,我正在使用谷歌的两步法来备份数据存储,然后再把它导入到BigQuery中。我也查看了使用管道的代码。这两种方法都不太高效,而且每次导入时都要处理所有数据,成本很高。我只需要添加上次导入后新增的记录。

那么,正确的做法是什么呢?有没有用Python实现的示例?

暂无标签

2 个回答

2

我不知道有没有完整的示例,但我觉得下面的步骤可能对你有帮助:

1- 你需要给你的数据添加一个“最后修改时间”的字段,并且要定期更新这个字段。

2- 每小时你可以运行一个MapReduce任务,在这个任务中,你的“映射器”可以设置一个过滤器,检查最后更新时间,只处理那些在过去一小时内更新过的数据。

3- 手动把需要备份的内容添加到你的备份中。

正如我所说,这只是一个大概念,具体的实现需要写很多代码。老实说,我觉得这不太适合在Stack Overflow上讨论。

3

你可以看看 流式插入。我现在其实也在用Java做类似的事情。

如果你想每小时执行一次,可以考虑在每次把新数据放到Datastore时,把这些数据添加到一个拉取队列中(可以是序列化的实体或者是键/ID)。然后你可以通过一个定时任务每小时处理这个队列。

撰写回答