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
博客
关于
市场活动
作者:史少锋(高级架构师, Kyligence Inc.) 编辑:Sammi
KAP简介
Kyligence Analytics Platform (简称KAP) 是运行在Hadoop上的企业级分布式大数据引擎,由Apache Kylin项目核心成员倾力打造。Apache Kylin是一个开源的大数据分析引擎,在业界已有广泛使用。KAP继承了Kylin的所有优势,并创造性地引入了更多特性和功能,主要亮点包括:
KAP从Apache Hive或Apache Kafka读取原始数据,使用MapReduce或Spark框架对数据进行预计算,然后将预计算的结果,也就是Cube,存储在HBase或KyStorage中(KyStorage是一种专门针对KAP优化的列式存储引擎)。商务智能(BI)工具、仪表盘应用或自定义Web应用,可以通过ODBC/JDBC等方式将查询SQL语句发送给KAP,KAP会自动将查询转化成对预聚合结果Cube的检索,因此可以快速返回结果。
通过可扩展的预计算技术,KAP可以支持数据规模的线性扩展,并且依旧保持亚秒级的快速响应和稳定可预期的查询延迟。下图是数据规模的对比测试。图1是Apache Kylin(KAP的核心)在星型模型测试集(Star Schema Benchmark,简称SSB)上的性能数据,三个颜色分别代表一千万、两千万和四千万数据量。从图中我们看到,所有的查询均在不到一秒内完成,且当数据量增加的时候,查询延迟依然稳定在一秒以内,几乎没有变化。
图1. SSB 查询性能
在SSB这样一个标准数据集上,通过预计算技术,Apache Kylin可以获得比Apache Hive高出300多倍的性能提升。图2展示了两者之间的性能对比。更多信息,可以参考ssb-kylin项目: https://github.com/Kyligence/ssb-kylin .
图 2. Kylin 与Hive查询延迟对比
Azure HDInsight
微软Azure云的HDInsight 服务,是完全托管的云上Hadoop服务,提供经过优化的开源的大数据分析集群,支持Spark、Hive、MapReduce、Storm、Kafka和R Server等主流技术,并具备99.9%的SLA保证。这些大数据技术以及ISV应用都可以快速便捷地部署在托管的集群上,同时支持企业级的安全及监控服务。
Azure云支持计算和存储相分离架构,其中Azure Blob Storage和Azure Data Lake提供了高可用、高性能以及低成本的存储服务,HDInsight提供了可扩展的计算服务,这些服务支持用户方便地启动集群,扩大或缩减集群规模,甚至停止集群,而无需担心数据的丢失。
KAP on HDInsight
在Azure HDInsight中,用户通过应用市场可以轻松地部署使用KAP。KAP被部署在HDInsight集群的边缘节点(Edge Node)中,它通过标准API跟Hadoop集群服务如Hive、YARN、HBase等进行通信。通过读取节点上的Hadoop配置,KAP自动地发现各个Hadoop服务,用户无须在集群上进行额外的安装和配置。KAP部署后,默认是自动启动的,如果需要手工启停,可以运行“kylin.sh start”启动KAP,运行“kylin.sh stop”停止服务。
HDInsight的应用程序平台提供了一种简便的办法,让第三方应用提供商(ISV)能够轻松地开发和分发基于Hadoop的应用程序。 第三方应用开发者只需要提供一个安装应用的ARM(Azure Resource Manager)模版和shell脚本即可,其它事情都交给Azure处理。这个一个非常友好的功能,使得在HDInsight 上自动安装KAP变得简单。图3是KAP on HDInsight的架构图。
图3. KAP + Azure HDInsight
通过参考Azure的 Iaas-Applications 项目的示例,我们开发了为KAP定制的ARM模版,并成功在HDInsight上部署启动了KAP。如今,KAP及内置的敏捷BI工具KyAnalyzer都做为HDInsight的应用程序一起安装,用户可以在很短的时间内获得一个云上的大数据分析平台和BI工具。
在平台管理方面,高级用户可能期望对Hadoop和KAP进行深入调优以获得更好的性能。HDInsight 内置Apache Ambari做为配置管理以及监控工具,用户可以通过Ambari的web界面或API对Hadoop各项服务的参数进行配置优化。对于KAP的相关配置,可以通过SSH的方式登录到节点上进行配置。
安装KAP
如今KAP已经在微软Azure云(包括Azure海外以及由世纪互联运营的Azure中国)全面上线。一些客户已经开始使用HDInsight + KAP方案。Kyligence自身也积极地在各项业务,如开发、测试、培训、在线演示、概念验证等中使用这套组合。要启用它,您只需要按下面几个步骤执行:
1) 选择一个”HBase” 类型的集群,可以是新集群,也可以是一个已存在的集群。
图4. 选择“HBase” 做为集群类型
2) 如果是新建集群,需要点击”Custom”,在第三步“Applications”页面选择 “Kyligence Analytics Platform” ,如下图所示:
图5. 选择KAP 进行安装
如果是已经存在的HBase集群,点击“Applications”,然后点击“Add”,在应用程序列表中,选择 “Kyligence Analytics Platform” 进行安装。点击”Purchase” 按钮意味您已经阅读并同意相关条款。这里不会产生针对KAP的额外费用。安装的KAP带有一个月的试用许可,试用期内免费,试用结束后请联系Kyligence公司购买正式许可。
图6. KAP出现在HDInsight Applications中
3) 集群创建完后,通过Azure门户,您可以获取到KAP和KyAnalyzer的访问地址,如图7所示。点击这些地址,可以直接跳转到KAP以及KyAnalyzer 的登录页。在这里您也可以获取到SSH到KAP节点的地址。
图7. KAP 及KyAnalyzer的访问URL
KAP的默认管理员账号是用户名是”ADMIN”,默认密码是”KYLIN”。初次登录后建议在”System” -> “User” 页面为所有账户重置密码,这里您也可以添加新用户并为他们授予角色。
图8. 重置用户密码
KyAnalyzer 与KAP共享用户信息,所以您只需要在KAP中管理用户,之后便可以在 KyAnalyzer 中使用。
玩转样例Cube
KAP安装时会自动创建一个样例Cube以及它所需要的Hive表。这个样例Cube会自动开始构建。
图9. 样例Cube
您可以在“Monitor”页监控此构建任务直至完成。任务完成后,Cube的状态会更新为“Ready”,意味着它可供查询。这时您可以在”Insight” 页输入一句查询SQL,例如:
select part_dt, sum(price) as total_selled, count(distinct seller_id) as sellers from kylin_sales group by part_dt order by part_dt;
KAP能够很快返回查询结果。您可以拷贝这条SQL到Hive命令行中执行,以感受它们的响应时间差异。
图 10. 在KAP中执行查询
至这里您已经体验了如果使用KAP来加速查询分析。然而,写SQL依然是一件麻烦的事情,您可以使用一些可视化工具如KyAnalyzer通过拖拽选择的方式开展分析。
导入数据到KAP
KAP 支持Apache Hive 和Apache Kafka 做数据源。Hive用于批量数据处理,Kafka用作流数据处理。
要在KAP 中对批量数据做处理,需要将数据文件描述为Hive 表格。HDInsight 支持使用Azure Blob Store 以及Azure Data Lake 做为Hadoop的存储,通过它们可以轻松地管理和处理海量数据,兼顾高可靠、高可用以及低成本。下面是一个将文件上传到Azure Blob Store 的例子:
export AZURE_STORAGE_ACCOUNT= export AZURE_STORAGE_ACCESS_KEY=
# list all files in container azure storage blob list # upload a file to container azure storage blob upload
Azure Blob Store是一个对象存储系统,不是普通的文件系统;但它支持以”/”做分隔符从而模拟文件目录树结构。下面的命令会将本地文件”airline_2015_01.csv” 上传到容器”mycontainer”中,并使用”airline/2015/airline_2015_01.csv” 做远程路径:
azure storage blob upload airline_2015_01.csv mycontainer airline/2015/airline_2015_01.csv
当文件上传到Azure Blob Store后,您可以使用HiveQL语句来创建Hive表格。您可以在HDInsight Ambari的“Hive view” 中,或者通过SSH到某个节点后使用Hive命令行来执行HiveQL语句。下面是一个创建Hive(带分区)表的样例语句:
hive> CREATE EXTERNAL TABLE airline_data ( Year int, Quarter int, Month int, DayofMonth int, DayOfWeek int, FlightDate date, … ) PARTITIONED BY (Part_year STRING) ROW FORMAT SERDE ‘org.apache.hadoop.hive.serde2.OpenCSVSerde’ WITH SERDEPROPERTIES (“separatorChar” = “,”) LOCATION ‘wasb://@.blob.core.windows.net/airline’ TBLPROPERTIES(‘serialization.null.format’=”,’skip.header.line.count’=’1’);
请替换contianer和storage-account为您的存储账户信息。接下来就可以添加分区:
hive> ALTER TABLE airline_data ADD PARTITION (Part_year = ‘2015’) location ‘wasb://@.blob.core.windows.net/airline/2015’;
当表创建好并有至少一个分区后,您就可以在Hive中执行查询了,例如: hive> select * from airline_data limit 100;
至此已经成功创建了一个Hive表,让它使用Azure Blob Store上的数据文件。可以登录KAP,在“Model” -> “Data Source” 页, 点击 “Load Hive Table” 按钮来导入Hive表信息到KAP;导入Hive表信息只会同步表的元信息,例如列名、数据类型等,而不会拷贝数据,因此这一步通常非常快。
图11. 导入Hive 表
创建模型和Cube
当所有表都导入后,您就可以开始创建数据模型。数据模型是创建Cube的基础,它可以为多个Cube重用。在“Models” 页,点击“+Model”,选择事实表和维度表,选择维度列和度量列,并设置分区列信息等。
图12. 创建数据模型
保存模型后,就可以开始创建Cube。Cube是一种多维空间的数据结构,包含维度和度量。KAP支持在一个Cube中包含数十个维度和上百个度量。KAP不仅支持普通度量如SUM, COUNT, MAX, MIN, DISTINCT COUNT等,还支持高级度量如Top- N, Percentile,以及基于Bitmap的精确去重计数器等。点击 “+Cube”,KAP会启动一个向导带领您一步步完成Cube创建。
图13. 创建Cube
构建Cube
Cube创建好以后,需要将数据加载构建进Cube。在Cube页,点击 “Action” -> “Build”。如果数据模型是分区的,那么需要指定一个源数据的时间范围,如果不是分区的,那么会将所有数据加载进Cube。
图14. 构建 Cube
触发Cube构建后,一个构建任务会被启动并执行,可以在“Monitor”页面监控此任务的进度。 Cube构建可能会花费数分钟到数小时来完成,取决于数据规模、模型复杂度、集群规模等多种因素。 可以点击某个具体任务以查看每一步的具体信息。如果某个步骤是MR任务,KAP会显示出任务在YARN资源管理器上的链接地址。当构建完成后, Cube状态会自动更新为 “Ready”,意味着可以开始查询了。
执行查询
点击“Insight” 页,您可以编写一个SQL查询语句并点击“Submit”,语句会被递交到服务器端执行并将结果展示在前端页面。
图15. 在 KAP 界面执行查询
使用KyAnalyzer敏捷分析
您可以使用与KAP相同的账户登录到KyAnalyzer ,在 “Admin Console” 页,点击 “Sync Cubes from Kylin”,然后选择”kylin_sales_cube” 进行同步,这样这个Cube的定义会被导入到KyAnalyzer。
图16. 同步Cube 到 KyAnalyzer
点击”New query” 打开一个新的空白页,点击”Cubes”旁的刷新按钮,在下拉列表中选择”kylin_sales”,点击选择一个维度和一个度量,KyAnalyzer会自动生成查询语句、发送查询并展示结果。
图17. 选择维度和度量
点击 右上角的”Chart Mode” 按钮,KyAnalyzer 会根据结果数据生成图表,如下图所示,是不是很容易?
图18. 生成图形化展示
现在您已经创建了一个Cube,并通过拖拽的方式生成了第一个图表。如果需要,您还可以将KAP跟更高级的BI工具如Tableau、PowerBI、Excel等进行集成。
集成Tableau, Power BI
要从Tableau 或 Power BI连接KAP,您需要安装Apache Kylin ODBC 驱动(暂只支持Windows平台 )。详细的步骤信息请参考https://docs.kyligence.io/v2.3/en/integration/
HDInsight 上的KAP 使用 HTTPS协议访问,因此当配置ODBC连接的时候,请使用443端口以及HDInsight为KAP注册的网络地址进行注册。图19是从Tableau连接KAP的样例。
图19. 从Tableau 连接KAP
与HDInsight Kafka 的集成
Apache Kafka是一个开源分布式消息平台,它能够每秒处理上百万次的并发读写。KAP支持从Kafka (v0.10+) 读取数据。通过集成Kafka,KAP可以持续将数据构建进Cube,从而大大减少数据从产生到被检索分析的延迟。
HDInsight 的Kafka 服务提供了受管理的、高可用的Kafka 服务。您可以通过Azure 门户或API快速创建一个Kafka集群。您可以创建一个Kafka集群,跟已有的含KAP的HDInsight集群一起使用。为了确保Kafka版本的一致,请为这两个集群选择相同的HDInsight版本,否则您需要在KAP节点上下载跟服务器端相匹配的Kafka客户端。
HDInsight的Kafka无法使用公网IP地址,所以为了使得KAP集群与Kafka之间能够通信,建议使用相同的虚拟网,或使用VPN服务。
KAP默认不携带Kafka 客户端;因此如果直接使用它去连接Kafka数据源的话,您会得到“ClassNotFoundException” 的错误。要解决这个问题,需要SSH 到KAP节点,在KYLIN_HOME/bin/find-kafka-dependency.sh中手动指定 KAFKA_HOME的环境变量 :
ssh sshuser@KAP.CLUSTERNAME-ssh.azurehdinsight.net sudo vi /usr/local/kap/bin/setenv.sh
在文件开始位置,加入下面一行(请使用具体环境中存在的kafka安装路径):
export KAFKA_HOME=/usr/hdp/2.5.5.3-2/kafka
随后您可以执行这个脚本以检验它是否能够寻找Kafka的客户端jar文件:
sshuser@ed10-kapdem:~$ /usr/local/kap/bin/find-kafka-dependency.sh -v Turn on verbose mode. Retrieving kafka dependency… KAFKA_HOME is set to: /usr/hdp/2.5.5.3-2/kafka, use it to locate kafka dependencies. kafka dependency: /usr/hdp/2.5.5.3-2/kafka/libs/kafka-clients-0.10.0.2.5.5.3-2.jar
如果一切正常,重启KAP服务使其生效:
sudo systemctl restart kap
KAP重启后,回到“Model”页面,点击 “Add Streaming Table”,输入Kafka broker的地址信息,它会自动连接Kafka,列出主题以及样例消息。
图20. Kafka 集成
接下来的步骤,只需要按照KAP手册中的“Streaming Cube” 章节继续即可。
KAP在HDInsight上的最佳实践
下面是我们总结的一些在HDInsight 上使用KAP的经验和技巧,可供参考。
1. 为HDInsight集群使用专有的虚拟网络(virtual network)
在创建HDInsight 集群的时候,可以指定某个特定的虚拟网络,用于管理该集群的节点网络配置。如果用户没有指定,Azure 会创建并使用一个默认的虚拟网络。这个默认虚拟网络在Azure门户中是不可见的,这意味着您无法对该虚拟网络进行配置定制(如防火墙),也无法在该网络中加入其它实例。因此,为了保留网络配置的灵活性,建议您在创建集群之前,先创建一个虚拟网络,然后用于该HDInsight集群。
2. 优化Hadoop 设置
HDInsight默认的Hadoop 设置并不是最适合KAP的,它将较多的资源分配给了HBase服务,给YARN留下的资源较少。此外,HBase将较多资源分配给写操作,而KAP的场景是较少写操作而较多的读操作,因此可以将更多资源分配给block cache以获得更好的查询性能。您可以在HDInsight 仪表盘(也即Ambari)中对Hadoop设置进行更改,下面是一些推荐设置:
在Ambari中更新这些参数设置后,请同步改动到集群的各个节点,并重启相关服务以使设置生效。KAP服务也需要重启以确保使用最新设置。
3. 使用多个存储账户
使用多个存储账户可以更好地利用网络带宽,提高并发IO性能,从而提升集群性能。您可以为Hive表使用与集群不同的存储账号。
4. 按需增加或缩减集群规模
由于源数据和Hadoop数据都在Azure Blob Store 或 Azure Data Lake,您可以方便地增加或缩减集群节点而不用担心数据的丢失。例如,当构建Cube的时候,增加节点以提高构建的性能。当构建完成后,恢复到原来的规模以节省费用。
5. 停止和恢复集群
KAP使用HBase存储Cube元信息以及数据。Azure的HBase数据也跟其它一样,Azure Blob Store 或Azure Data Lake存储,价钱比使用虚拟机硬盘要低很多。因此当您暂时不需要使用集群的时候,可以将HDInsight集群删除,只保留存储账户。当某天需要使用的时候,再使用同样的存储账户重建HDInsight集群,就可以恢复之前的Cube了,这对于一些低频使用的场景非常适用。
在删除集群的时候,仍有一些数据需要手工备份:
a) KAP/KyAnalyzer 的配置文件及日志
KAP 的配置文件以及shell 脚本都是做为本地文件存放在KAP节点上。如果您对配置做了改动,并且想在重建集群后恢复,那么您需要自行备份改动。可以使用 “Hadoop fs -put” 命令将文件上传到Hadoop文件系统,由于它是放在Azure存储上,因此不会在集群删除时候丢失。
b) Hive 元数据
Hive使用SQL数据库存储元数据,因此当删除集群的时候,如果SQL数据库被删除,那么Hive表信息也会丢失。因此建议在创建HDInsight的时候,使用外部SQL实例做为Hive meta store。如果您的集群没有用外部SQL实例的话,则需要手动备份Hive脚本。
6. 启动/停止 KAP 及KyAnalyzer
常见问题(FAQ)
1. 如何获取在线文档
Kyligence用户手册: https://manual.kyligence.io/; 此外,Apache Kylin 在线文档也是很好的补充: https://kylin.apache.org/docs21/
2. 如何获取帮助?
当遇到问题时,推荐先在网络、官网(地址)、官微做一些搜索,可以使用“KAP”、“Apache Kylin”等做关键字,另外Apache Kylin的社区已有许多用户使用KAP或Kylin,对于一些常见问题通过搜索往往就可以找到答案。 如果搜索没有匹配的答案,您可以使用Kyligence 的在线诊断平台 “KyBot”, https://kybot.io/。在KyBot官网注册账号并登陆后,上传一个系统诊断包。KyBot在线服务将对日志进行分析并给出可能的建议。此外,KyBot还提供一个知识库,由Kyligence专家团队贡献,您可以浏览常见问题或搜索关键字。 如果上面的办法都没能解答您的问题,或者您需要专业级技术服务,请致信 info@kyligence.io
3. 免费试用后,如何购买商业许可证
请致信info@kyligence.io, 我们会安排销售代表与您联系。 感谢阅读,期待您的回复。
近年来,随着商业环境的竞争日益激烈,企业对于实时数据服务的需求急剧增加。Kyligence 在服务众多客户的过
数据要素在银行各业务领域和流程中发挥着至关重要的作用,面对激烈的市场竞争和客户需求,银行越来越注重从数据管理中
作为一名消费者,炎热的夏天我们会走进一家便利店,从冰柜中选出一瓶汽水;下午工作有点累了,我们会在公司的自动贩卖
2024 年伊始,Kyligence 联合创始人兼 CEO 韩卿(Luke)分享了对 AI 与数据行业的一些战
房地产行业是我国国民经济中的重要支柱产业之一,在房地产市场供求关系发生重大变化的当下,房企面临多重挑战。Kyl
今年年初,Kyligence 高级副总裁兼合伙人葛双寅(Silas Ge)受邀在阿斯利康“跃行致远三十周年年会
2024 年伊始,Kyligence 联合创始人兼 CEO 韩卿在公司内部的飞书订阅号发表了多篇 Rethin
400 8658 757
工作日:10:00 - 18:00
已有账号? 点此登陆
预约演示,您将获得
完整的产品体验
从数据导入、建模到分析的全流程操作演示。
行业专家解惑
与资深行业专家的交流机会,解答您的个性化问题。
请填写真实信息,我们会在 1-2 个工作日内电话与您联系。
全行业落地场景演示
涵盖金融、零售、餐饮、医药、制造等多个行业,最贴合您的业务需求与场景。
Data + AI 应用落地咨询
与资深技术专家深入交流,助您的企业快速落地 AI 场景应用。
立即预约,您将获得
精准数据计算能力:
接入高精度数值计算大模型服务,为您的企业级AI应用提供强大支持。
个性化业务场景解决方案:
量身定制的计算模型和数据分析服务,切实贴合您的业务需求和应用场景。
Data + AI 落地应用咨询:
与资深专家深入探讨数据和 AI 如何帮助您的企业加速实现应用落地,构建更智能的数据驱动未来。
申请体验,您将获得
体验数据处理性能 2x 加速
同等规模资源、同等量级数据、同一套数据处理逻辑,处理耗时下降一半
专家支持
试用部署、生成数据、性能对比各操作环节在线支持