Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

ネイティブクライアントのパケット

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

Data は圧縮できます。

Hello

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

フィールド 説明
client_name String "Go Client" クライアント実装名
version_major UVarInt 1 クライアントのメジャーバージョン
version_minor UVarInt 10 クライアントのマイナーバージョン
protocol_version UVarInt 54451 TCP プロトコルのバージョン
database String "default" データベース名
username String "default" ユーザー名
password String "secret" パスワード

プロトコルバージョン

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

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

デフォルト

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

クエリ

フィールド 説明
query_id String 1ff-a123 Query ID。UUIDv4も使用可能
client_info ClientInfo 型を参照 クライアントに関するデータ
settings Settings 型を参照 設定の一覧
secret String secret サーバー間のシークレット
stage UVarInt 2 クエリステージまで実行する
compression UVarInt 0 無効=0、有効=1
body String SELECT 1 クエリテキスト

クライアント情報

フィールド 説明
query_kind byte None=0、Initial=1、Secondary=2
initial_user String 初期ユーザー
initial_query_id String 初期クエリ ID
initial_address String 初期アドレス
initial_time Int64 初期時刻
interface byte TCP=1、HTTP=2
os_user String OSユーザー
client_hostname String クライアントのホスト名
client_name String クライアント名
version_major UVarInt クライアントのメジャーバージョン
version_minor UVarInt クライアントのマイナーバージョン
protocol_version UVarInt クライアントのプロトコルバージョン
quota_key String クォータキー
distributed_depth UVarInt Distributed の深度
version_patch UVarInt クライアントのパッチバージョン
otel Bool トレース関連フィールドが存在する
trace_id FixedString(16) トレース ID
span_id FixedString(8) スパン ID
trace_state String トレース状態
trace_flags Byte トレースフラグ

設定

フィールド 説明
key String send_logs_level 設定のキー
value String trace 設定の値
important Bool true 無視できるかどうか

リストとしてエンコードされ、キーと値が空であればリストの終端を示します。

Stage

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

Data

フィールド 説明
info BlockInfo エンコード済みのブロック情報
columns UVarInt カラム数
rows UVarInt 行数
columns []カラム データを含むカラム

カラム

フィールド 説明
name String foo カラム名
type String DateTime64(9) カラムの型
data bytes ~ カラムデータ

キャンセル

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

Ping

パケット本文はありません。サーバーはpong を返す必要があります。

Navigation