在 Azure Marketplace 部署 Kyligence

本章节将介绍如何将 Kyligence Enterprise 部署到新的 HDInsight 集群,并使用 Kyligence Enterprise 玩转样例 Cube,重点介绍一些常见任务。

Kyligence in Azure CN Marketplace

本视频主要介绍如何在 Azure 中国区云市场部署并使用 Kyligence 进行数据分析。

目录

第一章:开启 Kyligence Enterprise 探索

1.   登录 Kyligence Enterprise

2.   玩转样例 Cube

第二章:与 Power BI 集成

1.   安装 Kyligence ODBC 驱动

2.   安装 Kyligence Data Connector for Power BI 插件

3.   使用 Power BI Desktop 连接 Kyligence Enterprise

阅读更多

1.   在 Kyligence Enterprise 上使用您的数据创建 Cube

2.   将 Kyligence Enterprise 与 Excel 集成

3.   将 Kyligence Enterprise 与更多 BI 工具集成:Tableau、Qlik 等

第一章:开启 Kyligence Enterprise 探索

本章节将介绍如何将 Kyligence Enterprise 部署到新的 HDInsight 集群,并使用 Kyligence Enterprise 玩转样例 Cube,重点介绍一些常见任务。实际上,您可以创建新集群或使用现有集群。本节以创建新集群为例。建议使用 IE 或 Google Chrome 浏览器进行以下操作,某些网页可能无法在其他浏览器中正常显示。

1.      登录 Kyligence Enterprise

1) 将 Kyligence Enterprise 部署到新的 HDInsight 集群

在 Azure Marketplace 中,搜索并选择 Kyligence Enterprise 以获取其产品详情。点击 Kyligence Enterprise 详情页左下角的 创建 以创建 HDInsight 集群。

a) 填写基本 页面所有必填信息,以配置集群的基本设置,然后点击 确定

b) 在集群配置 页面设置集群的参数。请选择 Hadoop 作为集群类型。填写完后,点击 确定 进入下一步。

图1

c) 在 集群部署配置 页面设置您的 存储账号 容器名称,并点击 确定

d) 进入 摘要 页面,确定您的设置无误后,点击 确定 以开始创建集群。集群的创建可能需要二十分钟或更长时间。

2) 进入 Kyligence Enterprise 的应用界面

a) 部署成功后,在 Azure 门户的 仪表板 中,在 所有资源/所有订阅 中点击您创建的新群集的名称。如果找不到,请点击 查看更多,在搜索框中搜索您创建的集群名称。

图2

b) 在控制台左侧,点击 设置 下的 Applications。然后,在应用程序列表中点击 Portal 进入 Kyligence Enterprise 的应用界面。

图3

3) 申请使用许可证

a) 打开 Kyligence Enterprise 的应用界面时,将弹出一个 更新许可证 的窗口。点击窗口右上角的 申请许可证,以申请 Kyligence Enterprise 的试用许可证。若您已有 Kyligence Enterprise 许可证,请将许可证文件拖拽入或点击窗口中间虚线区域进行上传,或点击 输入许可证内容 直接输入。

b) 提交您的企业邮箱公司名称用户名称。为您提供的为期一个月的试用许可证将立即生效。

图4

4) 登录 Kyligence Enterprise

a) 使用 Kyligence Enterprise 管理员账号的默认用户名 “ADMIN” 和默认密码 “KYLIN” 进行登录。

b) 初次登录后,系统会提示您修改密码。请记住新密码,以便将来登录。

2.      玩转样例 Cube

1) 构建样例 Cube

a) Kyligence Enterprise 安装时会自动创建一个样例 Cube 以及它所需要的 Hive 表。在左侧导航栏中,点击 建模 -> learn_kylin -> Cube。然后,您将在 learn_kylin 项目中看到名为 kylin_sales_cube 的样例 Cube。

b) 初始时,该 Cube 处于 DISABLED 状态。点击 构建 以在查询之前构建它。

图5

c) 选择 结束时间 如 2014-01-01,然后点击 提交。随后 Kyligence Enterprise 会开始构建工作。

图6

d) 您可以通过点击左侧导航栏中的 监控 来监控构建进度。构建可能需要30分钟左右,这取决于您的集群配置。当进度达到 100% 时,Cube 状态将更改为 READY

2)      查询样例 Cube

点击左侧导航栏中的 分析,输入以下 SQL 来查询 Cube:

SELECT

COUNT(DISTINCT KYLIN_SALES.PART_DT)

FROM KYLIN_SALES as KYLIN_SALES

INNER JOIN KYLIN_CAL_DT as KYLIN_CAL_DT

ON KYLIN_SALES.PART_DT = KYLIN_CAL_DT.CAL_DT

INNER JOIN KYLIN_CATEGORY_GROUPINGS as KYLIN_CATEGORY_GROUPINGS

ON KYLIN_SALES.LEAF_CATEG_ID = KYLIN_CATEGORY_GROUPINGS.LEAF_CATEG_ID AND KYLIN_SALES.LSTG_SITE_ID = KYLIN_CATEGORY_GROUPINGS.SITE_ID

Kyligence Enterprise 能够很快返回查询结果。

图7

 

第二章:与 Power BI 集成

Kyligence Enterprise 可与大多数主流 BI 软件通过直连方式进行集成,如 Tableau、Excel、Power BI、MicroStrategy、Qlik 和 Cognos。本章节将介绍如何使用Kyligence 自研的 Kyligence ODBC 驱动将 Kyligence Enterprise 与 Power BI 连接,进行可视化分析。

1.      安装 Kyligence ODBC 驱动

目前,Kyligence ODBC 驱动程序有 Windows 64位/32位和 Linux 64位/32位版本。本节以 Windows 64位为例,介绍如何安装 Kyligence ODBC 驱动:在下载中心下载并安装 Kyligence ODBC 驱动( Windows 64位版本)。如果机器上已经安装过 Kyligence ODBC 驱动程序,首先卸载已有 Kyligence ODBC 驱动程序。

1) 打开 ODBC 数据源管理器:单击 控制面板 ->管理工具,找到并打开ODBC 数据源

2) 切换至 系统 DSN 选项卡,单击 添加,在弹出的驱动程序选择框中选择 KyligenceODBCDriver,然后单击 完成 按钮。

图8

3) 在弹出的对话框中输入 Kyligence Enterprise 服务器信息,如图所示:

:当您的 Kyligence Enterprise 部署在 Azure 时,需要在填写 Host 时包含 “https://”,同时在 Port 处填入 “443”。

图9

其中,各项参数介绍如下:

  • Data Source Name:数据源名称
  • Description:数据源描述
  • Host:本产品 服务器地址
  • Port:本产品 服务器端口号
  • Username:本产品 服务登录用户名
  • Password:本产品 服务登录密码
  • Project:查询所使用的 本产品 项目名称
  • Disable catalog:是否关闭catalog层,默认为开启状态,如果勾选Disable catalog则为关闭状态
  • 单击 Test 按钮,连接成功后,将显示如下对话框,单击 OK 以保存相关设置。
图10

2.      安装 Kyligence Data Connector for Power BI 插件

如果您的 Power BI Desktop 版本>=201810月版本(2.63) 则您不需要手动安装插件,因为自该版本起 Kyligence 成为其内置的认证数据源。

如果您的 Power BI Desktop 版本< 201810月版本(2.63),您可以按照以下步骤安装 Kyligence Data Connector for Power BI 插件:

1)下载中心下载 Kyligence Data Connector for Power BI 插件。

2) 将 DirectQuery 插件文件(.mez 文件)复制到 Power BI 安装目录[Documents]\Microsoft Power BI Desktop\Custom Connectors文件夹中。如果没有该路径,请手动创建。

3) 点击 Power BI Desktop 界面左上角的 文件,打开 选项和设置 下的 选项。在 预览功能 中勾选 自定义数据连接器,点击 确定。

4) 修改扩展插件安全设置,依次选择 文件 -> 选项和设置 -> 选项 -> 安全性,在 数据扩展 下,从两个安全级别中选择(不推荐)允许任何扩展加载,然后重启 Power BI Desktop。

3.      使用 Power BI Desktop 连接 Kyligence Enterprise

1) 点击 Power BI Desktop 界面左上角的 获取数据 -> 更多,在 数据库 类别下选择 Kyligence Enterprise/ Kyligence 并连接。

图11

2) 在连接字符串文本框中输入所需的数据库信息。 DirectQuery 作为数据连接方式。

:当您的 Kyligence Enterprise 部署在 Azure 时,需要在填写 Server 时包含 “https://”,同时在 Port 处填入 “443”。

图12

3) 输入您登录 Kyligence Enterprise 所用的账号和密码进行身份验证。

图13

4) Power BI 会列出项目中所有的表,可以根据需要选择要连接的表。

图14

5) 现在可以进一步使用 Power BI 进行可视化分析,首先对需要连接的表进行建模。

图15

6) 回到报表页面,开始可视化分析。

图16

 

阅读更多

 

① 在 Kyligence Enterprise 上使用您的数据创建 Cube

1.      将数据导入至 Kyligence Enterprise

1) 将数据文件上传到 Azure Blob Storage 并描述为 Hive 表格

HDInsight 支持使用 Azure Blob Storage 以及 Azure Data Lake 作为 Hadoop 的存储,您可以通过它们轻松管理和处理云上的海量数据,兼顾高可靠、高可用以及低成本。

a) 要将数据上载到 Azure Blob Storage,您需要先安装 Azure CLI。以下是使用命令行将文件上载到 Azure Blob Storage 的示例:

export AZURE_STORAGE_ACCOUNT=<your storage account>X

export AZURE_STORAGE_ACCESS_KEY=<your storage account access key>

# list all files in container

azure storage blob list <container>

# upload a file to container

azure storage blob upload <path of a local file> <container> <name in container>

b) 尽管 Azure Blob Storage 不是真正的文件系统,但它支持以“/”作为文件名中的分隔符,从而模拟文件目录树的结构。以下示例用命令行将本地文件“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

c) 当文件上传到 Azure Blob Storage 后,您可以使用 HiveQL 语句来创建 Hive 表格。您可以在 HDInsight Ambari 的 Hive View 中,或者通过 SSH 到某个节点后使用 Hive 命令行来执行 HiveQL 语句。以下是一个用 Azure Blob Storage 的 CSV 文件来创建 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’);

d) 将 Hive 表格导入 Kyligence Enterprise

登录 Kyligence Enterprise,在建模 -> 数据源页,选择 Hive 作为数据源,将 Hive 表信息导入到 Kyligence Enterprise。导入 Hive 表信息只会同步表的元信息,例如列名、数据类型等,并不会拷贝数据,因此这一步通常非常快。

2) 创建基于 Hive 数据源的项目

Kyligence Enterprise 安装时会自动创建一个样例 Cube 以及它所需要的 Hive 表。产品所包含的样例数据集,总共大小仅1.5MB左右,共计5张表,其中事实表有10000条数据。用户可以在产品部署完成后,利用样例数据集进行测试。

本小节将结合样例数据集介绍 Hive 数据源使用方式,具体步骤如下。

a) 打开 Kyligence Enterprise 的 Web UI,在主界面顶端的项目管理工具栏,点击“+”创建项目,输入 项目名称 描述,点击 确定

图1

b) 进入具体项目 建模 功能,选择 数据源 选项卡;点击蓝色的 数据源 按钮,在弹出窗口中,选择 Hive 作为数据源类型,完成后点击 下一步

图2

c) 进入 加载 Hive 表元数据 窗口,用户可按需在左侧的 Hive Table 清单中,单击选中需要建模的表,也支持输入关键字进行搜索。

完成后,点击右下方 同步 按钮进行加载。

:默认选择加载后启动表采样任务。表采样结果能帮助优化后续的模型设计和 Cube 设计,我们强烈建议您启用该选项。

图3

d) 同步完成后,可以在 建模 界面的 数据源 面板中,选中具体加载的表,查看表的详细信息。

图4

2.      创建模型和 Cube

本部分将基于样例数据集,介绍 Kyligence Enterprise 使用的核心环节:设计模型和 Cube的基本概念及步骤。

1) 设计模型

模型设计指基于数据表和多维建模理论,建立星型或雪花型模型。模型设计主要包含以下内容:

  • 定义事实表与维度表
  • 定义维度和度量
  • 定义表与表的关联关系

a) 新建模型

建模 页,点击 +模型,输入 模型名称描述,点击 提交 按钮,进入模型编辑界面。

图5

b) 定义 事实表 维度表

从左侧数据源表清单中,将需要用到的表,拖拽到画布上,本样例数据集中的事实表为 KYLIN_SALES

单击表右上角的 设置 图标,选择表的类型设为 事实表维度表

图6

c) 基于表字段自动定义 维度 度量

单击表左上角第一个图标 DM,开启编辑模式,勾选工具栏左侧,全选表字段,并点击图标 A 使用系统推荐定义功能,完成快速字段类型定义后,再次点击 DM 图标即可关闭编辑模式。支持维度和度量的批量定义同时支持对单个字段手动进行单击定义,图标定义如下:

  • 图标 D 表示维度
  • 图标 M 表示度量
  • 图标 表示禁用
  • 图标 A 表示使用系统推荐类型(自动定义维度和度量)。
图7

d) 建立表与表联接关系

表与表关系的建立可以通过拖拽表上的列完成。本例中,我们选中事实表 KYLIN_SALES 的时间外键字段 PART_DT 拖向时间维表 KYLIN_CAL_DT 的主键字段 CAL_DT。在弹出窗口我们可以修改连接方式或增加其他字段关联关系。点击 确认 按钮保存新建连接。

图8

参照以上方法,设置好所有联接条件(如下所示):

KYLIN_SALES INNER JOIN KYLIN_CAL_DT 联接条件: DEFAULT.KYLIN_SALES.PART_DT = DEFAULT.KYLIN_CAL_DT.CAL_DT

KYLIN_SALES INNER JOIN KYLIN_CATEGORY_GROUPINGS 联接条件: KYLIN_SALES.LEAF_CATEG_ID = KYLIN_CATEGORY_GROUPINGS.LEAF_CATEG_ID KYLIN_SALES.LSTG_SITE_ID = KYLIN_CATEGORY_GROUPINGS.SITE_ID

KYLIN_SALES INNER JOIN BUYER_ACCOUNT (alias of KYLIN_ACCOUNT) 联接条件: KYLIN_SALES.BUYER_ID = BUYER_ACCOUNT.ACCOUNT_ID

KYLIN_SALES INNER JOIN SELLER_ACCOUNT (alias of KYLIN_ACCOUNT) 联接条件: KYLIN_SALES.SELLER_ID = SELLER_ACCOUNT.ACCOUNT_ID

BUYER_ACCOUNT (alias of KYLIN_ACCOUNT) INNER JOINBUYER_COUNTRY (alias of KYLIN_COUNTRY) 联接条件: BUYER_ACCOUNT.ACCOUNT_COUNTRY = BUYER_COUNTRY.COUNTRY

SELLER_ACCOUNT (alias of KYLIN_ACCOUNT) INNER JOINSELLER_COUNTRY(alias of KYLIN_COUNTRY) 联接条件: SELLER_ACCOUNT.ACCOUNT_COUNTRY = SELLER_COUNTRY.COUNTRY

下图是设置好之后的界面(单击联接中的 Inner 标志,可以展开联接具体内容):

图9

e) 单击右下角 保存 按钮,在系统弹出窗口中选择 增量构建 形式、时间分区列时间格式Cube 分区数据筛选条件 及是否启用 模型检测,相关定义可将鼠标移至 “?” 以查看示意。单击 提交 按钮,数据模型就创建成功了。

图10

2) 设计 Cube

创建好数据模型后,下一步就是 Cube 设计。我们需要据查询需求定义维度、度量及其聚合函数等,设计完成后就可以进行数据加载(即 Cube 构建),从而实现高性能的 SQL 查询与在线分析。

a) 新建 Cube

在已有的数据模型列表单击卡片右下角 “+”以添加 Cube,填写 Cube 名称

提交后,您将会进入 Cube 设计向导。在设计界面的上方,您可以看到当前所在的步骤,可通过点击界面右下角 下一步,或点击向导以进入具体的编辑步骤。

图11

b) 维度设计

进入 维度 设计,点击 编辑维度,您可以根据分析需要,选择模型中的列作为 Cube 的维度。经常出现在过滤条件中的维度应当设为普通维度(Normal Dimension,以达到最好的查询性能。从维度表来的维度,如果基数不高,一般选作衍生维度(Derived Dimension

图12

最终,维度的设置结果如下图所示:

图13

Kyligence Enterprise 提供多种方法来优化 Cube 中的维度组合。在 维度优化 设置里,您可以看到 聚合组 ( AGG )Rowkey最大组合维度数(MDC 的设置。相关定义可将鼠标移至 “?” 以查看示意。

这里我们推荐您使用(点击)维度优化 功能。这个功能可以根据您选择的维度和其他信息,对 Cube 的维度做最优的处理,既节省存储空间的同时最大的优化查询速度。

优化后的结果如下图所示:

图14

点击 Rowkeys 设置 rowkey 以优化查询性能,把最常出现在过滤条件列放置在 rowkey 的前面。通常情况下 rowkey 不需要您特别设置,Kyligence Enterprise 会根据维度字段类型和表采样的结果,智能推荐 rowkey 的编码和顺序。

在每个 rowkey 上,还需要为列值设置编码方法。可将鼠标移至 Rowkeys 右侧“?”以查看示意本产品支持的基本编码类型。

注:在同一个维度表中,不建议将衍生维度和普通维度混合使用。这有可能造成比较混淆的查询结果,因为一些列来自于 Cube,而另一些列来自于快照,它们会反映不同时期的数据值而造成混淆。

Rowkey 设置的结果如下:

图15

c) 度量设计

进入 度量 设计。Cube 度量设计主要包括聚合函数和需要聚合统计的列,点击 添加度量,进入 编辑度量 页面。可通过 编辑度量 页面中 表达式 的下拉列表查看目前 Kyligence Enterprise 支持的聚合函数。

默认系统将会创建一个 COUNT 度量。如果您点击 推荐度量,根据底层模型中的数据类型,系统会自动创建好一些默认的 COUNT() 聚合和 SUM() 聚合。

在本例中,假设我们通过 PRICE 的不同聚合形式考量销售额,如总销售额为 SUM(PRICE)、最高订单金额为 MAX(PRICE)、最低订单金额为 MIN(PRICE),使用COUNT_DISTINCT统计卖家个数, 使用TOP-N来挑选出销售业绩最好的商家。

以创建TOP-N 的度量来挑选出销售业绩最好的商家为例:

图16

全部设置完成后,最终 Cube 的度量如下图所示:

图17

d) 刷新设置

触发自动合并的时间阈值(Auto Merge Threshold):每次 Cube 成功构建后,都会生成一个 Segment 数据块。为了避免 Cube 中数据块过多,导致查询性能下降,我们建议对 Cube 中的数据块按周或月进行自动合并。

保留时间阈值:对于时间久远的不需要再被查询的 Segment,通过设置 保留时间阈值 可以自动清除这些 Segment,以节省磁盘空间;如设置为1年,最新的 Cube 构建到当天,那么结束日期是一年以前的 Segment 会被清除。

注意: 自动合并仅支持按日期/时间增量构建的 Cube,对于其他增量构建类型的 Cube,请启用此选项。

起始日期:设置 起始日期 以指定 Cube 构建的起始时间。

可设置如下图:

图18

e) 表索引

为了支持对明细数据进行高效的查询,Kyligence Enterprise 提供了 表索引功能。勾选 表索引 选项以启用,默认状态下未被勾选。勾选后可以看到表索引设置的详细情况。

图19

f) 高级设置

在这里添加的配置项可以在 Cube 级别覆盖从 kylin.properties 配置文件读取出来的全局配置。在这个案例中,我们可以直接采用默认配置,在此不做任何修改。

高级设置 中,可以选择 Cube 的构建引擎。默认情况下,Kyligence Enterprise 使用 MapReduce 作为 Cube 构建引擎,但也可以手动切换成Spark (Beta)

g) Cube 概览

仔细确认这些基本信息,包括 模型名称Cube 名称事实表维度表 以及维度度量 个数。确认无误后单击 保存 按钮,并在弹出的确认提示框中选择 确定

最终,Cube 的创建就完成了。我们可以刷新 Cube 列表,从中可以看到新创建的Cube了。因为新创建的 Cube 并没有数据,是不能被查询的,所以状态仍然是 DISABLED。可点击 构建 以在查询之前构建它。

图20

② 将 Kyligence Enterprise Excel 集成

③ 将 Kyligence Enterprise 与更多 BI 工具集成:TableauQlik

有关如何使用Kyligence Enterprise的更多信息及各部分操作的详细解释说明,请参阅http://docs.kyligence.io

想知道 Kyligence 能为你做些什么吗?