ClickHouse/docs/ja/native-protocol/client.md
2024-11-18 11:58:58 +09:00

7.2 KiB

slug sidebar_position
/ja/native-protocol/client 2

クライアントパケット

名前 説明
0 Hello クライアントハンドシェイク開始
1 Query クエリリクエスト
2 Data データを含むブロック
3 Cancel クエリをキャンセル
4 Ping Pingリクエスト
5 TableStatus テーブルステータスリクエスト

Dataは圧縮可能です。

Hello

たとえば、Go Client v1.10で54451プロトコルバージョンをサポートし、defaultデータベースにdefaultユーザーでsecretパスワードを使って接続したい場合です。

フィールド タイプ 説明
client_name String "Go Client" クライアント実装名
version_major UVarInt 1 クライアントメジャーバージョン
version_minor UVarInt 10 クライアントマイナーバージョン
protocol_version UVarInt 54451 TCPプロトコルバージョン
database String "default" データベース名
username String "default" ユーザー名
password String "secret" パスワード

プロトコルバージョン

プロトコルバージョンはクライアント側のTCPプロトコルバージョンです。

通常は最新の互換性のあるサーバーリビジョンと同じですが、これと混同しないでください。

デフォルト

すべての値は明示的に設定する必要があります。サーバー側にデフォルト値はありません。クライアント側では、デフォルトとして"default"データベース、"default"ユーザー名、および""(空の文字列)パスワードを使用します。

クエリ

フィールド タイプ 説明
query_id String 1ff-a123 クエリID, UUIDv4可能
client_info ClientInfo タイプを参照 クライアントに関するデータ
settings Settings タイプを参照 設定のリスト
secret String secret サーバー間の秘密
stage UVarInt 2 クエリステージまで実行
compression UVarInt 0 無効=0、有効=1
body String SELECT 1 クエリテキスト

クライアント情報

フィールド タイプ 説明
query_kind byte None=0, Initial=1, Secondary=2
initial_user String 初期ユーザー
initial_query_id String 初期クエリID
initial_address String 初期アドレス
initial_time Int64 初期時間
interface byte TCP=1, HTTP=2
os_user String OSユーザー
client_hostname String クライアントホスト名
client_name String クライアント名
version_major UVarInt クライアントメジャーバージョン
version_minor UVarInt クライアントマイナーバージョン
protocol_version UVarInt クライアントプロトコルバージョン
quota_key String クオータキー
distributed_depth UVarInt 分散深度
version_patch UVarInt クライアントパッチバージョン
otel Bool トレースフィールドの有無
trace_id FixedString(16) トレースID
span_id FixedString(8) スパンID
trace_state String トレース状態
trace_flags Byte トレースフラグ

設定

フィールド タイプ 説明
key String send_logs_level 設定のキー
value String trace 設定の値
important Bool true 無視可能かどうか

リストとしてエンコードされ、キーと値が空の場合はリストの終わりを示します。

ステージ

名前 説明
0 FetchColumns カラムタイプのみ取得
1 WithMergeableState マージ可能な状態まで
2 Complete 完全な完了まで(デフォルトが推奨)

データ

フィールド タイプ 説明
info BlockInfo エンコードされたブロック情報
columns UVarInt カラム数
rows UVarInt 行数
columns []Column データを含むカラム

カラム

フィールド タイプ 説明
name String foo カラム名
type String DateTime64(9) カラムタイプ
data bytes ~ カラムデータ

キャンセル

パケットボディなし。サーバーはクエリをキャンセルする必要があります。

ピング

パケットボディなし。サーバーはpongで応答する必要があります。