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結尾也不能加‘;’。
本文爲雲棲社區原創內容,未經容許不得轉載。