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
クライアントはパスワードを入力するように促します:
これで完了です! 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 をサポートし、交渉することを確認してください。
ユーザー user_with_sha256
とパスワード abacaba
の例の設定:
SSL 設定の詳細については PostgreSQL ドキュメント を参照してください。