BigQuery 数据仓库设计?

Posted

技术标签:

【中文标题】BigQuery 数据仓库设计?【英文标题】:BigQuery Datawarehouse design? 【发布时间】:2019-01-21 11:45:03 【问题描述】:

在 Datawarehouse 的典型 HDFS 环境中,我看到了一些不同的阶段,在这些阶段中,数据被分阶段和转换,如下所示。我正在尝试在 Google 云平台中设计一个系统,我可以在其中执行所有这些转换。请帮忙。

HDFS:: 着陆区 -> 阶段 1 区域 -> 阶段 2 区域

着陆区 - 用于获取原始数据 第 1 阶段区域 - 来自着陆区域的原始数据被转换,然后更改为不同的数据格式和/或非规范化并存储在第 1 阶段 第 2 阶段区域 - 来自第 1 阶段的数据在事务表上更新,例如 HBASE。如果只是一个时间段的数据,那么还是基于HDFS的HIVE表 然后,从第 2 阶段开始进行报告(如果要进行转换,中间也可能有多个区域)

我在 Google Cloud 中实施的思考过程::

登陆(Google 云存储)-> 第 1 阶段(BigQuery - 托管所有基于时间的数据)-> 第 2 阶段(BigQuery 用于基于时间的数据/维护大表用于基于键的事务数据)

我的问题如下:

a) 这个实现看起来是否现实。我打算使用 Dataflow 在这些区域之间进行读取和加载?如果有人以前实施过一个设计来建造仓库,那会有什么更好的设计?

b) 使用 Dataflow 读取 Big Query 然后更新 Big table 的效果如何?我已经看到了一些用于大表更新的 Dataflow 连接器here

c) 由于 BigQuery 支持,Json 数据可以用作主要格式吗?

【问题讨论】:

【参考方案1】:
    solution 可能适合您的方案。我会将数据加载到 Cloud Storage,读取它并使用 Dataflow 进行转换,然后将其发送到 Cloud Storage 以在之后加载到 Bigquery 和/或使用您提到的 Dataflow 连接器直接写入 BigTable。 正如我之前提到的,您可以将转换后的数据从 Dataflow 发送到两个数据库。请注意,BigQuery and Bigtable 非常适合分析,但 Bigtable 具有低延迟的读取和写入访问权限,而 BigQuery 具有较高的延迟,因为它会执行查询作业来收集数据。 是的,这是个好主意,因为您可以将 JSON data 从 Cloud Storage 直接加载到 BigQuery。

【讨论】:

以上是关于BigQuery 数据仓库设计?的主要内容,如果未能解决你的问题,请参考以下文章

「数据仓库技术」怎么选择现代数据仓库

BigQuery - 6 年的订单迁移、表/查询设计

谷歌的云数据仓库将全球部署,GIS功能里程碑

数据仓库 - 2.数据仓库设计思路及ETL设计思路

数据仓库的架构与设计

数据仓库的架构与设计