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

Hologres:Paimon ベースの Hologres サーバーレスデータレイクソリューション

最終更新日:Feb 04, 2026

このトピックでは、Paimon ベースの Hologres サーバーレスデータレイクソリューションについて説明します。このソリューションにより、リソースを予約することなく、Object Storage Service (OSS) に保存されている Paimon データに対するクエリを、柔軟かつオンデマンドで高速化できます。課金は SQL 文でスキャンされたデータ量に対してのみ発生します。このソリューションは、柔軟でスケーラブルなデータレイクアーキテクチャを提供し、データの管理と活用を改善し、データドリブンな意思決定を向上させ、ビジネスイノベーションを推進するのに役立ちます。

背景情報

Apache Paimon は、ストリーミング処理とバッチ処理のための統一されたレイクストレージフォーマットであり、高スループットの書き込みと低レイテンシーのクエリをサポートします。Alibaba Cloud のビッグデータプラットフォーム上の主要なコンピュートエンジン (Flink、Hologres、MaxCompute、EMR Spark など) は、Paimon と緊密に統合されています。Apache Paimon を使用すると、OSS 上に独自のデータレイクストレージサービスを迅速に構築し、これらのコンピュートエンジンに接続してデータ分析を行うことができます。詳細については、「Apache Paimon」をご参照ください。

Hologres 共有クラスターは、MaxCompute の外部テーブルおよび OSS データレイク向けに設計された、サーバーレスのオンラインクエリ高速化サービスを提供します。ストレージとコンピュートが分離された Hologres のクラウドネイティブアーキテクチャ上に構築されており、共有クラスターは OSS 内のレイクデータの分析を高速化します。オンデマンドで使用でき、SQL 文によってスキャンされたデータ量に基づいて課金されます。詳細については、「共有クラスターの概要」をご参照ください。

アーキテクチャ

image.png

前提条件

  • Hologres 共有クラスターインスタンスを購入済みであること。購入方法の詳細については、「Hologres インスタンスの購入」をご参照ください。

  • Data Lake Formation (DLF) のメタデータ作成サービスを有効化済みであること。詳細については、「DLF クイックスタート」をご参照ください。

  • (オプション) DLF のカスタムデータカタログ機能を使用するには、まず DLF でデータカタログを作成する必要があります。このカタログは、外部サーバーを作成する際に使用します。詳細については、「データカタログの作成」をご参照ください。

  • データレイクストレージ用に Object Storage Service (OSS) を有効化済みであること。

  • OSS-HDFS サービスを有効化済みであること。詳細については、「OSS-HDFS サービスを有効にする」をご参照ください。

説明

Hologres 専用インスタンスも、共有クラスターインスタンスと同様の手順で Paimon や他のレイク形式のデータの読み取りをサポートしています。このトピックでは、共有クラスターインスタンスを例として使用します。

注意事項

  • Hologres V2.1.6 以降のみが Paimon データレイクからのデータクエリをサポートします。

  • Hologres 共有クラスターは、OSS データレイクからのデータ読み取りのみをサポートしており、OSS データのインポートはサポートしていません。OSS データを Hologres の内部テーブルにインポートするには、専用インスタンスを使用してください。

手順

  1. 新しい EMR データレイクインスタンスの購入

    EMR on ECS コンソールにログインし、EMR クラスターを作成します。詳細については、「クラスターの作成」をご参照ください。主なパラメーター設定は次のとおりです:

    設定項目

    説明

    ビジネスシナリオ

    [データレイク] を選択します。

    オプションサービス

    必要なサービスは Spark、Hive、Paimon です。必要に応じて他のサービスを選択します。

    [メタデータ]

    [DLF 統合メタデータ] を選択します。

    DLF データカタログ

    • カスタム DLF データカタログを使用するには、作成済みのカタログ (例:paimon_catalog) を選択します。詳細については、「データカタログの作成」をご参照ください。

    • デフォルトのカタログを選択することもできます。DLF のデフォルトカタログを使用する場合、Hologres 共有クラスターで外部サーバーを作成するときに dlf_catalog パラメーターを指定する必要はありません。

    クラスター ストレージ ルートパス

    OSS-HDFS サービスが有効化されているバケットのパスを選択します。

  2. データソースを構築します。

    この例では、10 GB の TPC-H データを使用します。EMR Hive を使用して、textfile 形式のデータソースを構築します。データソースの構築方法の詳細については、「EMR Spark を使用したデータの構築」をご参照ください。

    重要

    データ生成時、./dbgen -vf -s 100 コマンドを ./dbgen -vf -s 10 に置き換えてください。

  3. Spark を使用した Paimon テーブルの作成

    1. Spark SQL にログオンします。

      spark-sql --conf spark.sql.catalog.paimon=org.apache.paimon.spark.SparkCatalog --conf spark.sql.catalog.paimon.metastore=dlf
    2. データベースを作成します。

      -- データベースを作成します。
      CREATE DATABASE paimon_db location 'oss://${oss-hdfs-bucket}/tpch_10G/paimon_tpch_10g/';

      ${oss-hdfs-bucket}:OSS-HDFS サービスが有効化されているバケットの名前です。

    3. Paimon テーブルを作成し、「データソースの構築」ステップで準備した textfile データをインポートします。

      -- 作成したデータベースに切り替えます。
      use paimon_db;
      
      -- テーブルを作成し、データをインポートします。
      
      CREATE TABLE nation_paimon 
      TBLPROPERTIES (
          'primary-key' = 'N_NATIONKEY'
      )
      AS SELECT * from ${source}.nation_textfile;
      
      CREATE TABLE region_paimon
      TBLPROPERTIES (
          'primary-key' = 'R_REGIONKEY'
      )
      AS SELECT * FROM ${source}.region_textfile;
      
      CREATE TABLE supplier_paimon
      TBLPROPERTIES (
          'primary-key' = 'S_SUPPKEY'
      )
      AS SELECT * FROM ${source}.supplier_textfile;
      
      CREATE TABLE customer_paimon
      partitioned BY (c_mktsegment)
      TBLPROPERTIES (
          'primary-key' = 'C_CUSTKEY'
      )
      AS SELECT * FROM ${source}.customer_textfile;
      
      CREATE TABLE part_paimon
      partitioned BY (p_brand)
      TBLPROPERTIES (
          'primary-key' = 'P_PARTKEY'
      )
      AS SELECT * FROM ${source}.part_textfile;
      
      CREATE TABLE partsupp_paimon
      TBLPROPERTIES (
          'primary-key' = 'PS_PARTKEY,PS_SUPPKEY'
      )
      AS SELECT * FROM ${source}.partsupp_textfile;
      
      CREATE TABLE orders_paimon
      partitioned BY (o_orderdate)
      TBLPROPERTIES (
          'primary-key' = 'O_ORDERKEY'
      )
      AS SELECT * FROM ${source}.orders_textfile;
      
      CREATE TABLE lineitem_paimon
      partitioned BY (l_shipdate)
      TBLPROPERTIES (
          'primary-key' = 'L_ORDERKEY,L_LINENUMBER'
      )
      AS SELECT * FROM ${source}.lineitem_textfile;

      ${source}:*_textfile テーブルが格納されている Hive 内のデータベース名です。

  4. Hologres 共有クラスターに外部サーバーを作成します。

    説明

    新しい EMR データレイクインスタンスを作成する際:

    • [DLF データカタログ] をカスタムデータカタログに設定した場合、dlf_catalog パラメーターをそのカスタムカタログに設定する必要があります。

    • [DLF データカタログ] をデフォルトカタログに設定した場合、dlf_catalog パラメーターを設定する必要はありません。コマンドを実行する前に削除できます。

    -- 外部サーバーを作成します。
    
    CREATE SERVER IF NOT EXISTS dlf_server FOREIGN data wrapper dlf_fdw options 
    (
        dlf_catalog 'paimon_catalog',
        dlf_endpoint 'dlf-share.cn-shanghai.aliyuncs.com',
        oss_endpoint 'cn-shanghai.oss-dls.aliyuncs.com'
    );
  5. Hologres 共有クラスターでの Paimon テーブル用外部テーブルの作成

    IMPORT FOREIGN SCHEMA paimon_db LIMIT TO
    (
      lineitem_paimon
    )
    FROM SERVER dlf_server INTO public options (if_table_exist 'update');
  6. データをクエリします。

    次の SQL 文は Q1 の例です:

    SELECT
      l_returnflag,
      l_linestatus,
      SUM(l_quantity) AS sum_qty,
      SUM(l_extendedprice) AS sum_base_price,
      SUM(l_extendedprice * (1 - l_discount)) AS sum_disc_price,
      SUM(l_extendedprice * (1 - l_discount) * (1 + l_tax)) AS sum_charge,
      AVG(l_quantity) AS avg_qty,
      AVG(l_extendedprice) AS avg_price,
      AVG(l_discount) AS avg_disc,
      COUNT(*) AS count_order
    FROM
      lineitem_paimon
    WHERE
      l_shipdate <= date '1998-12-01' - interval '120' DAY
    GROUP BY
      l_returnflag,
      l_linestatus
    ORDER BY
      l_returnflag,
      l_linestatus;
    説明

    他の 21 の SQL 文については、「22 の TPC-H クエリ文」をご参照ください。