google-bigquery - BigQuery 数据仓库设计?
问题描述
在 Datawarehouse 的典型 HDFS 环境中,我看到了一些不同的阶段,在这些阶段中,数据被分阶段和转换,如下所示。我正在尝试在 Google 云平台中设计一个系统,我可以在其中执行所有这些转换。请帮忙。
HDFS:: Landing Zone -> Stage 1 Zone -> Stage 2 Zone
Landing Zone - 用于获取原始数据 Stage 1 Zone - 来自 Landing zone 的原始数据被转换,然后更改为不同的数据格式和/或非规范化并存储在 Stage 1 Stage 2 Zone - 来自阶段 1 的数据在事务表说 HBASE。如果只是一个时间段数据,那么仍然是基于 HDFS 的 HIVE 表然后,从第 2 阶段开始进行报告(如果进行转换,则中间也可能有多个区域)
我在 Google Cloud 中实施的思考过程::
登陆(谷歌云存储)-> 第 1 阶段(BigQuery - 托管所有基于时间的数据)-> 第 2 阶段(BigQuery 用于基于时间的数据/维护大表用于基于键的事务数据)
我的问题如下:
a) 这个实现看起来是否现实。我打算使用 Dataflow 在这些区域之间进行读取和加载?如果有人以前实施过一个设计来建造仓库,那将是一个更好的设计吗?
b) 使用 Dataflow 读取 Big Query 然后更新 Big table 的效果如何?我在这里看到了一些用于大表更新的数据流连接器
c) 由于 BigQuery 支持,Json 数据可以用作主要格式吗?
解决方案
- 有一个可能适合您的方案的解决方案。我会将数据加载到 Cloud Storage,读取它并使用 Dataflow 进行转换,然后将其发送到 Cloud Storage 以在之后加载到 Bigquery 和/或使用您提到的 Dataflow 连接器直接写入 BigTable。
- 正如我之前提到的,您可以将转换后的数据从 Dataflow 发送到两个数据库。请记住,BigQuery 和 Bigtable非常适合分析,但是,Bigtable 具有低延迟的读取和写入访问权限,而 BigQuery 具有较高的延迟,因为它执行查询作业来收集数据。
- 是的,这将是一个好主意,因为您可以将JSON 数据从 Cloud Storage 直接加载到 BigQuery。
推荐阅读
- php - 获取与 Woocommerce 订单项目相关的产品自定义字段
- amazon-web-services - 使用 Lambda 和 AWS Cognito 进行身份验证
- cross-compiling - 交叉编译 OpenSSL
- performance - 诊断 AWS Elastic Block Storage 性能
- reactjs - React.js 如何将数据从父组件传递到子组件
- eclipse-hono - Hono 命令和控制 API 未收到消息
- r - 将分组字段转换为 R 中的表头的更好方法?
- intellij-idea - 在注释栏中显示全名
- android - 如何在 Android Oreo+ 上写入外部 SD 卡?
- spinnaker - 访问 Spinnaker UI 时出错:路径未标准化