PostgreSQL インターフェース
ClickHouse は PostgreSQL ワイヤプロトコルをサポートしており、これにより PostgreSQL クライアントを使用して ClickHouse に接続できます。言い換えれば、ClickHouse は PostgreSQL インスタンスのように振る舞うことができるため、ClickHouse に直接サポートされていない PostgreSQL クライアントアプリケーション(例えば、Amazon Redshift)を接続することが可能です。
PostgreSQL ワイヤプロトコルを有効にするには、サーバーの構成ファイルに postgresql_port 設定を追加します。例えば、config.d
フォルダ内に新しい XML ファイルでポートを定義できます:
ClickHouse サーバーを起動し、Listening for PostgreSQL compatibility protocol に言及している以下のようなログメッセージを探します:
psql を ClickHouse に接続する
以下のコマンドは、PostgreSQL クライアント psql
を ClickHouse に接続する方法を示しています:
例えば:
psql
クライアントはパスワードでのログインを要求するため、パスワードなしの default
ユーザーで接続することはできません。default
ユーザーにパスワードを設定するか、別のユーザーとしてログインしてください。
psql
クライアントはパスワードを求めます:
これで終了です! PostgreSQL クライアントが ClickHouse に接続され、すべてのコマンドおよびクエリは 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 をサポートおよび交渉することを確認します。
パスワード abacaba
のユーザー user_with_sha256
の例の設定:
彼らの SSL 設定について詳しくは PostgreSQL ドキュメント を参照してください。