汽车之家:基于Flink+Iceberg的湖仓一体架构实践
1. 基于 Hive 的数据仓库的痛点
原有的数据仓库完全基于 Hive 建筑而成,次要存在三大痛点:
痛点一:不支持 ACID
1)不支持 Upsert 场景;
2)不支持 Row-level delete,数据修正成本高。
痛点二:时效性难以提升
1)数据难以做到准实时可见;
2)无法增量读取,无法实现存储层面的流批统一;
3)无法支持分钟级延迟的数据分析场景。
痛点三:Table Evolution
1)写入型 Schema,对 Schema 变更支持不好;
2)Partition Spec 变更支持不友好。
2. Iceberg 关键特性
Iceberg 次要有四大关键特性:支持 ACID 语义、增量快照机制、开放的表格式和流批接口支持。
支持 ACID 语义
不会读到不完整的 Commit;
基于乐观锁支持并发 Commit;
Row-level delete,支持 Upsert。
增量快照机制
Commit 后数据即可见(分钟级);
可回溯历史快照。
开放的表格式
数据格式:parquet、orc、avro
计算引擎:Spark、Flink、Hive、Trino/Presto
流批接口支持
支持流、批写入;
支持流、批读取。
二、基于 Iceberg 的湖仓一体架构实践
湖仓一体的意义就是说我不需要观察湖和仓,数据有着打通的元数据的格式,它可以自在的流淌,也可以对接上层多样化的计算生态。
——贾扬清(阿里云计算平台高级争辩员)
1. Append 流入湖的链路
上图为日志类数据入湖的链路,日志类数据包含客户端日志、用户端日志以及服务端日志。这些日志数据会实时录入到 Kafka,然后通过 Flink 任务写到 Iceberg 里面,最终存储到 HDFS。
2. Flink SQL 入湖链路打通
我们的 Flink SQL 入湖链路打通是基于 “Flink 1.11 + Iceberg 0.11” 完成的,对接 Iceberg Catalog 我们次要做了以下内容:
1)Meta Server 添加对 Iceberg Catalog 的支持;
2)SQL SDK 添加 Iceberg Catalog 支持。
然后在这基础上,平台开放 Iceberg 表的管理功能,使得用户可以本人在平台上建 SQL 的表。
3. 入湖 - 支持代理用户
其次步是内部的实践,对接现有预算体系、权限体系。
由于之前平台做实时作业的时候,平台都是默认为 Flink 用户去运转的,之前存储不涉及 HDFS 存储,因而可能没有什么问题,也就没有思考预算划分方面的问题。
但是现在写 Iceberg 的话,可能就会涉及一些问题。比如数仓团队有本人的集市,数据就应当写到他们的名目下面,预算也是划到他们的预算下,同时权限和离线团队账号的体系打通。
如上所示,这块次要是在平台上做了代理用户的功能,用户可以去指定用哪个账号去把这个数据写到 Iceberg 里面,实现过程次要有以下三个。
添加 Table 级别配置:xy = targetUser’
1)启用 Superuser
2)团队账号鉴权
访问 HDFS 时启用代理用户:
访问 Hive Metastore 时指定代理用户
1)参考 Spark 的相关实现:
org.apache.spark.deploy.security.HiveDelegationTokenProvider
2)动态代理 HiveMetaStoreClient,使用代理用户访问 Hive metastore
4. Flink SQL 入湖示例
DDL + DML
5. CDC 数据入湖链路
如上所示,我们有一个 AutoDTS 平台,担任业务库数据的实时接入。我们会把这些业务库的数据接入到 Kafka 里面,同时它还支持在平台上配置分发任务,相当于把进 Kafka 的数据分发到不同的存储引擎里,在这个场景下是分发到 Iceberg 里。
6. Flink SQL CDC 入湖链路打通
下面是我们基于 “Flink1.11 + Iceberg 0.11” 支持 CDC 入湖所做的改动:
改进 Iceberg Sink:
Flink 1.11 版本为 AppendStreamTableSink,无法处理 CDC 流,修改并适配。
表管理
1)支持 Primary key(PR1978)
2)开启 V2 版本:iceberg.format.version = 2
7. CDC 数据入湖
■ 1. 支持 Bucket
Upsert 场景下,需要确保同一条数据写入到同一 Bucket 下,这又如何实现?
目前 Flink SQL 语法不支持声明 bucket 分区,通过配置的方式声明
您可能关注的文档
最近下载
- 小学五年级信息科技学科项目式学习解读PPT——《AI护鸟行动:智能喂鸟器》.pptx VIP
- 音乐课基础知识.pptx
- XX银行重要信息系统投产(变更)风险评估实施细则.docx VIP
- 质量部岗位技能矩阵图 (1).xls VIP
- 17J008 挡土墙(重力式、衡重式、悬臂式)(最新).pdf VIP
- BIM技术与应用-Revit 2023建筑与结构建模-课件全套-第1--17章BIM概述-综合案例.pdf VIP
- 增值税季度纳税申报明细表格适用于查账征收的个体工商户.doc VIP
- 注塑厂车间安全生产培训课件.pptx VIP
- {班组长管理}丰田TOYOTAWAYTL讲义班组长.pdf VIP
- KANGHUI式髓内钉系统.pptx VIP
原创力文档

文档评论(0)