我是Google BigQuery的新手,所以我试图了解如何最好地完成我的用例。
我每天都有存储在BigQuery中的客户访问数据,我希望使用python编写的一些算法进行分析。因为,有多个脚本使用每日数据的子集,我想知道什么是获取和临时存储数据的最佳方法。此外,脚本以顺序方式运行。每个脚本都会修改数据的某些列,后续脚本会使用此修改后的数据。在所有脚本运行之后,我想将修改后的数据存储回BigQuery。
我想到的一些方法是:
将bigquery表导出为GAE(Google App Engine)实例作为db文件,并使用sqlite3 python package从db文件中查询每个脚本的相关数据。一旦所有脚本都运行,将修改后的表存储回BigQuery,然后从GAE实例中删除db文件。
每次我想使用google-cloud python client library或pandas gbq package运行脚本时,都会从BigQuery查询数据。运行每个脚本后修改BigQuery表。
有人知道哪一种更好的方法可以实现这一目标(在效率/成本方面)或建议替代方案?
谢谢!
答案 0 :(得分:0)
您的问题的答案主要取决于您的使用案例和您将要处理的数据的大小,因此没有绝对正确的答案。
但是,在您所描述的场景中,您可能需要考虑一些关于BigQuery的使用以及它的某些功能如何对您感兴趣的要点。
让我快速浏览一下你应该看看的主题:
因此,一般来说,我会说您不需要将任何其他数据库与部分结果保存在BigQuery存储中。在资源和成本效率方面,BigQuery为您提供了足够的功能,可以在本地处理您的数据,而无需处理巨大的费用或数据检索的延迟。但是,这最终将取决于您的用例以及您要存储并需要同时处理的数据量;但总的来说,我会自己选择BigQuery。