詳細モードでの階層データの読み取り
詳細モードでソーストランスフォーメーションを使用して、Avroファイル、JSONファイル、Parquetファイルなどの複合ファイルから階層データを読み取ることができます。詳細モードは、データを配列、マップ、または構造体として表します。
階層データを読み取るには、
[ソース]タブで形式をJSONなどの階層形式に設定するか、
[構造の検出]に設定します。
インテリジェント構造モデルを使用して、データの構造を定義する場合は、
[構造の検出]を使用します。
詳細については、Using インテリジェント構造モデルs in mappings in advanced modeを参照してください。マッピングのダウンストリームで、階層フィールドをパススルーフィールドとして使用して、ある複合ファイル形式のデータを別の複合ファイル形式に変換できます。例えば、階層データをAvroソースから読み取り、そのデータをJSONターゲットに書き込むことができます。また、階層フィールドとその子フィールドをダウンストリームトランスフォーメーションの式および条件で使用することもできます。子フィールドへのアクセスの詳細については、関数リファレンスの説明を参照してください。
階層フィールドは次のトランスフォーメーションに渡すことができます。
- •ターゲット
- •アグリゲータ
- •式
- •フィルタ
- •階層プロセッサ
- •ジョイナ
- •ランク
- •ルータ
- •シーケンスジェネレータ
- •ソーター
階層データを読み取るためのルールとガイドライン
階層データを読み取る場合は、次のガイドラインを考慮してください。
- •階層データを読み取るには、Amazon S3 V2接続またはAzure Data Lake Storage Gen2接続を使用する必要があります。詳細については、該当するコネクタのヘルプを参照してください。
- •XMLソースからデータを読み取るには、ソーストランスフォーメーションでインテリジェント構造モデルを使用します。インテリジェント構造モデルの詳細については、「コンポーネント」を参照してください。
- •ソース接続またはソースオブジェクトのパラメータを使用することはできません。
- •階層フィールドにdecimalデータ型の子フィールドが含まれている場合、マッピングは低精度を使用して実行されます。
- •トランスフォーメーションは、データの最初の行の値に基づいて精度とスケールを設定します。この最初の行は、行0と呼ばれることもあります。
- •データの切り捨てを回避するには、データの最初の行の精度とスケールを上げます。また、最初の行にnull値が含まれていないことを確認します。