【问题标题】:How does Big Query store millions of rows of a column with categorical (duplicate) string values?Big Query 如何使用分类(重复)字符串值存储数百万行的列?
【发布时间】:2018-07-18 04:41:34
【问题描述】:

我们每天将大约一百万条记录流式传输到 BQ,并且特定字符串列具有“高”、“中”和“低”的分类值。

我想了解 Biq Query 是否会在其自身端进行压缩以外的存储优化,其规模如何?查找有关此的文档,但无法找到相同的解释。

例如,如果我有:

**Col1**
High
High
Medium
Low
High
Low
**... 100 Million Rows**

BQ 会按如下方式在内部存储它

**Col1**
1
1
2
3
1
3
**... 100 Million Rows**

【问题讨论】:

  • 如果您不赞成投票,我们将不胜感激,谢谢。
  • 投反对票的不是我,但你看到blog post on Capacitor了吗?
  • 我认为,需要注意的是:无论数据如何压缩、存储——用户仍然按照原始数据大小(未压缩)计费!

标签: optimization google-bigquery query-optimization storage


【解决方案1】:

值得注意的(并且是正确的!)答案摘要:

  • 正如 Elliott 在 cmets 中指出的那样,您可以阅读有关 BigQuery 数据压缩的详细信息 here

  • 正如 Felipe 所说,作为 BigQuery 的用户,没有必要考虑这些细节。所有这些优化都是在幕后完成的,并且随着 BigQuery 的发展不断改进,您无需采取任何行动。

  • 正如 Mikhail 在 cmets 中指出的那样,无论在存储层应用了何种优化,都按逻辑数据大小计费。

【讨论】:

    【解决方案2】:

    BigQuery 不断改进底层存储 - 这一切都无需任何用户交互即可发生。

    要了解 BigQuery 列式存储背后的原始想法,请阅读 Dremel 论文:

    要查看最近发布的存储改进,请参阅电容器:

    【讨论】:

      【解决方案3】:

      BigQuery 依赖于 Google 最新一代的分布式文件系统 Colossus。每个 Google 数据中心都有自己的 Colossus 集群,每个 Colossus 集群都有足够的磁盘,可以同时为每个 BigQuery 用户提供数千个专用磁盘。 您可以从“BigQuery under the hood”page 收集更多详细信息。

      【讨论】:

        猜你喜欢
        • 2020-06-19
        • 1970-01-01
        • 2021-09-10
        • 1970-01-01
        • 2012-12-24
        • 2019-07-04
        • 1970-01-01
        • 1970-01-01
        • 2020-05-13
        相关资源
        最近更新 更多