PostgreSQL
リモート PostgreSQL サーバー上のデータベースに接続できます。ClickHouse と PostgreSQL 間でデータをやり取りするために、読み取りおよび書き込み操作(SELECT および INSERT クエリ)をサポートします。
SHOW TABLES および DESCRIBE TABLE クエリを利用して、リモート PostgreSQL 上のテーブル一覧およびテーブル構造にリアルタイムでアクセスできます。
テーブル構造の変更(ALTER TABLE ... ADD|DROP COLUMN)をサポートします。use_table_cache パラメータ(後述の Engine パラメータを参照)が 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 のテーブル構造はキャッシュされており、その結果、変更は行われませんでした。
テーブルをデタッチして再度アタッチした後、構造が更新されました。