从打开工作区中的笔记本访问入站受限工作区中的 lakehouse

托管专用终结点可用于在开放工作区与限制入站公共访问的工作区之间建立跨工作区通信。 例如,如果要从打开工作区中的笔记本访问入站受限工作区中的 lakehouse,则可以设置托管专用终结点 (MPE),以便在两个工作区之间建立安全连接。

说明托管专用终结点如何与工作区集建立连接以拒绝公共访问的关系图。

在此图中,打开的工作区(工作区 1)具有连接到受限工作区(工作区 2)的托管专用终结点。 此设置允许工作区 1 中的笔记本安全地访问 Lakehouse,并在工作区 2 中读取 Delta 表,而无需将其公开给公共访问。

本文介绍如何通过 Fabric 门户或 API 中的工作区设置创建托管专用终结点。

步骤 1:创建工作区

在 Fabric 中创建工作区。 此设置涉及打开的工作区和受限工作区。 在本文中,工作区称为:

  • 源工作区是没有公共访问限制的开放工作区。
  • 目标工作区是限制入站公共访问的工作区。

注释

本文指工作区完全限定的域名(FQDN)。 格式为:

https://{workspaceID}.z{xy}.w.api.fabric.microsoft.com

{workspaceID}其中工作区 ID 没有短划线,并且{xy}是工作区对象 ID 的前两个字母(另请参阅“连接到工作区”。

可以通过在 Fabric 门户中打开工作区页并在 URL 中的“groups/”后面指出 ID 来查找工作区 ID。 还可以使用 列表工作区 或获取 API 中的 工作区查找工作区 FQDN。

步骤 2:创建托管专用终结点

在源(开放)工作区中创建托管专用终结点(MPE)。 在门户或以下 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这是受限工作区中专用链接的资源 ID。 若要创建目标工作区的托管专用终结点,需要目标工作区的专用链接服务资源 ID。

显示创建 MPE API 的屏幕截图。

可以通过查看工作区的资源 JSON 在 Azure 中找到此资源 ID。 确保 JSON 中的工作区 ID 与目标工作区匹配。

显示如何在资源 json 文件中获取专用链接资源 ID 的屏幕截图。

工作区 2 的专用链接服务所有者需要批准 Azure 专用链接中心>挂起的连接中的托管专用终结点请求。

步骤 3:在受限工作区中创建 Lakehouse

使用以下 Create Lakehouse API 在目标(受限)工作区中创建 Lakehouse:

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

其中{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/lakehouses

显示在目标工作区中创建 Lakehouse 的屏幕截图。

步骤 4:将 Delta 表上传到 Lakehouse

使用 Azure 存储资源管理器将 Delta 表文件夹上传到受限 Lakehouse 的托管存储中。

  1. 转到 Azure 存储资源管理器,选择左侧菜单中的连接图标,然后选择 ADLS Gen2 容器或目录

  2. 使用 OAuth 登录。

  3. 输入存储的显示名称,并使用以下格式输入 Blob 容器 URL:

    https://{workspaceFQDN}/{workspaceID}/{lakehouseID}

    where {workspaceFQDN}{workspaceID}.z{xy}.onelake.fabric.microsoft.com

    例如:POST https://aaaaaaaa000011112222bbbbbbbbbbbb.zaa.w.api.fabric.microsoft.com/v1/workspaces/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb/bbbbbbbb-1111-2222-3333-cccccccccccc

    显示输入连接信息的屏幕截图。

  4. 选择“连接” 。 存储现在应显示在资源管理器视图中。

  5. “表” 文件夹下,上传要使用的 Delta 表。 此示例使用 客户 表。

    显示上传文件夹选项的屏幕截图。

步骤 5:在源工作区中创建笔记本

创建笔记本并将其连接到受限湖屋,如下所示:

  1. 在源工作区中,转到 笔记本

  2. 选择“ + 新建笔记本”。 

  3. 选择 Spark 运行时。 

  4. 在“资源管理器”窗格中连接到目标工作区。

  5. 粘贴以下代码:

    from pyspark.sql import SparkSession
    # Read Delta table from the restricted lakehouse using Workspace DNS-based ABFSS URI
    df = spark.read.format("delta").load(
       "abfss://{WorkspaceID}@{WorkspaceFQDN}/{LakehouseID}/Tables/customers"
    )
    

    确保:

    • ABFSS 路径与 Lakehouse 的 DNS 和表位置匹配。
    • 通过专用终结点正确建立了开放和受限工作区之间的网络访问。
  6. 运行笔记本。 如果正确设置了专用终结点和权限,笔记本将从受限的 Lakehouse 连接并显示 Delta 表的内容。