google-bigquery - 如何在 BigQuery 中处理大维度
问题描述
我当前的仓库 (Netezza) 中有一个维度表,它有 1000 万条记录,并且每天都在更新。
我们是否应该像计划迁移到 BigQuery 一样将这个维度表保留在 BigQuery 中。
我们如何在 BigQuery 中重新设计这个大维度?
解决方案
因为 bigquery 不适合更新,所以实现维度表并不容易。正确的答案取决于您的用例。
但这里有一些替代方案:
- 有一个带有“UpdatedAt”字段的仅附加维度表。比,使用窗口函数来获取最新版本(您甚至可以创建一个只有最新版本的视图)
- 每天使用最新版本的数据截断维度表。
- 基于 GCS / Big Table / Cloud SQL 创建一个外部表,并在那里更新维度。
- 将维度表保存在单独的数据库中,并使用 Cloud Dataflow 执行联接
- 将维度数据与事实表一起保存(是的,会有很多重复,但有时值得付出代价)
- 只要有变化就简单地更新维度表(这样做是有限制的)
所有这些方法都有缺点。解决方案甚至可以是多种方法的混合。
推荐阅读
- gremlin - gremlin - 如何在单个查询中计算标准偏差?
- python - 将变量值从 python 传递到 shell 脚本以在那里使用它
- c# - 在 Oracle 中使用 select 语句插入数据时出现无效字符错误
- node.js - 服务器重新加载时发送到套接字
- c# - C# 我无法在 Zebra 中打印标签
- azure-active-directory - 仅用于登录的 ADB2C 自定义策略。如何添加 KMSI 和控制密码休息链接
- spring-rabbit - 如何在 RabbitMQ Spring Framework 中使用“Declarables”动态创建绑定
- google-sheets - 是否可以查找单元格值并将结果填充到单独的单元格中的下拉框
- c - 在 C 中收集 MPI 中的大型子矩阵
- go - 为什么 Go 测试阻塞通道不报告死锁