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つのオプションがあります:
- 圧縮を有効にする (収縮): 圧縮を有効にすると出力時間が長くなりますが、ファイルが大きいほど、ネットワーク時間も短縮されます。 サポートされている圧縮は、DEFLATEアルゴリズム(本質的にgzip)を使用し、Hiveなどの他のAvro対応ツールによってネイティブにサポートされる必要があります。
- null 値をサポート:このオプションを選択すると、null 分岐と値分岐を持つ共用体として _all_ フィールドが書き込まれます。 Alteryx値がnullの場合、出力Avroユニオンはそのnullブランチを選択します。そうでない場合、その値ブランチが選択されます。
このオプションが選択されていない場合、すべての出力フィールドは、固有の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: バイトとして維持