mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-28 10:31:57 +00:00
122 lines
7.2 KiB
Markdown
122 lines
7.2 KiB
Markdown
|
---
|
||
|
slug: /ja/native-protocol/client
|
||
|
sidebar_position: 2
|
||
|
---
|
||
|
|
||
|
# クライアントパケット
|
||
|
|
||
|
| 値 | 名前 | 説明 |
|
||
|
|-------|---------------------|---------------------------|
|
||
|
| 0 | [Hello](#hello) | クライアントハンドシェイク開始 |
|
||
|
| 1 | [Query](#query) | クエリリクエスト |
|
||
|
| 2 | [Data](#data) | データを含むブロック |
|
||
|
| 3 | [Cancel](#cancel) | クエリをキャンセル |
|
||
|
| 4 | [Ping](#ping) | Pingリクエスト |
|
||
|
| 5 | TableStatus | テーブルステータスリクエスト |
|
||
|
|
||
|
`Data`は圧縮可能です。
|
||
|
|
||
|
## Hello
|
||
|
|
||
|
たとえば、`Go Client` v1.10で`54451`プロトコルバージョンをサポートし、`default`データベースに`default`ユーザーで`secret`パスワードを使って接続したい場合です。
|
||
|
|
||
|
| フィールド | タイプ | 値 | 説明 |
|
||
|
|----------------------|------------|----------------|----------------------------|
|
||
|
| 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` | クエリID, UUIDv4可能 |
|
||
|
| client_info | [ClientInfo](#client-info) | タイプを参照| クライアントに関するデータ |
|
||
|
| settings | [Settings](#settings) | タイプを参照| 設定のリスト |
|
||
|
| secret | String | `secret` | サーバー間の秘密 |
|
||
|
| [stage](#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 | 分散深度 |
|
||
|
| 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` | 無視可能かどうか |
|
||
|
|
||
|
リストとしてエンコードされ、キーと値が空の場合はリストの終わりを示します。
|
||
|
|
||
|
### ステージ
|
||
|
|
||
|
| 値 | 名前 | 説明 |
|
||
|
|-------|---------------------|-----------------------------------------------|
|
||
|
| 0 | FetchColumns | カラムタイプのみ取得 |
|
||
|
| 1 | WithMergeableState | マージ可能な状態まで |
|
||
|
| 2 | Complete | 完全な完了まで(デフォルトが推奨) |
|
||
|
|
||
|
## データ
|
||
|
|
||
|
| フィールド | タイプ | 説明 |
|
||
|
|-----------|--------------------|------------------------|
|
||
|
| info | BlockInfo | エンコードされたブロック情報 |
|
||
|
| columns | UVarInt | カラム数 |
|
||
|
| rows | UVarInt | 行数 |
|
||
|
| columns | [[]Column](#column)| データを含むカラム |
|
||
|
|
||
|
### カラム
|
||
|
|
||
|
| フィールド | タイプ | 値 | 説明 |
|
||
|
|-----------|---------|-----------------|-------------------|
|
||
|
| name | String | `foo` | カラム名 |
|
||
|
| type | String | `DateTime64(9)` | カラムタイプ |
|
||
|
| data | bytes | ~ | カラムデータ |
|
||
|
|
||
|
## キャンセル
|
||
|
|
||
|
パケットボディなし。サーバーはクエリをキャンセルする必要があります。
|
||
|
|
||
|
## ピング
|
||
|
|
||
|
パケットボディなし。サーバーは[pongで応答する](./server.md#pong)必要があります。
|