Tableau BI工具對接 AnalyticDB for PostgreSQL數據源

AnalyticDB for PostgreSQL(原HybridDB for PostgreSQL)做爲高性能分析型數據庫,能夠支持用戶對其業務數據進行實時分析,可以讓企業敏銳感知市場動態,作出必要決策。
Tableau是一款數據分析與可視化工具,它支持鏈接本地或雲端數據,無論是電子表格,仍是數據庫數據,都能進行無縫鏈接。本文介紹Tableau以AnalyticDB for PostgreSQL做爲數據源,如何進行有效的數據分析。sql

使用AnalyticDB for PostgreSQL

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

一些注意事項

關掉cursor

默認狀況下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設置特定參數,例如:

SQL後面不要帶‘;’,不然執行會報錯,由於Tableau會將該SQL封裝執行,中間若是有分號會報語法錯誤。一樣在自定義SQL時,SQL結尾也不能加‘;’。



本文做者:陸封

閱讀原文

本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索