与Qlik Sense集成
Qlik Sense 是新一代自助式数据可视化工具。它是一款完整的商业分析软件,便于开发人员和分析人员快速构建和部署强大的分析应用。近年来,该工具成为全球增长率最快的 BI 产品。它可以与 Hadoop Database(Hive 和 Impala)集成。现在也可与 Apache Kylin 集成。本文将分步指导您完成 Apache Kylin 与 Qlik Sense 的连接。
安装 Kylin ODBC 驱动程序
有关安装信息,参考页面 Kylin ODBC 驱动.
安装 Qlik Sense
有关 Olik Sense 的安装说明,请访问 Qlik Sense Desktop download.
与 Qlik Sense 连接
配置完本地 DSN 并成功安装 Qlik Sense 后,可执行以下步骤来用 Qlik Sense 连接 Apache Kylin:
打开 Qlik Sense Desktop.
输入 Qlik 用户名和密码,接着系统将弹出以下对话框。单击创建新应用程序.
- 为新建的应用程序指定名称.
- 应用程序视图中有两个选项,选择下方的脚本编辑器。
- 此时会显示 数据加载编辑器的窗口。单击页面右上方的创建新连接并选择ODBC。
- 选择你创建的DSN,忽略账户信息,点击创建。
配置Direct Query连接模式
修改默认的脚本中的”TimeFormat”, “DateFormat” and “TimestampFormat” 为
SET TimeFormat='h:mm:ss';
SET DateFormat='YYYY-MM-DD';
SET TimestampFormat='YYYY-MM-DD h:mm:ss[.fff]';
考虑到kylin环境中的Cube的数据量级通常都很大,可达到PB级。我们推荐用户使用Qlik sense的Direct Query连接模式,而不要将数据导入到Qlik sense中。
你可以在脚本的连接中打入Direct Query
来启用Direct Query连接模式。
下面的截图展现了一个连接了 Learn_kylin 项目中的 kylin_sales_cube 的Direct Query的脚本。
Qlik sense会基于你定义的这个脚本在报表中相应的生成SQL查询。
我们推荐用户将Kylin Cube上定义的维度和度量相应的定义到脚本中的维度和度量中。
你也可以使用Native表达式来使用Apache Kylin内置函数,例如:
NATIVE('extract(month from PART_DT)')
完整的脚本提供在下方以供参考。
请确保将脚本中LIB CONNECT TO 'kylin';
部分引用的DSN进行相应的修改。
SET ThousandSep=',';
SET DecimalSep='.';
SET MoneyThousandSep=',';
SET MoneyDecimalSep='.';
SET MoneyFormat='$#,##0.00;-$#,##0.00';
SET TimeFormat='h:mm:ss';
SET DateFormat='YYYY/MM/DD';
SET TimestampFormat='YYYY/MM/DD h:mm:ss[.fff]';
SET FirstWeekDay=6;
SET BrokenWeeks=1;
SET ReferenceDay=0;
SET FirstMonthOfYear=1;
SET CollationLocale='en-US';
SET CreateSearchIndexOnReload=1;
SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec';
SET LongMonthNames='January;February;March;April;May;June;July;August;September;October;November;December';
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun';
SET LongDayNames='Monday;Tuesday;Wednesday;Thursday;Friday;Saturday;Sunday';
LIB CONNECT TO 'kylin';
DIRECT QUERY
DIMENSION
TRANS_ID,
YEAR_BEG_DT,
MONTH_BEG_DT,
WEEK_BEG_DT,
PART_DT,
LSTG_FORMAT_NAME,
OPS_USER_ID,
OPS_REGION,
NATIVE('extract(month from PART_DT)') AS PART_MONTH,
NATIVE('extract(year from PART_DT)') AS PART_YEAR,
META_CATEG_NAME,
CATEG_LVL2_NAME,
CATEG_LVL3_NAME,
ACCOUNT_BUYER_LEVEL,
NAME
MEASURE
ITEM_COUNT,
PRICE,
SELLER_ID
FROM KYLIN_SALES
join KYLIN_CATEGORY_GROUPINGS
on( SITE_ID=LSTG_SITE_ID
and KYLIN_SALES.LEAF_CATEG_ID=KYLIN_CATEGORY_GROUPINGS.LEAF_CATEG_ID)
join KYLIN_CAL_DT
on (KYLIN_CAL_DT.CAL_DT=KYLIN_SALES.PART_DT)
join KYLIN_ACCOUNT
on (KYLIN_ACCOUNT.ACCOUNT_ID=KYLIN_SALES.BUYER_ID)
JOIN KYLIN_COUNTRY
on (KYLIN_COUNTRY.COUNTRY=KYLIN_ACCOUNT.ACCOUNT_COUNTRY)
点击窗口右上方的加载数据,Qlik sense会根据脚本来生成探测查询以检查脚本的语法。
创建报表
点击左上角的应用程序视图。
点击创建新工作表。
选择一个图标类型,将维度和度量根据需要添加到图表上。
图表返回了结果,说明连接Apache Kylin成功。
现在你可以使用Qlik sense分析Apache Kylin中的数据了。
请注意如果你希望你的报表可以击中Cube,你在Qlik sense中定义的度量需要和Cube上定义的一致。比如,为了击中Learn_kylin项目的 Kylin_sales_cube 我们在本例中使用sum(price)
。