Hologres は、PostgreSQL と互換性を持つリアルタイムインタラクティブ分析エンジンであり、MaxCompute と深く統合されています。Hologres 内に外部テーブルを作成することで、MaxCompute のデータを移動させることなく直接 SQL クエリを実行でき、さらに BI ツールを接続して結果を可視化できます。
本チュートリアルでは、タオバオ店舗のデータセットを用いた完全な実践例を紹介します:MaxCompute に格納された顧客属性データをクエリし、Quick BI で顧客ペルソナを可視化します。
本チュートリアルの完了後には、以下の作業が可能になります:
-
Hologres 内に MaxCompute テーブルに対応する外部テーブルを作成します。
-
1,200 万件以上の顧客レコードに対して分析用 SQL クエリを実行します。
-
Quick BI を Hologres インスタンスに接続し、クエリ結果をインタラクティブなチャートとして表示します。
制限事項
開始する前に、以下の制約事項をご確認ください。
-
同一リージョン必須: Hologres は、Hologres インスタンスと異なるリージョンにある MaxCompute テーブルをクエリできません。両サービスを同一リージョンで有効化してください。
-
データプレビューは一部のみ: [データプレビュー] タブでは、外部テーブルの完全データではなく、サンプルデータのみが表示されます。
前提条件
開始する前に、以下の条件を満たしていることをご確認ください。
-
MaxCompute が有効化されていること。詳細については、「MaxCompute および DataWorks の有効化」をご参照ください。
-
Hologres インスタンスを購入済みで、HoloWeb に接続済みであること。詳細については、「HoloWeb への接続とクエリの実行」をご参照ください。
-
Quick BI が有効化されていること。詳細については、「前提条件」をご参照ください。
仕組み
-
顧客訪問データは MaxCompute テーブルに格納されます。
-
Hologres 内に外部テーブルを作成し、MaxCompute のデータに対するクエリを高速化します。
-
Quick BI が Hologres インスタンスに接続され、顧客ペルソナが可視化形式で表示されます。
ステップ 1:MaxCompute データソースの準備
本チュートリアルでは、MaxCompute プロジェクト public_data 内の以下の既存テーブルを使用します。
| MaxCompute テーブル | データ件数 |
|---|---|
| customer | 1,200万 |
| customer_address | 600 万件 |
| customer_demographics | 192万 |
独自のデータを利用する場合は、MaxCompute 内でテーブルを作成し、データをインポートしてください。詳細については、「テーブルの作成」をご参照ください。
ステップ 2:Hologres 内での外部テーブルの作成
HoloWeb を使用して、MaxCompute テーブルに対応する外部テーブルを作成します。
外部テーブルの作成
-
HoloWeb コンソールにログインします。
-
上部ナビゲーションバーから、[メタデータ管理] > [MaxCompute クエリ高速化] > [外部テーブルの作成] の順に選択します。
-
クエリ対象の MaxCompute テーブル名(例:
public_data.customer)を入力します。テーブルのフィールドが表示されます。 -
同期対象のフィールドを選択し、[送信] をクリックします。
複数の外部テーブルを一度に作成する場合は、[アドホッククエリ] ページで以下の 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');
外部テーブルのデータプレビュー
[インスタンス管理] パネルで、外部テーブルを右クリックし、[テーブルを開く] を選択します。テーブル詳細ページで、[データプレビュー] をクリックします。
データのクエリ
テーブル詳細ページで、[テーブルのクエリ] をクリックします。[アドホッククエリ] ページのコードエディタに SQL ステートメントを入力し、[実行] アイコンをクリックします。
以下に示す 4 つのサンプルクエリは、すべて customer および customer_address テーブル(public_data プロジェクト内)に対して実行されます。
-- SQL 1:お気に入りフラグ別顧客数(降順ソート)
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;
-- SQL 2:生年別顧客数(1,000 人を超える年)
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;
-- SQL 3:都市別顧客数(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;
-- SQL 4:1980 年~1989 年生まれのお気に入り顧客を都市別に集計
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 による結果の可視化
Quick BI を Hologres インスタンスに接続し、クエリ結果をチャート形式で表示します。
-
データソースの追加。 Quick BI コンソールにログインし、Hologres を PostgreSQL データソースとして追加します。詳細については、「Quick BI」をご参照ください。
-
データセットの作成。 Quick BI と Hologres の接続後に、データセットを作成し、必要なデータをインポートしてレポートを作成します。
-
顧客ペルソナの表示。 業務要件に基づき、レポートの構築および表示を行います。
次のステップ
-
より多くのレポートを作成するには、MaxCompute から追加の外部テーブルを追加し、Quick BI で新しいデータセットを作成してください。
-
本チュートリアルで使用した外部テーブルの構文について詳しくは、PostgreSQL の postgres_fdw ドキュメントをご参照ください。