AnalyticDB for PostgreSQL(原HybridDB for PostgreSQL)做为高性能分析型数据库,能够支持用户对其业务数据进行实时分析,可以让企业敏锐感知市场动态,作出必要决策。
Tableau是一款数据分析与可视化工具,它支持链接本地或云端数据,无论是电子表格,仍是数据库数据,都能进行无缝链接。本文介绍Tableau以AnalyticDB for PostgreSQL做为数据源,如何进行有效的数据分析。sql
AnalyticDB for PostgreSQL基于Greenplum,因此在选择链接器的时候选择Greenplum链接器:数据库
点开出现登陆页面,填上DB的链接信息完成登陆。服务器
登陆后页面:工具
根据指导操做,能够将任意表进行统计分析,并进行报表展现。性能
例如使用TPCH数据中的lineitem,点开一张工做表能够进行任意维度的数据展现了:fetch
每从度量或者维度中选择一个字段,放到工做表区时,Tableau都会发送一个query到AnalyticDB for PostgreSQL进行数据查询,例如上述图表发送的query:spa
BEGIN;declare "SQL_CUR0x7fdabf04ca00" cursor with hold for SELECT "lineitem"."l_linestatus" AS "l_linestatus", "lineitem"."l_shipmode" AS "l_shipmode", SUM("lineitem"."l_orderkey") AS "sum_l_orderkey_ok", ((CAST("lineitem"."l_shipdate" AS DATE) + CAST(TRUNC((-1 * (EXTRACT(DAY FROM "lineitem"."l_shipdate") - 1))) AS INTEGER) * INTERVAL '1 DAY') + CAST(TRUNC((-1 * (EXTRACT(MONTH FROM "lineitem"."l_shipdate") - 1))) AS INTEGER) * INTERVAL '1 MONTH') AS "tyr_l_shipdate_ok" FROM "public"."lineitem" "lineitem" GROUP BY 1, 2, 4;fetch 10000 in "SQL_CUR0x7fdabf04ca00
默认状况下Tableau使用cursor模式从AnalyticDB for PostgreSQL拉取数据:code
FETCH 10000 in “SQL_CUR0x7fe678049e00”
若是提取的数据量很大,而且Tableau服务器的内存足够放下全部的查询数据,能够经过关闭cursor的模式进行性能调优。
经过TDC文件关闭cursor模式:xml
<?xml version='1.0' encoding='utf-8' ?> <connection-customization class='greenplum' enabled='true' version='4.3'> <vendor name='greenplum'/> <driver name='greenplum'/> <customizations> <customization name='odbc-connect-string-extras' value='UseDeclareFetch=0' /> </customizations> </connection-customization>
将该文件以tdc为后缀名,Desktop版本的Tableau放到DocumentsMy Tableau RepositoryDatasources下面,其余版本的一样放置到对应的Datasources目录下,重启Tableau便可生效。
也能够修改fetch的size,让其每次fetch更多的数据:ip
<?xml version='1.0' encoding='utf-8' ?> <connection-customization class='greenplum' enabled='true' version='4.3'> <vendor name='greenplum'/> <driver name='greenplum'/> <customizations> <customization name='odbc-connect-string-extras' value='Fetch=100000' /> </customizations> </connection-customization>
链接创建时能够经过初始化SQL设置特定参数,例如:
SQL后面不要带‘;’,不然执行会报错,由于Tableau会将该SQL封装执行,中间若是有分号会报语法错误。一样在自定义SQL时,SQL结尾也不能加‘;’。
本文为云栖社区原创内容,未经容许不得转载。