gpt4 book ai didi

google-bigquery - BigQuery : cost of querying tables partitioned by ingestion time vs date/timestamp partitioned

转载 作者:行者123 更新时间:2023-12-02 13:54:07 26 4
gpt4 key购买 nike

我们正在尝试基于 BigQuery 在云中构建(或者更好地说重建)我们的 DWH。我们决定对原始数据使用“按日期字段分区”表(如“created_date”字段),而不是摄取时间分区,因为通过此功能,我们可以轻松加载数据,然后使用“group by”分区日期列进行查询,构建数据集市 bla bla bla。我们认为这种分区方法会提高查询速度并降低成本(与非分区表相比 - 是的),但是我们发现,当您使用 WHERE 按分区字段查询表时(例如“select count(*) from table where”)创建日期=当前日期'),这会花钱。

我们使用 WHERE _PARTITIONTIME ='' 的旧式摄取时间分区表查询是免费的! (例如“从表中选择 count(*),其中 _PARTITIONTIME=current_date”)

例如:

1) 从 table1 中选择 value1,其中 _PARTITIONTIME = current_date

2) 从 table1 中选择 value1,其中created_date = current_date

3) 从表 1 中选择 count(*),其中 _PARTITIONTIME = current_date

第二个查询的成本更高,因为它将扫描 2 列。这是符合逻辑的。但不公平(((第三个查询是绝对免费的顺便说一句!

这是非常悲伤的情况,因为文档中没有任何关于此“副作用”的警告。这个功能旨在让数据库开发人员的生活更轻松(我猜),它被定位为最佳实践功能,并受到 Google 的强烈推荐。但没有人说这也会花费你额外的钱!

所以问题是我们能否以某种方式免费使用分区键查询日期字段分区表?如果您使用基于日期/时间戳字段的分区,是否有任何其他伪列或按分区键过滤的方法可用?

(ps:如果日期/时间戳分区方法不存在,你们谷歌必须添加一些伪列)。

谢谢!

最佳答案

So the question is can we somehow query date-field partitioned tables using partition key for free?

答案是否定的,查询分区不是免费的。

Is there any other pseudocolumn or method of filtering by partition key available if you use date/timestamp field based partitioning?

如果您想要按日期分区,则只能使用 _PARTITIONTIME 伪列的摄取时间分区或使用选定日期/时间戳值列中的日期值来实现。目前没有可用的替代选项。请记住,分区的主要目标之一是主要通过减少扫描的行数来减少扫描的数据量。

You guys from google must add some pseudocolumn for the date/timestamp partition method if it does not exist

我知道您希望为数据列分区方法提供一些伪列,但是您能否在原始帖子中详细说明您希望在此分区中看到哪些值?

编辑:已代表您提出功能请求。您可以关注here

关于google-bigquery - BigQuery : cost of querying tables partitioned by ingestion time vs date/timestamp partitioned,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58343216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com