Qlik 是经典的商业智能分析软件,其家族拥有Qlik Sense等多款BI软件。它使您能够快速开发和交付交互式指导分析应用程序和仪表板。本文为您介绍Qlik Sense Desktop如何连接 Hologres并可视化分析数据。
使用限制
已知限制
Qlik Sense暂不支持同步PostgreSQL中外部表的表结构,因此无法在如下页面中查询到外部表元数据。
该限制不影响直接使用SQL语句查询,如下图所示。
Qilk暂不支持可视化显示Hologres的外部表,但是您可以在数据加载编辑器中通过SQL语句查询外部表并可视化分析。
Qlik Sense Desktop连接Hologres
安装Qlik Sense Desktop
安装Qlik Sense Desktop,详情请参见Qlik官方文档。
连接Hologres
打开Qlik Sense Desktop,在页面右上方单击创建新应用程序。
在创建新应用程序弹框,为应用程序命名后,单击创建。
在弹框中单击打开应用程序,在应用程序对应页面添加数据,单击从文件和其他源添加数据。
在弹框中选择PostgreSQL创建新的连接,配置参数信息。
参数
描述
Host name
Hologres实例的公共网络地址。进入Hologres管理控制台的实例详情页,从网络信息区域获取网络地址。
Port
Hologres的实例端口。进入Hologres管理控制台的实例详情页,从网络信息区域获取端口。
Database
Hologres创建的数据库名称。
User Name
当前阿里云账号的AccessKey ID。获取方式请参见创建访问密钥。
Password
当前阿里云账号的AccessKey Secret。获取方式请参见创建访问密钥。
单击测试连接,如果提示
Connection succeeded
,则表示连接成功。您可以单击弹框右下角的创建,保存新的连接信息。配置PostgreSQL数据连接。
选择目标Owner(即Hologres中的 schema),此处您可以选择public。
在Tables区域选择需要分析的表。
单击下方的添加数据,添加数据执行完毕后,Qlik Sense会将数据从Hologres导入Qlik Sense,您可以在Qilk查看Hologres中的数据。
说明使用该模式Qlik Sense会将数据全部加载到Qlik Sense的引擎中,并非根据页面操作实时发送查询到数据库。
配置Direct Query模式
在日常生产场景中,数据库会包含PB级数据,建议您在Qlik Sense中使用Direct Query模式,而不用将数据导入Qlik Sense,关于Direct Query模式的详细解释,请参见Qlik官方文档。
打开之前创建的应用,在页面上方选择 。
在页面右侧显示数据源连接信息,单击右下方的图标,将连接信息插入到编辑器中。
在脚本编辑器中查询脚本的最前方,输入
Direct Query
,即可启用 Direct Query 模式。样例数据图示和脚本如下所示:SET ThousandSep=','; SET DecimalSep='.'; SET MoneyThousandSep=','; SET MoneyDecimalSep='.'; SET MoneyFormat='¥#,##0.00;-¥#,##0.00'; SET TimeFormat='TTh:mm:ss'; SET DateFormat='YYYY/M/D'; SET TimestampFormat='YYYY/M/D TTh:mm:ss[.fff]'; SET FirstWeekDay=6; SET BrokenWeeks=1; SET ReferenceDay=0; SET FirstMonthOfYear=1; SET CollationLocale='zh-CN'; SET CreateSearchIndexOnReload=1; SET MonthNames='1月;2月;3月;4月;5月;6月;7月;8月;9月;10月;11月;12月'; SET LongMonthNames='一月;二月;三月;四月;五月;六月;七月;八月;九月;十月;十一月;十二月'; SET DayNames='周一;周二;周三;周四;周五;周六;周日'; SET LongDayNames='星期一;星期二;星期三;星期四;星期五;星期六;星期日'; SET NumericalAbbreviation='3:k;6:M;9:G;12:T;15:P;18:E;21:Z;24:Y;-3:m;-6:μ;-9:n;-12:p;-15:f;-18:a;-21:z;-24:y'; LIB CONNECT TO 'PostgreSQL_hgpostcn-cn-st21y8nlm007-cn-hangzhou.hologres.aliyuncs.com'; --输入 Direct Query,启用 Direct Query 模式 DIRECT QUERY dimension l_shipmode, l_shipdate, o_orderstatus measure l_tax, l_quantity FROM public.lineitem INNER JOIN public.orders ON public.lineitem.l_orderkey = public.orders.o_orderkey;
单击窗口右上方的加载数据,Qlik Sense将发送即时查询。
在页面上方选择 ,开始创建可视化。
在编辑工作表页面,您可以在页面左侧单击图表,选择需要的图表类型创建可视化。
说明直接拖动字段到画布,Qlik Sense无法生成Direct Query的查询,因此建议您单击图表创建可视化。
鉴于Qlik Sense的处理逻辑,建议您先添加度量项,后添加维度项,以提高响应速度。
更多关于Qlik Sense对数据操作和分析的介绍,请参见Qlik官方文档。
使用自定义ODBC对接Hologres
如果需要在Qlik Sense的表向导模式中查询到外表,可以使用自定义ODBC的方式接对Hologres。
前提条件
在Qlik Sense服务器端和客户端都需安装PostgreSQL的ODBC,您可以通过PostgreSQL的官网下载ODBC驱动。
由于Hologres兼容PostgreSQL 11的生态,所以请务必安装Vpsqlodbc_11_01_0000以上的版本。
配置DNS
你可以单击
,找到并打开ODBC 数据源(64位)管理工具。切换至系统 DSN 选项卡,单击添加按钮。
在弹出的驱动器程序中选择 PostgreSQL Unicode(x64),然后单击完成按钮。
说明用户 DSN 只有特定的用户可以调用,而系统 DSN 对该系统的所有登录用户可用。如果用户需要在 Web BI Server 通过 ODBC 访问 Hologres,应使用系统 DSN。
在弹出的对话框中输入 Hologres 服务器信息,参数详细说明如下所示。
参数
描述
User Name
当前阿里云账号的AccessKey ID。您可以单击AccessKey 管理,获取AccessKey ID。
Password
当前阿里云账号的AccessKey Secret。您可以单击AccessKey 管理,获取AccessKey Secret。
Server
Hologres实例的公共网络地址。进入Hologres管理控制台的实例详情页,从网络信息区域获取公共网络地址。
Port
Hologres的实例端口。进入Hologres管理控制台的实例详情页,从网络信息区域获取端口。
Database
Hologres的数据库名称。
单击 Test 按钮,如显示如下页面,表示连接成功。
单击保存,保存该 DSN。
连接Hologres
配置完本地 DSN 并成功安装 Qlik Sense 后,可执行以下步骤来连接 Hologres 与 Qlik Sense。
打开 Qlik Sense Desktop 应用程序。单击从文件和其他源添加数据。
在弹出的窗口单击 ODBC,以创建新的连接。
从列表中选择此前创建的DSN,并填写名称。
单击创建,以保存新的连接信息。之后您可以选择Owner(即 Hologres 中的 schema),例如选择 public,使用该链接方式即可读取外部表的Schema。
您可以选择需要分析的表,单击添加数据, Qlik Sense 会从 Hologres 将数据导入 Qlik Sense,完成后您即可进行分析。
说明使用该模式 Qlik Sense 会将数据全部加载至 Qlik Sense 的引擎中,并非根据页面操作实时发送查询至数据库。