首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >大查询是否适应数据?

大查询是否适应数据?
EN

Stack Overflow用户
提问于 2016-03-08 09:42:38
回答 2查看 96关注 0票数 2

我们使用BigQuery作为系统的分析引擎,为报表准备数据。根据我们的处理过程,数据的任何部分都可能被更改,也就是2013-2015年的历史值,因此我们每天早上都会删除和重新加载BigQuery中的所有表。

我们希望了解我们的方法是否会损害性能或增加数据处理成本。可以说,随着时间的推移,BQ“适应”了表的内容,随后的查询变得更有表现力。我说的不是缓存,而是一些数据重组,比如分区,BQ在处理查询时可能会发现。

例如,大多数查询都与特定的年份或值类型相关,因此当识别出常见的查询模式时,BQ可能希望在这些字段中对数据进行分区。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-09 02:51:49

通常,BigQuery会根据表的查询方式重构表,以提高性能。如果您每天重写您的表,您可能会忽略其中的一些性能优势,但是由于您正在一次加载数据,这些表的性能应该相当好。

您使用的机制不会增加数据处理成本。如果您对成本敏感,并且查询特定年份,则可能需要考虑将表拆分为多个表。然后可以使用TABLE_DATE_RANGE或TABLE_QUERY函数对这些表进行查询。

票数 3
EN

Stack Overflow用户

发布于 2016-03-09 16:59:14

乍一看,它看上去可能与此无关--而是检查表解码器。

,特别是语法科的评论

你可能会注意到里面提到了7天

所以,下面是我对你问题的几分钱--简化的观点:

当您将数据加载到GBQ时,它将保持7天不变,之后您的数据将被存储和访问优化。

这是你的损失,因为你的日常重新负荷。

损失有多大?基于Jordan的回答--不多是因为您做了满载,因此碎片可能是最小的(如果有的话)

至于分区,我希望您不要将2013-2016年的所有数据存储在一个大表中。

如果您的使用/查询模式是基于年份的,则最好按年、月或日对表进行分区(取决于查询模式)。

这将大大提高您的性能和成本效益。

重要的是--到目前为止,应该由您来处理数据的分区策略,并且没有太多(如果有的话)内置功能来支持构建分区。不过,对于使用分区数据(例如,表通配符函数),有一些支持。

我希望Google团队能够为分区提供更好的支持,因为这对现实生活中的用例的需求越来越大。

1:https://cloud.google.com/bigquery/docs/reference/legacy-sql#tablewildcardfunctions我希望Google团队能为分区2:https://cloud.google.com/bigquery/table-decorators#snapshot-syntax 3:https://cloud.google.com/bigquery/docs/reference/legacy-sql#tablewildcardfunctions提供更好的支持

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35863871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档