パイプラインでパーティションを使用して Lakehouse にデータを読み込む

変換先としてのレイクハウステーブルのパーティション機能は、パーティションを含むレイクハウステーブルにデータを読み込む機能を提供します。 パーティションは、レイクハウスの変換先で生成され、その後続のジョブや消費に役立ちます。

このチュートリアルでは、パイプラインでパーティションを使用して Lakehouse にデータを読み込む方法について説明します。 たとえば、次の手順を実行して、1 つまたは複数のパーティション列を使用して、Lakehouse にサンプル データセットを読み込みます。 サンプル データセット 祝日 は、サンプル データとして使用されます。

前提条件

パイプラインを作成する

  1. Power BI に移動します。

  2. 画面の左下にあるPower BI アイコンを選択し、Fabric を選択して Data Factory のホームページを開きます。

  3. Microsoft Fabric ワークスペースに移動します。 前の「前提条件」セクションで新しいワークスペースを作成した場合は、それを使用します。

  1. + 新規アイテム を選択します。

  2. パイプラインを検索して選択し、 パイプライン 名を入力して新しいパイプラインを作成します。 新しいパイプラインを作成するために。

    新しく作成されたワークスペースの新しいパイプライン ボタンを示すスクリーンショット。

    新しいパイプラインを作成する際の名前を示すスクリーンショット。

パーティション列を使用してレイクハウスにデータを読み込む

  1. パイプラインを開き、パイプライン アクティビティから>を選択し、コピー アクティビティを追加します。 [ソース] で、接続リストの下部にある [その他] を選択し、[サンプル データ] タブで [祝日] を選択します。

    サンプル データセットの使用を示すスクリーンショット。

    サンプル データセットの選択を示すスクリーンショット。

  2. [宛先] タブで、接続リストの下部にある [詳細] を選択し、[OneLake] タブで既存の Lakehouse を選択し、Lakehouse を指定するか、[ホーム] タブで新しい Lakehouse を作成します。ルート フォルダー[テーブル] を選択し、テーブル名を指定します。

    宛先の構成を示すスクリーンショット。

  3. [詳細設定] を展開し、[テーブル] アクションで [上書き] を選択し、[パーティションの有効化] を選択し、[パーティション列][列の追加] を選択し、パーティション列として使用する列を選択します。 パーティション列として 1 つの列または複数の列を使用することを選択できます。

    1 つの列を使用する場合は、 このチュートリアルの例として countryOrRegion (文字列型) が選択されています。 データは、異なる列の値でパーティション分割されます。

    宛先のパーティション列の構成を示すスクリーンショット。

    注釈

    選択できるパーティション列は、文字列、整数、ブール型、および datetime 型である必要があります。 他のデータ型の列はドロップダウン リストに表示されません。

    複数のパーティション列を使用する場合は、もう 1 つの列を追加し、例としてブール型である isPaidTimeOff を選択します。 続いて、パイプラインを実行します。 このロジックでは、まず最初に追加された列値によってテーブルがパーティション化され、その後、パーティション化されたデータが 2 番目に追加された列値によって引き続きパーティション化されます。

    複数のパーティション列の構成を示すスクリーンショット。

    ヒント

    列をドラッグして列の順序を変更すると、パーティションの順序も変更されます。

  4. [実行][保存して実行] の順に選び、パイプラインを実行します。

    保存と実行を示すスクリーンショット。

  5. パイプラインが正常に実行されたら、作成したレイクハウスに移動します。 コピーしたテーブルを見つけます。 テーブルを右クリックし、 [データの表示] を選択します。

    1 つのパーティション列 (countryOrRegion) の場合、テーブルは国または地域の名前によって異なるフォルダーごとにパーティション分割されます。 列名の特殊文字はエンコードされており、レイクハウスでファイルを表示するときに、ファイル名が列の値と異なる場合があります。

    Lakehouse のファイル ビューを示すスクリーンショット。

    コピーされた祝日データのファイル ビューを示すスクリーンショット。

    複数のパーティション列の場合、テーブルは国または地域の名前によって異なるフォルダーにパーティション分割されていることがわかります。

    パーティションの国またはリージョンのフォルダーを示すスクリーンショット。

    contryOrRegion=United States などのフォルダーを 1 つ選択>。 国名または地域名でパーティション分割されたテーブルは、追加された 2 番目の列 isPaidTimeOff の値 TrueFalse、または __HIVE_DEFAULT_PARTITION__ (サンプル データセットの空の値を表します) によって再びパーティション分割されます。

    ispaidtimeoff ごとの国またはリージョンのパーティションを示すスクリーンショット。

    同様に、テーブルをパーティション分割するために 3 つの列を追加すると、2 番目のレベルのフォルダーが追加された 3 番目の列によってパーティション分割されます。

次に、Azure Blob Storageから Lakehouse へのコピーの詳細を確認してください。