gRPC インターフェース
はじめに
ClickHouseはgRPCインターフェースをサポートしています。これは、HTTP/2およびProtocol Buffersを使用したオープンソースのリモートプロシージャコールシステムです。ClickHouseにおけるgRPCの実装は以下をサポートしています:
- SSL;
- 認証;
- セッション;
- 圧縮;
- 同じチャネルを通じた並列クエリ;
- クエリのキャンセル;
- 進捗およびログの取得;
- 外部テーブル。
インターフェースの仕様は、clickhouse_grpc.protoに記載されています。
gRPC 設定
gRPCインターフェースを使用するには、メインのサーバー設定でgrpc_port
を設定します。その他の設定オプションは、以下の例を参照してください:
内蔵クライアント
提供された仕様を使用して、gRPCがサポートする任意のプログラミング言語でクライアントを書くことができます。また、内蔵のPythonクライアントを使用することもできます。これはリポジトリ内のutils/grpc-client/clickhouse-grpc-client.pyに配置されています。内蔵クライアントはgrpcioおよびgrpcio-toolsのPythonモジュールを必要とします。
クライアントは以下の引数をサポートしています:
--help
– ヘルプメッセージを表示し、終了します。--host HOST, -h HOST
– サーバー名。デフォルト値:localhost
。IPv4またはIPv6アドレスも使用できます。--port PORT
– 接続するポート。このポートはClickHouseサーバー設定で有効にする必要があります(grpc_port
を参照)。デフォルト値:9100
。--user USER_NAME, -u USER_NAME
– ユーザー名。デフォルト値:default
。--password PASSWORD
– パスワード。デフォルト値:空文字列。--query QUERY, -q QUERY
– 非対話モードで処理するクエリ。--database DATABASE, -d DATABASE
– デフォルトデータベース。指定されていない場合、サーバー設定で設定された現在のデータベースが使用されます(デフォルトはdefault
)。--format OUTPUT_FORMAT, -f OUTPUT_FORMAT
– 結果出力フォーマット。対話モードのデフォルト値:PrettyCompact
。--debug
– デバッグ情報の表示を有効にします。
クライアントを対話モードで実行するには、--query
引数なしで呼び出します。
バッチモードでは、データをstdin
経由で渡すことができます。
クライアント使用例
以下の例では、テーブルが作成され、CSVファイルからデータがロードされます。その後、テーブルの内容がクエリされます。
結果: