You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2022/04/21 08:37:13 UTC

svn commit: r1900099 [3/4] - in /kylin/site: ./ cn/blog/ cn_blog/2022/04/ cn_blog/2022/04/20/ cn_blog/2022/04/20/kylin4-on-cloud-part1/ cn_blog/2022/04/20/kylin4-on-cloud-part2/ images/blog/kylin4_on_cloud/

Modified: kylin/site/feed.xml
URL: http://svn.apache.org/viewvc/kylin/site/feed.xml?rev=1900099&r1=1900098&r2=1900099&view=diff
==============================================================================
--- kylin/site/feed.xml (original)
+++ kylin/site/feed.xml Thu Apr 21 08:37:12 2022
@@ -19,11 +19,648 @@
     <description>Apache Kylin Home</description>
     <link>http://kylin.apache.org/</link>
     <atom:link href="http://kylin.apache.org/feed.xml" rel="self" type="application/rss+xml"/>
-    <pubDate>Thu, 31 Mar 2022 06:59:26 -0700</pubDate>
-    <lastBuildDate>Thu, 31 Mar 2022 06:59:26 -0700</lastBuildDate>
+    <pubDate>Thu, 21 Apr 2022 01:27:57 -0700</pubDate>
+    <lastBuildDate>Thu, 21 Apr 2022 01:27:57 -0700</lastBuildDate>
     <generator>Jekyll v2.5.3</generator>
     
       <item>
+        <title>Kylin on Cloud —— 两小时快速搭建云上数据分析平台(下)</title>
+        <description>&lt;p&gt;以下部分为 &lt;code class=&quot;highlighter-rouge&quot;&gt;Kylin on Cloud —— 两小时快速搭建云上数据分析平台&lt;/code&gt; 的下篇,上篇请查看:&lt;a href=&quot;../kylin4-on-cloud-part1/&quot;&gt;Kylin on Cloud —— 两小时快速搭建云上数据分析平台(上)&lt;/a&gt;&lt;/p&gt;
+
+&lt;h3 id=&quot;kylin-&quot;&gt;Kylin 查询集群&lt;/h3&gt;
+
+&lt;h4 id=&quot;kylin--1&quot;&gt;启动 Kylin 查询集群&lt;/h4&gt;
+
+&lt;p&gt;1.在启动构建集群时使用的 kylin_configs.yaml 的基础上,打开 mdx 开关:&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ENABLE_MDX: &amp;amp;ENABLE_MDX &#39;true&#39;
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;2.然后执行部署命令启动集群:&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;python deploy.py --type deploy --mode query
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;h4 id=&quot;kylin--2&quot;&gt;体验 kylin 的查询速度&lt;/h4&gt;
+
+&lt;p&gt;1.查询集群启动成功后,先执行 &lt;code class=&quot;highlighter-rouge&quot;&gt;python deploy.py --type list&lt;/code&gt; 命令来列出所有节点信息,然后在浏览器输入 http://${kylin_node_public_ip}:7070/kylin 检查 kylin UI:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/14_kylin_web_ui.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;2.在 Insight 页面执行与之前在 spark-sql 中相同的 sql:&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;select TAXI_TRIP_RECORDS_VIEW.PICKUP_DATE, NEWYORK_ZONE.BOROUGH, count(*), sum(TAXI_TRIP_RECORDS_VIEW.TRIP_TIME_HOUR), sum(TAXI_TRIP_RECORDS_VIEW.TOTAL_AMOUNT)
+from TAXI_TRIP_RECORDS_VIEW
+left join NEWYORK_ZONE
+on TAXI_TRIP_RECORDS_VIEW.PULOCATIONID = NEWYORK_ZONE.LOCATIONID
+group by TAXI_TRIP_RECORDS_VIEW.PICKUP_DATE, NEWYORK_ZONE.BOROUGH;
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/15_query_in_kylin.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;可以看到,在查询击中 cube 的情况下,也就是查询结果直接来自于预计算后的数据,只使用了大概 4 秒的时间就返回了查询结果,大大节省了查询时间。&lt;/p&gt;
+
+&lt;h3 id=&quot;section&quot;&gt;预计算降低查询成本&lt;/h3&gt;
+
+&lt;p&gt;在对比原生 SparkSql 和 Kylin 查询速度的测试中,我们使用的数据集是纽约市出租车订单数据,事实表共有 2 亿+ 数据。从对比结果可以看到,在上亿的大数据分析场景下,Kylin 能够显著提升查询效率,通过一次构建加速上千上万次业务查询,极大的降低查询成本。&lt;/p&gt;
+
+&lt;h3 id=&quot;section-1&quot;&gt;配置语义层&lt;/h3&gt;
+
+&lt;h4 id=&quot;mdx-for-kylin--dataset&quot;&gt;向 MDX for Kylin 导入 Dataset&lt;/h4&gt;
+
+&lt;p&gt;在 &lt;code class=&quot;highlighter-rouge&quot;&gt;MDX for Kylin&lt;/code&gt; 中可以根据所连接的 Kylin 中的 Cube 来创建 &lt;code class=&quot;highlighter-rouge&quot;&gt;Dataset&lt;/code&gt;,定义 Cube 关系,创建业务指标。为方便体验,用户可以直接从 S3 下载 Dataset 文件导入到 &lt;code class=&quot;highlighter-rouge&quot;&gt;MDX for Kylin&lt;/code&gt; 中:&lt;/p&gt;
+
+&lt;p&gt;1.从 S3 下载 Dataset 文件到本地机器&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;wget https://s3.cn-north-1.amazonaws.com.cn/public.kyligence.io/kylin/kylin_demo/covid_trip_project_covid_trip_dataset.json
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;2.访问 &lt;code class=&quot;highlighter-rouge&quot;&gt;MDX for Kylin&lt;/code&gt; 界面&lt;/p&gt;
+
+&lt;p&gt;在浏览器输入 &lt;code class=&quot;highlighter-rouge&quot;&gt;http://${kylin_node_public_ip}:7080&lt;/code&gt; 访问 &lt;code class=&quot;highlighter-rouge&quot;&gt;MDX for Kylin&lt;/code&gt; 页面,以 &lt;code class=&quot;highlighter-rouge&quot;&gt;ADMIN/KYLIN&lt;/code&gt; 的用户名密码组合登录:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/16_mdx_web_ui.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;3.确认 Kylin 连接&lt;/p&gt;
+
+&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;MDX for Kylin&lt;/code&gt; 中已经配置了需要连接的 kylin 节点的信息,首次登录需要输入 kylin 节点的用户名和密码也就是 &lt;code class=&quot;highlighter-rouge&quot;&gt;ADMIN/KYLIN&lt;/code&gt;:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/17_connect_to_kylin.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/18_exit_management.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;4.导入 Dataset&lt;/p&gt;
+
+&lt;p&gt;连接 Kylin 成功后点击右上角的图标退出管理界面:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/19_kylin_running.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;切换到 &lt;code class=&quot;highlighter-rouge&quot;&gt;covid_trip_project&lt;/code&gt; 项目,在 Dataset 页面中点击 &lt;code class=&quot;highlighter-rouge&quot;&gt;Import Dataset&lt;/code&gt;:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/20_import_dataset.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;选择刚刚从 S3 下载的文件 &lt;code class=&quot;highlighter-rouge&quot;&gt;covid_trip_project_covid_trip_dataset.json&lt;/code&gt; 导入。&lt;/p&gt;
+
+&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;covid_trip_dataset&lt;/code&gt; 中定义了各原子指标的年累计、月累计、年增速、月增速,和时间层级、地区层级等特殊维度、度量,以及新冠肺炎病死率、出租车平均速度等业务指标。如何手动创建 Dataset 请参考:&lt;a href=&quot;https://cwiki.apache.org/confluence/display/KYLIN/Create+Dataset+in+MDX+for+Kylin&quot;&gt;Create dataset in MDX for Kylin&lt;/a&gt;,MDX for Kylin 手册链接请参考:&lt;a href=&quot;https://kyligence.github.io/mdx-kylin/&quot;&gt;MDX for Kylin 使用手册&lt;/a&gt;。&lt;/p&gt;
+
+&lt;h2 id=&quot;section-2&quot;&gt;数据分析&lt;/h2&gt;
+
+&lt;h3 id=&quot;tableau-&quot;&gt;通过 Tableau 进行数据分析&lt;/h3&gt;
+
+&lt;p&gt;我们以本地 windows 机器上的 tableau 为例连接 MDX for Kylin 进行数据分析。&lt;/p&gt;
+
+&lt;p&gt;1.选择 Tableau 内置的 &lt;code class=&quot;highlighter-rouge&quot;&gt;Microsoft Analysis Service&lt;/code&gt; 来连接 &lt;code class=&quot;highlighter-rouge&quot;&gt;MDX for Kylin&lt;/code&gt; (需要提前安装 &lt;code class=&quot;highlighter-rouge&quot;&gt;Microsoft Analysis Services&lt;/code&gt; 驱动,可从 tableau 官网下载,&lt;a href=&quot;https://www.tableau.com/support/drivers?_ga=2.104833284.564621013.1647953885-1839825424.1608198275&quot;&gt;Microsoft Analysis Services 驱动下载&lt;/a&gt;)&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/21_tableau_connect.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;2.在弹出的设置页面中填写 &lt;code class=&quot;highlighter-rouge&quot;&gt;MDX for Kylin&lt;/code&gt; 的连接地址,以及用户名和密码,连接地址为 &lt;code class=&quot;highlighter-rouge&quot;&gt;http://${kylin_node_public_ip}:7080/mdx/xmla/covid_trip_project&lt;/code&gt;:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/22_tableau_server.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;3.选择 &lt;code class=&quot;highlighter-rouge&quot;&gt;covid_trip_dataset&lt;/code&gt; 作为数据集:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/23_tableau_dataset.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;4.然后即可在工作表中进行数据分析,由于我们在 &lt;code class=&quot;highlighter-rouge&quot;&gt;MDX for Kylin&lt;/code&gt; 中已经统一定义了业务指标,所以在 tableau 中制作数据分析报表时,可以直接拖拽定义好的业务指标到工作表中进行展示。&lt;/p&gt;
+
+&lt;p&gt;5.首先分析疫情数据,通过确诊人数、病死率两个指标来绘制国家级别的疫情地图,只需要将地区层级中的 &lt;code class=&quot;highlighter-rouge&quot;&gt;COUNTRY_SHORT_NAME&lt;/code&gt; 放到工作表的列中 ,将事先定义好的新增确诊人数总和 &lt;code class=&quot;highlighter-rouge&quot;&gt;SUM_NEW_POSITIVE_CASES&lt;/code&gt; 和病死率指标 &lt;code class=&quot;highlighter-rouge&quot;&gt;CFR_COVID19&lt;/code&gt; 放到工作表的行中,然后选择以地图形式展示数据结果:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/24_tableau_covid19_map.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;其中,图标面积代表死亡人数级别,图标颜色深浅代表病死率级别。通过疫情地图可以看出,美国和印度的确诊人数相对较多,但是这两个国家的病死率与其他大多数国家没有明显差别;而确诊人数很少的秘鲁、瓦努阿图、墨西哥等国家的病死率则居高不下。从这个现象入手,也许可以挖掘到更深层次的原因。&lt;/p&gt;
+
+&lt;p&gt;由于我们设置了地区层级,所以可以将国家级别的疫情地图下钻到省级别,查看各个国家内部各个地区的疫情情况:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/25_tableau_province.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;在 province 级别的疫情地图放大看美国的疫情状况:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/26_tableau_us_covid19.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;可以发现,美国每个州的病死率没有明显差距,都在 0.01 左右;在确诊人数上,California、Texas、Florida 以及纽约市几个地区明显偏高,这几个地区经济发达、人口众多,新冠肺炎确诊人数也随之攀升。下面针对纽约市出租车数据集,结合疫情发展情况,分析疫情形势下人们乘坐出租车出行的数据变化。&lt;/p&gt;
+
+&lt;p&gt;6.对于纽约市出租车订单数据集,分别从以下两个业务问题入手:&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;分析纽约市各个街区出行特征,对比订单数量、出行速度等出行指标&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;将 lookup 表 &lt;code class=&quot;highlighter-rouge&quot;&gt;PICKUP_NEWYORK_ZONE&lt;/code&gt; 中的字段 &lt;code class=&quot;highlighter-rouge&quot;&gt;BOROUGH&lt;/code&gt; 拖拽到工作表的列中,将指标 &lt;code class=&quot;highlighter-rouge&quot;&gt;ORDER_COUNT&lt;/code&gt;、&lt;code class=&quot;highlighter-rouge&quot;&gt;trip_mean_speed&lt;/code&gt; 拖拽到工作表的行中,以符号地图的方式展示,颜色深浅代表平均速度、面积大小代表订单数量,可以看到从曼哈顿区出发的出租车订单比别的街区总和都要高,但是平均速度最小,Queens 街区次之,Staten Island 则是出租è�
 �¦æ´»åŠ¨æœ€å°‘的一个街区。从 Bronx 出发的出租车平均速度高达 82 英里/小时,比其他街区的平均速度都高出几倍。从这些出行特征可以映射出纽约市各个街区的人口密集程度以及经济发达程度。&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/27_tableau_taxi_1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;然后将 lookup 表 &lt;code class=&quot;highlighter-rouge&quot;&gt;PICKUP_NEWYORK_ZONE&lt;/code&gt; 中的字段 &lt;code class=&quot;highlighter-rouge&quot;&gt;BOROUGH&lt;/code&gt; 换成 &lt;code class=&quot;highlighter-rouge&quot;&gt;DROPOFF_NEWYORK_ZONE&lt;/code&gt; 中的 &lt;code class=&quot;highlighter-rouge&quot;&gt;BOROUGH&lt;/code&gt;,统计出租车订单到达街区的数量和平均速度:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/27_tableau_taxi_2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;相比出发街区的数据,brookly、Queens 和 Bronx 三个街区的到达数据都有比较明显的差别,从比例关系上来看,到达 brookly 和 Bronx 的出租车订单要远远多于从 Brookly 和 Bronx 出发的订单,到达 Queens 街区的订单数量则明显小于从 Queens 街区出发的订单。&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;疫情前后纽约市居民乘坐出租车的出行习惯变化,更偏向远程出行还是近程&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;通过平均出行里程分析居民出行习惯变化,将维度 &lt;code class=&quot;highlighter-rouge&quot;&gt;MONTH_START&lt;/code&gt; 拖拽到工作表的行,将指标 &lt;code class=&quot;highlighter-rouge&quot;&gt;trip_mean_distance&lt;/code&gt; 拖拽到工作表的列:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/28_tableau_taxi_3.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;根据柱状图的结果可以发现,疫情前后人们的出行习惯发生了明显的变化,从 2020.03 开始平均出行里程有明显升高,甚至有的月份发生数倍增长,并且疫情开始后每个月的平均出行里程变的很不稳定。基于这种数据表现,我们可以再结合月份维度的疫情数据进行联合分析,将 &lt;code class=&quot;highlighter-rouge&quot;&gt;SUM_NEW_POSITIVE_CASES&lt;/code&gt; 和 &lt;code class=&quot;highlighter-rouge&quot;&gt;MTD_ORDER_COUNT&lt;/code&gt; 拖拽到工作表的行中,并在筛选器中增
 加筛选条件 &lt;code class=&quot;highlighter-rouge&quot;&gt;PROVINCE_STATE_NAME=New York&lt;/code&gt;:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/29_tableau_taxi_4.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;可以看到一个有趣的现象,疫情初期刚刚爆发的时候出租车订单量急剧减少,而平均出行里程增大,说明大家减少了很多不必要的短距离出行,或者采用出租车以外的更安全的交通方式进行了短距离出行。对比三种数据的曲线变化,可以看到疫情严重程度和人们的出行情况表现出很高的相关性,疫情严重时出租车订单量减少,平均出行里程攀升,然后疫情好转,出租车订å
 •é‡å¢žå¤§ï¼Œå¹³å‡å‡ºè¡Œé‡Œç¨‹å›žè½ã€‚&lt;/p&gt;
+
+&lt;h3 id=&quot;excel-&quot;&gt;通过 Excel 进行数据分析&lt;/h3&gt;
+
+&lt;p&gt;有了 &lt;code class=&quot;highlighter-rouge&quot;&gt;MDX for Kylin&lt;/code&gt; 的帮助,我们在 Excel 中也可以连接 Kylin 进行大数据分析。这次测试中,我们使用本地 windows 机器上的 Excel 连接 MDX for Kylin 进行演示。&lt;/p&gt;
+
+&lt;p&gt;1.打开 Excel,选择 数据 -&amp;gt; 获取数据 -&amp;gt; 来自数据库 -&amp;gt; 自 &lt;code class=&quot;highlighter-rouge&quot;&gt;Analysis Services&lt;/code&gt;:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/30_excel_connect.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;2.在数据连接向导中填写MDX for Kylin 连接信息,服务器名称为 &lt;code class=&quot;highlighter-rouge&quot;&gt;http://${kylin_node_public_ip}:7080/mdx/xmla/covid_trip_project&lt;/code&gt;:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/31_excel_server.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/32_tableau_dataset.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;3.然后为当前的数据连接创建数据透视表,在数据透视表字段中,我们可以看到,在 Excel 中连接 &lt;code class=&quot;highlighter-rouge&quot;&gt;MDX for Kylin&lt;/code&gt; 中的 dataset 获取数据信息,可以与 Tableau 保持完全一致,无论分析人员是在 Tableau 还是 Excel 中进行分析,都是在一致的数据模型、维度和业务指标的基础上,达到统一语义的效果。&lt;/p&gt;
+
+&lt;p&gt;4.在 Tableau 中我们对 &lt;code class=&quot;highlighter-rouge&quot;&gt;covid19&lt;/code&gt; 和 &lt;code class=&quot;highlighter-rouge&quot;&gt;newyork_trip_data&lt;/code&gt; 两个数据集进行了疫情地图绘制和趋势分析。在 Excel 中对于同样的数据集和数据场景,我们可以查看更多的明细数据。&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;对于疫情数据,为数据透视表选取地区层级字段 &lt;code class=&quot;highlighter-rouge&quot;&gt;REGION_HIERARCHY&lt;/code&gt;,以及事先定义好的新增病例数总和 &lt;code class=&quot;highlighter-rouge&quot;&gt;SUM_NEW_POSITIVE_CASES&lt;/code&gt; 和病死率指标 &lt;code class=&quot;highlighter-rouge&quot;&gt;CFR_COVID19&lt;/code&gt;:&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/33_tableau_covid19_1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;由于地区层级的最上层为 &lt;code class=&quot;highlighter-rouge&quot;&gt;CONTINENT_NAME&lt;/code&gt;,所以默认展示洲级别的确诊人数和病死率,可以看到确诊人数最多的洲是欧洲,病死率最高的是非洲。在这张数据透视表中我们可以方便的下钻到更下层的地区级别查看更细粒度的明细数据,比如查看亚洲国家的疫情数据,并根据确诊人数进行降序排序:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/34_excel_covid20_2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;数据显示,亚洲国家中确诊人数排名前三的国家分别是印度、土耳其和伊朗。&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;对于纽约市出租车订单数据,针对 “疫情对于出租车订单数量有无明显影响” 的问题,首先从年份的维度上查看出租车订单数量的年累计和增速,新建透视表选择时间层级维度 &lt;code class=&quot;highlighter-rouge&quot;&gt;TIME_HIERARCHY&lt;/code&gt;、&lt;code class=&quot;highlighter-rouge&quot;&gt;YOY_ORDER_COUNT&lt;/code&gt; 和 &lt;code class=&quot;highlighter-rouge&quot;&gt;YTD_ORDER_COUNT&lt;/code&gt;:&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/35_excel_taxi_1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;可以看到,2020 年疫情爆发导致出租车订单数量急剧减少,2020年订单量增速为 -0.7079,减少了 70% 的出行订单,2021 年订单量增速仍为负数,但是相比 2020 年疫情初期订单量减少速度放缓了许多。&lt;/p&gt;
+
+&lt;p&gt;展开时间层级,可以查看季度级别、月级别直到天级别的订单累计值,选择 &lt;code class=&quot;highlighter-rouge&quot;&gt;MOM_ORDER_COUNT&lt;/code&gt; 和 &lt;code class=&quot;highlighter-rouge&quot;&gt;ORDER_COUNT&lt;/code&gt; 到透视表中还可以同时查看月度订单增速以及各个时间层级的订单数量:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/36_excel_taxi_2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;2020 年 3 月份,订单增速为 -0.52,出租车订单已经出现明显减少,4 月份更是跌至 -0.92,减少了 90% 的订单,后期开始慢慢增长,但是也始终远低于疫情之前的数量。&lt;/p&gt;
+
+&lt;h3 id=&quot;api--kylin-&quot;&gt;通过 API 集成 Kylin 到数据分析平台&lt;/h3&gt;
+
+&lt;p&gt;除了 Excel、Tableau 这种商业 BI 工具,很多企业内部会开发自己的数据分析平台,在这类自研数据分析平台上,用户仍然可以通过调用 API 的方式将 Kylin + MDX for Kylin 作为分析平台的基础底座,保证统一的数据口径。在这次演示中,我们将展示如何通过 Olap4j 向 MDX for Kylin 发送查询,获得分析结果,Olap4j 是一个与 JDBC 驱动类似,能够访问任意 OLAP 服务的 Java 库。&lt;/p&gt;
+
+&lt;p&gt;我们提供了一个简单的 demo 可以方便用户直接进行测试,源码位于 &lt;a href=&quot;https://github.com/apache/kylin/tree/mdx-query-demo&quot;&gt;mdx query demo&lt;/a&gt;:&lt;/p&gt;
+
+&lt;p&gt;1.下载 demo 演示相关 jar 包:&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;wget https://s3.cn-north-1.amazonaws.com.cn/public.kyligence.io/kylin/kylin_demo/mdx_query_demo.tgz
+tar -xvf mdx_query_demo.tgz
+cd mdx_query_demo
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;2.运行 demo&lt;/p&gt;
+
+&lt;p&gt;运行 demo 之前保证运行环境安装了 java8:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/37_jdk_8.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;运行 demo 需要两个参数,mdx 节点的 ip 和 需要运行的 mdx 查询,端口默认为 7080,这里的 mdx 节点 ip 就是 kylin 节点的 public ip:&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;java -cp olap4j-xmla-1.2.0.jar:olap4j-1.2.0.jar:xercesImpl-2.9.1.jar:mdx-query-demo-0.0.1.jar io.kyligence.mdxquerydemo.MdxQueryDemoApplication &quot;${kylin_node_public_ip}&quot; &quot;${mdx_query}&quot;
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;如果用户在运行 demo 时没有通过命令行输入需要执行的 mdx 语句,则会默认执行以下 mdx 语句统计从出发街区的维度上各个街区的订单数量和平均里程:&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SELECT
+{[Measures].[ORDER_COUNT],
+[Measures].[trip_mean_distance]}
+DIMENSION PROPERTIES [MEMBER_UNIQUE_NAME],[MEMBER_ORDINAL],[MEMBER_CAPTION] ON COLUMNS,
+NON EMPTY [PICKUP_NEWYORK_ZONE].[BOROUGH].[BOROUGH].AllMembers
+DIMENSION PROPERTIES [MEMBER_UNIQUE_NAME],[MEMBER_ORDINAL],[MEMBER_CAPTION] ON ROWS
+FROM [covid_trip_dataset]
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;在这次演示中我们直接执行默认查询,执行成功之后,经过简单处理的查询结果会输出到命令行:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/38_demo_result.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;可以看到,运行 Demo 之后成功获得了需要查询的数据,数据结果显示,从 Manhattan 出发的出租车订单数量最多,订单平均里程只有大约 2.4 英里,符合 Manhattan 地理面积小且人口稠密的特点;而从 Bronx 的订单平均里程达到 33 英里,成倍的高于其他任何街区,可能是由于 Bronx 地处偏僻的缘故。&lt;/p&gt;
+
+&lt;p&gt;与 Tableau 和 Excel 相同,在 Demo 中编写的 mdx 语言中可以直接使用在 Kylin 以及 MDX for Kylin 中定义的指标。在企业自研数据分析平台中,用户可以对查询返回的数据结果进行进一步分析,根据展示需求生成报表。&lt;/p&gt;
+
+&lt;h3 id=&quot;section-3&quot;&gt;统一的数据口径&lt;/h3&gt;
+
+&lt;p&gt;通过以三种不同的数据分析方式连接 Kylin + MDX for Kylin 进行数据分析展示,我们可以发现,借助 Kylin 多维数据库和 MDX for Kylin 语义层功能,无论用户在业务场景中使用哪种方式分析数据,都可以使用相同的数据模型和业务指标,达到统一数据口径的目的。&lt;/p&gt;
+
+&lt;h2 id=&quot;section-4&quot;&gt;销毁集群&lt;/h2&gt;
+
+&lt;h3 id=&quot;section-5&quot;&gt;销毁查询集群&lt;/h3&gt;
+
+&lt;p&gt;在上述分析完成之后,我们可以执行集群销毁命令来销毁查询集群。如果用户希望同时销毁 Kylin 以及 MDX for Kylin 的元数据库 RDS、监控节点以及 VPC,那么可以执行集群销毁命令:&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;python deploy.py --type destroy-all
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;h3 id=&quot;aws-&quot;&gt;检查 AWS 资源&lt;/h3&gt;
+
+&lt;p&gt;在销毁所有集群资源后,&lt;code class=&quot;highlighter-rouge&quot;&gt;CloudFormation&lt;/code&gt; 中不会保留与部署工具相关的任何 Stack。如果用户想要删除 S3 中与部署工具相关的文件以及数据,可以手动删除 S3 工作目录下的以下文件夹:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/39_check_s3_demo.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h2 id=&quot;section-6&quot;&gt;总结&lt;/h2&gt;
+
+&lt;p&gt;通过这次演示教程,只需要一个 AWS 账号,用户就可以使用云上部署工具,借助于 Kylin 的预计算技术和多维模型,以及MDX for Kylin 的基础指标管理,快速且方便的搭建基于 Kylin + MDX for Kylin 的云上大数据分析平台,对接各种 BI 工具进行技术验证,达到降本增效、统一数据口径的目的。&lt;/p&gt;
+
+</description>
+        <pubDate>Wed, 20 Apr 2022 04:00:00 -0700</pubDate>
+        <link>http://kylin.apache.org/cn_blog/2022/04/20/kylin4-on-cloud-part2/</link>
+        <guid isPermaLink="true">http://kylin.apache.org/cn_blog/2022/04/20/kylin4-on-cloud-part2/</guid>
+        
+        
+        <category>cn_blog</category>
+        
+      </item>
+    
+      <item>
+        <title>Kylin on Cloud —— 两小时快速搭建云上数据分析平台(上)</title>
+        <description>&lt;h2 id=&quot;section&quot;&gt;背景&lt;/h2&gt;
+
+&lt;p&gt;Apache Kylin 是基于预计算和多维模型的多维数据库,支持 SQL 标准查询接口,在 Kylin 中用户可以通过创建 Model 定义表关系,通过创建 Cube 定义维度和度量,然后构建 Cube 对需要聚合的数据进行预计算,将预计算好的数据保存起来,用户执行查询时便可以直接在经过预计算的数据上进行进一步的聚合或者直接返回查询结果,成倍提升查询效率。&lt;/p&gt;
+
+&lt;p&gt;随着 Kylin 4.0 新架构的版本发布与更新,Kylin 具备了在脱离 Hadoop 的云环境下进行集群部署的能力;为了使用户能够轻松地在云上部署 Kylin,Kylin 社区又于近日开发了云上部署工具,用户使用部署工具只需执行一行命令便可以得到一个完备的 kylin 集群,获得高效快速的分析体验;2022 å¹´1月份,Kylin 社区发布了 mdx for kylin 来加强 Kylin 作为多维数据库的业务表达能力,MDX for Kylin 提供了 MDX 的查询接口,mdx for kylin 可以�
 �œ¨ Kylin 已经定义好的多维模型的基础上更进一步的创建业务指标,将 Kylin 中的数据模型转换为业务友好的语言,赋予数据业务价值,方便对接 Excel、Tableau 等 BI 工具进行多维分析。&lt;/p&gt;
+
+&lt;p&gt;基于以上一系列的技术支撑,用户不仅可以方便快捷的在云上部署 Kylin 集群,创建多维模型,体验经过预计算的快速查询响应,还能够结合 MDX for Kylin 对业务指标进行定义和管理,将 DW 技术层提升到业务语义层。&lt;/p&gt;
+
+&lt;p&gt;用户可以在 Kylin + MDX for Kylin 之上直接对接 BI 工具进行多维数据分析,也可以以此为底座建设指标平台等复杂应用。相比于直接基于 Spark、Hive 等在运行时进行 Join 和聚合查询的计算引擎之上构建指标平台,利用 Kylin 可以依托于多维模型和预计算技术,以及 mdx for kylin 的语义层能力,满足指标平台所需要的海量数据计算、极速查询响应、统一的多维模型、对接多种 BI、基础的业务指标管理等多种关�
 �”®åŠŸèƒ½ã€‚&lt;/p&gt;
+
+&lt;p&gt;本文的以下部分将会带领读者,从一个数据工程师的角度,快速体验在云上搭建基于 Kylin 的数据分析平台(Kylin on Cloud),在亿行级数据之上获得高性能低成本的查询体验,并通过 mdx for kylin 管理业务指标,直接对接 BI 工具快速生成报表。&lt;/p&gt;
+
+&lt;p&gt;本教程每一个步骤都有详细说明,并附有配图和检查点,帮助新手上路。读者只需要准备一个 AWS 账号,预计这个过程需要大约 2 小时,花费 ¥100 左右。&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/0_deploy_kylin.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h2 id=&quot;section-1&quot;&gt;业务场景&lt;/h2&gt;
+
+&lt;p&gt;自 2020 年初以来 COVID-19 在全世界范围内快速传播,对人们的衣食住行尤其是出行习惯造成极大影响。这次数据分析结合 COVID-19 疫情数据和 2018 年以来纽约出租车出行数据,通过分析疫情指标和各种出行指标,比如确诊人数、病死率、出租车订单数、平均出行距离等,来洞察纽约市出租车行业受疫情影响的变化趋势,以支撑决策。&lt;/p&gt;
+
+&lt;h3 id=&quot;section-2&quot;&gt;业务问题&lt;/h3&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;多指标联合分析各个国家地区疫情严重程度&lt;/li&gt;
+  &lt;li&gt;纽约市各个街区出行指标对比,比如订单数数量、出行里程等&lt;/li&gt;
+  &lt;li&gt;疫情对于出租车订单数量有无明显影响&lt;/li&gt;
+  &lt;li&gt;疫情之后的出行习惯变化,更偏向远程出行还是近程&lt;/li&gt;
+  &lt;li&gt;疫情严重程度与出租车出行次数是否强相关&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h3 id=&quot;section-3&quot;&gt;数据集&lt;/h3&gt;
+
+&lt;h4 id=&quot;covid-19-&quot;&gt;COVID-19 数据集&lt;/h4&gt;
+
+&lt;p&gt;COVID-19 数据集包括一张事实表 &lt;code class=&quot;highlighter-rouge&quot;&gt;covid_19_activity&lt;/code&gt; 和一张维度表 &lt;code class=&quot;highlighter-rouge&quot;&gt;lookup_calendar&lt;/code&gt;。&lt;/p&gt;
+
+&lt;p&gt;其中,&lt;code class=&quot;highlighter-rouge&quot;&gt;covid_19_activity&lt;/code&gt; 记录每一天全球范围内不同地区的确诊和死亡数字;&lt;code class=&quot;highlighter-rouge&quot;&gt;lookup_calendar&lt;/code&gt; 为日期维度表,保存了时间的扩展信息,比如每一个日期对应的年始、月始等,&lt;code class=&quot;highlighter-rouge&quot;&gt;covid_19_activity&lt;/code&gt; 和 &lt;code class=&quot;highlighter-rouge&quot;&gt;lookup_calendar&lt;/code&gt; 之间通过日期进行关联。&lt;/p&gt;
+
+&lt;p&gt;COVID-19 数据集相关信息如下:&lt;/p&gt;
+
+&lt;table&gt;
+  &lt;tbody&gt;
+    &lt;tr&gt;
+      &lt;td&gt;数据大小&lt;/td&gt;
+      &lt;td&gt;235 MB&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;事实表数据行数&lt;/td&gt;
+      &lt;td&gt;2,753,688&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;数据日期&lt;/td&gt;
+      &lt;td&gt;2020-01-21~2022-03-07&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;数据集提供方下载地址&lt;/td&gt;
+      &lt;td&gt;https://data.world/covid-19-data-resource-hub/covid-19-case-counts/workspace/file?filename=COVID-19+Activity.csv&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;数据集 S3 地址&lt;/td&gt;
+      &lt;td&gt;s3://public.kyligence.io/kylin/kylin_demo/data/covid19_data/&lt;/td&gt;
+    &lt;/tr&gt;
+  &lt;/tbody&gt;
+&lt;/table&gt;
+
+&lt;h4 id=&quot;section-4&quot;&gt;纽约市出租车订单数据集&lt;/h4&gt;
+
+&lt;p&gt;纽约市出租车订单数据集包括一张事实表 &lt;code class=&quot;highlighter-rouge&quot;&gt;taxi_trip_records_view&lt;/code&gt; 和两张维度表 &lt;code class=&quot;highlighter-rouge&quot;&gt;newyork_zone&lt;/code&gt;、&lt;code class=&quot;highlighter-rouge&quot;&gt;lookup_calendar&lt;/code&gt;。&lt;/p&gt;
+
+&lt;p&gt;其中,&lt;code class=&quot;highlighter-rouge&quot;&gt;taxi_trip_records_view&lt;/code&gt; 中的一条记录对一次出租车出行,记录了出发地点 ID、到达地点 ID、出行时长、订单金额、出行距离等;&lt;code class=&quot;highlighter-rouge&quot;&gt;newyork_zone&lt;/code&gt; 记录了地点 ID 所对应的行政区等信息,&lt;code class=&quot;highlighter-rouge&quot;&gt;taxi_trip_records_view&lt;/code&gt; 分别通过 &lt;code class=&quot;highlighter-rouge&quot;&gt;PULocationID&lt;/code&gt; 和 &lt;code class=&quot;highlighter-rouge&quot;&gt;DOLocationID&lt;/code&gt; 两个列与 &lt;code class=&quot;highlighter-rouge&quot;&gt;newyork_zone&lt;/code&gt; 建立关联关系,统计出发街区�
 �’Œåˆ°è¾¾è¡—区信息;&lt;code class=&quot;highlighter-rouge&quot;&gt;lookup_calendar&lt;/code&gt; 与 &lt;code class=&quot;highlighter-rouge&quot;&gt;COVID-19&lt;/code&gt; 数据集中的维度表为同一张表,&lt;code class=&quot;highlighter-rouge&quot;&gt;taxi_trip_records_view&lt;/code&gt; 与 &lt;code class=&quot;highlighter-rouge&quot;&gt;lookup_calendar&lt;/code&gt; 通过日期进行关联。&lt;/p&gt;
+
+&lt;p&gt;纽约市出租车订单数据集相关信息如下:&lt;/p&gt;
+
+&lt;table&gt;
+  &lt;tbody&gt;
+    &lt;tr&gt;
+      &lt;td&gt;数据大小&lt;/td&gt;
+      &lt;td&gt;19 G&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;事实表数据行数&lt;/td&gt;
+      &lt;td&gt;226,849,274&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;数据日期&lt;/td&gt;
+      &lt;td&gt;2018-01-01~2021-07-31&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;数据集提供方下载地址&lt;/td&gt;
+      &lt;td&gt;https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr&gt;
+      &lt;td&gt;数据集 S3 地址&lt;/td&gt;
+      &lt;td&gt;s3://public.kyligence.io/kylin/kylin_demo/data/trip_data_2018-2021/&lt;/td&gt;
+    &lt;/tr&gt;
+  &lt;/tbody&gt;
+&lt;/table&gt;
+
+&lt;h4 id=&quot;er-&quot;&gt;ER 关系图&lt;/h4&gt;
+
+&lt;p&gt;新冠疫情数据集和纽约市出租车订单数据集的 ER 关系图如下图所示:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/1_table_ER.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h3 id=&quot;section-5&quot;&gt;指标设计&lt;/h3&gt;
+
+&lt;p&gt;针对需要分析的业务场景和业务问题,我们设计了以下原子指标和业务指标:&lt;/p&gt;
+
+&lt;h6 id=&quot;section-6&quot;&gt;1.原子指标&lt;/h6&gt;
+
+&lt;p&gt;原子指标指的是在 Kylin Cube 中创建的各种度量,它们通常是在单一列上面进行聚合计算,相对比较简单。&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;Covid19 病例数 sum(covid_19_activity.people_positive_cases_count)&lt;/li&gt;
+  &lt;li&gt;Covid19 病死数 sum(covid_19_activity. people_death_count)&lt;/li&gt;
+  &lt;li&gt;新增 Covid19 病例数 sum(covid_19_activity. people_positive_new_cases_count)&lt;/li&gt;
+  &lt;li&gt;新增 Covid19 病死数 sum(covid_19_activity. people_death_new_count)&lt;/li&gt;
+  &lt;li&gt;出租车出行里程 sum(taxi_trip_records_view. trip_distance)&lt;/li&gt;
+  &lt;li&gt;出租车订单交易额 sum(taxi_trip_records_view. total_amount)&lt;/li&gt;
+  &lt;li&gt;出租车出行数量 count()&lt;/li&gt;
+  &lt;li&gt;出租车出行时长 sum(taxi_trip_records_view.trip_time_hour)&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h6 id=&quot;section-7&quot;&gt;2.业务指标&lt;/h6&gt;
+
+&lt;p&gt;业务指标是指基于原子指标定义的各种复合运算,具有具体的业务含义。&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;各原子指标的月累计MTD、年累计YTD&lt;/li&gt;
+  &lt;li&gt;各原子指标的月增速MOM、年增速YOY&lt;/li&gt;
+  &lt;li&gt;Covid19 病死率:死亡人数/确诊人数&lt;/li&gt;
+  &lt;li&gt;出租车平均出行速度:出租车出行里程/出租车出行时间&lt;/li&gt;
+  &lt;li&gt;出租车出行平均里程:出租车出行里程/出租车出行数量&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h2 id=&quot;section-8&quot;&gt;操作步骤概览&lt;/h2&gt;
+
+&lt;p&gt;搭建基于 Apache Kylin 的云上数据分析平台并进行数据分析的主要操作步骤如下图:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/2_step_overview.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h2 id=&quot;section-9&quot;&gt;集群架构&lt;/h2&gt;
+
+&lt;p&gt;使用云上部署工具部署出的 Kylin 集群架构如图所示:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/3_kylin_cluster.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h2 id=&quot;kylin-on-cloud-&quot;&gt;Kylin on Cloud 部署&lt;/h2&gt;
+
+&lt;h3 id=&quot;section-10&quot;&gt;环境要求&lt;/h3&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;需要本地机器已安装 git,用于下载部署工具代码;&lt;/li&gt;
+  &lt;li&gt;需要本地机器已安装 Python 3.6.6 及以上版本,用于运行部署工具。&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h3 id=&quot;aws-&quot;&gt;AWS 权限检查与初始化&lt;/h3&gt;
+
+&lt;p&gt;登录 AWS 账号,根据 &lt;a href=&quot;https://github.com/apache/kylin/blob/kylin4_on_cloud/readme/prerequisites.md&quot;&gt;准备文档&lt;/a&gt; 来检查用户权限、创建部署工具需要的 Access Key、IAM Role、Key Pair 和 S3 工作目录。后续的 AWS 操作都会以这个帐号的身份执行。&lt;/p&gt;
+
+&lt;h3 id=&quot;section-11&quot;&gt;配置部署工具&lt;/h3&gt;
+
+&lt;p&gt;1.执行下面的命令获得 Kylin on AWS 部署工具的代码&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git clone -b kylin4_on_cloud --single-branch https://github.com/apache/kylin.git &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;kylin
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;2.在本地机器初始化 python 虚拟环境&lt;/p&gt;
+
+&lt;p&gt;检查 python 环境,需要 Python 3.6.6 以上:&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;python --version
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;初始化 python 虚拟环境,安装依赖:&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;bin/init.sh
+&lt;span class=&quot;nb&quot;&gt;source &lt;/span&gt;venv/bin/activate
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;3.修改配置文件 &lt;code class=&quot;highlighter-rouge&quot;&gt;kylin_configs.yaml&lt;/code&gt;&lt;/p&gt;
+
+&lt;p&gt;打开部署工具代码中的 kylin_configs.yaml,将文件中的配置项替换为实际值:&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;AWS_REGION&lt;/code&gt;: EC2 节点位置 Region,默认为 cn-northwest-1&lt;/li&gt;
+  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;${IAM_ROLE_NAME}&lt;/code&gt;: 提前创建的 IAM Role 名称,比如 kylin_deploy_role&lt;/li&gt;
+  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;${S3_URI}&lt;/code&gt;: 用于部署 kylin 的 S3 工作目录,比如 s3://kylindemo/kylin_demo_dir/&lt;/li&gt;
+  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;${KEY_PAIR}&lt;/code&gt;: 提前创建的 Key pairs 名字,比如 kylin_deploy_key&lt;/li&gt;
+  &lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;${Cidr Ip}&lt;/code&gt;: 允许访问 EC2 实例的 IP 地址范围,比如 10.1.0.0/32,通常设为您的外网 IP 地址,确保创建的 EC2 实例只有您能访问&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;出于读写分离隔离构建和查询资源的考虑,在以下的步骤中会先启动一个构建集群用于连接 Glue 建表、加载数据源、提交构建任务进行预计算,然后销毁构建集群,保留元数据,启动带有 MDX for Kylin 的查询集群,用于创建业务指标、连接 BI 工具执行查询,进行数据分析。Kylin on AWS 集群使用 RDS 存储元数据,使用 S3 存储构建后的数据,并且支持从 AWS Glue 中加载数据源,除了 EC2 节点之外使用的资æ
 ºéƒ½æ˜¯æŒä¹…化的,不会随着节点的删除而消失,所以在没有查询或者构建任务时,用户可以随时销毁构建或查询集群,只要保留元数据、S3 工作目录即可。&lt;/p&gt;
+
+&lt;h3 id=&quot;kylin-&quot;&gt;Kylin 构建集群&lt;/h3&gt;
+
+&lt;h4 id=&quot;kylin--1&quot;&gt;启动 Kylin 构建集群&lt;/h4&gt;
+
+&lt;p&gt;1.通过如下命令启动构建集群。根据网络情况不同,部署启动可能需要 15-30 分钟。&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;python deploy.py --type deploy --mode job
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;2.构建集群部署成功后,命令窗口可以看到如下输出:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/4_deploy_cluster_successfully.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h4 id=&quot;aws--1&quot;&gt;检查 AWS 服务&lt;/h4&gt;
+
+&lt;p&gt;1.进入 AWS 控制台的  CloudFormation 界面,可以看到 Kylin 部署工具一共起了 7 个 stack:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/5_check_aws_stacks.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;2.用户可以通过 AWS 控制台查看 EC2 节点的详细信息,也可以在命令行界面使用如下命令列出所有 EC2 节点的名字、私有 IP 和公有 IP:&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;python deploy.py --type list
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/6_list_cluster_node.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h4 id=&quot;spark-sql-&quot;&gt;体验 spark-sql 原生查询速度&lt;/h4&gt;
+
+&lt;p&gt;为了直观的感受到预计算给查询性能带来的提升,在构建 cube 之前,我们先在 spark-sql 中体验原生的查询速度:&lt;/p&gt;
+
+&lt;p&gt;1.首先,我们通过 kylin 节点的公有 IP 登录到该 kylin 所在的 EC2 机器,并切换到 root 用户,执行 ~/.bash_profile 使提前设置的环境变量生效:&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ssh -i &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;KEY_PAIR&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt; ec2-user@&lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;kylin_node_public_ip&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt;
+sudo su
+&lt;span class=&quot;nb&quot;&gt;source&lt;/span&gt; ~/.bash_profile
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;2.然后进入 &lt;code class=&quot;highlighter-rouge&quot;&gt;$SPARK_HOME&lt;/code&gt; 并修改配置文件 &lt;code class=&quot;highlighter-rouge&quot;&gt;conf/spark-defaults.conf&lt;/code&gt;,将 &lt;code class=&quot;highlighter-rouge&quot;&gt;spark_master_node_private_ip&lt;/code&gt; 修改为 spark master 节点的私有 IP:&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$SPARK_HOME&lt;/span&gt;
+vim conf/spark-defaults.conf
+
+&lt;span class=&quot;c&quot;&gt;# 将 spark_master_node_private_ip 替换为真实 spark master 节点的私有ip&lt;/span&gt;
+spark.master spark://spark_master_node_private_ip:7077
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;spark-defaults.conf&lt;/code&gt; 中关于 driver 和 executor 的资源配置与 kylin 查询集群的资源配置是一致的。&lt;/p&gt;
+
+&lt;p&gt;3.在 spark-sql 中建表&lt;/p&gt;
+
+&lt;p&gt;测试所用数据集的所有数据存放在位于 &lt;code class=&quot;highlighter-rouge&quot;&gt;cn-north-1&lt;/code&gt; 和 &lt;code class=&quot;highlighter-rouge&quot;&gt;us-east-1&lt;/code&gt; 地区的 S3 bucket 中,如果你的 S3 bucket 位于 &lt;code class=&quot;highlighter-rouge&quot;&gt;cn-north-1&lt;/code&gt; 或者 &lt;code class=&quot;highlighter-rouge&quot;&gt;us-east-1&lt;/code&gt;,那么你可以直接执行建表 sql;否则需要执行以下脚本复制数据到 &lt;code class=&quot;highlighter-rouge&quot;&gt;kylin_configs.yaml&lt;/code&gt; 中设置的 S3 工作目录下,并修改建表 sql:&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;## AWS CN 用户&lt;/span&gt;
+aws s3 sync s3://public.kyligence.io/kylin/kylin_demo/data/ &lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;S3_DATA_DIR&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt; --region cn-north-1
+
+&lt;span class=&quot;c&quot;&gt;## AWS Global 用户&lt;/span&gt;
+aws s3 sync s3://public.kyligence.io/kylin/kylin_demo/data/ &lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;S3_DATA_DIR&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt; --region us-east-1
+
+&lt;span class=&quot;c&quot;&gt;# 修改建表 sql&lt;/span&gt;
+sed -i &lt;span class=&quot;s2&quot;&gt;&quot;s#s3://public.kyligence.io/kylin/kylin_demo/data/#&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;S3_DATA_DIR&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;#g&quot;&lt;/span&gt; /home/ec2-user/kylin_demo/create_kylin_demo_table.sql
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;执行建表 sql:&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;bin/spark-sql -f /home/ec2-user/kylin_demo/create_kylin_demo_table.sql
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;4.在 spark-sql 中执行查询&lt;/p&gt;
+
+&lt;p&gt;进入 spark-sql:&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;bin/spark-sql
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;在 spark-sql 中执行查询:&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;use&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;kylin_demo&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
+&lt;span class=&quot;k&quot;&gt;select&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;TAXI_TRIP_RECORDS_VIEW&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PICKUP_DATE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;NEWYORK_ZONE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;BOROUGH&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;sum&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;TAXI_TRIP_RECORDS_VIEW&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;TRIP_TIME_HOUR&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;k&
 quot;&gt;sum&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;TAXI_TRIP_RECORDS_VIEW&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;TOTAL_AMOUNT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
+&lt;span class=&quot;k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;TAXI_TRIP_RECORDS_VIEW&lt;/span&gt;
+&lt;span class=&quot;k&quot;&gt;left&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;join&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;NEWYORK_ZONE&lt;/span&gt;
+&lt;span class=&quot;k&quot;&gt;on&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;TAXI_TRIP_RECORDS_VIEW&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PULOCATIONID&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;NEWYORK_ZONE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;LOCATIONID&lt;/span&gt;
+&lt;span class=&quot;k&quot;&gt;group&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;by&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;TAXI_TRIP_RECORDS_VIEW&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PICKUP_DATE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;NEWYORK_ZONE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;BOROUGH&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;然后可以看到,在资源与 kylin 查询集群配置相同的情况下,使用 spark-sql 直接查询耗时超过100s:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/7_query_in_spark_sql.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;5.查询执行成功后必须退出 spark-sql 再进行下面的步骤,防止占用资源。&lt;/p&gt;
+
+&lt;h4 id=&quot;kylin--2&quot;&gt;导入 Kylin 元数据&lt;/h4&gt;
+
+&lt;p&gt;1.进入 &lt;code class=&quot;highlighter-rouge&quot;&gt;$KYLIN_HOME&lt;/code&gt;&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$KYLIN_HOME&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;2.导入元数据&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;bin/metastore.sh restore /home/ec2-user/meta_backups/
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;3.重载元数据&lt;/p&gt;
+
+&lt;p&gt;根据 EC2 节点的公有 IP,在浏览器输入 &lt;code class=&quot;highlighter-rouge&quot;&gt;http://${kylin_node_public_ip}:7070/kylin&lt;/code&gt; 进入 kylin web 页面,并使用 ADMIN/KYLIN 的默认用户名密码登录:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/8_kylin_web_ui.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;通过 System -&amp;gt; Configuration -&amp;gt; Reload Metadata 重载 Kylin 元数据:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/9_reload_kylin_metadata.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;如果用户想要了解如何手动创建 Kylin 元数据中所包含的 Model 和 Cube,可以参考:(Create model and cube in kylin)[https://cwiki.apache.org/confluence/display/KYLIN/Create+Model+and+Cube+in+Kylin]。&lt;/p&gt;
+
+&lt;h4 id=&quot;section-12&quot;&gt;执行构建&lt;/h4&gt;
+
+&lt;p&gt;提交 cube 构建任务,由于在 model 中未设置分区列,所以这里直接对两个 cube 进行全量构建:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/10_full_build_cube.png.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/11_kylin_job_complete.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h4 id=&quot;section-13&quot;&gt;销毁构建集群&lt;/h4&gt;
+
+&lt;p&gt;构建完成之后,执行集群销毁命令销毁构建集群,默认情况下会保留 RDS stack、monitor stack 和 vpc stack:&lt;/p&gt;
+
+&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;python deploy.py --type destroy
+&lt;/code&gt;&lt;/pre&gt;
+&lt;/div&gt;
+
+&lt;p&gt;集群销毁成功:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/12_destroy_job_cluster.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h4 id=&quot;aws--2&quot;&gt;检查 AWS 资源&lt;/h4&gt;
+
+&lt;p&gt;集群销毁成功后,可以到 AWS 控制台的 &lt;code class=&quot;highlighter-rouge&quot;&gt;CloudFormation&lt;/code&gt; 服务确认是否存在资源残留,由于默认会保留元数据 RDS、监控节点和 VPC 节点,所以集群销毁后 CloudFormation 页面还会存在以下三个 Stack:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_on_cloud/13_check_aws_stacks.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;下面启动查询集群时仍然会使用这三个 Stack 中的资源,这样我们可以保证查询集群和构建集群使用同一套元数据。&lt;/p&gt;
+
+&lt;p&gt;以上部分为 &lt;code class=&quot;highlighter-rouge&quot;&gt;Kylin on Cloud —— 两小时快速搭建云上数据分析平台&lt;/code&gt; 的上篇,下篇请查看:&lt;a href=&quot;../kylin4-on-cloud-part2/&quot;&gt;Kylin on Cloud —— 两小时快速搭建云上数据分析平台(下)&lt;/a&gt;&lt;/p&gt;
+
+</description>
+        <pubDate>Wed, 20 Apr 2022 04:00:00 -0700</pubDate>
+        <link>http://kylin.apache.org/cn_blog/2022/04/20/kylin4-on-cloud-part1/</link>
+        <guid isPermaLink="true">http://kylin.apache.org/cn_blog/2022/04/20/kylin4-on-cloud-part1/</guid>
+        
+        
+        <category>cn_blog</category>
+        
+      </item>
+    
+      <item>
         <title>如何使用 Excel 查询 Kylin?MDX for Kylin!</title>
         <description>&lt;h2 id=&quot;kylin--mdx&quot;&gt;Kylin 为什么需要 MDX?&lt;/h2&gt;
 
@@ -864,46 +1501,46 @@ CELL PROPERTIES VALUE, FORMAT_STRING, LA
       </item>
     
       <item>
-        <title>安排!Kylin 4 现已支持 AWS Glue Catalog</title>
-        <description>&lt;h2 id=&quot;emr--kylin--glue-&quot;&gt;为什么在 EMR 部署 Kylin 需要支持 Glue ?&lt;/h2&gt;
+        <title>Kylin 4 now is supporting AWS Glue Catalog</title>
+        <description>&lt;h2 id=&quot;why-does-installing-kylin-on-emr-need-to-support-aws-glue&quot;&gt;Why does installing Kylin on EMR need to support AWS Glue?&lt;/h2&gt;
 
-&lt;h3 id=&quot;aws-glue&quot;&gt;什么是 AWS Glue?&lt;/h3&gt;
+&lt;h3 id=&quot;what-is-aws-glue&quot;&gt;What is AWS Glue?&lt;/h3&gt;
 
-&lt;p&gt;AWS Glue 是一项完全托管的 ETL(提取、转换和加载)服务,使 AWS 用户能够轻松而经济高效地对数据进行分类、清理和扩充,并在各种数据存储之间可靠地移动数据。AWS Glue 由一个称为 AWS Glue 数据目录的中央元数据存储库、一个自动生成代码的 ETL 引擎以及一个处理依赖项解析、作业监控和重试的灵活计划程序组成。AWS Glue 是无服务器服务,因此无需设置或管理基础设施。&lt;/p&gt;
+&lt;p&gt;AWS Glue is a fully hosted ETL (Extract, Transform, and Load) service that enables AWS users to easily and cost-effectively classify, cleanse, enrich data and move data between various data storages. AWS Glue consists of a central metastore called AWS Glue Data Catalog, an ETL engine that can automatically generate code and a flexible scheduler that can handle dependency resolution, monitor jobs and retry. AWS Glue is a serverless service, so there is no infrastructure to set up or manage.&lt;/p&gt;
 
-&lt;h3 id=&quot;kylin--aws-glue-catalog&quot;&gt;Kylin 为什么需要支持 AWS Glue Catalog?&lt;/h3&gt;
+&lt;h3 id=&quot;why-does-kylin-need-aws-glue-catalog&quot;&gt;Why does Kylin need AWS Glue Catalog?&lt;/h3&gt;
 
-&lt;p&gt;目前社区有很多 Kylin 用户在使用 AWS EMR,组件主要包括 Hadoop、Spark、Hive、Presto 等,如果没有配置使用 AWS Glue data Catalog,那么在各个数据仓库组件如 Hive、Spark、Presto 建的数据表,在其它组件上是找不到的,也就不能使用,公司底层的数据仓库是提供给各个业务部门来进行使用,为了解决这个问题,在创建 AWS EMR 集群时就可以使用 AWS Glue data Catalog 来存储元数据,对各个组件共享数据源,对各个业务部门进行共享æ�
 �°æ®æºï¼Œå°†å„个业务部门的数据构建成一个大的数据立方体,能够快速响应公司高速发展的业务需求。&lt;br /&gt;
-现代公司的数据都是基于云平台搭建,大数据团队使用的 AWS EMR 来进行数据加工、数据分析、以及模型训练,随着数据暴增带来提数慢、提数难,EMR/Spark/Hive 很难满足数据分析师、运营人员、销售的快速查询数据的需求,于是一些用户选择了 Apache Kylin 作为开源 OLAP 解决方案。&lt;br /&gt;
-但是最近社区用户联系到我们,告知 Kylin 4 还不支持从 Glue 读取表元数据,所以我们和社区用户合作一起检查这里遇到的问题并最终解决了问题,从而使得 Kylin 4 支持了 AWS Glue Catalog,这样带来的好处在于 Hive、Presto、Spark、Kylin 中可以共享表和数据,使得每个主题都串联起来形成一个大的数据分析平台,打破元数据障碍。&lt;/p&gt;
+&lt;p&gt;At present, many users in the Kylin community use AWS EMR for running large-scale distributed data processing jobs on Hadoop, Spark, Hive, Presto, etc. Without AWS Glue Data Catalog, tables built on these data warehouse components (like Hive, Spark and Presto) can not be used by any other components. As the data warehouse needs to answer requirements from various business departments, they use AWS Glue Data Catalog for metadata storage when creating the AWS EMR clusters, to share the data sources among different components and business departments. That is, to build one data cube with data from each business department, so they can provide quick responses to different business requirements.&lt;br /&gt;
+In modern companies, data is saved on cloud object storage and big data teams use AWS EMR for data processing, data analysis and model training. But with data explosion, it becomes really difficult to extract data and the response time is too long. In other words, the solution of EMR + Spark/Hive cannot meet the speedy data query requirements from data analysts, O&amp;amp;M personnel and sales. So some users turn to Apache Kylin as their open-source OLAP solution.&lt;br /&gt;
+Recently, our users approached us with the request that Kylin 4 could directly read table metadata from AWS Glue. After some collaboration, now Kylin 4 supports AWS Glue Catalog, making it possible for tables and data to be shared among Hive, Presto, Spark and Kylin. This helps to break down the metadata barrier, so different topics can be combined to form a big data analysis platform.&lt;/p&gt;
 
-&lt;h3 id=&quot;apache-kylin--aws-glue-&quot;&gt;Apache Kylin 支持 AWS Glue 吗?&lt;/h3&gt;
+&lt;h3 id=&quot;does-kylin-support-aws-glue&quot;&gt;Does Kylin support AWS Glue?&lt;/h3&gt;
 
 &lt;table&gt;
   &lt;thead&gt;
     &lt;tr&gt;
       &lt;th&gt; &lt;/th&gt;
-      &lt;th&gt;支持 Glue 的 Kylin 版本&lt;/th&gt;
+      &lt;th&gt;Kylin version which supports Glue&lt;/th&gt;
       &lt;th&gt;Issue Link&lt;/th&gt;
     &lt;/tr&gt;
   &lt;/thead&gt;
   &lt;tbody&gt;
     &lt;tr&gt;
       &lt;td&gt;Kylin on HBase (Before Kylin 4)&lt;/td&gt;
-      &lt;td&gt;2.6.6 or higher&lt;br /&gt; 3.1.0 or higher&lt;/td&gt;
+      &lt;td&gt;2.6.6 or higher&lt;br /&gt;3.1.0 or higher&lt;/td&gt;
       &lt;td&gt;https://issues.apache.org/jira/browse/KYLIN-4206&lt;br /&gt;https://zhuanlan.zhihu.com/p/99481373&lt;/td&gt;
     &lt;/tr&gt;
     &lt;tr&gt;
       &lt;td&gt;Kylin on Parquet&lt;/td&gt;
       &lt;td&gt;4.0.1 or higher&lt;/td&gt;
-      &lt;td&gt;本文。&lt;/td&gt;
+      &lt;td&gt;This article.&lt;/td&gt;
     &lt;/tr&gt;
   &lt;/tbody&gt;
 &lt;/table&gt;
 
-&lt;h2 id=&quot;section&quot;&gt;部署前准备&lt;/h2&gt;
+&lt;h2 id=&quot;prerequisites-for-deployment&quot;&gt;Prerequisites for deployment&lt;/h2&gt;
 
-&lt;h3 id=&quot;section-1&quot;&gt;软件信息一览&lt;/h3&gt;
+&lt;h3 id=&quot;software-version&quot;&gt;Software Version&lt;/h3&gt;
 
 &lt;table&gt;
   &lt;thead&gt;
@@ -917,27 +1554,27 @@ CELL PROPERTIES VALUE, FORMAT_STRING, LA
     &lt;tr&gt;
       &lt;td&gt;Apache Kylin&lt;/td&gt;
       &lt;td&gt;4.0.1 or higher&lt;/td&gt;
-      &lt;td&gt;必须是 4.0.1 以及上,详情参考 &lt;a href=&quot;https://cwiki.apache.org/confluence/display/KYLIN/KIP+10+refactor+hive+and+hadoop+dependency&quot;&gt;KIP 10 refactor hive and hadoop dependency&lt;/a&gt;.&lt;/td&gt;
+      &lt;td&gt;&lt;a href=&quot;https://cwiki.apache.org/confluence/display/KYLIN/KIP+10+refactor+hive+and+hadoop+dependency&quot;&gt;KIP 10 refactor hive and hadoop dependency&lt;/a&gt;.&lt;/td&gt;
     &lt;/tr&gt;
     &lt;tr&gt;
       &lt;td&gt;AWS EMR&lt;/td&gt;
       &lt;td&gt;6.5.0 or higher&lt;br /&gt;5.33.1 or higher&lt;/td&gt;
-      &lt;td&gt;覆盖EMR 6 / EMR 5 的较新版本,&lt;a href=&quot;https://docs.amazonaws.cn/en_us/emr/latest/ReleaseGuide/emr-650-release.html&quot;&gt;Amazon EMR release 6.5.0 - Amazon EMR&lt;/a&gt;.&lt;/td&gt;
+      &lt;td&gt;&lt;a href=&quot;https://docs.amazonaws.cn/en_us/emr/latest/ReleaseGuide/emr-650-release.html&quot;&gt;Amazon EMR release 6.5.0 - Amazon EMR&lt;/a&gt;.&lt;/td&gt;
     &lt;/tr&gt;
   &lt;/tbody&gt;
 &lt;/table&gt;
 
-&lt;h3 id=&quot;glue-&quot;&gt;准备 Glue 数据库和表&lt;/h3&gt;
+&lt;h3 id=&quot;prepare-aws-glue-database-and-tables&quot;&gt;Prepare AWS Glue database and tables&lt;/h3&gt;
 
 &lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_support_aws_glue/1_prepare_aws_glue_table_en.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
 
 &lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_support_aws_glue/2_prepare_aws_glue_table_en.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
 
 &lt;ul&gt;
-  &lt;li&gt;创建 AWS EMR 集群。&lt;/li&gt;
+  &lt;li&gt;Create an EMR cluster.&lt;/li&gt;
 &lt;/ul&gt;
 
-&lt;p&gt;这里启动一个 EMR 的集群,需要注意的是,这里通过配置 &lt;code class=&quot;highlighter-rouge&quot;&gt;hive.metastore.client.factory.class&lt;/code&gt; 启动了 Glue 外部元数据。以下命令可以作为参考。&lt;/p&gt;
+&lt;p&gt;Note: Parameter hive.metastore.client.factory.class is configured to enable AWS Glue. For details, you may refer to the commands below.&lt;/p&gt;
 
 &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;aws emr create-cluster --applications &lt;span class=&quot;nv&quot;&gt;Name&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Hadoop &lt;span class=&quot;nv&quot;&gt;Name&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Hive &lt;span class=&quot;nv&quot;&gt;Name&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Spark &lt;span class=&quot;nv&quot;&gt;Name&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;ZooKeeper &lt;span class=&quot;nv&quot;&gt;Name&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Tez &lt;span class=&quot;nv&quot;&gt;Name&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Ganglia &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
   --ec2-attributes &lt;span class=&quot;k&quot;&gt;${}&lt;/span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
@@ -955,35 +1592,35 @@ CELL PROPERTIES VALUE, FORMAT_STRING, LA
 &lt;/div&gt;
 
 &lt;ul&gt;
-  &lt;li&gt;登录 Master 节点,并且检查 Hadoop 版本 和 Hadoop 集群是否启动成功。&lt;/li&gt;
+  &lt;li&gt;Log in to the Master node. Check the Hadoop version and whether the Hadoop cluster is successfully started.&lt;/li&gt;
 &lt;/ul&gt;
 
 &lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_support_aws_glue/3_prepare_hadoop_cluster_en.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
 
 &lt;p&gt;&lt;img src=&quot;/images/blog/kylin4_support_aws_glue/4_prepare_hadoop_cluster_en.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
 
-&lt;h3 id=&quot;optional&quot;&gt;获取环境信息(Optional)&lt;/h3&gt;
+&lt;h3 id=&quot;optionalget-environmental-information&quot;&gt;(Optional)Get environmental information&lt;/h3&gt;
 
 &lt;blockquote&gt;
-  &lt;p&gt;如果你使用 RDS 或者其他元数据存储,请酌情跳过此步。&lt;/p&gt;
+  &lt;p&gt;If you are using RDS or other metadata storage, you may skip this step.&lt;/p&gt;
 &lt;/blockquote&gt;
 
-&lt;p&gt;由于 Kylin 4.X 推荐使用 RDBMS 作为元数据存储,处于测试目的,这里使用 Master 节点自带的 MariaDB 作为元数据存储;关于 MariaDB 的主机名称、账号、密码等信息,可以从 &lt;code class=&quot;highlighter-rouge&quot;&gt;/etc/hive/conf/hive-site.xml&lt;/code&gt; 获取。&lt;/p&gt;
+&lt;p&gt;RDBMS is recommended for metastore in Kylin 4. So for testing purposes, in this article, we use MariaDB which comes with the Master node for metastore; for hostname, account and password of MariaDB, see &lt;code class=&quot;highlighter-rouge&quot;&gt;/etc/hive/conf/hive-site.xml&lt;/code&gt;.&lt;/p&gt;
 
 &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;kylin.metadata.url&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;kylin4_on_cloud@jdbc,url&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;jdbc:mysql://&lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;HOSTNAME&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt;:3306/hue,username&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;hive,password&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;PASSWORD&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt;,maxActive&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;10,maxIdle&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;10,driverClassName&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;org.mariadb.jdbc.Driver  
 kylin.env.zookeeper-connect-string&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;HOSTNAME&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt;
 &lt;/code&gt;&lt;/pre&gt;
 &lt;/div&gt;
 
-&lt;p&gt;获取这些信息后,并且替换以上 Kylin 配置项里面的变量,如 &lt;code class=&quot;highlighter-rouge&quot;&gt;${PASSWORD}&lt;/code&gt;,保存到本地,供下一步启动 Kylin 进程使用。&lt;/p&gt;
+&lt;p&gt;Configure the variables as per the actual information, for example, replace  ${PASSWORD} with the real password, save it locally and it will be used to start Kylin.&lt;/p&gt;
 
-&lt;h3 id=&quot;spark-sql--aws-glue-&quot;&gt;测试 Spark SQL 和 AWS Glue 的连通性&lt;/h3&gt;
+&lt;h3 id=&quot;test-the-connectivity-between-spark-sql-and-aws-glue&quot;&gt;Test the connectivity between Spark SQL and AWS Glue&lt;/h3&gt;
 

[... 987 lines stripped ...]