【发布时间】:2020-04-18 19:47:21
【问题描述】:
我是 BigQuery 和 GCP 的新手。我正在使用 BigQuery 中可用的(大)公共数据集,我在其上运行 SQL 查询 - 它根据简单的 where 子句从数据集中的一个表中选择一堆数据。
然后我继续对获得的数据执行其他操作。我只需要每月运行一次此查询,其他操作需要更频繁地运行(每小时)。
我的问题是,每次执行此操作时,BigQuery 都会处理 4+ 百万行数据,并且运行此查询的成本很快就会增加。
- 有什么方法可以运行 SQL 查询并将数据导出到另一个 GCP 中的表/数据库,然后在导出的那个上运行我的操作 数据?
- 我是否正确假设(我在这里可能是错的)一旦我 将数据导出到 GCP 中的标准 SQL DB,每次查询的成本将为 导出的数据库中的内容比 BigQuery 中的内容少?
谢谢!
【问题讨论】:
-
你看过documentation吗?它并没有说告诉你如何最小化成本,但它确实提供了一些关于如何控制和预览它们的策略。关于你的最后一个问题,是的,如果你 materialize query results in stages 将它们写入目标表,成本会更低。
-
有人刚刚问了一个非常相似的问题——但他们给出了更多细节。看一看:stackoverflow.com/questions/59462279/…
-
感谢两位的建议。现在,我将结果保存到我自己的数据集中的一个单独的表中并处理它。查询估计器说我没有处理太多字节,所以希望这有助于降低成本。我最终会将这些数据移动到 bigtable 并整合我的查询以进一步降低成本。
标签: sql google-cloud-platform google-bigquery