メインコンテンツへスキップ
メインコンテンツへスキップ

クライアントパケット

valuenamedescription
0Helloクライアントのハンドシェイク開始
1Queryクエリ要求
2Dataデータブロック
3Cancelクエリのキャンセル
4PingPing リクエスト
5TableStatusテーブルステータスの要求

Data は圧縮可能です。

Hello

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

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

Protocol version

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

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

Defaults

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

クエリ

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

Client info

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トレースのフラグ

Settings

fieldtypevaluedescription
keyStringsend_logs_level設定のキー
valueStringtrace設定の値
importantBooltrue無視可能かどうかを示す

リストとしてエンコードされており、key と value が空の要素が現れるとリストの終端を示します。

Stage

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

データ

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

fieldtypevaluedescription
nameStringfoo列名
typeStringDateTime64(9)列の型
databytes~列データ

キャンセル

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

Ping

パケットの本体はありません。サーバーはpongで応答する必要があります。