全部產品
Search
文件中心

Hologres:即時分析海量MaxCompute資料

更新時間:Aug 07, 2024

本文為您介紹即時數倉Hologres如何即時查詢海量MaxCompute資料,並以可視化方式分析和展現查詢結果的最佳實務。

前提條件

背景資訊

Hologres是相容PostgreSQL協議的即時互動式分析產品,在底層與MaxCompute無縫串連。

Hologres支援使用建立外部表格的方式,實現MaxCompute加速查詢,查看MaxCompute的資料。

本文以搭建訪問某淘寶店鋪的客戶畫像為例,展示客戶所在城市、客戶年齡、首選客戶和出生於1980~1990年的首選客戶所在城市人數的分布情況。

使用Hologres加速查詢MaxCompute資料的完整鏈路如下所示。

  1. 訪問店鋪的客戶資料存放區在MaxCompute表中。

  2. 使用Hologres的建立外部表格方式,實現MaxCompute加速查詢。

  3. Hologres對接資料大屏Quick BI,使用可視化方式展示客戶畫像。

操作步驟

  1. 準備MaxCompute資料來源。

    在MaxCompute中建立一張表並寫入資料,詳情請參見建立表

    本次實驗採用已有的阿里雲MaxCompute中public_data專案的如下MaxCompute表。

    MaxCompute表名稱

    資料量

    customer

    1200萬

    customer_address

    600萬

    customer_demographics

    192萬

  2. Hologres建立外部表格並查詢表資料。

    通過使用HoloWeb建立外部表格,實現MaxCompute加速查詢。操作步驟如下:

    1. 建立外部表格。

      登入HoloWeb,單擊中繼資料管理 > MaxCompute加速 > 建立外部表格,使用可視化的方式建立外部表格。

      輸入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');
    2. 預覽外部表格資料。

      成功建立外部表格後,在左側執行個體管理目錄,滑鼠右擊建立的外部表格,單擊開啟表,在表詳情頁單擊資料預覽,預覽MaxCompute表的資料。

      說明

      資料預覽只展示部分資料。

    3. 查詢外部表格資料。

      在表詳情頁單擊查詢表,在臨時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;
  3. 使用Quick BI分析資料。

    Hologres查詢出的MaxCompute資料直接對接Quick BI,使用可視化方式分析和展示資料。操作步驟如下:

    1. 添加資料來源。

      進入Quick BI控制台首頁,選擇PostgreSQL資料來源,並填寫配置資訊,詳情請參見Quick BI

    2. 建立資料集。

      成功串連Quick BI後,您可以將需要展示的資料建立為資料集並製作報表。

      本次實驗使用即席查詢SQL的方式來建立資料集,如下圖所示。

    3. 使用可視化方式展示客戶畫像。

      根據業務需求展示報表。樣本所配置的報表展示如下。a