Domino 流计算快速上手 - 1. 扩维
使用 SQL 即可定义扩维操作,实现 ODS 更新立即扩维并更新至 DWD 层,使用简单,实时性更高。
扩维是数据仓库建模中的一项重要操作。
根据经典的数据仓库建模理论,在通过 ETL(提取、转换、加载)过程将交易系统的数据加载至数据仓库的 ODS(贴源层)层后,下一步通常是对 ODS 层的原始交易数据进行扩维处理。扩维的目的是通过加入更多的维度信息,形成信息更为完备的“大宽表”。这些“大宽表”数据随后被写入 DWD(明细层),为进一步的数据分析和计算提供了结构化的基础数据。通过扩维处理,能够加速数据分析过程,提高多维度分析的效率和准确性。
过去,扩维操作通常采用“跑批”的方式进行处理。具体而言,在 ETL 过程完成后,通常会在非高峰时段(如晚上)使用调度工具执行 SQL 语句,批量地将当天的新增数据进行扩维处理,并写入 DWD 层。这种方式依赖于定时批处理任务,适用于数据量较大且更新频率较低的场景,但在实时性要求较高的应用中存在一定的局限性。
通过 Domino 流计算技术,我们可以使用 SQL 定义扩维操作,实现 ODS 到 DWD 是实时扩维更新,从而避免了“跑批”操作,无需调度,不但实时性更佳,而且无需第三方工具,大大降低了系统复杂度和运维成本。
如果再通过 CDC 工具将交易系统的数据实时更新至 ODS 仓中,配合流计算,就能使数仓真正具备“实时分析”的能力。
作为介绍 Domino 流计算的第一篇文章,我们就从最基本的扩维操作开始,通过一个简单对订单 + 商品信息 执行 JOIN 扩维操作的例子,演示 Domino 的使用方法和带来的效果。
表结构
ods_order
订单信息:存储订单信息的事实表;
dim_prod
商品信息:存储商品详细信息的维度表;
dwd_order_detail
订单详情:扩维后包含所有商品信息的订单详情表。
操作
第一步,让我们创建表
ods_order
和dim_prod
。
让我们创建流
dwd_order_detail
,通过商品信息对原始交易数据进行数据扩维。当ods_order
有新数据插入时,dwd_order_detail
会即时增量刷新,最新的、经过扩维的交易信息会自动写入。
准备商品数据
让流表工作起来 - 插入操作 在第二步中我们通过
JOIN ods_order
和dim_prod
创建了流dwd_order_detail
,一旦我们向ods_order
中插入新数据,那么dwd_order_detail
表也会立即更新,展示出扩维后的新订单数据。
查询 dwd_order_detail
,我们刚刚写入的数据自动经过扩维更新至表中。
让流工作起来 - 更新操作 除了 INSERT, 流的上游的 UPDATE 操作,也会自动更新至下游:
查看结果
让流表工作起来 - 删除操作
查看结果
了解更多
Domino 流计算使用灵活,功能强大
用 WHERE 条件直接进行过滤
多表 JOIN, UNION 等均可使用
可选追踪 INSERT / UPDATE / DELETE 操作
本文为 YMatrix 原创内容,未经允许不得转载。
欲了解更多超融合时序数据库相关信息,请访问 “YMatrix”官方网站
版权声明: 本文为 InfoQ 作者【YMatrix 超融合数据库】的原创文章。
原文链接:【http://xie.infoq.cn/article/0118385577c73b3e84e5b1d24】。文章转载请联系作者。
评论