DTS 是阿里云提供了高可靠的数据传输服务,支持不同类型数据库增量数据的订阅和 消费。我们实现了 DTS 实时订阅数据的入湖,支持用户已有订阅通道入湖和自动创建订阅 通道入湖两种方式,减少用户配置成本。
在技术上,支持增量数据对历史数据的 update、delete 变更操作,实现分钟级延迟的 数据变更感知能力。技术实现上在 Streaming SQL 中扩展了 merge into 语法来对接底 层文件格式 Delta Lake 的相关接口。
MERGE INTO delta_tbl AS target
USING (
select recordType, pk, ...
from {{binlog_parser_subquery}}
) AS source
ON target.pk = source.pk
WHEN MATCHED AND source.recordType='UPDATE' THEN
UPDATE SET *
WHEN MATCHED AND source.recordType='DELETE' THEN
DELETE
WHEN NOT MATCHED THEN
INSERT *
和传统数仓的 binlog 入仓相比,基于数据湖的方案具有更大的优势. 在传统数仓中, 为了实现数据库等变更数据的入仓,通常需要维护两张表,一张增量表用于存放每天新增的 数据库变更明细数据,另外一张全量表,存放历史所有的 merge 数据,全量表每天和增量 表更据主键做 merge 操作. 显然,基于数据湖方案在实现的简单性和时效性上都更优。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云EMR是云原生开源大数据平台,为客户提供简单易集成的Hadoop、Hive、Spark、Flink、Presto、ClickHouse、StarRocks、Delta、Hudi等开源大数据计算和存储引擎,计算资源可以根据业务的需要调整。EMR可以部署在阿里云公有云的ECS和ACK平台。