Azure Synapse是一种无限的分析服务,它汇集了企业数据仓库和大数据分析。 本教程演示如何使用 Azure Synapse Analytics 连接到 OneLake。
先决条件
在开始之前,请确保具有以下项:
- 访问 Synapse 工作区,可在其中创建或使用 Apache Spark 池并运行 SQL 脚本。
- 在Fabric访问湖屋。
- lakehouse Tables 文件夹或要查询的表的 ABFS 路径。
使用 Apache Spark 从 Synapse 写入数据
按照以下步骤使用 Apache Spark 从 Azure Synapse Analytics 将示例数据写入 OneLake。
打开 Synapse 工作区,并使用首选参数 创建 Apache Spark 池 。
创建新的 Apache Spark 笔记本。
打开笔记本,将语言设置为 PySpark (Python),并将其连接到新创建的 Spark 池。
在单独的选项卡中,导航到 Microsoft Fabric lakehouse,找到顶级 Tables 文件夹。
右键单击 “表 ”文件夹,然后选择“ 属性”。
从属性窗格中复制 ABFS 路径 。
返回到 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'在新代码单元中,将数据从Azure打开的数据集加载到数据帧中。 此数据集是加载到 Lakehouse 中的数据集。 运行该单元。
yellowTaxiDf = spark.read.parquet('wasbs://nyctlc@azureopendatastorage.blob.core.windows.net/yellow/puYear=2018/puMonth=2/*.parquet') display(yellowTaxiDf.limit(10))在新代码单元中,筛选、转换或准备数据。 对于此方案,可以剪裁数据集,以便更快地加载、与其他数据集联接,或向下筛选到特定结果。 运行该单元。
filteredTaxiDf = yellowTaxiDf.where(yellowTaxiDf.tripDistance>2).where(yellowTaxiDf.passengerCount==1) display(filteredTaxiDf.limit(10))在新的代码单元中,使用 OneLake 路径将筛选后的数据帧写入 Fabric lakehouse 中的新的 Delta-Parquet 表。 运行该单元。
filteredTaxiDf.write.format("delta").mode("overwrite").save(oneLakePath + '/Taxi/')最后,在新代码单元中,通过从 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 的数据。
打开Fabric lakehouse,并标识想要从 Synapse 查询的表。
右键单击该表,然后选择“ 属性”。
复制表的 ABFS 路径 。
在 Synapse Studio 中打开 Synapse 工作区。
创建一个新的 SQL 脚本。
在 SQL 查询编辑器中,输入以下查询,并将
ABFS_PATH_HERE替换为您之前复制的路径。SELECT TOP 10 * FROM OPENROWSET( BULK 'ABFS_PATH_HERE', FORMAT = 'delta') as rows;运行查询以查看表的前 10 行。
祝贺。 现在可以在 Azure Synapse Analytics 中使用无服务器 SQL 从 OneLake 读取数据。