Synapse Analytics sql 按需与火花池同步查询很慢

问题描述

我已将文件加载到 Azure 存储帐户 gen2 中,并且正在使用 Azure Synapse Analytics 来查询它们。按照此处的文档:https://docs.microsoft.com/en-us/azure/synapse-analytics/sql/develop-storage-files-spark-tables,我应该能够创建一个 spark sql 表来查询分区数据,因此随后在我的 sql 按需查询中使用 spark sql 中的元数据来给出文档中的行: When a table is partitioned in Spark,files in storage are organized by folders. Serverless sql pool will use partition Metadata and only target relevant folders and files for your query

我的数据在 ADLS gen2 中分区为:

enter image description here

在 Synapse Analytics 的 spark notebook 中运行查询只需 4 秒多一点就返回,因为它应该给出分区:

enter image description here

但是,现在在 sql on demand sql 端脚本中运行相同的查询永远不会完成:

enter image description here

与火花池相比,这种结果和性能的极大降低与文档说明完全相反。查询中是否缺少某些内容以使 sql-on demand 使用分区?

解决方法

Filepath()filename() 函数可以在 WHERE 子句中用于过滤要读取的文件。您可以实现您一直在寻找的修剪。