本文為您介紹即時數倉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後,您可以將需要展示的資料建立為資料集並製作報表。
使用可視化方式展示客戶畫像。
根據業務需求展示報表。樣本所配置的報表展示如下。