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 的维度表设计?的主要内容,如果未能解决你的问题,请参考以下文章
DataWarehouse - 具有不同粒度/维度度量的事实表