Tableau-BI工具对接-AnalyticDB-for-PostgreSQL数据源

26次阅读

共计 2031 个字符,预计需要花费 6 分钟才能阅读完成。

AnalyticDB for PostgreSQL(原 HybridDB for PostgreSQL)作为高性能分析型数据库,可以支持用户对其业务数据进行实时分析,能够让企业敏锐感知市场动态,做出必要决策。
Tableau 是一款数据分析与可视化工具,它支持连接本地或云端数据,不管是电子表格,还是数据库数据,都能进行无缝连接。本文介绍 Tableau 以 AnalyticDB for PostgreSQL 作为数据源,如何进行有效的数据分析。

使用 AnalyticDB for PostgreSQL

AnalyticDB for PostgreSQL 基于 Greenplum,所以在选择连接器的时候选择 Greenplum 连接器:

点开出现登录页面,填上 DB 的连接信息完成登录。

登录后页面:

根据指导操作,可以将任意表进行统计分析,并进行报表展示。

例如使用 TPCH 数据中的 lineitem,点开一张工作表可以进行任意维度的数据展示了:

每从度量或者维度中选择一个字段,放到工作表区时,Tableau 都会发送一个 query 到 AnalyticDB for PostgreSQL 进行数据查询,例如上述图表发送的 query:

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

一些注意事项

关掉 cursor

默认情况下 Tableau 使用 cursor 模式从 AnalyticDB for PostgreSQL 拉取数据:

 FETCH 10000 in“SQL_CUR0x7fe678049e00”

如果提取的数据量很大,并且 Tableau 服务器的内存足够放下所有的查询数据,可以通过关闭 cursor 的模式进行性能调优。
通过 TDC 文件关闭 cursor 模式:

<?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 更多的数据:

<?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 设置特定参数,例如:

SQL 后面不要带‘;’,否则执行会报错,因为 Tableau 会将该 SQL 封装执行,中间如果有分号会报语法错误。同样在自定义 SQL 时,SQL 结尾也不能加‘;’。


本文作者:陆封

阅读原文

本文为云栖社区原创内容,未经允许不得转载。

正文完
 0