开发动态表实现近实时增量处理
教程概述
通过本教程,您将了解到如何使用Lakehouse动态表(Dynamic Table)构建一个完整的实时数据ETL加工流程。场景设计如下:
本教程将通过数据导入任务、基于动态表实现的数据清洗转换和数据聚合任务,实现了一个分钟级延迟的流式数据处理Pipeline案例。
入门知识
动态表(Dynamic Table)是一种支持仅处理增量变化数据的对象类型,和物化视图类型,创建动态表时您需要同时定义数据计算逻辑。通过刷新动作,可以触发动态表的计算逻辑并更新动态表。与传统的ETL任务相比,动态表只需要在定义时声明全量语义的计算逻辑,动态表在刷新时可自动进行增量计算优化。借助动态表,Lakehouse可以面向流式写入的数据进行近实时增量处理,为实时分析提供数据准备。
教程步骤
- 数据导入:创建原始表、持续写入用户行为数据;
- 开发动态表模型:通过Dynamic Table分别构造数据清洗、数据聚合的加工流程
- 验证加工结果:监控由动态表构造的数据Pipeline的刷新执行状态,同时查看消费层数据表的变化情况,验证实时数据加工结果
通过以上步骤,您将了解如何通过动态表在Lakehouse开发流式处理任务。
准备工作
首先,创建行为日志表,通过INSERT INTO任务写入测试数据。
本教程通过在”开发”模块提供了创建数据表以及插入测试数据的SQL脚本,打开 [Tutorial_Working_With_Dynamic_Table->Step01.Preparation] 脚本文件,配置1Min间隔的调度策略并提交部署,模拟实时数据导入。
Transform Layer动态表模型开发
在[开发]模块打开[Tutorial_Working_With_Dynamic_Table->Step02.Transformation_With_Dynamic_Table] 样例动态表任务文件,该动态表定义了对原始表进行清洗转换的ETL逻辑。
请参考下图进行调度配置"运行集群"和"调度参数":
提交部署
点击[提交]按钮,将动态表模型部署到Lakehouse目标环境中,系统将根据动态表设置的刷新频率自动刷新。
Aggregate Layer动态表模型开发
在[开发]模块打开[Tutorial_Working_With_Dynamic_Table->Step03.Aggregation_With_Dynamic_Table] 样例动态表任务文件,该动态表定义了对中间层数据模型进行聚合分析的ETL逻辑。
请参考下图进行调度配置和提交运行:
验证增量更新结果
在[开发]模块打开Step04.Check_Data_Freshness文件,通过执行Query检查自动刷新动态表的数据新鲜度.
环境清理
在[任务运维]模块的周期性任务列表中下线数据导入任务;在动态表任务列表中下线2个动态表模型任务。