本文為您介紹實時數倉Hologres如何實時查詢海量MaxCompute數據,并以可視化方式分析和展現查詢結果的最佳實踐。
前提條件
開通MaxCompute,詳情請參見開通MaxCompute和DataWorks。
說明請確保MaxCompute和Hologres的地域相同。
開通Hologres并連接至HoloWeb,詳情請參見連接HoloWeb并執行查詢。
開通Quick BI,詳情請參見連接數據源。
背景信息
Hologres是兼容PostgreSQL協議的實時交互式分析產品,在底層與MaxCompute無縫連接。
Hologres支持使用創建外部表的方式,實現MaxCompute加速查詢,查看MaxCompute的數據。
本文以搭建訪問某淘寶店鋪的客戶畫像為例,展示客戶所在城市、客戶年齡、首選客戶和出生于1980~1990年的首選客戶所在城市人數的分布情況。
使用Hologres加速查詢MaxCompute數據的完整鏈圖如下所示。
訪問店鋪的客戶數據存儲在MaxCompute表中。
使用Hologres的創建外部表方式,實現MaxCompute加速查詢。
Hologres對接數據大屏Quick BI,使用可視化方式展示客戶畫像。
操作步驟
準備MaxCompute數據源。
在MaxCompute中創建一張表并寫入數據,詳情請參見創建表。
本次試驗采用已有的阿里云MaxCompute中public_data項目的如下MaxCompute表。獲取表的方法請參見公開數據集。
MaxCompute表名稱
數據量
customer
1200萬
customer_address
600萬
customer_demographics
192萬
Hologres創建外部表并查詢表數據。
通過使用HoloWeb創建外部表,實現MaxCompute加速查詢。操作步驟如下:
新建外部表。
登錄HoloWeb,單擊 ,使用可視化的方式創建外部表。
輸入MaxCompute表的名稱,例如
public_data.customer
就可以索引出表的字段,您可以根據實際業務,選擇需要同步的表字段,單擊提交。說明目前暫不支持跨地域查詢MaxCompute表的數據。
創建外部查詢MaxCompute數據是通過外部服務器來實現的,您可以直接調用Hologres底層已創建的名為odps_server的外部表服務器。其詳細原理請參見Postgres FDW。
您也可以使用SQL語句批量創建外部表。
IMPORT FOREIGN SCHEMA public_data LIMIT to( customer, customer_address, customer_demographics, inventory,item, date_dim, warehouse) FROM server odps_server INTO PUBLIC options(if_table_exist 'update');
預覽外部表數據。
成功新建外部表后,在左側實例管理目錄,鼠標右擊新建的外部表,單擊打開表,在表詳情頁單擊數據預覽,預覽MaxCompute表的數據。
說明數據預覽只展示部分數據。
查詢外部表數據。
在表詳情頁單擊查詢表,在臨時Query查詢頁面,輸入如下示例SQL命令后單擊運行,查詢外部表的數據。
示例SQL語句如下。
# SQL1: 查詢首選客戶分布情況,按人數降序排列。 SELECT c_preferred_cust_flag, count(*) AS cnt FROM customer WHERE c_preferred_cust_flag IS NOT NULL GROUP BY c_preferred_cust_flag ORDER BY cnt DESC LIMIT 10; # SQL2: 查詢客戶年齡人數大于1000的分布情況,按人數降序排列。 SELECT c_birth_year, count(*) AS cnt FROM customer WHERE c_birth_year IS NOT NULL GROUP BY c_birth_year HAVING count(*) > 1000 ORDER BY cnt DESC LIMIT 10; # SQL3: 查詢客戶所在城市的人數大于10的分布情況,按人數降序排序。 SELECT ca_city, count(*) AS cnt FROM customer , customer_address WHERE c_current_addr_sk = ca_address_sk AND ca_city IS NOT NULL GROUP BY ca_city HAVING count(*) > 10 ORDER BY cnt DESC LIMIT 10; # SQL4: 查詢首選客戶出生于1980~1990年且所在城市的人數大于10的分布情況,按人數降序排列。 SELECT ca_city, count(*) AS cnt FROM customer , customer_address WHERE c_current_addr_sk = ca_address_sk AND c_birth_year >= 1980 AND c_birth_year < 1990 AND c_preferred_cust_flag = 'Y' AND ca_city IS NOT NULL GROUP BY ca_city HAVING count(*) > 10 ORDER BY cnt DESC LIMIT 10;
使用Quick BI分析數據。
Hologres查詢出的MaxCompute數據直接對接Quick BI,使用可視化方式分析和展示數據。操作步驟如下:
添加數據源。
進入Quick BI控制臺首頁,選擇PostgreSQL數據源,并填寫配置信息,詳情請參見Quick BI。
創建數據集。
成功連接Quick BI后,您可以將需要展示的數據創建為數據集并制作報表。
本次試驗通過點擊使用SQL代碼創建數據集的方式來創建數據集,如下圖所示。
使用可視化方式展示客戶畫像。
根據業務需求展示報表。示例所配置的報表展示如下。