Quick BI為您提供海量數據的實時在線分析服務以及豐富的可視化效果,您可以通過拖拽式操作或SQL語句方式,輕松地完成數據分析、業務數據探查及報表制作。本文為您介紹如何使用實時數倉Hologres連接Quick BI,并進行可視化分析。
前提條件
開通Hologres,詳情請參見購買Hologres。
開通Quick BI,詳情請參見Quick BI購買、升級、續費、欠費。
背景信息
Hologres與Quick BI高效連通,支持通過Hologres數據源直接連接Quick BI,將Hologres高效查詢的數據直接進行可視化分析。
當前Quick BI高級版和專業版支持Hologres數據源,其余版本請使用PostgreSQL數據源,更多關于PostgreSQL數據源的操作請參見阿里云數據源PostgreSQL。
本文以高級版Quick BI為例,為您演示連接Hologres并進行可視化分析的相關操作。
使用限制
Quick BI當前僅支持使用公共網絡和經典網絡連接Hologres,不支持使用VPC網絡連接Hologres。
您無需在Hologres中配置白名單即可連接至Quick BI。
Hologres連接Quick BI時,您需要根據Quick BI的版本選擇相應的數據源,推薦使用Hologres數據源。
Quick BI當前僅支持在使用公網或者指定VPC網絡時,進行白名單限制。
使用Quick BI進行可視化分析
添加數據源。
在Quick BI管理控制臺頁面,單擊頂部菜單欄的工作空間。
在工作空間頁面左側導航欄,單擊數據源。
在數據源頁面,單擊右上角的新建數據源。
選擇目標數據源并配置相應參數。
選擇Alibaba Hologres數據源。
配置添加Hologres數據源的各項參數。
參數配置(使用指定VPC網絡連接Hologres)。
參數名稱
描述
說明
顯示名稱
按照您的需求填寫,用于分辨數據源使用。
無
數據庫地址
Hologres實例的指定VPC網絡域名。
您可以登錄管理控制臺,進入實例詳情頁,從網絡信息的域名列獲取指定VPC的域名。
說明此處不包含端口,例如:
hgpostcn-cn-nwy364b5v009-cn-shanghai-vpc-st.hologres.aliyuncs.com
端口
Hologres實例的指定VPC網絡端口。
您可以登錄管理控制臺,進入實例詳情頁,從網絡信息的域名列獲取指定VPC的域名的端口。
數據庫
連接的Hologres實例的數據庫名稱。
您可以登錄管理控制臺,進入實例詳情頁,從數據庫管理頁面獲取。
Schema
默認為public Schema。
您可以使用新創建的Schema,在數據源配置了Schema后,列表中會展示當前Schema下所有的表。但是在使用即席SQL時,還需要在表名稱前手動添加對應的Schema名(即schema.table),才能正確索引到Schema下面的表。
用戶名
當前賬號的AccessKey ID。
您可以單擊AccessKey 管理,獲取AccessKey ID。
密碼
當前賬號的AccessKey Secret。
您可以單擊AccessKey 管理,獲取AccessKey Secret。
VPC數據源開關
需要勾選該開關
無
購買者accessId
購買實例用戶的AccessKey ID。
無
購買者accessKey
購買實例用戶的AccessKey Secret。
無
實例id
Hologres實例ID
無
區域
Hologres實例所在的地域。
無
參數配置(使用公網連接Hologres)。
參數名稱
描述
說明
顯示名稱
按照您的需求填寫,用于分辨數據源使用。
無
數據庫地址
Hologres實例的公網網絡域名。
您可以登錄管理控制臺,進入實例詳情頁,從網絡信息的域名列獲取公網的域名。
說明此處不包含端口。
端口
Hologres實例的公網網絡端口。
您可以登錄管理控制臺,進入實例詳情頁,從網絡信息的域名列獲取公網域名的端口。
數據庫
連接的Hologres實例的數據庫名稱。
您可以登錄管理控制臺,進入實例詳情頁,從DB管理頁面獲取。
Schema
默認為public Schema。
您可以使用新創建的Schema,在數據源配置了Schema后,列表中會展示當前Schema下所有的表。但是在使用即席SQL時,還需要在表名稱前手動添加對應的Schema名(即schema.table),才能正確索引到Schema下面的表。
用戶名
當前賬號的AccessKey ID。
您可以單擊AccessKey 管理,獲取AccessKey ID。
密碼
當前賬號的AccessKey Secret。
您可以單擊AccessKey 管理,獲取AccessKey Secret。
VPC數據源開關
需要關閉該開關
無
參數配置(使用經典網絡連接Hologres)。
參數名稱
描述
說明
顯示名稱
按照您的需求填寫,用于分辨數據源使用。
無
數據庫地址
Hologres實例的經典網絡域名。
您可以登錄管理控制臺,進入實例詳情頁,從網絡信息的域名列獲取經典網絡的域名。
說明此處不包含端口,例如:
hgpostcn-cn-nwy364b5v009-cn-shanghai-vpc.hologres.aliyuncs.com
端口
Hologres實例的經典網絡端口。
您可以登錄管理控制臺,進入實例詳情頁,從網絡信息的域名列獲取經典網絡域名的端口。
數據庫
連接的Hologres實例的數據庫名稱。
您可以登錄管理控制臺,進入實例詳情頁,從DB管理頁面獲取。
Schema
默認為public Schema。
您可以使用新創建的Schema,在數據源配置了Schema后,列表中會展示當前Schema下所有的表。但是在使用即席SQL時,還需要在表名稱前手動添加對應的Schema名(即schema.table),才能正確索引到Schema下面的表。
用戶名
當前賬號的AccessKey ID。
您可以單擊AccessKey 管理,獲取AccessKey ID。
密碼
當前賬號的AccessKey Secret。
您可以單擊AccessKey 管理,獲取AccessKey Secret。
VPC數據源開關
需要關閉該開關
無
參數配置完成后,您可以單擊連接測試,測試Quick BI與Hologres的連接狀態:
如果顯示數據源連通性正常,則表示Quick BI與Hologres連接成功。
如果顯示數據源連通性異常,請檢查參數是否正確,則表示Quick BI與Hologres連接失敗。請根據報錯信息處理異常。
單擊確定,完成配置。
可視化分析數據。
成功連接數據源后,在
頁面,單擊已創建的數據源,顯示當前數據庫中的所有表。如果您希望使用界面化操作完成數據的可視化分析,則可以使用拖拽方式。
如果您希望使用SQL語句完成數據的可視化分析,則可以使用即席分析SQL方式。
兩種方式的具體操作如下:
拖拽方式。
單擊目標表操作列的圖標,創建數據集。
配置創建數據集對話框的名稱和位置參數。
單擊確定。
在我的數據集頁面,您可以單擊目標數據集操作列下的圖標,進行相應操作:
單擊圖標,查看當前數據集的數據。
單擊圖標,新建儀表盤,將表數據導入并生成圖表,進行可視化展示。
單擊圖標,新建電子表格,將目標表數據導入并生成電子表格,進行可視化展示。
單擊圖標,執行更多操作。例如,數據脫敏、緩存配置及清除緩存等。
具體功能的操作,詳情請參見概述。
示例新建儀表板,在儀表板編輯頁面創建堆積柱狀圖,并設計圖表樣式展示數據。
即席分析SQL方式。
在數據源頁面,單擊右上角的即席分析SQL,進入即席分析SQL頁面。
您可以根據業務需求輸入查詢SQL語句,并單擊執行。
獲取需要查詢的數據后,單擊創建數據集。
配置保存自定義SQL對話框的名稱、位置及SQL參數。
單擊確定。
成功創建數據集后,您可以在數據集中可視化分析表數據,詳情請參見自定義SQL。
時間篩選控件最佳實踐
在Hologres創建表時,您可以設置Segment_key(別名event_time_column)屬性,對時間類型過濾條件進行索引優化,防止全表掃描并加速查詢。Hologres默認把表中第一個時間戳類型作為Segment_key。
Quick BI支持高級的SQL占位符功能,您可以使用SQL占位符來設置時間控件。更多SQL占位符信息,請參見自定義SQL。
設置時間篩選字段占位符。
執行以下步驟前,需要在Hologres創建名稱為LINEITEM的內部表,并且將MaxCompute公共空間MAXCOMPUTE_PUBLIC_DATA中public.odps_lineitem_10g表的數據導入到LINEITEM表中。
在Quick BI管理控制臺的數據源頁面,單擊右上角的SQL創建數據集,進入新建代碼片段對話框。
輸入以下SQL語句,從LINEITEM表中取出時間戳數據。
SELECT * FROM "public"."lineitem" AS AME_T_1_ WHERE AME_T_1_."l_shipdate" >= TO_TIMESTAMP('${report_date.get(0)}', 'yyyy-MM-dd hh24:mi:ss') AND AME_T_1_."l_shipdate" <= TO_TIMESTAMP('${report_date.get(1)}', 'yyyy-MM-dd hh24:mi:ss')
單擊參數設置,設置SQL占位符。
在變量類型下拉列表選擇“日期-年月日時分秒 > YYYY-MM-DD HH-MI-SS”。
單擊確定后,單擊確認編輯。
在儀表板編輯頁面,單擊新建篩選項,在查詢條件設置對話框,字段選擇所設置的SQL占位符。
在儀表板編輯頁面,單擊查看SQL,獲取到如下SQL。
SELECT AME_T_1_."l_shipmode" AS T_A0_2_, AME_T_1_."l_shipinstruct" AS T_A1_3_, SUM(AME_T_1_."l_extendedprice") AS T_A2_4_ FROM "public"."lineitem" AS AME_T_1_ WHERE AME_T_1_."l_shipdate" >= TO_TIMESTAMP('1993-01-01 00:00:00', 'yyyy-MM-dd hh24:mi:ss') AND AME_T_1_."l_shipdate" <= TO_TIMESTAMP('1998-12-31 23:59:59', 'yyyy-MM-dd hh24:mi:ss') GROUP BY AME_T_1_."l_shipmode", AME_T_1_."l_shipinstruct" LIMIT 1000 OFFSET 0
驗證Segment_key是否生效。
您可查看SQL的執行計劃中是否有Segment Filter的關鍵字出現以驗證Segment_key是否生效。
登錄Hologres管理控制臺,單擊左側實例列表。
在實例詳情頁左側導航欄,單擊數據庫管理。
在DB授權頁面,單擊SQL編輯器。
在SQL編輯器頁面,單擊左上角的新建SQL窗口。
在新增的臨時Query查詢頁面,選擇已創建的實例名和數據庫后,請您在SQL查詢的編輯框輸入如下語句,單擊運行。
以下SQL語句用來查看獲取到SQL的執行計劃,用于驗證Segment_key是否生效。
explain SELECT AME_T_1_."l_shipmode" AS T_A0_2_, AME_T_1_."l_shipinstruct" AS T_A1_3_, SUM(AME_T_1_."l_extendedprice") AS T_A2_4_ FROM "public"."lineitem" AS AME_T_1_ WHERE AME_T_1_."l_shipdate" >= TO_TIMESTAMP('1993-01-01 00:00:00', 'yyyy-MM-dd hh24:mi:ss') AND AME_T_1_."l_shipdate" <= TO_TIMESTAMP('1998-12-31 23:59:59', 'yyyy-MM-dd hh24:mi:ss') GROUP BY AME_T_1_."l_shipmode", AME_T_1_."l_shipinstruct" LIMIT 1000 OFFSET 0
在結果頁簽中獲取執行計劃,如下。
-> Limit (cost=0.00..1.01 rows=1 width=24) -> Partial HashAggregate (cost=0.00..1.01 rows=1 width=24) Group Key: l_shipmode, l_shipinstruct -> Redistribute Motion (cost=0.00..1.01 rows=10 width=24) -> Result (cost=0.00..1.01 rows=10 width=24) -> Partial HashAggregate (cost=0.00..1.01 rows=10 width=24) Group Key: l_shipmode, l_shipinstruct -> Parallelism (Gather Exchange) (cost=0.00..1.01 rows=32 width=24) -> Result (cost=0.00..1.01 rows=32 width=24) -> DecodeNode (cost=0.00..1.01 rows=32 width=24) -> Partial HashAggregate (cost=0.00..1.01 rows=32 width=24) Group Key: l_shipmode, l_shipinstruct -> Index Scan using holo_index:[1] on lineitem (cost=0.00..1.00 rows=1000 width=24) Segment Filter: ((l_shipdate >= '1993-01-01 00:00:00+08'::timestamp with time zone)
執行計劃中,出現了Segment Filter,說明Segment_key已生效,您可以使用SQL占位符創建的時間控件。