ClickHouse コネクタ¶
ClickHouse コネクタを使用すると、外部の ClickHouse サーバー内のテーブルをクエリできます。これは、そのサーバー上のデータベース内のデータをクエリしたり、ClickHouse またはその他のサポートされているデータソースにアクセスする別のカタログのデータと組み合わせたりするために使用できます。
要件¶
ClickHouse サーバーに接続するには、以下が必要です
- ClickHouse バージョン 20.8 以上。 
- Presto コーディネーターおよびワーカーから ClickHouse サーバーへのネットワークアクセス。ポート 8123 がデフォルトのポートです。 
設定¶
コネクタは ClickHouse サーバーをクエリできます。connector.name を clickhouse に設定して、ClickHouse コネクタを指定するカタログプロパティファイルを作成します。
たとえば、clickhouse としてサーバーにアクセスするには、ファイル etc/catalog/clickhouse.properties を作成します。接続プロパティは、セットアップに合わせて適宜置き換えてください。
connector.name=clickhouse
clickhouse.connection-url=jdbc:clickhouse://host1:8123/
clickhouse.connection-user=default
clickhouse.connection-password=secret
複数の ClickHouse サーバー¶
複数の ClickHouse サーバーがある場合は、サーバーごとに 1 つのカタログを設定する必要があります。別のカタログを追加するには
- 別のプロパティファイルを - etc/catalogに追加します
- .propertiesで終わる別の名前を付けて保存します
たとえば、プロパティファイルに clickhouse.properties という名前を付けると、Prestodb は設定されたコネクタを使用して clickhouse という名前のカタログを作成します。
一般的な設定プロパティ¶
次の表では、コネクタの一般的なカタログ設定プロパティについて説明します
| プロパティ名 | デフォルト値 | 説明 | 
|---|---|---|
| 
 | false | テーブルを作成するときに、clickhouse のデータ型 String をサポートします。 | 
| 
 | false | テーブルの削除操作を許可します。 | 
ClickHouse のクエリ¶
ClickHouse コネクタは、ClickHouse のすべての *データベース* に対してスキーマを提供します。 SHOW SCHEMAS を実行して、使用可能な ClickHouse データベースを確認します
SHOW SCHEMAS FROM clickhouse;
tpch という名前の ClickHouse データベースがある場合は、SHOW TABLES を実行して、このデータベース内のテーブルを表示します
SHOW TABLES FROM clickhouse.tpch;
DESCRIBE または SHOW COLUMNS を実行して、tpch データベースの cks テーブル内の列を一覧表示します
DESCRIBE clickhouse.tpch.cks;
SHOW COLUMNS FROM clickhouse.tpch.cks;
SELECT を実行して、tpch データベースの cks テーブルにアクセスします
SELECT * FROM clickhouse.tpch.cks;
注
カタログプロパティファイルに別の名前を使用した場合は、上記の例の clickhouse の代わりにそのカタログ名を使用してください。
テーブルプロパティ¶
テーブルプロパティの使用例
CREATE TABLE default.prestodb_ck (
  id int NOT NULL,
  birthday DATE NOT NULL,
  name VARCHAR,
  age BIGINT,
  logdate DATE NOT NULL
)
WITH (
  engine = 'MergeTree',
  order_by = ARRAY['id', 'birthday'],
  partition_by = ARRAY['toYYYYMM(logdate)'],
  primary_key = ARRAY['id'],
  sample_by = 'id'
);
以下は、https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/mergetree/ にあるサポートされている ClickHouse テーブルプロパティです
| プロパティ名 | デフォルト値 | 説明 | 
|---|---|---|
| 
 | 
 | エンジンの名前とパラメータ。 | 
| 
 | (なし) | ソートキーを作成するために連結する列または式の配列。  | 
| 
 | (なし) | ネストされたパーティションキーとして使用する列または式の配列。オプション。 | 
| 
 | (なし) | プライマリキーを作成するために連結する列または式の配列。オプション。 | 
| 
 | (なし) | サンプリングに使用する式。オプション。 | 
現在、コネクタは create table ステートメントで Log および MergeTree テーブルエンジンのみをサポートしています。 ReplicatedMergeTree エンジンはまだサポートされていません。
プッシュダウン¶
コネクタは、多数の操作に対するプッシュダウンをサポートします
- limit-pushdown 
SQL サポート¶
コネクタは、ClickHouse カタログ内のデータとメタデータへの読み取りおよび書き込みアクセスを提供します。グローバルに利用可能な読み取り操作ステートメントに加えて、コネクタは次の機能をサポートします。