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 カタログ内のデータとメタデータへの読み取りおよび書き込みアクセスを提供します。グローバルに利用可能な読み取り操作ステートメントに加えて、コネクタは次の機能をサポートします。