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

クライアントパケット

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

Dataは圧縮可能です。

Hello

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

フィールド説明
client_name文字列"Go Client"クライアント実装名
version_majorUVarInt1クライアントメジャーバージョン
version_minorUVarInt10クライアントマイナーバージョン
protocol_versionUVarInt54451TCPプロトコルバージョン
database文字列"default"データベース名
username文字列"default"ユーザー名
password文字列"secret"パスワード

プロトコルバージョン

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

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

デフォルト

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

クエリ

フィールド説明
query_id文字列1ff-a123クエリID、UUIDv4である可能性
client_infoClientInfo種類参照クライアントに関するデータ
settingsSettings種類参照設定のリスト
secret文字列secretサーバー間のシークレット
stageUVarInt2クエリステージまで実行
compressionUVarInt0無効=0、有効=1
body文字列SELECT 1クエリテキスト

クライアント情報

フィールド説明
query_kindバイトNone=0, 初期=1, 二次=2
initial_user文字列初期ユーザー
initial_query_id文字列初期クエリID
initial_address文字列初期アドレス
initial_timeInt64初期時間
interfaceバイトTCP=1, HTTP=2
os_user文字列OSユーザー
client_hostname文字列クライアントホスト名
client_name文字列クライアント名
version_majorUVarIntクライアントメジャーバージョン
version_minorUVarIntクライアントマイナーバージョン
protocol_versionUVarIntクライアントプロトコルバージョン
quota_key文字列クォータキー
distributed_depthUVarInt分散深度
version_patchUVarIntクライアントパッチバージョン
otelBoolトレースフィールドが存在する
trace_idFixedString(16)トレースID
span_idFixedString(8)スパンID
trace_state文字列トレース状態
trace_flagsバイトトレースフラグ

設定

フィールド説明
key文字列send_logs_level設定のキー
value文字列trace設定の値
importantBooltrue無視できるかどうか

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

ステージ

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

データ

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

カラム

フィールド説明
name文字列fooカラム名
type文字列DateTime64(9)カラムタイプ
dataバイト~カラムデータ

キャンセル

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

ピング

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