次の方法で共有


パイプラインを使用して、開いているワークスペースから受信制限付きワークスペース内のレイクハウスにアクセスする

パイプラインを使用して、開いている ワークスペース、受信パブリック アクセスを制限するワークスペースの間のクロスワークスペース通信を確立できます。 たとえば、開いているワークスペースにパイプラインを作成して、受信制限付きワークスペース内のレイクハウスにアクセスできます。 このセットアップにより、ワークスペース 1 のノートブックは、パブリック アクセスに公開することなく、Lakehouse に安全にアクセスし、ワークスペース 2 の Delta Lake テーブルを読み取ることができます。

手順 1: ワークスペースを作成する

開いているワークスペースと制限されたワークスペースの両方が必要です。 この記事では、ワークスペースを次のように参照します。

  • ソース ワークスペースは、パブリック アクセス制限のない 開いている ワークスペースです。 ここでパイプラインを作成します。
  • ターゲットワークスペースは、外部からのパブリックアクセスが制限されている制限付ワークスペースです。 ここでレイクハウスを作成します。

ワークスペースを作成するには、次の手順に従います。

  1. Microsoft Fabric で 2 つのワークスペースを作成します。 詳細については、「 ワークスペースの作成」を参照してください。

  2. テナント設定で、 ワークスペース レベルの受信アクセス保護を有効にします

  3. ターゲット ワークスペースの場合は、 ワークスペース レベルのプライベート リンクを設定します

手順 2: 制限されたワークスペースにレイクハウスを作成する

次の Create Lakehouse API を使用して、ターゲット (制限付き) ワークスペースに Lakehouse を作成します。

POST https://{workspaceid}.z{xy}.w.api.fabric.microsoft.com/workspaces/{workspaceID}/lakehouses

レイクハウスの作成を示すスクリーンショット。

手順 3: マネージド プライベート エンドポイントを作成する

ソース (オープン) ワークスペースにマネージド プライベート エンドポイントを作成します。 ポータルまたは次の API で ワークスペース 設定を使用します。

POST https://{workspaceFQDN}/v1/workspaces/{workspaceID}/managedPrivateEndpoints

そのコードでは、 {workspaceFQDN}{workspaceID}.z{xy}.w.api.fabric.microsoft.com

たとえば、 POST https://aaaaaaaa000011112222bbbbbbbbbbbb.zaa.w.api.fabric.microsoft.com/v1/workspaces/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb/managedPrivateEndpointsと指定します。

targetPrivateLinkResourceId パラメーターは、制限付きワークスペース内の Azure Private Link サービスのリソース ID です。 ターゲット ワークスペースへのマネージド プライベート エンドポイントを作成するには、このリソース ID が必要です。

マネージド プライベート エンドポイントを作成するための API を示すスクリーンショット。

このリソース ID は、ワークスペースのリソース JSON を表示することで Azure で確認できます。 JSON 内のワークスペース ID が目的のターゲット ワークスペースと一致していることを確認します。

リソース JSON ファイルで Private Link リソース ID を取得する方法を示すスクリーンショット。

ワークスペース 2 の Private Link サービス所有者は、Azure プライベート リンク センターのマネージド プライベート エンドポイントの要求を承認する必要があります>接続待ち

手順 4: Delta Lake テーブルをレイクハウスにアップロードする

Azure Storage Explorer を使用して、Delta Lake テーブルのフォルダーを制限付き Lakehouse のマネージド ストレージにアップロードします。

  1. Storage Explorer に移動し、左側のメニューで接続アイコンを選択し、 ADLS Gen2 コンテナーまたはディレクトリを選択します。

  2. OAuth を使用してサインインします。

  3. ストレージの表示名を入力し、BLOB コンテナーの URL を次の形式で入力します。

    https://{workspaceID}.z{xy}.onelake.fabric.microsoft.com/{workspaceID}/{lakehouseID}

    このコードでは、 workspaceID はダッシュのないワークスペース ID で、 {xy} はワークスペース ID の最初の 2 文字です。

    接続情報の入力を示すスクリーンショット。

  4. [接続] を選択します。 これで、ストレージがエクスプローラー ビューに表示されます。

  5. [ テーブル ] フォルダーで、使用する Delta Lake テーブルをアップロードします。 この例では、 customers テーブルを使用します。

    フォルダーをアップロードするオプションを示すスクリーンショット。

手順 5: 制限付きワークスペースにノートブックを作成する

テーブルから読み取り、新しいテーブルに書き込むノートブックを作成します。 これを行うには、UI を使用して開いているワークスペースにノートブックを作成します。

  1. 開いているワークスペースで、UI を使用して、同じテーブルと同様のノートブックを含むレイクハウスを作成します。

    新しいテーブルにファイルを読み込むページを示すスクリーンショット。

  2. ノートブックで lakehouse を接続し、新しいテーブルを作成するためのスクリプトを実行します。

    df = spark("SELECT * FROM Lakehouse_Open.customers")
    display(df)
    df.write.mode("overwrite").saveAsTable("Lakehouse_Open.customersnew")
    

    新しいテーブルを作成するためのスクリプトの実行を示すスクリーンショット。

  3. ノートブックを保存します。

  4. API を使用してノートブック定義を取得し、場所の結果を取得します。

    Get Notebook Definition API: GET https://{WorkspaceID w/o (-)}.zxy.w.api.fabric.microsoft.com/{WorkspaceID}/notebooks/getDefinition
    
    Get location API: GET {location}/result
    
  5. notebook-content.py Base64 から JSON に変換し、変換されたコンテンツをコピーしてから、制限付き lakehouse の値で次の値を更新した後、JSON から Base64 にコンテンツを変換し直します。

  6. 更新された要求本文を使用して、定義を含むノートブックを作成します。

    Create Notebook API: GET https://{WorkspaceID w/o (-)}.zxy.w.api.fabric.microsoft.com/{WorkspaceID}/notebooks
    
    Get location API: GET {location}/result
    

手順 6: 開いているワークスペースにパイプラインを作成する

  1. 開いているワークスペースで、Fabric ポータルまたは API を使用してパイプラインを作成します。

  2. ノートブック アクティビティを追加します。

  3. [設定] で、接続を作成します。

    データ ソースを接続するためのペインを示すスクリーンショット。

  4. 制限付きワークスペースを選択します。

    制限付きワークスペースの選択を示すスクリーンショット。

  5. ノートブック ID をパラメーターとして追加します。

    @pipeline().parameters.notebookId

  6. パイプライン パラメーターに、制限されたワークスペースの実際のノートブック ID を入力します。

    ノートブック ID を追加する場所を示すスクリーンショット。

  7. パイプラインを保存し、パイプライン ID をコピーします。

手順 7: API を使用してパイプラインを実行する

  1. API を使用してパイプラインをトリガーします。 たとえば、ブルーノを使用します。

    パイプライン実行の API エンドポイントの形式を次に示します。

    https://{openWsIdWithoutDashes}.zxy.w.api.fabric.microsoft.com/v1/workspaces/{openWsId}/items/{pipelineId}/jobs/instances?jobType=Pipeline`
    
    Get location API: GET {location}
    
  2. 実行状態が完了するまで待ちます。 ファブリック ポータルの [モニター ] ページで状態を確認できます。

    [監視] ページを示すスクリーンショット。

手順 8: テーブルの作成を確認する

  1. 制限付きワークスペースのレイクハウスで Storage Explorer を開きます。

  2. 新しいテーブルが作成されたことを確認します。

  3. List Tables API を使用して、lakehouse テーブルを取得します。

    List Tables API: GET https://{openWsIdWithoutDashes}.zxy.w.api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/tables