Skip to main content

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つのオプションがあります。

  1. 圧縮を有効にする(デフレート): 圧縮を有効にすると出力時間は長くなりますが、ファイルが大きくなるとネットワーク時間が短縮されます。サポートされている圧縮は、DEFLATEアルゴリズム(本質的にgzip)を使用し、Hiveなどの他のAvro対応ツールによってネイティブにサポートされる必要があります。

  2. 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 as Date, Time, DateTime

  • Double: Double (倍精度浮動小数点数値型)として維持される

  • FixedDecimal: Double (倍精度浮動小数点数値型)に変換される

  • String、V_String、Date、Time、DateTime: String (UTF-8)として維持される

  • WString、V_WString: String (UTF-8)に変換される

  • Blob、SpatialBlob: Bytesとして維持される