从 Azure Marketplace 部署 Kyligence Cloud 快速上手

手把手引导您从 Azure Marketplace 快速启动 Kyligence Cloud。

目录

前置条件

  1. 创建资源组
  2. 进创建应用程序
  3. 赋予角色

创建数据源 & 项目

启动集群

创建模型

分析数据

  1. 创建数据集
  2. 创建分析图表

在 Azure 门户进行手动部署

前置条件

创建资源组

您可以在 Azure 资源组页面新建您的资源组,本例中我们命名为 Kylin。

创建应用程序

在 Azure 门户中点击选择 Azure Active Directory,点击选择应用注册 -> 新应用程序注册,在本例中我们使用名称为 Kyligence-cloud

应用程序类型 Web 应用/API,登录 URL 可不填,点击此新创建的应用程序 Kyligence-cloud,记录所示的应用程序 ID目录ID;

点击页面管理菜单下的证书和密码,在密钥页面点击 +新客户端密码,选择密钥有效期后点击保存,此时页面会显示此秘钥的值,请妥当保存此密钥值。

赋予角色

我们只需要在资源组这个级别给新创建的账号分配参与者权限即可,关于如何在资源组上给账号分配参与者角色, 您可以参考 Azure 访问控制介绍文档。

确保您当前登录的 Azure 账号至少是订阅的参与者或所有者角色,后续一些操作需要这些角色包含的权限。

前往 Azure 门户资源组页面,选择 Kylin 资源组,在访问控制页面点击+添加按钮,选择增加角色分配,添加刚才创建的应用程序 kyligence-cloud,并赋予至少参与者或更高角色权限:

给选中资源组添加参与者权限 (Kyligence_cloud 就是一开始我们创建的应用名称,这里您创建应用时可能使用了不同的名称,请选中对应应用并添加上权限)

在Azure 市场部署Kyligence Cloud 3

在Azure市场中搜索Kyligence Cloud,点击创建后请依次填写以下信息:

资源组:选择在第一步创建的资源组 KylinIdentifier:为创建的资源命名Applicationid:请输入应用程序ID

Applicationkey:请输入密钥值

Tenantid:请输入目录 ID

Vm User Name:创建用于登录虚拟机的用户名

Vm Password:创建用户登录虚拟机的密码

Vminstance Vm Size:选择虚拟机的规格

信息填写完成后,请勾选我同意上述条件和条款,然后点击购买,Kyligence Cloud
将在您选择资源组内自动创建所需的资源和服务,待创建成功后可在部署的资源组中查看创建的虚拟机,等待 Kyligence Cloud 服务启动大约需要 20 分钟左右,取决于网络服务环境。待服务启动后,使用 虚拟机IP:8079 即可进入 Kyligence Cloud 主页面,首次进入主页面会提示您输入 Kyligence Cloud 许可证,然后使用用户名/密码: ADMIN/KYLIN 即可登录。

创建数据源 & 项目

Kyligence Cloud
为管理员提供了全局统一的项目和数据源维护页面,管理员用户可在数据源管理和项目管理页面编辑和查看当前Kyligence Cloud创建的所有项目,管理当前Kyligence Cloud连接的所有数据源。

  1. 前往管理-数据源管理页面,Kyligence Cloud
    已内置文件数据源,点击文件数据源右侧的编辑,进入文件数据源编辑页面,在编辑页面您可直接使用 Kyligence Cloud 访问您 Azure Blob Storage 中的文件。

注:如果您还没有使用过 Azure Blob Storage ,可以参考 Azure Blob Storage
快速入门
文档来进行创建和管理。

  1. 本例中我们使用提供的样例数据文件进行演示,首先您需要下载这些 CSV 文件并上传到 blob storage 上的目录位置:

  • 中国区: KYLIN_ACCOUNT 表
    KYLINCALDT 表
    KYLINCATEGORYGROUPINGS 表
    KYLIN_COUNTRY 表
    KYLIN_SALES 表
  • Global: KYLIN_ACCOUNT
    KYLINCALDT
    KYLINCATEGORYGROUPINGS
    KYLIN_COUNTRY
    KYLIN_SALES
  • 然后需要修改下方的建表语句,将文件存储路径更改为您的对象存储服务中样例数据文件所在的链接,修改完毕后点击页面右侧的 +数据库/表,选择 DDL 模式后输入建表语句:

    注:下述建表语句中的 location 仅为示例作用,并不存在。

    对于Global账号:

    \<your*blob*address\> 一般是@.blob.core.windows.net;

    对于中国区账号:

    \<your*blob*address\> 一般是@.blob.core.chinacloudapi.cn

    use default;
    drop table if exists kylin_sales;
    create table kylin_sales(TRANS_ID bigint,PART_DT date COMMENT "Order Date",
    LSTG_FORMAT_NAME string COMMENT "Order Transaction Type",
    LEAF_CATEG_ID bigint COMMENT "Category ID",
    LSTG_SITE_ID int COMMENT "Site ID",
    SLR_SEGMENT_CD smallint,
    PRICE decimal(19,4) COMMENT "Order Price",
    ITEM_COUNT bigint COMMENT "Number of Purchased Goods",
    SELLER_ID bigint COMMENT "Seller ID",
    BUYER_ID bigint COMMENT "Buyer ID",
    OPS_USER_ID string COMMENT "System User ID",
    OPS_REGION string COMMENT "System User Region")COMMENT "Sales order table,
    fact table" ROW FORMAT DELIMITED FIELDS TERMINATED BY "," STORED AS TEXTFILE location "wasb://your_blob_address/your_location/kylin_sales";
    
    drop table if exists kylin_account;
    create table kylin_account(
    ACCOUNT_ID bigint ,
    ACCOUNT_BUYER_LEVEL int COMMENT "Account Buyer Level" ,
    ACCOUNT_SELLER_LEVEL int COMMENT "Account Seller Level" ,
    ACCOUNT_COUNTRY string COMMENT "Account Country" ,
    ACCOUNT_CONTACT string COMMENT "Account Contact Info" )
    ROW FORMAT DELIMITED FIELDS TERMINATED BY "," STORED AS TEXTFILE location "wasb://your_blob_address/your_location/kylin_account";
    
    drop table if exists kylin_cal_dt;
    create table kylin_cal_dt(
    CAL_DT date COMMENT "Date, PK" ,
    YEAR_BEG_DT date COMMENT "YEAR Begin Date" ,
    QTR_BEG_DT date COMMENT "Quarter Begin Date" ,
    MONTH_BEG_DT date COMMENT "Month Begin Date" ,
    WEEK_BEG_DT date COMMENT "Week Begin Date" ,
    AGE_FOR_YEAR_ID smallint ,
    AGE_FOR_QTR_ID smallint ,
    AGE_FOR_MONTH_ID smallint ,
    AGE_FOR_WEEK_ID smallint ,
    AGE_FOR_DT_ID smallint ,
    AGE_FOR_RTL_YEAR_ID smallint ,
    AGE_FOR_RTL_QTR_ID smallint ,
    AGE_FOR_RTL_MONTH_ID smallint ,
    AGE_FOR_RTL_WEEK_ID smallint ,
    AGE_FOR_CS_WEEK_ID smallint ,
    DAY_OF_CAL_ID int ,
    DAY_OF_YEAR_ID smallint ,
    DAY_OF_QTR_ID smallint ,
    DAY_OF_MONTH_ID smallint ,
    DAY_OF_WEEK_ID int ,
    WEEK_OF_YEAR_ID tinyint ,
    WEEK_OF_CAL_ID int ,
    MONTH_OF_QTR_ID tinyint ,
    MONTH_OF_YEAR_ID tinyint ,
    MONTH_OF_CAL_ID smallint ,
    QTR_OF_YEAR_ID tinyint ,
    QTR_OF_CAL_ID smallint ,
    YEAR_OF_CAL_ID smallint ,
    YEAR_END_DT string ,
    QTR_END_DT string ,
    MONTH_END_DT string ,
    WEEK_END_DT string ,
    CAL_DT_NAME string ,
    CAL_DT_DESC string ,
    CAL_DT_SHORT_NAME string ,
    YTD_YN_ID tinyint ,
    QTD_YN_ID tinyint ,
    MTD_YN_ID tinyint ,
    WTD_YN_ID tinyint ,
    SEASON_BEG_DT string ,
    DAY_IN_YEAR_COUNT smallint ,
    DAY_IN_QTR_COUNT tinyint ,
    DAY_IN_MONTH_COUNT tinyint ,
    DAY_IN_WEEK_COUNT tinyint ,
    RTL_YEAR_BEG_DT string ,
    RTL_QTR_BEG_DT string ,
    RTL_MONTH_BEG_DT string ,
    RTL_WEEK_BEG_DT string ,
    CS_WEEK_BEG_DT string ,
    CAL_DATE string ,
    DAY_OF_WEEK string ,
    MONTH_ID string ,
    PRD_DESC string ,
    PRD_FLAG string ,
    PRD_ID string ,
    PRD_IND string ,
    QTR_DESC string ,
    QTR_ID string ,
    QTR_IND string ,
    RETAIL_WEEK string ,
    RETAIL_YEAR string ,
    RETAIL_START_DATE string ,
    RETAIL_WK_END_DATE string ,
    WEEK_IND string ,
    WEEK_NUM_DESC string ,
    WEEK_BEG_DATE string ,
    WEEK_END_DATE string ,
    WEEK_IN_YEAR_ID string ,
    WEEK_ID string ,
    WEEK_BEG_END_DESC_MDY string ,
    WEEK_BEG_END_DESC_MD string ,
    YEAR_ID string ,
    YEAR_IND string ,
    CAL_DT_MNS_1YEAR_DT string ,
    CAL_DT_MNS_2YEAR_DT string ,
    CAL_DT_MNS_1QTR_DT string ,
    CAL_DT_MNS_2QTR_DT string ,
    CAL_DT_MNS_1MONTH_DT string ,
    CAL_DT_MNS_2MONTH_DT string ,
    CAL_DT_MNS_1WEEK_DT string ,
    CAL_DT_MNS_2WEEK_DT string ,
    CURR_CAL_DT_MNS_1YEAR_YN_ID tinyint ,
    CURR_CAL_DT_MNS_2YEAR_YN_ID tinyint ,
    CURR_CAL_DT_MNS_1QTR_YN_ID tinyint ,
    CURR_CAL_DT_MNS_2QTR_YN_ID tinyint ,
    CURR_CAL_DT_MNS_1MONTH_YN_ID tinyint ,
    CURR_CAL_DT_MNS_2MONTH_YN_ID tinyint ,
    CURR_CAL_DT_MNS_1WEEK_YN_IND tinyint ,
    CURR_CAL_DT_MNS_2WEEK_YN_IND tinyint ,
    RTL_MONTH_OF_RTL_YEAR_ID string ,
    RTL_QTR_OF_RTL_YEAR_ID tinyint ,
    RTL_WEEK_OF_RTL_YEAR_ID tinyint ,
    SEASON_OF_YEAR_ID tinyint ,
    YTM_YN_ID tinyint ,
    YTQ_YN_ID tinyint ,
    YTW_YN_ID tinyint ,
    KYLIN_CAL_DT_CRE_DATE string ,
    KYLIN_CAL_DT_CRE_USER string ,
    KYLIN_CAL_DT_UPD_DATE string ,
    KYLIN_CAL_DT_UPD_USER string )
    COMMENT "Date Dimension Table" ROW FORMAT DELIMITED FIELDS TERMINATED BY "," STORED AS TEXTFILE location "wasb://your_blob_address/your_location/kylin_cal_dt";
    
    drop table if exists kylin_country;
    create table kylin_country(
    COUNTRY string,
    LATITUDE double ,
    LONGITUDE double ,
    NAME string)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY "," STORED AS TEXTFILE location "wasb://your_blob_address/your_location/kylin_country";
    
    drop table if exists kylin_category_groupings;
    create table kylin_category_groupings(
    LEAF_CATEG_ID bigint COMMENT "Category ID, PK" ,
    LEAF_CATEG_NAME string ,
    SITE_ID int COMMENT "Site ID, PK" ,
    CATEG_BUSN_MGR string ,
    CATEG_BUSN_UNIT string ,
    REGN_CATEG string ,
    USER_DEFINED_FIELD1 string COMMENT "User Defined Field1" ,
    USER_DEFINED_FIELD3 string COMMENT "User Defined Field3" ,
    KYLIN_GROUPINGS_CRE_DATE string ,
    KYLIN_GROUPINGS_UPD_DATE string COMMENT "Last Updated Date" ,
    KYLIN_GROUPINGS_CRE_USER string ,
    KYLIN_GROUPINGS_UPD_USER string COMMENT "Last Updated User" ,
    META_CATEG_ID decimal ,
    META_CATEG_NAME string COMMENT "Level1 Category" ,
    CATEG_LVL2_ID decimal ,
    CATEG_LVL3_ID decimal ,
    CATEG_LVL4_ID decimal ,
    CATEG_LVL5_ID decimal ,
    CATEG_LVL6_ID decimal ,
    CATEG_LVL7_ID decimal ,
    CATEG_LVL2_NAME string COMMENT "Level2 Category" ,
    CATEG_LVL3_NAME string COMMENT "Level3 Category" ,
    CATEG_LVL4_NAME string ,
    CATEG_LVL5_NAME string ,
    CATEG_LVL6_NAME string ,
    CATEG_LVL7_NAME string ,
    CATEG_FLAGS decimal ,
    ADULT_CATEG_YN string ,
    DOMAIN_ID decimal ,
    USER_DEFINED_FIELD5 string ,
    VCS_ID decimal ,GCS_ID decimal ,
    MOVE_TO decimal ,
    SAP_CATEGORY_ID decimal ,
    SRC_ID tinyint ,
    BSNS_VRTCL_NAME string )
    COMMENT "Detail category inforamtion, Dimension Table" ROW FORMAT DELIMITED FIELDS TERMINATED BY "," STORED AS TEXTFILE location "wasb://your_blob_address/your_location/kylin_category_groupings";
    

    点击提交,系统检测无误后您可在右侧的文件数据源列表的 DEFAULT 数据库下查看刚才定义的表结构。

  1. 前往管理-项目管理 ,点击 +项目 后请为该项目命名为 Kylingence_demo,数据源请选择默认的文件数据源,项目类型请选择 专家模式 ,点击提交后您可在项目列表中查看刚才创建的项目

启动集群

  1. 请前往管理-集群管理页面,初次使用 Kyligence Cloud
    时您需要对集群资源进行设置,请点击密钥右侧的添加按钮,设置访问集群边缘节点的用户名密码
  2. 填写完集群信息表单后点击右下角的提交并启动,Kyligence Cloud 将自动创建 Spark 集群,创建过程大约需要
    3-5
    分钟。

创建模型

  1. 在构建数据模型前,您需要将文件数据源的中的表同步至项目中,首先前往数据-数据同步页面,点击左侧的加载源表图标,在弹窗中选择
    DEFAULT 数据库下所有表,然后点击右下方的 加载元数据 进行加载。

在同步表的元数据过程中会默认开启源表数据抽样,您可以在数据-任务界面查看自动触发的抽样表数据任务。任务执行完毕后,您就可以在
数据-数据同步 界面查看源表的抽样数据了。

  1. 然后进入创建模型的流程,请您在 数据-模型
    界面创建模型并进入模型编辑界面,可视化地完成多维模型的创建。这里为您简要介绍以下四个步骤:

步骤一:定义事实表
从左侧数据源表清单中,将本样例数据集中的事实表 KYLIN_SALES
拖至建模画布中央,然后单击表右上角的设置图标,选择表的类型为事实表

步骤二:定义维度表 本样例数据集中的维度表为:KYLINCALDTKYLINCATEGORYGROUPINGS
KYLIN_ACCOUNTKYLIN_COUNTRY

由于 KYLIN_ACCOUNTKYLIN_COUNTRY
表的数据既包含卖家也包含买家用户,我们可以分别将其拖出来两次,单击表右上角的设置图标,选择编辑别名,修改表别名为 SELLER_ACCOUNTBUYER_ACCOUNT 以及 SELLER_COUNTRY
BUYER_COUNTRY

步骤三:建立表与表联接关系 本例中,我们将事实表 KYLIN_SALES 的时间外键字段 PART_DT 拖向时间维表 KYLINCALDT 的主键字段 CAL_DT,在弹出窗口修改连接方式为INNER JOIN,连接条件为 KYLINSALES.PARTDT = KYLINCALDT.CAL_DT 。点击确认按钮保存连接。

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

1) KYLIN_SALES INNER JOIN KYLINCALDT 联接条件: KYLINSALES.PARTDT
= KYLINCALDT.CAL_DT

2) KYLIN_SALES INNER JOIN KYLINCATEGORYGROUPINGS
联接条件:KYLINSALES.LEAFCATEG_ID =
KYLINCATEGORYGROUPINGS.LEAFCATEGID , KYLINSALES.LSTGSITEID =
\
KYLINCATEGORYGROUPINGS.SITEID\

3) KYLIN_SALES INNER JOIN BUYER_ACCOUNT (alias of
KYLIN_ACCOUNT) 联接条件:KYLINSALES.BUYERID = BUYERACCOUNT.ACCOUNTID

4) KYLIN_SALES INNER JOIN SELLER_ACCOUNT (alias of
KYLIN_ACCOUNT) 联接条件:KYLINSALES.SELLERID = SELLERACCOUNT.ACCOUNTID

5) BUYER_ACCOUNT (alias of KYLIN_ACCOUNT) INNER JOIN
BUYER_COUNTRY (alias of KYLIN_COUNTRY) 联接条件:
BUYERACCOUNT.ACCOUNTCOUNTRY = BUYER_COUNTRY.COUNTRY

6) SELLER_ACCOUNT (alias of KYLIN_ACCOUNT) INNER JOIN
SELLER_COUNTRY(alias of KYLIN_COUNTRY) 联接条件:
SELLERACCOUNT.ACCOUNTCOUNTRY = SELLER_COUNTRY.COUNTRY

步骤四:添加维度和度量

维度 :本例中我们选择: KYLINSALES.PARTDT, SELLERCOUNTRY.NAME ,
BUYER
COUNTRY.NAME , KYLINCATEGORYGROUPINGS.LEAFCATEGNAME ,
KYLINCATEGORYGROUPINGS.CATEGLVL2NAME ,
KYLINCATEGORYGROUPINGS.CATEGLVL3NAME

度量 :本例中我们选择: KYLINSALES.PRICE(聚合方式:SUM) ,
KYLIN
SALES.ITEM_COUNT(聚合方式:SUM)

点击模型编辑界面右下方的保存按钮,系统将在弹窗中提示您设置时间分区列,该设置可以帮助您在未来根据时间分区列增量加载数据。如果您不需要增量加载数据,请您在时间分区列标签下的第一个下拉选择框中选择无分区,之后系统将为该模型全量加载数据。在本例中,我们不设置时间分区列。

在弹出的提示窗口中点击添加索引。点击编辑聚合组进入聚合索引下的编辑聚合组页面。聚合组中用如下四个概念控制维度的组合数:

  • 包含的维度:从模型中的维度列表中选择需要出现在索引中的维度。
  • 必须维度:必须分析的业务角度对应的维度,如必须按顾客统计信息。
  • 层级维度:具有层级关系的维度,如国家、省份和城市。
  • 联合维度:必须联合在一起出现的维度,如供应商与订单日期必须同时出现。

在本例中选择所需的全部六个维度,并将 KYLINSALES.PARTDT 增加为必须维度即可。

在创建模型并编辑索引后,您需要为模型加载数据,加载数据的同时也会根据模型定义构建索引。没有经过数据加载(即没有数据)的模型不能服务于查询分析。本例中我们选择全量加载数据,点击模型右侧的加载数据,系统将提示您为模型加载所有数据。

分析数据

本章节使用内置的 BI 工具来进行分析。具体的步骤如下:

创建数据集

  1. 新建数据集: 经过数据的加载,现在您可以自由地分析您的数据。首先点击导航栏中的 分析-连接BI-连接内置的 Kyligence Insight ,点击登录后,进入数据集页面。然后点击左上角的 +数据集 按钮,并选择数据集用途为 SQL数据集
  2. 定义数据集: 首先在 基本信息 中输入数据集名称为 “Kyligence_Sales”,点击下一步。

定义关系 中将所需的模型拖拽到右侧,然后点击下一步。

定义语义: 在 定义语义 中,您可以进行如下定义:

    • 点击维度名称右侧的编辑按钮,以更改维度名称,例如,将 KYLIN_SALES 表中的
      KYLINSALESPART_DT 重命名为“销售日期”
    • 点击度量名称的编辑按钮,以更改度量名称
    • 点击 +层级结构
      按钮,以创建层级结构。例如,新建一个名为“产品类型”的层级结构,并依次将KYLINCATEGORYGROUPINGS.CATEGLVL2NAME
      KYLINCATEGORYGROUPINGS.CATEGLVL3NAME添加进入,形成一个产品类型的层级结构
    • +计算度量 按钮,然后输入 计算度量名称表达式
      以创建一个自定义的计算度量。例如,创建一个名为“销售年”的计算度量,表达式为:year(KYLINSALES.PARTDT),以直接显示每年的销售情况。

在所有的定义完成之后,点击右下角的保存按钮即可保存新建的数据集。

创建分析图表

点击导航栏中的图表,然后点击左上角的 +图表 按钮,选择新建的“Kyligence_Sales”数据集,点击 确认,进入分析界面。

拖拽所需的维度和度量到右侧,然后点击左上角的运行查询,即可运行查询,得到分析图表。

例如,首先点击页面中的切换可视化类型按钮,选择可视化类型为“透视表”。将新建的层级结构“产品类型”拖入到维度中,将”GMV_SUM“拖入到度量中,将”销售时间“拖入到筛选器中,选择时间范围内过去10年,即可得到过去10内的每个产品的销售情况。

得到分析结果集之后,您可以点击页面中的 保存 按钮以保存您的图表,也可以点击右上角的 导出CSV 按钮,将查询结果集下载到本地。

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