何时应在Azure Synapse Analytics中使用装载点?

bybem2ql  于 2023-02-25  发布在  其他
关注(0)|答案(1)|浏览(180)

Azure Synapse Analytics的文档提到了两种使用Synapse Analytics中的Apache Spark池将数据读/写到Azure Data Lake Storage Gen 2的方法。
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)

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

czq61nw1

czq61nw11#

这两种方法的主要区别在于Apache Spark池如何访问和管理数据。
使用ADLS存储路径直接读取数据时,将直接从存储帐户访问数据,而无需任何中间缓存或处理。如果需要访问存储在与Synapse Analytics工作区关联的帐户或容器之外的帐户或容器中的数据,或者需要对Synapse文件系统(synfs)不支持的数据执行操作,则此方法非常适用。
另一方面,使用装载点时,您将创建一个Map到ADLS存储帐户的虚拟文件系统。这样,您就可以使用synfs路径访问数据,就像数据本地存储在Synapse工作区中一样。使用装载点的优点是,您可以利用Synapse文件系统功能,如元数据管理、缓存和访问控制。以优化数据处理并提高性能。
一般来说,当需要对同一数据执行频繁的读写操作,或者需要从多个Spark池或作业访问数据时,您应该更喜欢使用挂载点,这允许您利用Synapse文件系统的缓存和性能优化特性,但是,如果您只需要访问数据一次或者执行一个简单的操作,使用ADLS存储路径直接读取数据可能更方便。

相关问题