Avroデータ型

ウィンドウを データ入力ツール 圧縮されていないと収縮したアブロファイルを読み、 出力データツール アブロファイルを作成します。

入力

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

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

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

次のアブロ型はネイティブではサポートされていませんが、JSON として文字列にインポートされます ( JSONパースツール 必要に応じて変換するには):

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

出力

Avroファイルを書き込む際は、2つのオプションがあります:

  1. 圧縮を有効にする (収縮): 圧縮を有効にすると出力時間が長くなりますが、ファイルが大きいほど、ネットワーク時間も短縮されます。 サポートされている圧縮は、DEFLATEアルゴリズム(本質的にgzip)を使用し、Hiveなどの他のAv​​ro対応ツールによってネイティブにサポートされる必要があります。
  2. null 値をサポート:このオプションを選択すると、null 分岐と値分岐を持つ共用体として _all_ フィールドが書き込まれます。 Alteryx値がnullの場合、出力Avroユニオンはそのnullブランチを選択します。そうでない場合、その値ブランチが選択されます。
  3. このオプションが選択されていない場合、すべての出力フィールドは、固有のAvroタイプ(非ユニオン)として書き込まれます。  nullのAlteryxフィールドは、デフォルト値として書き込まれます(例えば、int32の場合は0、文字列フィールドの場合は空の文字列)。

    を使用することを検討 フォーミュラツール "既知の" 値で Null 値を処理して、Hadoop で処理できるようにします。

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

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