PostgreSQL インターフェイス
ClickHouse は PostgreSQL ワイヤープロトコルをサポートしており、Postgres クライアントを使用して ClickHouse に接続できます。言い換えると、ClickHouse は PostgreSQL インスタンスとして振る舞うことができるため、ClickHouse でまだ直接サポートされていない PostgreSQL クライアントアプリケーション(例: Amazon Redshift)を ClickHouse に接続できます。
PostgreSQL ワイヤープロトコルを有効にするには、postgresql_port 設定をサーバーの構成ファイルに追加します。たとえば、config.d フォルダ内の新しい XML ファイルでポートを定義できます。
ClickHouse サーバーを起動し、Listening for PostgreSQL compatibility protocol といった内容のログメッセージを探します。
psql を ClickHouse に接続する
以下のコマンドは、PostgreSQL クライアント psql を ClickHouse に接続する方法を示します。
例:
psql クライアントではパスワードによるログインが必須のため、パスワードなしの default ユーザーでは接続できません。default ユーザーにパスワードを設定するか、別のユーザーとしてログインしてください。
psql クライアントはパスワードの入力を求めます。
以上です。これで ClickHouse に接続された PostgreSQL クライアントが利用でき、すべてのコマンドおよびクエリは ClickHouse 上で実行されます。
PostgreSQL プロトコルは現在、プレーンテキストのパスワードのみをサポートしています。
SSL の使用
ClickHouse インスタンスで SSL/TLS が構成されている場合、postgresql_port は同じ設定を使用します(ポートはセキュアクライアントと非セキュアクライアントの両方で共有されます)。
各クライアントには、SSL を使用して接続するための固有の方法があります。次のコマンドは、証明書と鍵を指定して psql を ClickHouse にセキュアに接続する方法を示しています。
SCRAM-SHA-256 を使用した ClickHouse のユーザー認証設定
ClickHouse でのユーザー認証を安全に行うには、SCRAM-SHA-256 プロトコルを使用することが推奨されます。users.xml ファイル内で password_scram_sha256_hex 要素を指定してユーザーを設定します。パスワードハッシュは num_iterations=4096 で生成する必要があります。
接続時に、psql クライアントが SCRAM-SHA-256 をサポートし、SCRAM-SHA-256 でネゴシエートできることを確認してください。
パスワード abacaba を持つユーザー user_with_sha256 の設定例:
SSL 設定の詳細については、PostgreSQL のドキュメントを参照してください。