将 OneLake 与 Azure Synapse Analytics 集成

Azure Synapse是一种无限的分析服务,它汇集了企业数据仓库和大数据分析。 本教程演示如何使用 Azure Synapse Analytics 连接到 OneLake。

先决条件

在开始之前,请确保具有以下项:

  • 访问 Synapse 工作区,可在其中创建或使用 Apache Spark 池并运行 SQL 脚本。
  • 在Fabric访问湖屋。
  • lakehouse Tables 文件夹或要查询的表的 ABFS 路径。

使用 Apache Spark 从 Synapse 写入数据

按照以下步骤使用 Apache Spark 从 Azure Synapse Analytics 将示例数据写入 OneLake。

  1. 打开 Synapse 工作区,并使用首选参数 创建 Apache Spark 池

    屏幕截图显示在 Apache Spark 池界面中如何选择“新建”。

  2. 创建新的 Apache Spark 笔记本。

  3. 打开笔记本,将语言设置为 PySpark (Python),并将其连接到新创建的 Spark 池。

  4. 在单独的选项卡中,导航到 Microsoft Fabric lakehouse,找到顶级 Tables 文件夹。

  5. 右键单击 “表 ”文件夹,然后选择“ 属性”。

    显示打开“属性”窗格 Lakehouse 资源管理器的位置的屏幕截图。

  6. 从属性窗格中复制 ABFS 路径

    显示复制 ABFS 路径的位置的屏幕截图。

  7. 返回到 Azure Synapse 笔记本,在第一个新的代码单元中提供 lakehouse 路径。 此路径指向 Lakehouse 中的 Tables 文件夹,稍后将写入示例数据。 运行该单元。

    # Replace the path below with the ABFS path to your lakehouse Tables folder. 
    oneLakePath = 'abfss://WorkspaceName@onelake.dfs.fabric.microsoft.com/LakehouseName.lakehouse/Tables'
    
  8. 在新代码单元中,将数据从Azure打开的数据集加载到数据帧中。 此数据集是加载到 Lakehouse 中的数据集。 运行该单元。

    yellowTaxiDf = spark.read.parquet('wasbs://nyctlc@azureopendatastorage.blob.core.windows.net/yellow/puYear=2018/puMonth=2/*.parquet')
    display(yellowTaxiDf.limit(10))
    
  9. 在新代码单元中,筛选、转换或准备数据。 对于此方案,可以剪裁数据集,以便更快地加载、与其他数据集联接,或向下筛选到特定结果。 运行该单元。

    filteredTaxiDf = yellowTaxiDf.where(yellowTaxiDf.tripDistance>2).where(yellowTaxiDf.passengerCount==1)
    display(filteredTaxiDf.limit(10))
    
  10. 在新的代码单元中,使用 OneLake 路径将筛选后的数据帧写入 Fabric lakehouse 中的新的 Delta-Parquet 表。 运行该单元。

    filteredTaxiDf.write.format("delta").mode("overwrite").save(oneLakePath + '/Taxi/')
    
  11. 最后,在新代码单元中,通过从 OneLake 读取新的 Delta 表来测试数据是否已成功写入。 运行该单元。

    lakehouseRead = spark.read.format('delta').load(oneLakePath + '/Taxi/')
    display(lakehouseRead.limit(10))
    

祝贺。 现在可以在 Azure Synapse Analytics 中使用 Apache Spark 在 OneLake 中读取和写入数据。

使用 SQL 从 Synapse 读取数据

按照以下步骤,使用 SQL 无服务器从 Azure Synapse Analytics 中读取 OneLake 的数据。

  1. 打开Fabric lakehouse,并标识想要从 Synapse 查询的表。

  2. 右键单击该表,然后选择“ 属性”。

  3. 复制表的 ABFS 路径

    显示复制 ABFS 路径的位置的屏幕截图。

  4. Synapse Studio 中打开 Synapse 工作区。

  5. 创建一个新的 SQL 脚本。

  6. 在 SQL 查询编辑器中,输入以下查询,并将 ABFS_PATH_HERE 替换为您之前复制的路径。

    SELECT TOP 10 *
    FROM OPENROWSET(
    BULK 'ABFS_PATH_HERE',
    FORMAT = 'delta') as rows;
    
  7. 运行查询以查看表的前 10 行。

祝贺。 现在可以在 Azure Synapse Analytics 中使用无服务器 SQL 从 OneLake 读取数据。