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

Hologres:ClickHouse からのインポート

最終更新日:Feb 04, 2026

このトピックでは、データ開発のために、自社管理の ClickHouse インスタンスからリアルタイムデータウェアハウスである Hologres にデータベーステーブルとデータを移行する方法について説明します。

前提条件

  • Hologres を有効化します。 詳細については、「Hologres インスタンスの購入」をご参照ください。

  • ClickHouse インスタンスがあり、ClickHouse クライアントツールがインストールされていること。 インストールするには、ClickHouse-Client をクリックしてください。 インストールと使用方法の詳細については、「クイックスタート」をご参照ください。

  • PSQL クライアントを使用して Hologres インスタンスに接続します。 詳細については、「PSQL クライアント」をご参照ください。

背景情報

ClickHouse は、オンライン分析処理 (OLAP) 向けに設計された列指向 DBMS です。 Hologres は、Alibaba Cloud が開発したフルマネージドのインタラクティブ分析サービスで、サブ秒の応答時間と高い秒間クエリ数 (QPS) をサポートします。 ClickHouse から Hologres にテーブルとデータを移行することで、より良いデータ開発体験を得ることができます。

次の表は、Hologres と ClickHouse の機能を比較したものです。

カテゴリ

基準

ClickHouse

Hologres

製品

目的

ネットワークトラフィック分析

汎用リアルタイムデータウェアハウス:データ分析とオンラインサービス。

書き込み

ストレージ

カラムストア

カラムストアとローストア。

書き込み可視性

第 2 レベル (バッチ処理にはクライアント側でのバッチ化が必要;分散テーブルへの書き込みはシャードのレプリケーション完了に依存)

ミリ秒レベル (適応型書き込みバッチ。書き込み後すぐにデータをクエリ可能)

書き込み性能

高い

非常に高い

詳細ストレージ

サポート

サポート

プライマリキー

真のデータベースプライマリキーではない (一意性制約なし。インデックス作成と集約にのみ使用)

一意性制約をサポートする標準的なデータベースプライマリキー。

更新可能

不完全で限定的 (プライマリキーに基づく高 QPS の更新をサポートしない)。

完全にサポート (プライマリキーに基づく高 QPS の更新をサポート)。

リアルタイム書き込み

追加

  • 追加

  • insert or ignore

  • insert or replace

  • update

インデックス

  • primary key

  • minmax

  • ngram

  • token

  • bloom filter

  • bitmap

  • dictionary

  • segment

  • primary

  • clustering

説明

minmax、ブルームフィルター、ngram などのインデックスをユーザーに対して透過的に自動作成します。

クエリ

オプティマイザ

RBO (ルールベースオプティマイザ)

CBO (コストベースオプティマイザ)

フェデレーションクエリ

サポート (エンジンは HDFS と Kafka をサポート)

サポート (FDW は MaxCompute と Hive を直接読み取り)

事前集約

サポート (MergeTree 経由)

サポート (ストアドプロシージャとスケジュールジョブ経由)

高 QPS ポイントクエリ

サポート対象外

サポート、QPS は数千万を超える。

複雑な単一テーブルクエリ

良好なパフォーマンス

良好なパフォーマンス

複数テーブルの JOIN

パフォーマンスが低い

良好なパフォーマンス

SQL 構文

カスタム構文

PostgreSQL 互換で、より豊富な機能。

ウィンドウ関数

サポート対象外

サポート

トランザクション

ACID

なし (書き込み後の即時クエリ可能性を保証しない。結果整合性)

限定的なサポート (DDL トランザクション、単一行トランザクション、スナップショットベースの可視性をサポート)

コピー

災害復旧とバックアップ

レプリケーション (リモート ZooKeeper + ClickHouse) 経由で実装

Binlog 経由の論理レプリケーション。基盤メカニズム経由の物理レプリケーション。

高度な機能

Binlog

なし

Binlog を提供

ベクトル検索

ClickHouse 22.8 以降でサポート

サポート

空間データ

サポート対象外

サポート

セキュリティ管理

カスタム権限

PostgreSQL 互換の権限モデル、豊富なアクセス制御、IP 許可リスト、データマスキング。

ストレージとコンピューティングの分離

分離されていない。単一ノードの容量に制限される

分離されている。ほぼ無制限のストレージ容量。

可用性

手動フェイルオーバー処理

自動フェイルオーバー回復

O&M

複雑 (手動でのシャード分散メンテナンス)

フルマネージド

エコシステム

データ取り込み

Kafka、Flink、Spark など

Flink、Spark、JDBC、DataX など

BI ツール

限られた数の BI ツール (Tableau、Superset など) との統合をサポート

PostgreSQL エコシステムと互換。100 以上の主要な BI ツールとの統合をサポート。

データ型のマッピング

次の表は、ClickHouse と Hologres の間のデータ型のマッピングを示しています。

カテゴリ

ClickHouse

Hologres

日付

Date

Date

DateTime

TIMESTAMPTZ

DateTime(timezone)

TIMESTAMPTZ

DateTime64

TIMESTAMPTZ

Int8

1 バイトの INT はサポートされていません。代わりに SMALLINT を使用してください。

Int16

SMALLINT

Int32

INT

Int64

BIGINT

UInt8

INT

UInt16

INT

UInt32

BIGINT

UInt64

BIGINT

Float32

FLOAT

Float64

DOUBLE PRECISION

Decimal(P, S)

DECIMAL

Decimal32(S)

DECIMAL

Decimal64(S)

DECIMAL

Decimal128(S)

DECIMAL

ブール値

利用できません。代わりに UInt8 を使用してください。

BOOLEAN

文字

String

TEXT

FixString(N)

利用できません。代わりに TEXT を使用してください。

LowCardinality

利用できません。自動的に最適化されるか、call set_table_properties('x', 'dictionary_encoding_columns', 'col'); コマンドを使用して設定されます。

バイナリ

利用できません。String または FixString(N) を使用してください。

BIT(n)、VARBIT(n)、BYTEA、CHAR(n) などのデータ型。

その他

UUID

UUID

Enum

サポートされていません。代わりに TEXT を使用してください。

Nested、Tuple、Array

Array

メタデータ移行

メタデータ移行とは、主にテーブル作成のための DDL 文の移行を指します。

  1. ClickHouse クライアントで、次のコマンドを実行してソース ClickHouse インスタンス内のデータベースを一覧表示します。

    説明

    システムデータベースが結果に表示されますが、移行する必要はありません。除外してください。

    clickhouse-client --host="<host>" --port="<port>" --user="<username>" --password="<password>" --query="SHOW databases"  > database.list;

    パラメーターの説明は次のとおりです。

    パラメーター

    説明

    host

    ソース ClickHouse インスタンスのアドレス。

    port

    ソース ClickHouse インスタンスのポート。

    username

    ソース ClickHouse インスタンスにログインするためのアカウント。DML の読み書き権限、設定権限、および DDL 権限が必要です。

    password

    ソース ClickHouse インスタンスへのログインに使用するアカウントのパスワード。

  2. ClickHouse クライアントで、次のコマンドを実行してソース ClickHouse インスタンス内のテーブルを一覧表示します。

    説明

    .inner. で始まるテーブルはマテリアライズドビューの内部テーブルであり、移行する必要はありません。除外してください。

    clickhouse-client --host="<host>" --port="<port>" --user="<username>" --password="<password>" --query="SHOW tables from <database_name>" > table.list;

    パラメーターの説明は次のとおりです。

    パラメーター

    説明

    host

    ソース ClickHouse インスタンスのアドレス。

    port

    ソース ClickHouse インスタンスのポート。

    username

    ソース ClickHouse インスタンスにログインするためのアカウント。DML の読み書き権限、設定権限、および DDL 権限が必要です。

    password

    ソース ClickHouse インスタンスへのログインに使用するアカウントのパスワード。

    database_name

    ソース ClickHouse インスタンスで移行するテーブルを含むデータベースの名前。

    また、次のコマンドを実行して、ソース ClickHouse インスタンス内のすべてのデータベース名とテーブル名をクエリすることもできます。

    select distinct database, name from system.tables where database != 'system';
  3. ClickHouse クライアントで、次のコマンドを実行して、ソース ClickHouse インスタンスからテーブル作成用の DDL をエクスポートします。

    clickhouse-client --host="<host>" --port="<port>" --user="<username>" --password="<password>" --query="SHOW CREATE TABLE <database_name>.<table_name>"  > table.sql;

    また、system.tables メタデータテーブルを直接クエリすることもできます。

    SELECT * FROM system.tables
    where database = '<database_name>' and engine != 'Distributed';

    system.tables のフィールド変換ルールは次のとおりです。

    フィールド

    説明

    database

    ClickHouse のデータベースは Hologres (PostgreSQL 構文) のスキーマにマッピングされます。 たとえば、ClickHouse コマンド create database "<database_name>"; は Hologres コマンド create schema "<schema_name>"; にマッピングされます。

    name

    テーブル名。変更は不要です。

    engine

    Hologres には分散テーブルの概念や、ローカルテーブルと分散テーブルの区別がありません。 すべてのテーブルは、分散ストレージと分散クエリを備えた単一テーブルです。 したがって、engine='Distributed' のテーブルは除外してください。

    is_temporary

    一時テーブルは移行する必要はありません。 Hologres は現在、一時テーブルをサポートしていません。

    • data_paths

    • metadata_path

    • metadata_modification_time

    無視します。

    • dependencies_database

    • dependencies_table

    依存関係は、ビューやマテリアライズドビューで共通の考慮事項です。 Hologres では、依存関係のあるビューは、そのベーステーブルの前に作成する必要があります。 Hologres は現在、マテリアライズドビューをサポートしていないことに注意してください。

    create_table_query

    ソース ClickHouse テーブルの DDL。Hologres DDL (PostgreSQL 構文) に変換します。

    engine_full

    詳細なエンジン情報。無視します。

    partition_key

    Hologres のパーティションキー列にマッピングされます。 ClickHouse の partition_key が col1 の場合、Hologres のテーブル作成文に partition by list (col1); を追加します。

    sorting_key

    Hologres のセグメントキーとクラスタリングキーのインデックスにマッピングされます。

    primary_key

    プライマリキー。Hologres DDL 構文の Primary Key 句にマッピングされます。

    sampling_key

    Hologres DDL はサンプリングをサポートしていません。

    storage_policy

    ストレージポリシー。無視します。

  4. ソース ClickHouse DDL を Hologres 構文 (PostgreSQL SQL 標準と互換) に変換します。

    system.tables のフィールド変換ルールとデータ型のマッピングに基づいて DDL を変換します。 以下に例を示します。

    • lineitem という名前のテーブルの DDL を ClickHouse から Hologres に変換します。

      • ClickHouse インスタンスでテーブルを作成するための DDL は次のとおりです。

        -- lineitem on ClickHouse
        CREATE TABLE lineitem_local ON CLUSTER default(
          l_orderkey            UInt64,
          l_partkey             UInt32,
          l_suppkey             UInt32,
          l_linenumber          UInt32,
          l_quantity            decimal(15,2),
          l_extendedprice       decimal(15,2),
          l_discount            decimal(15,2),
          l_tax                 decimal(15,2),
          l_returnflag          LowCardinality(String),
          l_linestatus          LowCardinality(String),
          l_shipdate            Date,
          l_commitdate          Date,
          l_receiptdate         Date,
          l_shipinstruct        LowCardinality(String),
          l_shipmode            LowCardinality(String),
          l_comment             LowCardinality(String)
        ) ENGINE = MergeTree
        PARTITION BY toYear(l_shipdate)
        ORDER BY (l_orderkey, l_linenumber);
        
        CREATE TABLE lineitem on cluster default as lineitem_local ENGINE = Distributed(default, default, lineitem_local, l_orderkey);
      • 変換後の Hologres インスタンスでテーブルを作成するための DDL は次のとおりです。

        -- lineitem on Hologres
        -- 32 シャードのテーブルグループを作成します
        CALL hg_create_table_group ('lineitem_tg', 32);
        BEGIN;
        CREATE TABLE LINEITEM
        (
            L_ORDERKEY      BIGINT         NOT NULL,
            L_PARTKEY       INT         NOT NULL,
            L_SUPPKEY       INT         NOT NULL,
            L_LINENUMBER    INT         NOT NULL,
            L_QUANTITY      DECIMAL(15,2) NOT NULL,
            L_EXTENDEDPRICE DECIMAL(15,2) NOT NULL,
            L_DISCOUNT      DECIMAL(15,2) NOT NULL,
            L_TAX           DECIMAL(15,2) NOT NULL,
            L_RETURNFLAG    TEXT        NOT NULL,
            L_LINESTATUS    TEXT        NOT NULL,
            L_SHIPDATE      TIMESTAMPTZ NOT NULL,
            L_COMMITDATE    TIMESTAMPTZ NOT NULL,
            L_RECEIPTDATE   TIMESTAMPTZ NOT NULL,
            L_SHIPINSTRUCT  TEXT        NOT NULL,
            L_SHIPMODE      TEXT        NOT NULL,
            L_COMMENT       TEXT        NOT NULL,
            PRIMARY KEY (L_ORDERKEY,L_LINENUMBER)
        );
        CALL set_table_property('LINEITEM', 'clustering_key', 'L_SHIPDATE,L_ORDERKEY');
        CALL set_table_property('LINEITEM', 'segment_key', 'L_SHIPDATE');
        CALL set_table_property('LINEITEM', 'table_group', 'lineitem_tg');
        CALL set_table_property('LINEITEM', 'distribution_key', 'L_ORDERKEY');
        -- LowCardinality の列
        CALL set_table_property('LINEITEM', 'bitmap_columns', 'L_RETURNFLAG,L_LINESTATUS,L_SHIPINSTRUCT,L_SHIPMODE,L_COMMENT');
        -- LowCardinality の列
        CALL set_table_property('LINEITEM', 'dictionary_encoding_columns', 'L_RETURNFLAG,L_LINESTATUS,L_SHIPINSTRUCT,L_SHIPMODE,L_COMMENT');
        CALL set_table_property('LINEITEM', 'time_to_live_in_seconds', '31536000');
        COMMIT;
    • customer という名前のテーブルの DDL を ClickHouse から Hologres に変換します。

      • 次の DDL 文は、ClickHouse インスタンスにテーブルを作成します。

        -- customer on ClickHouse
        CREATE TABLE customer_local ON CLUSTER default(
          c_custkey             UInt32,
          c_name                String,
          c_address             String,
          c_nationkey           UInt32,
          c_phone               LowCardinality(String),
          c_acctbal             decimal(15,2),
          c_mktsegment          LowCardinality(String),
          c_comment             LowCardinality(String)
        ) ENGINE = MergeTree
        ORDER BY (c_custkey);
        
        CREATE TABLE customer on cluster default as customer_local
        ENGINE = Distributed(default, default, customer_local, c_custkey);
      • 変換後の Hologres インスタンスでテーブルを作成するための DDL は次のとおりです。

        -- customer on Hologres
        BEGIN;
        CREATE TABLE CUSTOMER (
            C_CUSTKEY    INT    NOT NULL PRIMARY KEY,
            C_NAME       TEXT   NOT NULL,
            C_ADDRESS    TEXT   NOT NULL,
            C_NATIONKEY  INT    NOT NULL,
            C_PHONE      TEXT   NOT NULL,
            C_ACCTBAL    DECIMAL(15,2) NOT NULL,
            C_MKTSEGMENT TEXT   NOT NULL,
            C_COMMENT    TEXT   NOT NULL
        );
        CALL set_table_property('CUSTOMER', 'distribution_key', 'C_CUSTKEY');
        CALL set_table_property('CUSTOMER', 'table_group', 'lineitem_tg');
        CALL set_table_property('CUSTOMER', 'bitmap_columns', 'C_CUSTKEY,C_NATIONKEY,C_NAME,C_ADDRESS,C_PHONE,C_MKTSEGMENT,C_COMMENT');
        CALL set_table_property('CUSTOMER', 'dictionary_encoding_columns', 'C_NAME,C_ADDRESS,C_PHONE,C_MKTSEGMENT,C_COMMENT');
        CALL set_table_property('CUSTOMER', 'time_to_live_in_seconds', '31536000');
        COMMIT;
  5. PSQL クライアントで、次のコマンドを実行して、変換された DDL をターゲット Hologres インスタンスにインポートします。

    PGUSER="<username>" PGPASSWORD="<password>" psql -h "<host>" -p "<port>" -d "<database_name>" -f table.sql;

データ移行

次の 3 つの方法のいずれかを使用して、ソース ClickHouse インスタンスから Hologres にデータを移行できます。

  • (推奨) ソースインスタンスからファイルにデータをエクスポートし、COPY 文 (JDBC または PSQL 経由) を使用してファイルをターゲット Hologres インスタンスにインポートします。

  • Flink または Spark ジョブを記述して、ソースインスタンスからデータを読み取り、ターゲット Hologres インスタンスに書き込みます。 詳細については、「Spark を使用したデータのインポート」をご参照ください。

  • DataWorks データ統合または DataX を使用して、ソースインスタンスからデータを読み取り、ターゲット Hologres インスタンスに書き込みます。 詳細については、「データ統合」をご参照ください。

ソースインスタンスからファイルにデータをエクスポートし、それをターゲット Hologres インスタンスにインポートするには、次の手順に従います。

  1. ClickHouse クライアントで、次のコマンドを実行して、ソースインスタンスからローカル CSV ファイルにデータをエクスポートします。

    clickhouse-client --host="<host>" --port="<port>" --user="<username>" --password="<password>"  --query="select * from <database_name>.<table_name> FORMAT CSV"  > table.csv;

    パラメーターの説明は次のとおりです。

    パラメーター

    説明

    host

    ソース ClickHouse インスタンスのアドレス。

    port

    ソース ClickHouse インスタンスのポート。

    username

    ソース ClickHouse インスタンスにログインするためのアカウント。DML の読み書き権限、設定権限、および DDL 権限が必要です。

    password

    ソース ClickHouse インスタンスへのログインに使用するアカウントのパスワード。

    database_name

    ソース ClickHouse インスタンスで移行するテーブルを含むデータベースの名前。

    table_name

    ソース ClickHouse インスタンスから移行するテーブルの名前。

  2. PSQL クライアントで、次のコマンドを実行して、ローカル CSV ファイルを Hologres インスタンスにインポートします。

    PGUSER="<username>" PGPASSWORD="<password>" psql -h "<host>" -p "<port>" -d "<database_name>" -c "COPY <schema_name>.<table_name> FROM STDIN (FORMAT 'csv')" < table.csv;

    パラメーターの説明は次のとおりです。

    パラメーター

    説明

    username

    ターゲット Hologres インスタンスにログインするためのアカウント。DML の読み書き権限、設定権限、および DDL 権限が必要です。 通常、これは Alibaba Cloud アカウントの AccessKey ID です。 AccessKey 管理から取得できます。

    password

    ターゲット Hologres インスタンスへのログインに使用するアカウントのパスワード。 通常、これは Alibaba Cloud アカウントの AccessKey Secret です。 AccessKey 管理から取得できます。

    host

    Hologres インスタンスのサーバーアドレス。

    管理コンソールにログインし、インスタンス詳細ページに移動して、Network Information で確認できます。

    port

    Hologres インスタンスのポート。

    管理コンソールにログインし、インスタンス詳細ページに移動して、Network Information で確認できます。

    database_name

    データの移行先となる Hologres インスタンス内のデータベースの名前。

    schema_name

    データの移行先となる Hologres インスタンス内のスキーマの名前。 指定しない場合、デフォルトは public です。

    table_name

    データの移行先となる Hologres インスタンス内のテーブルの名前。

  3. Hologres でインポートされたデータをクエリして、データが正常にインポートされたことを確認します。

ClickHouse からのオフラインでのデータベース全体の同期

DataWorks データ統合ソリューションを使用して、ClickHouse データベース全体をオフラインで Hologres に同期できます。 詳細については、「ClickHouse データベース全体をオフラインで Hologres に同期する」をご参照ください。

クエリ文の移行

Hologres はクエリに PostgreSQL 構文を使用しますが、ClickHouse は独自の構文を使用し、これは部分的に ANSI SQL と互換性があります。 両者は概ね似ていますが、詳細が異なります。 したがって、クエリ文を移行する必要があります。 一般的な移行には、スカラー関数、ウィンドウ関数、その他の関数名が含まれます。

ClickHouse と Hologres SQL の主な違いは次のとおりです。

  • ClickHouse では、'' で囲まれた列名は、Hologres では "" に置き換える必要があります。

  • ClickHouse では、SELECT X FROM <database_name>.<table_name> を使用します。 Hologres では、SELECT X FROM <schema_name>.<table_name> を使用します。

  • 式の違いは主に関数にあります。 次の表は、2 つのシステムで異なる関数を一覧表示しています (一覧にない関数は同じです)。

    ClickHouse

    Hologres

    toYear(expr)

    to_char(expr, 'YYYY')

    toInt32(expr)

    CAST(expr as INTEGER)

    • uniq()

    • uniqCombined()

    • uniqCombined64()

    • uniqHLL12()

    approx_count_distinct()

    uniqExact()

    count(distinct x)

    quantile(level) (expr)

    approx_percentile(level) WITHIN GROUP(ORDER BY expr)

    quantileExact(level) (expr)

    percentile_cont (level) WITHIN GROUP(ORDER BY expr)

次の方法を使用してクエリ文を移行できます。

  • 正規表現置換

    正規表現を使用して、ClickHouse 構文の固定パターン (関数名、識別子、式など) を Hologres 構文に置き換えます。 たとえば、''"" に置き換えます。

  • ClickHouse 拡張機能

    Hologres は、toUInt32() など、変換なしで一部の ClickHouse 関数をサポートする ClickHouse 拡張機能を提供します。

次の例は、TPC-H クエリを ClickHouse から Hologres に移行する方法を示しています。

  • 例 1。

    • ClickHouse クエリ:

      -- Q1 on ClickHouse
      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
      where
        l_shipdate <= date '1998-12-01' - interval '90' day
      group by
        l_returnflag,
        l_linestatus
      order by
        l_returnflag,
        l_linestatus;
    • 変換された Hologres クエリ:

      -- Q1 on Hologres
      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
      where
        l_shipdate <= date '1998-12-01' - interval '90' day
      group by
        l_returnflag,
        l_linestatus
      order by
        l_returnflag,
        l_linestatus;
  • 例 2。

    • ClickHouse インスタンスでのデータのクエリ。

      -- Q4 on ClickHouse
      select
        o_orderpriority,
        count(*) as order_count
      from
        orders
      where
        o_orderdate >= date '1993-07-01'
        and o_orderdate < date '1993-07-01' + interval '3' month
        and o_orderdate in (
          select
            o_orderdate
          from
            lineitem,
            orders
          where
            l_orderkey = o_orderkey
            and l_commitdate < l_receiptdate
        )
      group by
        o_orderpriority
      order by
        o_orderpriority;
    • 変換された Hologres クエリ:

      -- Q4 on Hologres
      select
        o_orderpriority,
        count(*) as order_count
      from
        orders
      where
        o_orderdate >= date '1993-07-01'
        and o_orderdate < date '1993-07-01' + interval '3' month
        and exists (
          select
            *
          from
            lineitem
          where
            l_orderkey = o_orderkey
            and l_commitdate < l_receiptdate
        )
      group by
        o_orderpriority
      order by
        o_orderpriority;
  • 例 3。

    • ClickHouse クエリ:

      -- Q11 on ClickHouse
      select
        ps_partkey,
        sum(ps_supplycost * ps_availqty) as value
      from
        partsupp,
        supplier,
        nation
      where
        ps_suppkey = s_suppkey
        and s_nationkey = n_nationkey
        and n_name = 'GERMANY'
      group by
        ps_partkey having
          sum(ps_supplycost * ps_availqty) > (
            select
              sum(ps_supplycost * ps_availqty) * toDecimal32(0.0000010000,9)
            from
              partsupp,
              supplier,
              nation
            where
              ps_suppkey = s_suppkey
              and s_nationkey = n_nationkey
              and n_name = 'GERMANY'
          )
      order by
        value desc
        limit 100;
    • 変換された Hologres クエリ:

      -- Q11 on Hologres
      select
        ps_partkey,
        sum(ps_supplycost * ps_availqty) as value
      from
        partsupp,
        supplier,
        nation
      where
        ps_suppkey = s_suppkey
        and s_nationkey = n_nationkey
        and n_name = 'GERMANY'
      group by
        ps_partkey having
          sum(ps_supplycost * ps_availqty) > (
            select
              sum(ps_supplycost * ps_availqty) * 0.0000010000
            from
              partsupp,
              supplier,
              nation
            where
              ps_suppkey = s_suppkey
              and s_nationkey = n_nationkey
              and n_name = 'GERMANY'
          )
      order by
        value desc
        limit 100;

関数の互換性

Hologres と ClickHouse は、同じ構文を持つ多くの基本関数を共有しています。 他の ClickHouse 関数については、Hologres は同じ関数または意味的に同等な代替手段をサポートしています。 関数の互換性の詳細については、「ClickHouse 互換関数」をご参照ください。