すべてのプロダクト
Search
ドキュメントセンター

Hologres:大量のMaxComputeデータをリアルタイムで分析する

最終更新日:Jan 11, 2025

このトピックでは、大量のMaxComputeデータをクエリし、クエリ結果を視覚的に分析および表示する方法について説明します。

前提条件

  • MaxComputeがアクティブ化されていること。詳細については、「MaxComputeとDataWorksをアクティブ化する」をご参照ください。

    説明

    MaxComputeとHologresサービスを同じリージョンでアクティブ化してください。

  • Hologresインスタンスが購入され、HoloWebに接続されていること。詳細については、「HoloWebに接続してクエリを実行する」をご参照ください。

  • Quick BIがアクティブ化されていること。詳細については、「前提条件」をご参照ください。

背景情報

Hologresは、リアルタイムのインタラクティブ分析エンジンです。HologresはPostgreSQLと互換性があり、基盤レイヤーでMaxComputeとシームレスに統合されています。

外部テーブルを作成して、MaxComputeデータのクエリを高速化できます。

この例では、淘宝網ストアを使用して、顧客の地域分布、年齢構成、優良顧客数、1980年から1990年の間に生まれた優良顧客の地域分布などの情報を含む顧客ペルソナを作成する方法を説明します。

次の図は、Hologresを使用してMaxComputeのデータを直接クエリするプロセスを示しています。

image

  1. ストアにアクセスした顧客のデータをMaxComputeテーブルに保存します。

  2. Hologresに外部テーブルを作成して、MaxComputeのデータのクエリを高速化します。

  3. Quick BIをHologresインスタンスに接続して、顧客ペルソナを視覚的に表示します。

手順

  1. MaxComputeデータソースを準備します。

    MaxComputeにテーブルを作成し、テーブルにデータをインポートします。詳細については、「テーブルの作成」をご参照ください。

    このベストプラクティスでは、MaxComputeプロジェクト public_data 内の以下の既存のテーブルを使用します。

    MaxComputeテーブル

    データエントリ

    customer

    1,200万

    customer_address

    600万

    customer_demographics

    192万

  2. Hologresに外部テーブルを作成し、テーブルをクエリします。

    HoloWeb に外部テーブルを作成して、MaxComputeのデータのクエリを高速化します。手順:

    1. 外部テーブルを作成します。

      HoloWeb コンソールにログインします。上部のナビゲーションバーで、[メタデータ管理] > [maxcomputeクエリ高速化] > [外部テーブルの作成] を選択して、視覚的に外部テーブルを作成します。

      クエリするMaxComputeテーブルの名前(public_data.customerなど)を入力します。次に、テーブル内のフィールドが表示されます。同期するフィールドを選択し、[送信] をクリックします。

      説明
      • Hologresインスタンスとは異なるリージョンにある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. Hologresの外部テーブルを使用して、MaxComputeテーブルのデータをクエリします。

      テーブルの詳細ページで、[テーブルのクエリ] をクリックします。[アドホッククエリ] ページで、コードエディターに次のサンプルSQLステートメントを入力し、[実行] アイコンをクリックして、外部テーブルのデータをクエリします。

      サンプルSQLステートメント:

      # 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年の間に生まれた顧客の数をクエリし、1980年から1989年の間に生まれた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を使用してデータを分析します。

    Quick BIをHologresインスタンスに接続して、MaxComputeからクエリされたデータを視覚的に分析および表示します。手順:

    1. データソースを追加します。

      Quick BI console にログインし、HologresにPostgreSQLデータソースを追加します。詳細については、「Quick BI」をご参照ください。

    2. データセットを作成します。

      Quick BIをHologresに接続した後、データセットを作成し、必要なデータをデータセットにインポートしてレポートを作成します。

    3. 顧客ペルソナを視覚的に表示します。

      ビジネス要件に基づいてレポートを表示します