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数据层中使用了Hudi
    • Hudi 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

原文:https://cwiki.apache.org/confluence/pages/viewpage.action?spaceKey=KYLIN&title=KIP-5+Integration+with+Hudi

KIP-5:Apache Kylin深度集成Hudi的更多相关文章

  1. 官方教程:Apache Kylin和Superset集成,使用开源组件,完美打造OLAP系统

    本文转自Apache Kylin公众号apachekylin. Superset 是一个数据探索和可视化平台,设计用来提供直观的,可视化的,交互式的分析体验. Superset 提供了两种分析数据源的 ...

  2. 直播 | Apache Kylin & Apache Hudi Meetup

    千呼万唤始出来,Meetup 直播终于来啦- 本次线上 Meetup 由 Apache Kylin 与 Apache Hudi 社区联合举办,将于 3 月 14 日晚进行直播,邀请到来自丁香园.腾讯. ...

  3. Apache Kylin 概述

    1 Kylin是什么 今天,随着移动互联网.物联网.AI等技术的快速兴起,数据成为了所有这些技术背后最重要,也是最有价值的"资产".如何从数据中获得有价值的信息?这个问题驱动了相关 ...

  4. [转帖]Apache Kylin 概述

    Apache Kylin 概述 https://www.cnblogs.com/xiaodf/p/11671095.html 1 Kylin是什么 今天,随着移动互联网.物联网.AI等技术的快速兴起, ...

  5. 【转】使用Apache Kylin搭建企业级开源大数据分析平台

    http://www.thebigdata.cn/JieJueFangAn/30143.html 本篇文章整理自史少锋4月23日在『1024大数据技术峰会』上的分享实录:使用Apache Kylin搭 ...

  6. NoSql存储日志数据之Spring+Logback+Hbase深度集成

    NoSql存储日志数据之Spring+Logback+Hbase深度集成 关键词:nosql, spring logback, logback hbase appender 技术框架:spring-d ...

  7. 大数据分析神兽麒麟(Apache Kylin)

    1.Apache Kylin是什么? 在现在的大数据时代,越来越多的企业开始使用Hadoop管理数据,但是现有的业务分析工具(如Tableau,Microstrategy等)往往存在很大的局限,如难以 ...

  8. 大数据分析界的“神兽”Apache Kylin有多牛?【转】

    本文作者:李栋,来自Kyligence公司,也是Apache Kylin Committer & PMC member,在加入Kyligence之前曾就职于eBay.微软. 1.Apache ...

  9. 使用Apache Kylin搭建企业级开源大数据分析平台

    转:http://www.thebigdata.cn/JieJueFangAn/30143.html 我先做一个简单介绍我叫史少锋,我曾经在IBM.eBay做过大数据.云架构的开发,现在是Kylige ...

随机推荐

  1. Windows PE变形练手3-把通用模板机器码直接覆盖目标PE

    把通用模板机器码直覆盖目标PE 这个地方真是尝试了好久,遇到很多坑点,Win PE那本书上的东西有点不够,也就直接写书上的例子会发现很多地方不是说的那样,里面提供的信息太少了,就比如里面并没有提被注入 ...

  2. 前端基础问题:CSS居中的几种方式

    水平居中 (1)内联元素: text-align: center; 利用 text-align: center :可以实现在块级元素内部的内联元素水平居中. 如果一行中有多个块级元素,可以通过设置块级 ...

  3. MySQL锁等待与死锁问题分析

    前言: 在 MySQL 运维过程中,锁等待和死锁问题是令各位 DBA 及开发同学非常头痛的事.出现此类问题会造成业务回滚.卡顿等故障,特别是业务繁忙的系统,出现死锁问题后影响会更严重.本篇文章我们一起 ...

  4. MySQL密码复杂度与密码过期策略介绍

    前言: 年底了,你的数据库是不是该巡检了?一般巡检都会关心密码安全问题,比如密码复杂度设置,是否有定期修改等.特别是进行等保评测时,评测机构会要求具备密码安全策略.其实 MySQL 系统本身可以设置密 ...

  5. CRM帮助初创企业降本增效的四个方法

    对大部分初创公司来说,只有少数企业能够实现盈利,大部分只能维持盈亏平衡甚至是亏损.这是因为初创企业很难在短时间之内找到稳定的赢利点,而企业面临的风险和投入又是无法预知的.初创企业想要快速盈利,只能降低 ...

  6. 消息队列RabbitMQ(五):死信队列与延迟队列

    死信队列 引言 死信队列,英文缩写:DLX .Dead Letter Exchange(死信交换机),其实应该叫做死信交换机才更恰当. 当消息成为Dead message后,可以被重新发送到另一个交换 ...

  7. 强哥MySQL学习笔记

    数据库服务器:1.数据库2.数据表 数据表:1.表结构(字段)2.表数据(记录)3.表索引(加快检索) 表引擎:1.myisam2.innodb 查看表字段desc table;删除数据库:drop ...

  8. /etc/ssh/sshd_config ssh自动断 cent7

    vim /etc/ssh/sshd_config ClientAliveInterval 60ClientAliveCountMax 8630000 ClientAliveInterval 30Cli ...

  9. IT菜鸟之OSI七层模型

    OSI七层模型从下到上分别是: 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 第一层物理层: 物理层是传输媒介(网线.无线.光纤) 在线路中起到的作用:是将0/1转换成电信号或光信号 物 ...

  10. nosql数据库之Redis集群

    Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施(installation). Redis 集群不支持那些需要同时处理多个键的 Redis 命令, 因为执行这些命令需要在多个 ...