Avroデータ型

Last modified: March 27, 2020

入力データツールを使用して、非圧縮およびデフレート圧縮 Avro ファイルを読み取り、出力データ ツールを使用して Avro ファイルを書き込みます。

入力

デフレート圧縮のみがサポートされています。

14 のネイティブ Avro データ型のほとんどがサポートされています。インポート元の型マッピングは次のとおりです。

  • 文字列: utf-8 を V_WString に変換 (utf-16)
  • バイト: blob として維持 (必要に応じて blob ツールを使用して変換)
  • Int: Int32 として維持
  • Long: Int64 として維持
  • フロート: フロートとして維持
  • 二重: 二重として維持される
  • ブール値: Bool として維持
  • Null: サポートされていません
  • Enum: 等価文字列に変換されます。
  • Union: Alteryx は、2つのサブタイプを持つ共用体をサポートします。両方のサブタイプは同等である必要があります (たとえば、int または両方の double) またはそのうちの 1 つが Null である必要があります。
    • Alteryxフィールドタイプは、非nullのブランチ(または両方が非nullの場合は両方のブランチ)のタイプになります。
    • 非nullブランチがアクティブな場合、Alteryxフィールドにその値が含まれるようになります。
    • nullブランチがアクティブな場合、Alteryxフィールドはnullに設定されます。
    • 無効なユニオンはJSONとしてV_WStringにインポートされます(必要に応じて、JSON解析ツールを使用して変換します)。例えば、アクティブなブランチとしてintを持つユニオンは、“{“int”:123}” として表すことができます。
  • 固定: blob として維持 (必要に応じて blob ツールを使用して変換)

次の Avro 型はネイティブではサポートされていませんが、JSON として文字列にインポートされます (必要に応じてJSON 解析ツールを使用して変換します)。

  • レコード: たとえば、"{" SubField1 ": 7," SubField2 ":" Field2 "} int と string の両方のフィールドを含むレコードの場合
  • 配列: たとえば、ints の配列の "[1, 2, 3, 4, 5]"
  • マップ: たとえば、"{" Key1 ": Value1、" Key2 ": Value2}" 文字列のマップをダブル

出力

Avro ファイルを書き込む場合、次の 2 つのオプションがあります。

このオプションを選択しない場合、すべての出力フィールドはネイティブの Avro 型 (非共用体) として書き込まれます。 nullのAlteryxフィールドは、デフォルト値として書き込まれます(例えば、int32の場合は0、文字列フィールドの場合は空の文字列)。

式ツールを使用して、Hadoop で処理できるように、既知の値を持つ Null 値を処理することを検討してください。

  1. 圧縮を有効にする (Deflate): 圧縮を有効にすると、出力時間が増加しますが、ファイルが大きくなるとネットワーク時間も短縮されます。サポートされている圧縮は DEFLATE アルゴリズム (本質的に gzip) を使用し、Hive などの他の Avro 対応ツールでネイティブにサポートする必要があります。
  2. Avro ファイルを書き込むときに、このオプションが選択されていない場合、すべての出力フィールドはネイティブの Avro 型 (非ユニオン) として書き込まれます。 nullのAlteryxフィールドは、デフォルト値として書き込まれます(例えば、int32の場合は0、文字列フィールドの場合は空の文字列)。数式ツールを使用して、Hadoop で処理できるように、既知の値を持つ Null 値を処理することを検討してください。
  3. 圧縮を有効にする (Deflate): 圧縮を有効にすると、出力時間が増加しますが、ファイルが大きくなるとネットワーク時間も短縮されます。サポートされている圧縮は DEFLATE アルゴリズム (本質的に gzip) を使用し、Hive などの他の Avro 対応ツールでネイティブにサポートする必要があります。
  4. Null 値のサポート: このオプションを選択すると、null 分岐と値分岐を持つ共用体として _all_ フィールドが書き込まれます。Alteryx 値が null の場合、出力 Avro 共用体は null ブランチを選択し、それ以外の場合は値分岐が選択されます。
  5. Alteryx から Avro への型マッピングは次のとおりです。
  6. Bool: ブール値として維持
  7. バイト、Int16、Int32: 維持 Int (32 ビット)
  8. Int64: 長い (64 ビット) として維持
  9. フロート: フロートとして維持
  10. 二重: 二重として維持される
  11. FixedDecimal: ダブルに変換
  12. 文字列、V_String、日付、時刻、DateTime: 文字列として維持 (utf-8)
  13. WString、V_WString: 文字列に変換 (utf-8)
  14. Blob、SpatialBlob: バイトとして維持
  15. : このオプションを選択すると、null ブランチと値分岐を持つ共用体として _all_ フィールドが書き込まれます。Alteryx 値が null の場合、出力 Avro 共用体は null ブランチを選択し、それ以外の場合は値分岐が選択されます。

Alteryx から Avro への型マッピングは次のとおりです。

  • Bool: ブール値として維持
  • バイト、Int16、Int32: 維持 Int (32 ビット)
  • Int64: 長い (64 ビット) として維持
  • フロート: フロートとして維持
  • 二重: 二重として維持される
  • FixedDecimal: ダブルに変換
  • 文字列、V_String、日付、時刻、DateTime: 文字列として維持 (utf-8)
  • WString、V_WString: 文字列に変換 (utf-8)
  • Blob、SpatialBlob: バイトとして維持
Was This Helpful?

Running into problems or issues with your Alteryx product? Visit the Alteryx Community or contact support.