首页 > 解决方案 > 如何在 BigQuery 中处理大维度

问题描述

我当前的仓库 (Netezza) 中有一个维度表,它有 1000 万条记录,并且每天都在更新。

我们是否应该像计划迁移到 BigQuery 一样将这个维度表保留在 BigQuery 中。

我们如何在 BigQuery 中重新设计这个大维度?

标签: google-bigquery

解决方案


因为 bigquery 不适合更新,所以实现维度表并不容易。正确的答案取决于您的用例。

但这里有一些替代方案:

  1. 有一个带有“UpdatedAt”字段的仅附加维度表。比,使用窗口函数来获取最新版本(您甚至可以创建一个只有最新版本的视图)
  2. 每天使用最新版本的数据截断维度表。
  3. 基于 GCS / Big Table / Cloud SQL 创建一个外部表,并在那里更新维度。
  4. 将维度表保存在单独的数据库中,并使用 Cloud Dataflow 执行联接
  5. 将维度数据与事实表一起保存(是的,会有很多重复,但有时值得付出代价)
  6. 只要有变化就简单地更新维度表(这样做是有限制的

所有这些方法都有缺点。解决方案甚至可以是多种方法的混合。


推荐阅读