什么时候应该在 Azure Synapse Analytics 中使用装载点?

问题描述 投票:0回答:1

Azure Synapse Analytics 的文档提到了两种使用 Synapse Analytics 中的 Apache Spark 池将数据读/写到 Azure Data Lake Storage Gen2 的方法。

  1. 直接使用ADLS存储路径读取文件
adls_path = "abfss://<containername>@<accountname>.dfs.core.windows.net/<filepath>"

df = spark.read.format("csv").load(adls_path)

  1. 使用 mssparkutils 创建挂载点并使用 synfs 路径读取文件
mssparkutils.fs.mount( 
    "abfss://<containername>@<accountname>.dfs.core.windows.net", 
    "/data", 
    {"linkedService":"<accountname>"} 
) 

synfs_path = "synfs:/<jobid>/data/<filepath>"

df = spark.read.format("csv").load(synfs_path) 

这两种方法有什么区别?您应该什么时候更喜欢使用挂载点?

azure pyspark azure-data-lake azure-synapse azure-data-lake-gen2
1个回答
0
投票

这两种方法的主要区别在于 Apache Spark 池如何访问和管理数据。

当您直接使用ADLS存储路径读取数据时,直接从存储帐户访问数据,无需任何中间缓存或处理。当您需要访问存储在与 Synapse Analytics 工作区关联的帐户或容器不同的帐户或容器中的数据时,或者当您需要对 Synapse 文件系统 (synfs) 不支持的数据执行操作时,此方法适用).

另一方面,当您使用挂载点时,您创建了一个映射到 ADLS 存储帐户的虚拟文件系统。这允许您使用 synfs 路径访问数据,就好像它存储在本地 Synapse 工作区中一样。使用挂载点的优势在于您可以利用 Synapse 文件系统功能(例如元数据管理、缓存和访问控制)来优化数据处理并提高性能。

一般来说,当需要对同一份数据进行频繁的读写操作,或者需要访问多个Spark pools或jobs的数据时,应该更倾向于使用mount point。这使您可以利用 Synapse 文件系统的缓存和性能优化功能。但是,如果你只需要访问一次数据或者进行简单的操作,直接使用ADLS存储路径读取数据可能会更方便

© www.soinside.com 2019 - 2024. All rights reserved.