PostgreSQL
リモート PostgreSQL サーバー上のデータベースに接続することを許可します。ClickHouse と PostgreSQL の間でデータを交換するために、読み込みおよび書き込み操作(SELECT および INSERT クエリ)をサポートします。
SHOW TABLES および DESCRIBE TABLE クエリの助けを借りて、リモート PostgreSQL からのテーブルリストとテーブル構造へのリアルタイムアクセスを提供します。
テーブル構造の変更(ALTER TABLE ... ADD|DROP COLUMN)をサポートします。use_table_cache パラメータ(以下のエンジンパラメータを参照)が 1 に設定されている場合、テーブル構造はキャッシュされ、変更がチェックされませんが、DETACH および ATTACH クエリで更新できます。
データベースの作成
エンジンパラメータ
host:port— PostgreSQL サーバーアドレス。database— リモートデータベース名。user— PostgreSQL ユーザー。password— ユーザーパスワード。schema— PostgreSQL スキーマ。use_table_cache— データベースのテーブル構造がキャッシュされるかどうかを定義します。オプション。デフォルト値:0。
データ型サポート
| PostgreSQL | ClickHouse |
|---|---|
| DATE | Date |
| TIMESTAMP | DateTime |
| REAL | Float32 |
| DOUBLE | Float64 |
| DECIMAL, NUMERIC | Decimal |
| SMALLINT | Int16 |
| INTEGER | Int32 |
| BIGINT | Int64 |
| SERIAL | UInt32 |
| BIGSERIAL | UInt64 |
| TEXT, CHAR | String |
| INTEGER | Nullable(Int32) |
| ARRAY | Array |
使用例
ClickHouse でのデータベース、PostgreSQL サーバーとのデータ交換:
PostgreSQL テーブルからのデータの読み込み:
PostgreSQL テーブルへのデータの書き込み:
PostgreSQL でテーブル構造が変更されたと仮定します:
データベース作成時に use_table_cache パラメータが 1 に設定されていたため、ClickHouse のテーブル構造はキャッシュされ、したがって変更されませんでした:
テーブルをデタッチして再度アタッチすると、構造が更新されました: