メインコンテンツまでスキップ
メインコンテンツまでスキップ

クライアントパケット

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

Data は圧縮可能です。

Hello

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

fieldtypevaluedescription
client_nameString"Go Client"クライアント実装名
version_majorUVarInt1クライアントメジャーバージョン
version_minorUVarInt10クライアントマイナーバージョン
protocol_versionUVarInt54451TCPプロトコルバージョン
databaseString"default"データベース名
usernameString"default"ユーザー名
passwordString"secret"パスワード

プロトコルバージョン

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

通常、これは最新の互換性のあるサーバーリビジョンに等しいですが、 それと混同してはいけません。

デフォルト

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

クエリ

fieldtypevaluedescription
query_idString1ff-a123クエリID、UUIDv4であることも可能
client_infoClientInfo型を参照クライアントに関するデータ
settingsSettings型を参照設定のリスト
secretStringsecretサーバー間のシークレット
stageUVarInt2クエリステージまで実行します
compressionUVarInt0無効=0、有効=1
bodyStringSELECT 1クエリテキスト

クライアント情報

fieldtypedescription
query_kindbyteNone=0, Initial=1, Secondary=2
initial_userString初期ユーザー
initial_query_idString初期クエリID
initial_addressString初期アドレス
initial_timeInt64初期時間
interfacebyteTCP=1, HTTP=2
os_userStringOSユーザー
client_hostnameStringクライアントホスト名
client_nameStringクライアント名
version_majorUVarIntクライアントメジャーバージョン
version_minorUVarIntクライアントマイナーバージョン
protocol_versionUVarIntクライアントプロトコルバージョン
quota_keyStringクオータキー
distributed_depthUVarInt分散深度
version_patchUVarIntクライアントパッチバージョン
otelBoolトレースフィールドが存在するか
trace_idFixedString(16)トレースID
span_idFixedString(8)スパンID
trace_stateStringトレース状態
trace_flagsByteトレースフラグ

設定

fieldtypevaluedescription
keyStringsend_logs_level設定のキー
valueStringtrace設定の値
importantBooltrue無視してもよいか

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

ステージ

valuenamedescription
0FetchColumnsカラム型のみを取得
1WithMergeableStateマージ可能な状態まで
2Complete完全な完了まで(デフォルトであるべき)

データ

fieldtypedescription
infoBlockInfoエンコードされたブロック情報
columnsUVarIntカラム数
rowsUVarInt行数
columns[]Columnデータを含むカラム

カラム

fieldtypevaluedescription
nameStringfooカラム名
typeStringDateTime64(9)カラム型
databytes~カラムデータ

キャンセル

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

ピング

パケットボディはありません。サーバーはポンで応答するべきです