Skip to main content
Edit this page

クライアントパケット

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

Dataは圧縮可能です。

Hello

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

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

プロトコルバージョン

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

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

デフォルト

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

クエリ

フィールドタイプ説明
query_idString1ff-a123クエリID, UUIDv4可能
client_infoClientInfoタイプを参照クライアントに関するデータ
settingsSettingsタイプを参照設定のリスト
secretStringsecretサーバー間の秘密
stageUVarInt2クエリステージまで実行
compressionUVarInt0無効=0、有効=1
bodyStringSELECT 1クエリテキスト

クライアント情報

フィールドタイプ説明
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トレースフラグ

設定

フィールドタイプ説明
keyStringsend_logs_level設定のキー
valueStringtrace設定の値
importantBooltrue無視可能かどうか

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

ステージ

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

データ

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

カラム

フィールドタイプ説明
nameStringfooカラム名
typeStringDateTime64(9)カラムタイプ
databytes~カラムデータ

キャンセル

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

ピング

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