【问题标题】:How do I use Partitioned Tables in BQ如何在 BQ 中使用分区表
【发布时间】:2018-05-24 04:10:52
【问题描述】:

我以前从未使用过分区表。我刚刚创建了一个示例,以确保我是否正确理解了分区表。 例如,

create table myfirstdataset.newtable(transaction_id int64,transaction_date date) partition by transaction_date

并且该表包含以下行

Row transaction_id  transaction_date     
1   1               2017-01-15   
2   2               2017-01-15   
3   3               2017-01-15   
4   4               2017-01-15   
5   1               2017-01-16   
6   1               2017-01-17   
7   1               2017-01-18   
8   1               2017-01-19   
9   3               2017-01-20   
10  4               2017-01-20   
11  6               2017-01-20   
12  5               2017-01-20

这里的表是由 transaction_date 列和 有 6 个分区分别称为 2017-01-152017-01-162017-01-172017-01 -182017-01-192017-01-20

分区 2017-01-152017-01-20 包含 4 行,而其他分区仅包含 1 行。我说的对吗?

【问题讨论】:

  • 你是对的。你为什么问?有没有让你觉得不正确的地方?
  • 我以前从未使用过分区表,这就是我问的原因:-)
  • 您很可能已经看到此链接 - cloud.google.com/bigquery/docs/partitioned-tables - 在文档的同一部分中,您会发现您需要从 :o) 开始的所有内容

标签: google-bigquery


【解决方案1】:

您是绝对正确的,表可以通过 transaction_date 进行分区。请注意,BigQuery 中只有两种类型的表分区:

按提取时间分区的表:根据数据的提取(加载)日期或到达日期进行分区的表。 分区表:基于 TIMESTAMP 或 DATE 列分区的表。

因此,您不能考虑对其他列进行分区。

更多详情请参考Link 1, Link 2Link 3

作为分区表的替代方法,您可以使用基于时间的命名方法对表进行分片,例如 [PREFIX]_YYYYMMDD。这称为创建日期分片表。分片是一种特定类型的分区,即水平分区。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    • 2022-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多