KIP-5:Apache Kylin深度集成Hudi

简介: KIP-5:Apache Kylin深度集成Hudi

Q1. What are you trying to do? Articulate your objectives using absolutely no jargon.Q2. What problem is this proposal NOT designed to solve?Q3. How is it done today, and what are the limits of current practice?Q4. What is new in your approach and why do you think it will be successful?Q5. Who cares? If you are successful, what difference will it make?Q6. What are the risks?Q7. How long will it take?Q8. How does it work?For Hudi source integration:For Hudi cuboid storage(TBD):For cube rebuild with new Hudi source type(TBD):For cube merge with new Hudi cuboid storage type(TBD):

Q1. What are you trying to do? Articulate your objectives using absolutely no jargon.

对于Hudi数据湖源端集成将企业数据湖中以Hudi格式存储的数据集作为Kylin的源端输入对于Kylin cube重新构建&合并优化支持Kylin的Cuboid使用Hudi格式存储使用Hudi的增量查询视图加速和优化Kylin cube重新构建过程,仅解析上次cube构建后变更的数据使用Hudi的Compaction功能加速和优化Kylin Cube合并过程(针对增量cuboid文件),或者使用Hudi的Upsert功能来合并多个cuboid文件,类似Upsert到MOR表,并支持Select查询

Q2. What problem is this proposal NOT designed to solve?

不支持Hudi的其他类型的数据源(例如Kafka)不在此范围内流式CubeEnginer不在此范围内

Q3. How is it done today, and what are the limits of current practice?

当前无论输入格式是否为Hudi,Kylin都使用Beeline JDBC机制直接连接到Hive源当前的实现无法利用Hudi的原生和高级功能(例如增量查询、读优化视图查询等),Kylin可以从较小的增量cuboid合并和更快的源数据提取中受益

Q4. What is new in your approach and why do you think it will be successful?

对于Hudi Source集成

新的方法使用Hudi的原生优化视图查询和MOR表来加速Kylin的cube构建过程为什么会成功Hudi已在大数据领取和技术栈中发布并成熟,许多公司已经在Data Lake/Raw/Curated数据层中使用了HudiHudi lib已经与Spark DF/Spark SQL集成,可以使用Kylin的Spark Engine查询Hudi数据源Hudi的Parquet基础文件和Avro日志以及索引元数据等都可以通过Hive的外部表和输入格式定义进行连接,Kylin可以利用它们进行提取

Hudi作为Cuboid存储

新的方法使用Hudi的原生增量视图查询优化Kylin的cube重建过程,以仅捕获变更的数据并仅重新计算和更新必要的cuboid文件使用Hudi的upsert功能来操作cuboid文件,以优化Kylin的cube合并过程;而不是以前的join和shuffle方式为什么会成功Hudi根据记录的PK支持upsert,每个cuboid的维度key-id都可以视为PK这样当进行重建和合并操作时,它可以直接更新以前的cuboid文件,或基于PK合并多个cuboid文件并将它们压缩为Parquet文件

Q5. Who cares? If you are successful, what difference will it make?

如果在Kylin中启用了新的集成功能,从事数据挖掘/探索/报告等工作的数据科学家将有更快的cube集构建时间正在开发DW/DM层数据建模的数据工程师将最大程度地减少cube上的单元测试/性能测试的实现和交付工作

Q6. What are the risks?

没有其他风险,因为它只是配置Hudi源类型的替代选择,其他Kylin的组件和管道也不会受到影响

Q7. How long will it take?

N/A

Q8. How does it work?

总体架构设计的逻辑图如下:

对于Hudi源集成在kylin.property中为Hudi源类型添加新的配置项(例如:isHudiSouce = true,HudiType = MOR)使用Hudi原生客户端API添加新的ISouce接口和实现在配置单元外部表中使用Hudi客户端API查询优化视图及提取源Hudi数据集对于Hudi cuboid存储在kylin.property中为cuboid的Hudi存储类型添加新的配置项(例如isHudiCuboidStorage = true)使用Hudi编写API添加新的ITarget接口和实现,以实现内部存储和cuboid文件的操作对于使用新的Hudi源类型cube重建使用Hudi的增量查询API仅从Cube段的时间戳的最后时间提取变更的数据使用Hudi的upsert API合并cuboid的变更数据和以前的历史数据对于新的Hudi Cuboid存储类型cube合并使用Hudi upsert API合并2个cuboid文件

Reference

Hudi framework: https://hudi.apache.org/docs/

hive/spark integration support for Hudi: https://hudi.apache.org/docs/querying_data.html

目录
相关文章
|
1月前
|
存储 Apache
Apache Hudi Savepoint实现分析
Apache Hudi Savepoint实现分析
35 0
|
1月前
|
存储 机器学习/深度学习 Apache
如何将Apache Hudi应用于机器学习
如何将Apache Hudi应用于机器学习
22 0
|
1月前
|
Apache 索引
精进Hudi系列|Apache Hudi索引实现分析(五)之基于List的IndexFileFilter
精进Hudi系列|Apache Hudi索引实现分析(五)之基于List的IndexFileFilter
17 0
|
1月前
|
存储 SQL Apache
Apache Hudi与Delta Lake对比
Apache Hudi与Delta Lake对比
36 0
|
1月前
|
Apache
Apache Hudi Rollback实现分析
Apache Hudi Rollback实现分析
25 0
|
1月前
|
监控 NoSQL Java
Spring Boot集成Redis启动失败【Caused by: java.lang.ClassNotFoundException: org.apache.commons.pool2.impl.G】
Spring Boot集成Redis启动失败【Caused by: java.lang.ClassNotFoundException: org.apache.commons.pool2.impl.G】
|
1月前
|
存储 SQL 分布式计算
使用Amazon EMR和Apache Hudi在S3上插入,更新,删除数据
使用Amazon EMR和Apache Hudi在S3上插入,更新,删除数据
116 0
|
1月前
|
存储 分布式计算 Hadoop
一文了解Apache Hudi架构、工具和最佳实践
一文了解Apache Hudi架构、工具和最佳实践
107 0
|
1月前
|
SQL 分布式计算 NoSQL
使用Apache Hudi和Debezium构建健壮的CDC管道
使用Apache Hudi和Debezium构建健壮的CDC管道
17 0
|
1月前
|
存储 SQL 消息中间件
Apache Hudi:统一批和近实时分析的存储和服务
Apache Hudi:统一批和近实时分析的存储和服务
32 0

热门文章

最新文章

推荐镜像

更多