Qlik Sense 是新一代自助式数据可视化工具。它是一款完整的商业分析软件,便于开发人员和分析人员快速构建和部署强大的分析应用。近年来,该工具成为全球增长率最快的 BI 产品。它可以与 Hadoop Database(Hive 和 Impala)集成。现在也可与 Apache Kylin 集成。本文将分步指导您完成 Apache Kylin 与 Qlik Sense 的连接。
有关安装信息,参考页面 Kylin ODBC 驱动.
有关 Olik Sense 的安装说明,请访问 Qlik Sense Desktop download.
配置完本地 DSN 并成功安装 Qlik Sense 后,可执行以下步骤来用 Qlik Sense 连接 Apache Kylin:
打开 Qlik Sense Desktop.
输入 Qlik 用户名和密码,接着系统将弹出以下对话框。单击创建新应用程序.
修改默认的脚本中的“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)。