Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 9E009200D53 for ; Tue, 5 Dec 2017 07:48:58 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 9C822160C1B; Tue, 5 Dec 2017 06:48:58 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 6AB27160C0A for ; Tue, 5 Dec 2017 07:48:57 +0100 (CET) Received: (qmail 28791 invoked by uid 500); 5 Dec 2017 06:48:56 -0000 Mailing-List: contact commits-help@kylin.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@kylin.apache.org Delivered-To: mailing list commits@kylin.apache.org Received: (qmail 28782 invoked by uid 99); 5 Dec 2017 06:48:56 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 Dec 2017 06:48:56 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 4C178F17DB; Tue, 5 Dec 2017 06:48:56 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: shaofengshi@apache.org To: commits@kylin.apache.org Message-Id: <6c0a69b57dca4baba60cd66d6248512a@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: kylin git commit: connect_qilk Date: Tue, 5 Dec 2017 06:48:56 +0000 (UTC) archived-at: Tue, 05 Dec 2017 06:48:58 -0000 Repository: kylin Updated Branches: refs/heads/document 2829730ac -> 46da08607 connect_qilk Signed-off-by: shaofengshi Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/46da0860 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/46da0860 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/46da0860 Branch: refs/heads/document Commit: 46da08607a298ddec6d831f5050b381df98f5d9a Parents: 2829730 Author: joannahe Authored: Tue Dec 5 14:32:15 2017 +0800 Committer: shaofengshi Committed: Tue Dec 5 14:47:46 2017 +0800 ---------------------------------------------------------------------- website/_data/docs21-cn.yml | 2 + website/_data/docs21.yml | 2 + website/_docs21/index.md | 1 + website/_docs21/tutorial/Qlik.cn.md | 156 +++++++++++++++++++ website/_docs21/tutorial/Qlik.md | 151 ++++++++++++++++++ .../images/tutorial/2.1/Qlik/add_dimension.png | Bin 0 -> 174050 bytes .../2.1/Qlik/create_data_connection.png | Bin 0 -> 63903 bytes .../2.1/Qlik/create_new_application.png | Bin 0 -> 163511 bytes .../tutorial/2.1/Qlik/create_new_report.png | Bin 0 -> 224605 bytes .../tutorial/2.1/Qlik/go_to_app_overview.png | Bin 0 -> 255958 bytes website/images/tutorial/2.1/Qlik/kap_query.png | Bin 0 -> 260454 bytes website/images/tutorial/2.1/Qlik/load_data.png | Bin 0 -> 66201 bytes website/images/tutorial/2.1/Qlik/measure.png | Bin 0 -> 34087 bytes .../tutorial/2.1/Qlik/odbc_connection.png | Bin 0 -> 43145 bytes website/images/tutorial/2.1/Qlik/report.png | Bin 0 -> 309309 bytes .../images/tutorial/2.1/Qlik/script_editor.png | Bin 0 -> 119217 bytes .../tutorial/2.1/Qlik/script_run_result.png | Bin 0 -> 167570 bytes .../2.1/Qlik/welcome_to_qlik_desktop.png | Bin 0 -> 254071 bytes 18 files changed, 312 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/46da0860/website/_data/docs21-cn.yml ---------------------------------------------------------------------- diff --git a/website/_data/docs21-cn.yml b/website/_data/docs21-cn.yml index f69fbe5..1780da0 100644 --- a/website/_data/docs21-cn.yml +++ b/website/_data/docs21-cn.yml @@ -17,4 +17,6 @@ - tutorial/tableau_91 - tutorial/powerbi - tutorial/odbc + - tutorial/Qlik + http://git-wip-us.apache.org/repos/asf/kylin/blob/46da0860/website/_data/docs21.yml ---------------------------------------------------------------------- diff --git a/website/_data/docs21.yml b/website/_data/docs21.yml index a88c339..9a6e4de 100644 --- a/website/_data/docs21.yml +++ b/website/_data/docs21.yml @@ -33,6 +33,7 @@ - install/kylin_cluster - install/advance_settings - install/kylin_docker + - install/kylin_aws_emr - title: Tutorial docs: @@ -56,6 +57,7 @@ - tutorial/squirrel - tutorial/flink - tutorial/hue + - tutorial/Qlik - title: How To docs: http://git-wip-us.apache.org/repos/asf/kylin/blob/46da0860/website/_docs21/index.md ---------------------------------------------------------------------- diff --git a/website/_docs21/index.md b/website/_docs21/index.md index ef1a3b3..02ad57f 100644 --- a/website/_docs21/index.md +++ b/website/_docs21/index.md @@ -57,6 +57,7 @@ Connectivity and APIs 9. [Connect from SQuirreL](tutorial/squirrel.html) 10. [Connect from Apache Flink](tutorial/flink.html) 11. [Connect from Apache Hue](tutorial/hue.html) +12. [Connect from Qlik Sense](tutorial/Qlik.html) Operations http://git-wip-us.apache.org/repos/asf/kylin/blob/46da0860/website/_docs21/tutorial/Qlik.cn.md ---------------------------------------------------------------------- diff --git a/website/_docs21/tutorial/Qlik.cn.md b/website/_docs21/tutorial/Qlik.cn.md new file mode 100644 index 0000000..d4e6536 --- /dev/null +++ b/website/_docs21/tutorial/Qlik.cn.md @@ -0,0 +1,156 @@ +--- +layout: docs21-cn +title: 与Qlik Sense集成 +categories: tutorial +permalink: /cn/docs21/tutorial/Qlik.html +since: v2.2 +--- + +Qlik Sense 是新一代自助式数据可视化工具。它是一款完整的商业分析软件,便于开发人员和分析人员快速构建和部署强大的分析应用。近年来,该工具成为全球增长率最快的 BI 产品。它可以与 Hadoop Database(Hive 和 Impala)集成。现在也可与 Apache Kylin 集成。本文将分步指导您完成 Apache Kylin 与 Qlik Sense 的连接。 + +### 安装 Kylin ODBC 驱动程序 + +有关安装信息,参考页面 [Kylin ODBC 驱动](http://kylin.apache.org/cn/docs21/tutorial/odbc.html). + +###安装 Qlik Sense + +有关 Olik Sense 的安装说明,请访问 [Qlik Sense Desktop download](https://www.qlik.com/us/try-or-buy/download-qlik-sense). + +### 与 Qlik Sense 连接 + +配置完本地 DSN 并成功安装 Qlik Sense 后,可执行以下步骤来用 Qlik Sense 连接 Apache Kylin: + +1. 打开 **Qlik Sense Desktop**. +2. 输入 Qlik 用户名和密码,接着系统将弹出以下对话框。单击**创建新应用程序**. + +![Create New Application](../../images/tutorial/2.1/Qlik/welcome_to_qlik_desktop.png) + +3. 为新建的应用程序指定名称. + +![Specify a unique name](../../images/tutorial/2.1/Qlik/create_new_application.png) + +4. 应用程序视图中有两个选项,选择下方的**脚本编辑器**。 + +![Select Script Editor](../../images/tutorial/2.1/Qlik/script_editor.png) + +5. 此时会显示 **数据加载编辑器**的窗口。单击页面右上方的**创建新连接**并选择**ODBC**。 + +![Create New Data Connection](../../images/tutorial/2.1/Qlik/create_data_connection.png) + +6. Select **DSN** you have created, ignore the account information, and then click **Create**. +7. 选择你创建的**DSN**,忽略账户信息,点击**创建**。 + +![ODBC Connection](../../images/tutorial/2.1/Qlik/odbc_connection.png) + +###配置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的脚本。 + +![Script](../../images/tutorial/2.1/Qlik/script_run_result.png) + +Qlik sense会基于你定义的这个脚本在报表中相应的生成SQL查询。 + +我们推荐用户将Kylin Cube上定义的维度和度量相应的定义到脚本中的维度和度量中。 + +你也可以使用Native表达式来使用Apache Kylin内置函数,例如: + +`NATIVE('extract(month from PART_DT)') ` + +完整的脚本提供在下方以供参考。 + +请确保将脚本中`LIB CONNECT TO 'kylin';` 部分引用的DSN进行相应的修改。 + +```sql +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会根据脚本来生成探测查询以检查脚本的语法。 + +![Load Data](../../images/tutorial/2.1/Qlik/load_data.png) + +###创建报表 + +点击左上角的**应用程序视图**。 + +![Open App Overview](../../images/tutorial/2.1/Qlik/go_to_app_overview.png) + +点击**创建新工作表**。 + + Click **Create new sheet** on this page. + +![Create new sheet](../../images/tutorial/2.1/Qlik/create_new_report.png) + +选择一个图标类型,将维度和度量根据需要添加到图表上。 + +![Select the required charts, dimension and measure](../../images/tutorial/2.1/Qlik/add_dimension.png) + +图表返回了结果,说明连接Apache Kylin成功。 + +现在你可以使用Qlik sense分析Apache Kylin中的数据了。 + +![View data in Qlik Sense](../../images/tutorial/2.1/Qlik/report.png) + +请注意如果你希望你的报表可以击中Cube,你在Qlik sense中定义的度量需要和Cube上定义的一致。比如,为了击中Learn_kylin项目的 *Kylin_sales_cube* 我们在本例中使用`sum(price)`。 + +![Create Measure that can hit on Cube](../../images/tutorial/2.1/Qlik/measure.png) \ No newline at end of file http://git-wip-us.apache.org/repos/asf/kylin/blob/46da0860/website/_docs21/tutorial/Qlik.md ---------------------------------------------------------------------- diff --git a/website/_docs21/tutorial/Qlik.md b/website/_docs21/tutorial/Qlik.md new file mode 100644 index 0000000..5b0cf09 --- /dev/null +++ b/website/_docs21/tutorial/Qlik.md @@ -0,0 +1,151 @@ +--- +layout: docs21 +title: Integration with Qlik Sense +categories: tutorial +permalink: /docs21/tutorial/Qlik.html +--- + +Qlik Sense delivers intuitive platform solutions for self-service data visualization, guided analytics applications, embedded analytics and reporting. It is a new player in the Business Intelligence (BI) tools world, with a high growth since 2013. It has connectors with Hadoop Database (Hive and Impala). Now it can be integrated with Apache Kylin. This article will guide you to connect Apache Kylin with Qlik Sense. + +### Install Kylin ODBC Driver + +For the installation information, please refer to [Kylin ODBC Driver](http://kylin.apache.org/docs21/tutorial/odbc.html). + +###Install Qlik Sense + +For the installation of Qlik Sense, please visit [Qlik Sense Desktop download](https://www.qlik.com/us/try-or-buy/download-qlik-sense). + +### Connection with Qlik Sense + +After configuring your Local DSN and installing Qlik Sense successfully, you may go through the following steps to connect Apache Kylin with Qlik Sense. + +1. Open **Qlik Sense Desktop**. +2. Input your Qlik account to login, then the following dialog will pop up. Click **Create New Application**. + +![Create New Application](../../images/tutorial/2.1/Qlik/welcome_to_qlik_desktop.png) + +3. Specify a name for the new app. + +![Specify a unique name](../../images/tutorial/2.1/Qlik/create_new_application.png) + +4. There are two choices in the Application View. Please select the bottom **Script Editor**. + +![Select Script Editor](../../images/tutorial/2.1/Qlik/script_editor.png) + +5. The Data Load Editor window shows. Click **Create New Connection** and choose **ODBC**. + +![Create New Data Connection](../../images/tutorial/2.1/Qlik/create_data_connection.png) + +6. Select **DSN** you have created, ignore the account information, and then click **Create**. + +![ODBC Connection](../../images/tutorial/2.1/Qlik/odbc_connection.png) + +###Configure Direct Query mode +Change the default scripts of "TimeFormat", "DateFormat" and "TimestampFormat" to: + +`SET TimeFormat='h:mm:ss';` +`SET DateFormat='YYYY-MM-DD';` +`SET TimestampFormat='YYYY-MM-DD h:mm:ss[.fff]';` + + +Given the Peta-byte scale Cube size in a usual Apache Kylin environment, we recommend user to use Direct Query mode in Qlik Sense and avoid importing data into Qlik sense. + +You are able to enable Direct Query mode by typing `Direct Query` in front of your query script in Script editor. + +Below is the screenshot of such Direct Query script against *kylin_sales_cube* in *Learn_kylin* project. + +![Script](../../images/tutorial/2.1/Qlik/script_run_result.png) + +Once you defined such script, Qlik sense can generate SQL based on this script for your report. + +It is recommended that you define Dimension and Measure corresponding to the Dimension and Measure in the Kylin Cube. + +You may also be able to utilize Apache Kylin built-in functions by creating a Native expression, for example: + +`NATIVE('extract(month from PART_DT)') ` + +The whole script has been posted for your reference. + +Make sure to update `LIB CONNECT TO 'kylin';` to the DSN you created. + +```sql +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) +``` + +Click **Load Data** on the upper right of the window, Qlik sense will send out inspection query to test the connection based on the script. + +![Load Data](../../images/tutorial/2.1/Qlik/load_data.png) + +###Create a new report + +On the top left menu open **App Overview**. + +![Open App Overview](../../images/tutorial/2.1/Qlik/go_to_app_overview.png) + + Click **Create new sheet** on this page. + +![Create new sheet](../../images/tutorial/2.1/Qlik/create_new_report.png) + +Select the charts you need, then add dimension and measurement based on your requirements. + +![Select the required charts, dimension and measure](../../images/tutorial/2.1/Qlik/add_dimension.png) + +You will get your worksheet and the connection is complete. Your Apache Kylin data shows in Qlik Sense now. + +![View data in Qlik Sense](../../images/tutorial/2.1/Qlik/report.png) + +Please note that if you want the report to hit on Cube, you need to create the measure eaxctly as those are defined in the Cube. For the case of *Kylin_sales_cube* in Learn_kylin project. We use `sum(price)` as an example. + +![Create Measure that can hit on Cube](../../images/tutorial/2.1/Qlik/measure.png) \ No newline at end of file http://git-wip-us.apache.org/repos/asf/kylin/blob/46da0860/website/images/tutorial/2.1/Qlik/add_dimension.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/2.1/Qlik/add_dimension.png b/website/images/tutorial/2.1/Qlik/add_dimension.png new file mode 100644 index 0000000..b080880 Binary files /dev/null and b/website/images/tutorial/2.1/Qlik/add_dimension.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/46da0860/website/images/tutorial/2.1/Qlik/create_data_connection.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/2.1/Qlik/create_data_connection.png b/website/images/tutorial/2.1/Qlik/create_data_connection.png new file mode 100644 index 0000000..9227939 Binary files /dev/null and b/website/images/tutorial/2.1/Qlik/create_data_connection.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/46da0860/website/images/tutorial/2.1/Qlik/create_new_application.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/2.1/Qlik/create_new_application.png b/website/images/tutorial/2.1/Qlik/create_new_application.png new file mode 100644 index 0000000..9f06e70 Binary files /dev/null and b/website/images/tutorial/2.1/Qlik/create_new_application.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/46da0860/website/images/tutorial/2.1/Qlik/create_new_report.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/2.1/Qlik/create_new_report.png b/website/images/tutorial/2.1/Qlik/create_new_report.png new file mode 100644 index 0000000..92a8f04 Binary files /dev/null and b/website/images/tutorial/2.1/Qlik/create_new_report.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/46da0860/website/images/tutorial/2.1/Qlik/go_to_app_overview.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/2.1/Qlik/go_to_app_overview.png b/website/images/tutorial/2.1/Qlik/go_to_app_overview.png new file mode 100644 index 0000000..67687b2 Binary files /dev/null and b/website/images/tutorial/2.1/Qlik/go_to_app_overview.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/46da0860/website/images/tutorial/2.1/Qlik/kap_query.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/2.1/Qlik/kap_query.png b/website/images/tutorial/2.1/Qlik/kap_query.png new file mode 100644 index 0000000..e5ea628 Binary files /dev/null and b/website/images/tutorial/2.1/Qlik/kap_query.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/46da0860/website/images/tutorial/2.1/Qlik/load_data.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/2.1/Qlik/load_data.png b/website/images/tutorial/2.1/Qlik/load_data.png new file mode 100644 index 0000000..c297315 Binary files /dev/null and b/website/images/tutorial/2.1/Qlik/load_data.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/46da0860/website/images/tutorial/2.1/Qlik/measure.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/2.1/Qlik/measure.png b/website/images/tutorial/2.1/Qlik/measure.png new file mode 100644 index 0000000..68f5db3 Binary files /dev/null and b/website/images/tutorial/2.1/Qlik/measure.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/46da0860/website/images/tutorial/2.1/Qlik/odbc_connection.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/2.1/Qlik/odbc_connection.png b/website/images/tutorial/2.1/Qlik/odbc_connection.png new file mode 100644 index 0000000..c041190 Binary files /dev/null and b/website/images/tutorial/2.1/Qlik/odbc_connection.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/46da0860/website/images/tutorial/2.1/Qlik/report.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/2.1/Qlik/report.png b/website/images/tutorial/2.1/Qlik/report.png new file mode 100644 index 0000000..8575578 Binary files /dev/null and b/website/images/tutorial/2.1/Qlik/report.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/46da0860/website/images/tutorial/2.1/Qlik/script_editor.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/2.1/Qlik/script_editor.png b/website/images/tutorial/2.1/Qlik/script_editor.png new file mode 100644 index 0000000..b8a4ae9 Binary files /dev/null and b/website/images/tutorial/2.1/Qlik/script_editor.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/46da0860/website/images/tutorial/2.1/Qlik/script_run_result.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/2.1/Qlik/script_run_result.png b/website/images/tutorial/2.1/Qlik/script_run_result.png new file mode 100644 index 0000000..f7f344f Binary files /dev/null and b/website/images/tutorial/2.1/Qlik/script_run_result.png differ http://git-wip-us.apache.org/repos/asf/kylin/blob/46da0860/website/images/tutorial/2.1/Qlik/welcome_to_qlik_desktop.png ---------------------------------------------------------------------- diff --git a/website/images/tutorial/2.1/Qlik/welcome_to_qlik_desktop.png b/website/images/tutorial/2.1/Qlik/welcome_to_qlik_desktop.png new file mode 100644 index 0000000..123a358 Binary files /dev/null and b/website/images/tutorial/2.1/Qlik/welcome_to_qlik_desktop.png differ