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

クライアントパケット

valuenamedescription
0Helloクライアントハンドシェイクの開始
1Queryクエリリクエスト
2Dataデータを含むブロック
3Cancelクエリのキャンセル
4PingPingリクエスト
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" ユーザー名、および ""(空の文字列)パスワードをデフォルトとして使用します。

Query

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完全な完了まで(デフォルトであるべき)

Data

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

カラム

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

Cancel

パケットボディはありません。サーバーはクエリをキャンセルすべきです。

Ping

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