1. 程式人生 > >Tableau BI工具對接 AnalyticDB for PostgreSQL資料來源

Tableau BI工具對接 AnalyticDB for PostgreSQL資料來源

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結尾也不能加‘;’。

作者:陸封

原文連結

本文為雲棲社群原創內容,未經