BigQuery - DataWarehouse 的维度表设计?

Posted

技术标签:

【中文标题】BigQuery - DataWarehouse 的维度表设计?【英文标题】:BigQuery - Dimension table design for DataWarehouse? 【发布时间】:2018-09-05 21:51:42 【问题描述】:

我注意到 BigQuery 很适合维护历史数据,但在进行个别记录更新时性能不佳。

对于历史数据,在“维度和事实范式”中维护 BigQuery 中的维度表的效果如何?我只想在维度数据定期完全刷新的情况下使用此范例,因为维度表不能包含重复的键并且 BigQuery 在记录级别更新时无法执行。

我可以使用哪些其他方法来维护维度表?想到了 Bigtable,但这是一个很好的应用程序吗?

【问题讨论】:

【参考方案1】:

根据“事实”和“维度”表中“事实”和“维度”的大小,以及您希望如何将两者联系起来,Bigtable 也可能是一个不错的解决方案。

鉴于 Bigtable 非常适合点写入和批量摄取,您可能会发现在“事实”表中维护非常精细的数据很容易,并且可以在应用程序级别快速进行交互。

例如,如果您专注于零售,您的“Facts”表可以使用 Bigtable 表作为客户购买的历史日志,其中的行包含有关客户购买的信息。

根据“Dimensions”表的大小,它也可能适用于 Bigtable,尤其是在需要快速点更新时。

再次考虑零售,您的“Dimensions”表可能是一个 Bigtable 表,其中包含库存空间可用性,描述存在多少种类型的商品。

一个重要的警告是 Bigtable 不支持二级索引:在您的查询中无法在这两个 Bigtable 表之间进行连接,您需要减少应用程序端的值。

有关详细信息,请参阅Bigtable 文档!

【讨论】:

【参考方案2】:

对于 BigQuery,它是 better 以保持数据非规范化。由于是列式存储,因此在使用大量数据时不会影响性能。您可以在此处查看 BigQuery 中的 managing 数据。

【讨论】:

谢谢。我读过那个。但只是想知道那里有任何其他不同的选择。 请注意,如果您最终将 Bigtable 作为一种存储选项进行探索,BigQuery 还为查询 Bigtable 提供联合查询支持:icharts.net/blog/press-and-news/…

以上是关于BigQuery - DataWarehouse 的维度表设计?的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery 数据仓库设计?

bigquery - 小表上的慢查询

我们如何删除由表装饰器创建的 bigquery 快照?

DataWarehouse - 具有不同粒度/维度度量的事实表

如果 datamart 是 datawarehouse 的逻辑划分,那么它在 datalake 中对应的是啥?

在 Datawarehouse (Postgresql) 中搜索变量