我已将文件加载到 Azure 存储帐户 gen2 中,并使用 Azure Synapse Analytics 来查询它们。按照此处的文档:https://learn.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 中分区为:
在 Synapse Analytics 的 Spark 笔记本中运行查询只需 4 秒多一点即可返回,因为它应该给出分区:
但是,现在在 sql ondemand sql 端脚本中运行相同的查询永远不会完成:
与 Spark Pool 相比,这一结果以及性能的极端降低与文档所述完全相反。查询中是否缺少某些内容以使 sql 按需使用分区?
Filepath() 和 filename() 函数来过滤要读取的文件。您可以实现您一直在寻找的修剪。