次の方法で共有


マッピング データ フローでのピボット変換

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。

データ フローは、Azure Data Factory パイプラインと Azure Synapse Analytics パイプラインの両方で使用できます。 この記事は、マッピング データ フローに適用されます。 変換を初めて使用する場合は、入門記事「 マッピング データ フローを使用したデータの変換」を参照してください。

ピボット変換を使用して、1 つの列の一意の行値から複数の列を作成します。 ピボットは、グループ化列を選択し、集計関数を使用してピボット列を生成する集計変換です。

構成

ピボット変換には、グループ化列、ピボット キー、およびピボットされた列の生成方法という 3 つの異なる入力が必要です

グループ化

オプションでグループ化する

ピボットした列を集計するために、どの列を選択するか決めます。 出力データは、同じグループ化の値を持つすべての行を 1 つの行にグループ化します。 ピボットされた列で行われる集計は、各グループに対して行われます。

このセクションは省略可能です。 グループ化列が選択されていない場合は、データ ストリーム全体が集計され、1 つの行だけが出力されます。

ピボット キー

ピボット キー

ピボット キーは、行の値が新しい列にピボットされる列です。 既定では、ピボット変換によって、一意の行値ごとに新しい列が作成されます。

[Value](値) というラベルが付いたセクションには、ピボットする特定の行値を入力できます。 このセクションに入力された行値だけがピボットされます。 [Null value](Null 値) を有効にすると、列の null 値に対するピボットされた列が作成されます。

ピボットされた列

ピボットされた列

列になる一意のピボット キー値ごとに、各グループの集計された行値を生成します。 ピボット キーごとに複数の列を作成できます。 各ピボット列には、少なくとも 1 つの集計関数が含まれている必要があります。

[Column name pattern](列名のパターン): 各ピボット列の列名の書式を設定する方法を選択します。 出力された列名は、ピボット キー値、列プレフィックス、および省略可能なプレフィックス、サフィックス、中間文字を組み合わせたものになります。

[Column arrangement](列の配置): ピボット キーごとに複数のピボット列を生成する場合は、列の順序付け方法を選択します。

[Column prefix](列プレフィックス): ピボット キーごとに複数のピボット列を生成する場合は、各列の列プレフィックスを入力します。 ピボットされた列が 1 つしかない場合、この設定は省略可能です。

ヘルプ グラフィック

次のヘルプ グラフィックは、さまざまなピボット コンポーネントがどのように相互に作用しているかを示しています。

ピボット支援グラフィック

ピボットのメタデータ

ピボット キー構成に値が指定されていない場合、ピボットされた列は実行時に動的に生成されます。 ピボットされた列の数は、一意のピボット キー値の数にピボット列の数を乗算した値と等しくなります。 この数は変わる可能性があるため、UX は [Inspect](検査) タブに列のメタデータを表示せず、列の反映は行われません。 これらの列を変換するには、マッピング データ フローの列パターン機能を使用します。

特定のピボット キー値が設定されている場合、ピボットされた列はメタデータに表示されます。 列名は、インスペクトおよびシンク マッピングで利用可能になります。

誤差のある列からメタデータを生成する

ピボットでは、行の値に基づいて動的に新しい列名が生成されます。 これらの新しい列は、後でデータ フローで参照できるメタデータに追加できます。 これを行うには、データ プレビューで map drifted クイック アクションを使用します。

ピボット列

落とし込むピボット化された列

ピボットされた列は動的ですが、宛先のデータ ストアに書き込むことができます。 シンク設定で、 [Allow Schema Drift](スキーマの誤差を許可) を有効にします。 これにより、メタデータに含まれていない列を書き込むことができます。 列メタデータには新しい動的な名前が表示されないことになりますが、スキーマドリフトオプションでデータを取り込むことが可能です。

元のフィールドを再結合する

ピボット変換は、グループ化された列とピボットされた列のみをプロジェクトします。 出力データに他の入力列を含めたい場合は、自己結合パターンを使用します。

データ フローのスクリプト

構文

<incomingStreamName>
    pivot(groupBy(Tm),
        pivotBy(<pivotKeyColumn, [<specifiedColumnName1>,...,<specifiedColumnNameN>]),
        <pivotColumnPrefix> = <pivotedColumnValue>,
        columnNaming: '< prefix >< $N | $V ><middle >< $N | $V >< suffix >',
        lateral: { 'true' | 'false'}
    ) ~> <pivotTransformationName

構成セクションに表示される画面には、次のデータ フロー スクリプトがあります。

BasketballPlayerStats pivot(groupBy(Tm),
    pivotBy(Pos),
    {} = count(),
    columnNaming: '$V$N count',
    lateral: true) ~> PivotExample

列の値を行の値に変換するピボット解除変換を試します。