Avro Data Types
データ入力ツールを使用して圧縮されていないAvroファイルおよびデフレート圧縮されたAvroファイルを読み込み、データ出力ツールを使用してAvroファイルを書き込みます。
入力
デフレート圧縮のみがサポートされています。
14種類のネイティブAvroデータ型のほとんどがサポートされています。インポート時の型のマッピングは次のとおりです。
String: UTF-8をV_WString (UTF-16)に変換
Bytes: Blobとして維持される(必要に応じてBlobツールを使用して変換する)
Int: Int32として維持される
Long: Int64として維持される
Float: Float (単精度浮動小数点数値型)として維持される
Double: Double (倍精度浮動小数点数値型)として維持される
Boolean: Boolとして維持される
Null: サポートされていない
Enum: 文字列同等に変換される
Union: Alteryxは、2つのサブタイプを持つユニオンをサポートしています。どちらのサブタイプも同等である必要がある(例えば、intまたはダブルの両方)、またはそのいずれかがNullである必要があります。
Alteryxフィールドタイプは、非nullのブランチ(または両方が非nullの場合は両方のブランチ)のタイプです。
非nullブランチがアクティブな場合、Alteryxフィールドにその値が含まれます。
nullブランチがアクティブな場合、Alteryxフィールドはnullに設定されます。
無効なユニオンはJSONとしてV_WStringにインポートされます(必要に応じて、JSON解析ツールを使用して変換します)。例えば、アクティブなブランチとしてintを持つユニオンは、"{"int":123}"として表すことができます。
Fixed: Blobとして維持される(必要に応じてBlobツールを使用して変換する)
これらのAvro型はネイティブではサポートされていませんが、JSONとして文字列にインポートされます(必要に応じて、JSONパースツール を使用して変換します)。
Record: 例えば、intフィールドと文字列フィールドの両方を含むレコードでは"{"SubField1":7,"SubField2":"Field2"}"です。
Array: 例えば、intの配列では"[1,2,3,4,5]"です。
Map: 例えば、Double (倍精度浮動小数点数値型)への文字列のマップでは"{"Key1":Value1,"Key2":Value2}"です。
出力
Avroファイルを書き込む際は、2つのオプションがあります。
圧縮を有効にする(デフレート): 圧縮を有効にすると出力時間は長くなりますが、ファイルが大きくなるとネットワーク時間が短縮されます。サポートされている圧縮は、DEFLATEアルゴリズム(本質的にgzip)を使用し、Hiveなどの他のAvro対応ツールによってネイティブにサポートされる必要があります。
Null値をサポートする: このオプションを選択すると、_all_フィールドが、nullブランチと値ブランチを持つユニオンとして書き込まれます。Alteryx値がnullの場合、出力Avroユニオンではそのnullブランチが選択されます。そうでない場合、その値ブランチが選択されます。
このオプションが選択されていない場合、すべての出力フィールドは、固有のAvroタイプ(非ユニオン)として書き込まれます。nullのAlteryxフィールドは、既定値として書き込まれます(例えば、int32の場合は0、文字列フィールドの場合は空の文字列)。
「既知の」値を持つNull値をHadoopで処理できるようにするには、式ツール を使用することを検討します。
AlteryxからAvroへのタイプマッピングは次のとおりです。
Bool: Booleanとして維持される
Byte、Int16、Int32: Int (32ビット)として維持される
Int64: Long (64ビット)として維持される
Float: Float (単精度浮動小数点数値型)として維持される
DateTime: 日付、時刻、日付/時刻として
Double: Double (倍精度浮動小数点数値型)として維持される
FixedDecimal: Double (倍精度浮動小数点数値型)に変換される
String、V_String、Date、Time、DateTime: String (UTF-8)として維持される
WString、V_WString: String (UTF-8)に変換される
Blob、SpatialBlob: Bytesとして維持される
AVRO file Read/Write From Alteryx Designer
Earlier, in the .avro file, the DateTime field was represented solely using the logical type timestamp-millis (i.e., in UTC). Now, a Time Zone dropdown has been introduced in both the Read and Write options, offering the values No Time Zone and Local Time Zone.
No Time Zone: The DateTime is treated as
timestamp-millisin Avro. This ensures backward compatibility, as no time zone conversion occurs during Avro read or write operations.Local Time Zone: DateTime values are converted. During Avro write, the conversion is based on the Default Time Zone configured in the Runtime settings.
During Avro read, DateTime conversion is performed based on the stored logicalType and the Default Time Zone specified in the Runtime settings. For example: If the local time zone is IST (UTC +05:30) and the Default Time Zone is CEST (UTC +02:00), a DateTime value of 2026-03-25 22:00:00 will be converted during .avro write. Since IST is 3 hours and 30 minutes ahead of CEST, the value will be adjusted to 2026-03-25 18:30:00 in CEST.
Below is a summary of DateTime conversions during Avro write and read operations. In the examples, the Local Time Zone is IST. The first four columns represent the .avro Write scenario, while the next three columns represent the Read scenario for the same Avro data.
Incoming Time | Workflow Runtime TZ | AVRO TZ | AVRO Write | AVRO TZ | Workflow Runtime TZ | Alteryx AVRO Read |
|---|---|---|---|---|---|---|
2026, 2, 11, 22:00:00 | Local | NTZ | 2026, 2, 11, 22:00:00 (Timestamp-millis) | NTZ | Local | 2026, 2, 11, 22:00:00 |
NTZ | UTC | 2026, 2, 11, 22:00:00 | ||||
LTZ | UTC | 2026, 2, 11, 22:00:00 | ||||
LTZ | Local | 2026, 2, 12, 03:30:00 | ||||
2026, 2, 11, 22:00:00 | Local | LTZ | 2026, 2, 11, 22:00:00 (Local timestamp-millis) | NTZ | Local | 2026, 2, 11, 22:00:00 |
LTZ | Local | 2026, 2, 11, 22:00:00 | ||||
NTZ | UTC | 2026, 2, 11, 22:00:00 | ||||
LTZ | UTC | 2026, 2, 11, 16:30:00 | ||||
2026, 2, 11, 22:00:00 | UTC | NTZ | 2026, 2, 11, 22:00:00 (Timestamp-millis) | LTZ | UTC | 2026, 2, 11, 22:00:00 |
UTC | 2026, 2, 11, 22:00:00 | |||||
Local | 2026, 2, 11, 22:00:00 | |||||
Local | 2026, 2, 12, 03:30:00 | |||||
2026, 2, 11, 22:00:00 | UTC | LTZ | 2026, 2, 12, 03:30:00 (Local--timestamp-millis) | LTZ | Local | 2026, 2, 12, 03:30:00 |
NTZ | Local | 2026, 2, 12, 03:30:00 | ||||
NTZ | UTC | 2026, 2, 12, 03:30:00 | ||||
LTZ | UTC | 2026, 2, 11, 22:00:00 | ||||
2026, 2, 11, 22:00:00 | CEST | LTZ | 2026, 2, 12, 2: 30:00 (Local-timestamp-millis) | LTZ | Local | 2026-02-12 02:30:00 |
2026-02-11 21:00:00 | ||||||
2026-02-12 02:30:00 | ||||||
2026-02-12 02:30:00 | ||||||
2026, 2, 11, 22:00:00 | CEST | NTZ | 2026, 2, 11, 22:00:00 (Timestamp-millis) | LTZ | Local | 2026-02-12 03:30:00 |
LTZ | UTC | 2026-02-11 22:00:00 | ||||
NTZ | UTC | 2026-02-11 22:00:00 | ||||
NTZ | Local | 2026-02-11 22:00:00 |