Kyligence AI 服务 - 让大模型完成准确、可靠的数值计算和回答! 立即了解更多
AI 数智助理
Kyligence Zen Kyligence Zen
Kyligence Enterprise Kyligence Enterprise
Kyligence Turbo Kyligence Turbo
指标平台解决方案
OLAP 解决方案
行业解决方案
客户总览
金融
零售
制造
医药
其他
云平台
BI
寻求合作
资源
Kyligence Enterprise
Kyligence Zen
培训
Apache Kylin
Byzer
Gluten
博客
关于
市场活动
在 3 月 20 日举办的 Apache Kylin + MLSQL Meetup 中,我们邀请了来自 MLSQL 社区的技术大佬 祝威廉 来进行分享。大家都知道 Kylin 一向以强大的分析能力和丰富的周边生态而备受欢迎,但是 Kylin 自身还欠缺一些 ETL 能力。在本次分享中,祝威廉演示了如何在 Kylin 中快速完成数据处理,用户不用离开 Kylin 即可完成大规模数据分析整个 Pipeline,同时也分享了未来 Kylin 和 MLSQL 之间联动的更多可能性。
以下是祝威廉在本次 Apache Kylin Meetup 的演讲实录。
本次分享主要分为三部分,首先会宏观地去看一下 Kylin 和 MLSQL 这两者为什么是互补的,其次会进行一个 Demo 的演示,如何在 Kylin 里面通过简单几行代码的修改,就能够支持 MLSQL 的语言,从而完成一些 ETL 的工作。因为 Demo 目前只演示了其中一个场景,我会在第三部分来分享 Kylin 和 MLSQL 之间未来更多的可能性,两者其实是有许多可以联动的地方,大家也可以期待两者联动实现更好的效果。
首先来介绍一下为什么说 Kylin 和 MLSQL 是互补的,如上图所示,目前在整个数据分析领域,主要有三大部分:
Kylin 其实是非常好地覆盖了 BI 这一部分,并且具有非常完美的生态系统,Kylin 对大部分 BI 工具都是支持的,具备一部分的处理功能比如说多维聚合分析 。用户使用 Kylin 去做数据分析,其实就是利用它的数据处理功能。但如果涉及到数据处理中 ETL 相关的功能,Kylin 目前是不太适合去做的,比如一部分流式的数据处理,不过这也正是 MLSQL 可以覆盖的。MLSQL 在 BI 这一部分并不擅长,但是在数据处理和 AI 这两部分是比较强的。如果 Kylin 和 MLSQL 两者进行整合,那么基本就可以完美覆盖大数据分析最主要的三个领域。
1. Kylin 简介
首先来简单介绍一下 Kylin。Kylin 是一个 OLAP 的系统,支持高并发、亚秒级查询,这两点优势其实是许多工具难以超越的。同时,Kylin 生态完备,支持各种 BI 工具,比如像 Tableau, PowerBI 等。
如上面 Kylin 官网架构图所示,Kylin 有一个 Cube Build Engine,也就是用来构建 Cube 的过程。这个过程意味着它必须有数据来源,这个过程可能存在两个问题:
目前有两种方式:
2. MLSQL 简介
大部分 Kylin 用户可能暂时对 MLSQL 不太了解,我将从以下两个方面进行介绍:
第一方面, MLSQL 是一个面向大数据和 AI 设计的语言。正常情况下,使用大数据,用户可以用 Scala 或者 JAVA 语言;使用 AI 的用户可能会用 Python 语言;其实数据处理大家真正用的最多的应该是 SQL。那为什么还需要像 MLSQL 这样的语言呢?简单来说,如果用户去用 Scala 写代码,其实是需要深入掌握和应用这门语言的,另外包括 Python 也是存在一定的使用门槛的。SQL 很简单,但是如果想实现 AI 或是更强的 ETL 功能,SQL 就会存在能力欠缺的问题。在这样的情况下,MLSQL 其实就变成很有必要的一种语言了。
第二方面,前面也提到 MLSQL 是一种语言,任何一种语言都一定要有一个实现,就像我们之前提到的 JAVA语言,就有 JVM 虚拟机的实现。其实 MLSQL 底层也有一个实现这门语言的引擎,本质上底层是基于 Spark 做的引擎。MLSQL 的目标其实是要做一个真正整合数据管理、商业分析和机器学习的统一的语言和平台。
接下来介绍 MLSQL 的一些语法,让大家简单熟悉一下。
首先,在加载数据的部分,在 SQL 里必须要有 Catalog 才可以实现,默认数据源可能是 Hive。如果用户想加载其他数据,用 SQL 会比较麻烦。在这一部分,MLSQL 进行了一些拓展,比如使用 MLSQL 的 Load 语句,用户就可以加载任意数据源。
其次是可以用 SQL 去做标准的数据处理,同时处理完的结果可以进行保存。如上图所示,左侧是 AI 训练,MLSQL 其实是把 Python 和 SQL 进行了融合,用户可以用 Python 去直接使用 SQL 的表, Python 处理后的结果也可以作为表继续在 SQL 里使用。这里只是一些简单介绍,更多内容大家可以关注 MLSQL 的官方文档:http://docs.mlsql.tech/mlsql-console/
3. 如何不离开 Kylin 就能完成 ETL
以上简单介绍了 Kylin 和 MLSQL,要想整合两者,首先必须满足以下几个标准:
首先,整合成本必须要低。最差的情况下,是可能需要去修改一丢丢代码的,实际上,我和 Kylin 社区的 Committer 张智超也去进行了一些实践。在极致的情况下,只需要修改两行代码就可以完成整合。当然,这个过程中可能会新增一些文件,但是修改的部分可能只有几行代码。
其次,MLSQL 希望优先补全 Kylin 的 ETL 能力,可以实现在 Kylin 里面就可以直接进行 ETL。
考虑到以上两点,大家可以看到上图里做了一个简单注解是 --%mlsql,后面可以跟一个 MLSQL 引擎地址,有了这个注解,即可把整个框中的脚本内容发到 MLSQL 引擎里面去执行。如果没有这个注解,就会按照 Kylin 的执行逻辑去执行。有了初步思路,我们去做了一个演示 Demo,大家可以一起来看看演示效果。
Demo 中的这个界面大家应该非常熟悉,这是 Kylin 的运行页面。今天分享的 Demo 就是演示用户如何在 Kylin 的产品里,将一个 CSV 文件导入到 Hive 以供 Kylin 进行建模,整个过程仅修改几行代码就能把 ETL 的处理完成。
除了上面展示的 Demo 以外,面向未来,MLSQL 在 Kylin 里可以和 Kylin API 进行对接,或者使用任务调度器 Airflow 等,就可以把写好的脚本保存并运转起来,其实就相当于已经完成了一个 ETL 的工具集了。用户无需自行搭建 ETL 平台,就能在 Kylin 页面完成整个流程。实现以后,用户可以直接对接 Kylin 数据,既可以使用 Kylin 进行加速,比如实现亚秒级响应速度,同时也可以写一个较为复杂的数据处理的流程,去查看数据的情况等。
以上分享的这个 Demo 解决的核心问题是 ETL 能力,其实理论上,用户也是可以直接在刚刚的界面上做一些 AI 相关的操作。当用户拿到数据或通过 Kylin 得到一些分析结果,这个时候想去做一些算法相关的工作,就可以用到上面这种最简单的联动方式。其实 Kylin 和 MLSQL 联动的方式存在多种,这里简单介绍以下两种:
今天我们所讲的主要是前置联动,也分为两种:浅联动和深联动。
本次 Demo 演示的就是浅前置联动,也就是正常情况下进行的 Pipeline,从各种数据源,经过 ETL 处理到 HIVE 或者 Kafka,之后由 Kylin 进行 Cube 的构建,再面向用户进行查询或者面向报表以及其他复杂的操作。这整个 ETL 的过程其实是可以通过 MLSQL Engine 去完成的,当然用户也可以直接使用一个比较好的控制台去 MLSQL Engine 里去执行任务,或者使用其他的引擎等。在本次 Demo 示例里面, Kylin 用户可以在 Kylin UI Query 里面直接下发 ETL 任务到引擎层,去帮助 Cube 事先准备好数据,这就是浅联动,因为它的影响面比较小。
第二种是深前置联动。相较浅联动,深联动可以把 Pipeline 稍微调整一下,不仅可以下发 ETL 的任务到 MLSQL,甚至可以把 Cube 的构建任务也下发到 MLSQL。目前 Kylin 4.0 其实已经支持 Spark 引擎,所以把 Cube 任务给下沉到 MLSQL 实现起来也比较简单。
此处小剧透,有赞的郑生俊老师会分享在 Kylin 3.0 把 Cube 的任务内置到 Spark 引擎,并且用 K8s 去跑,已经被验证是可行的。这其实是一个比较深的联动,相当于把 Kylin 的 Cube 任务都下沉到 MLSQL 引擎层了。这也是更适合引擎层面去实现的,未来 MLSQL 既可以作为一个常驻的任务,也可以在 Kylin 去启动执行一个任务后,再把资源放掉。
以上就是对深联动和浅联动的简单介绍。关于后置联动,未来会有相关技术博客和演示分享。从 MLSQL 社区的角度来讲,首先 MLSQL 社区接下来会尝试引入 Cube 的构建功能,也就是前面提及的与 Kylin 的深层次联动;其次,未来 MLSQL 会提供一个更友好的方式以供 Kylin 衔接;当然,我们也有可能给 Kylin 社区去贡献类似嵌入 ETL 能力的插件体系,不仅可以使用 MLSQL,Spark,还可以使用更多其他 ETL 工具,从而实现让用户可以在 Kylin 里就完成整个过程。
更多 Apache Kylin 最新动态以及案例分享,请扫描二维码,关注 Apache Kylin 公众号,后台回复关键词「MLSQL」即可获得本次会议的全部 PPT。
01 现象 社区小伙伴最近在为 Kylin 4 开发 Soft Affinity + Local Cache
01 背景 随着顺丰末端物流(末端物流主要分为对小哥、柜机、区域等的资源的管理和分批;对路径、排班、改派等信息
Apache Kylin 的今天 目前,Apache Kylin 的最新发布版本是 4.0.1。Apache
Kylin 入选《上海市重点领域(金融类)“十四五”紧缺人才开发目录》 数字经济已成为全球增长新动
在 Kyligence 主办的 Data & Cloud Summit 2021 行业峰会的「数字化转
近日由 Kyligence 主办的 Data & Cloud Summit 2021 行业峰会在上海成
近五年来,Kyligence 服务了金融、制造、零售、互联网等各个行业的龙头企业,我们在服务这些企业的过程中,
2021年1月14日,Kyligence 产品经理陈思捷开启了我们在 2021 年的首场线上分享,为大家介绍了
400 8658 757
工作日:10:00 - 18:00
已有账号? 点此登陆
预约演示,您将获得
完整的产品体验
从数据导入、建模到分析的全流程操作演示。
行业专家解惑
与资深行业专家的交流机会,解答您的个性化问题。
请填写真实信息,我们会在 1-2 个工作日内电话与您联系。
全行业落地场景演示
涵盖金融、零售、餐饮、医药、制造等多个行业,最贴合您的业务需求与场景。
Data + AI 应用落地咨询
与资深技术专家深入交流,助您的企业快速落地 AI 场景应用。
立即预约,您将获得
精准数据计算能力:
接入高精度数值计算大模型服务,为您的企业级AI应用提供强大支持。
个性化业务场景解决方案:
量身定制的计算模型和数据分析服务,切实贴合您的业务需求和应用场景。
Data + AI 落地应用咨询:
与资深专家深入探讨数据和 AI 如何帮助您的企业加速实现应用落地,构建更智能的数据驱动未来。
申请体验,您将获得
体验数据处理性能 2x 加速
同等规模资源、同等量级数据、同一套数据处理逻辑,处理耗时下降一半
专家支持
试用部署、生成数据、性能对比各操作环节在线支持