説明
Avro フォーマットは、Avroデータファイル の読み取りと書き込みをサポートします。このフォーマットは、スキーマが埋め込まれた自己記述型メッセージを前提としています。Avro をスキーマレジストリとともに使用する場合は、AvroConfluent フォーマットを参照してください。
データ型マッピング
INSERT および SELECT クエリでそれぞれに対応する ClickHouse のデータ型を示しています。
bytesがデフォルトで、設定output_format_avro_string_column_patternで制御されます
null をフィールド値として暗黙的に受け入れるため、たとえば Avro の union(T1, T2, null) は Variant(T1, T2) に変換されます。
そのため、ClickHouse から Avro を生成する際には、Avro の union 型の候補に常に null 型を含める必要があります。これは、スキーマ推論の時点では、実際に null となる値があるかどうか分からないためです。
*** Avro 論理型
サポートされていない Avro 論理データ型:
time-millistime-microsduration
フォーマット設定
例
Avroデータの読み取り
record 型でなければなりません。
テーブルのカラムと Avro スキーマのフィールドの対応関係を特定するために、ClickHouse はそれらの名前を比較します。
この比較では大文字と小文字が区別され、使用されないフィールドはスキップされます。
ClickHouse テーブルのカラムのデータ型は、挿入される Avro データ内の対応するフィールドと異なる場合があります。データを挿入する際、ClickHouse は上の表に従ってデータ型を解釈し、その後、データを対応するカラム型にCASTします。
データのインポート中に、スキーマ内にフィールドが見つからず、かつ設定 input_format_avro_allow_missing_fields が有効になっている場合は、エラーをスローする代わりにデフォルト値が使用されます。
Avroデータの書き込み
[A-Za-z_]で始まること- 以降に使用できるのは
[A-Za-z0-9_]のみであること
output_format_avro_codec 設定と output_format_avro_sync_interval 設定を使用して構成できます。
Avro スキーマの推定
DESCRIBE 関数を使うと、次の例のように、Avro ファイルの推定フォーマットをすばやく確認できます。
この例には、ClickHouse の S3 パブリックバケットで公開されている Avro ファイルの URL が含まれています。