开发动态表实现近实时增量处理

教程概述

通过本教程,您将了解到如何使用Lakehouse动态表(Dynamic Table)构建一个完整的实时数据ETL加工流程。场景设计如下: 

 本教程将通过数据导入任务、基于动态表实现的数据清洗转换和数据聚合任务,实现了一个分钟级延迟的流式数据处理Pipeline案例。

入门知识

动态表(Dynamic Table)是一种支持仅处理增量变化数据的对象类型,和物化视图类型,创建动态表时您需要同时定义数据计算逻辑。通过刷新动作,可以触发动态表的计算逻辑并更新动态表。与传统的ETL任务相比,动态表只需要在定义时声明全量语义的计算逻辑,动态表在刷新时可自动进行增量计算优化。借助动态表,Lakehouse可以面向流式写入的数据进行近实时增量处理,为实时分析提供数据准备。

教程步骤

  1. 数据导入:创建原始表、持续写入用户行为数据;
  2. 开发动态表模型:通过Dynamic Table分别构造数据清洗、数据聚合的加工流程
  3. 验证加工结果:监控由动态表构造的数据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检查自动刷新动态表的数据新鲜度.

通过上图,我们借助动态表自动增量刷新,能够以1min左右时间延迟完成数据实时处理。

环境清理

在[任务运维]模块的周期性任务列表中下线数据导入任务;在动态表任务列表中下线2个动态表模型任务。

联系我们
预约咨询
微信咨询
电话咨询