入力フォーマット
INSERTステートメントに渡されるデータのパースFile、URL、HDFSなどのファイルベースのテーブルに対するSELECTクエリの実行- ディクショナリの読み取り
- Native フォーマットは最も効率的な入力フォーマットです。最も高い圧縮率、 最小限のリソース使用量、そしてサーバー側の処理オーバーヘッドの最小化を実現します。
- 圧縮は不可欠です - LZ4 は最小限の CPU コストでデータサイズを削減し、ZSTD は追加の CPU 使用量を 伴う代わりに、より高い圧縮率を提供します。
- 事前ソートの影響は中程度です。ClickHouse 自体がすでに効率的にソートを行うためです。
- バッチ化は効率を大幅に向上させます - バッチが大きいほど insert のオーバーヘッドが減り、スループットが向上します。
出力フォーマット
SELECTクエリの結果の整形- ファイルベースのテーブルに対する
INSERT操作の実行
フォーマットの概要
フォーマットスキーマ
format_schema で指定します。
この設定は、Cap'n Proto または Protobuf フォーマットを使用する場合に必要です。
フォーマットスキーマは、ファイル名とそのファイル内のメッセージ型名をコロンで区切って組み合わせたものです。
たとえば、schemafile.proto:MessageType のようになります。
ファイルがそのフォーマットの標準拡張子 (たとえば Protobuf の場合は .proto) を持つ場合、
その拡張子は省略でき、この場合のフォーマットスキーマは schemafile:MessageType のようになります。
client を対話型モードで使用してデータを入力または出力する場合、フォーマットスキーマで指定するファイル名には、
絶対パス、またはクライアント上の現在のディレクトリからの相対パスを指定できます。
batch mode でクライアントを使用する場合は、セキュリティ上の理由により、スキーマへのパスは相対パスでなければなりません。
HTTP interface 経由でデータを入力または出力する場合、フォーマットスキーマで指定するファイル名は、
サーバー設定の format_schema_path
で指定されたディレクトリに配置する必要があります。
エラーのスキップ
CSV、TabSeparated、TSKV、JSONEachRow、Template、CustomSeparated、Protobuf などの一部のフォーマットでは、パースエラーが発生しても不正な行をスキップし、次の行の先頭からパースを続行できます。input_format_allow_errors_num と
input_format_allow_errors_ratio の設定を参照してください。
制限事項:
JSONEachRowでは、パースエラーが発生すると改行 (または EOF) までのすべてのデータがスキップされるため、エラーを正しくカウントするには、行が\nで区切られている必要があります。TemplateとCustomSeparatedでは、次の行の先頭を見つけるために、最後のカラムの後の区切り文字と行間の区切り文字を使用します。そのため、エラーのスキップが機能するのは、その少なくとも一方が空でない場合だけです。