Azure Synapse Polybase/外部表 - 仅返回最新文件

Posted

技术标签:

【中文标题】Azure Synapse Polybase/外部表 - 仅返回最新文件【英文标题】:Azure Synapse Polybase/External tables - return only latest file 【发布时间】:2021-03-13 22:49:04 【问题描述】:

我们在数据湖中有一个文件分区,并使用 Azure Synapse SQL Serverless 池在 Power BI 中可视化之前使用外部表查询它们。

文件存储在以下分区格式source/year/month/filename_date.parquet

然后我们有一个外部表来加载该源的所有文件。

对于每天递增的所有文件,这非常有效,因为我们希望包含所有文件。但是,我们有一些集成,我们只想返回最新文件。 (即发送给我们的最新文件是我们要加载到 Power BI 中的当前状态)。

是否可以在外部表语句中只返回最新的文件?还是我们必须添加额外的逻辑? 我们可以加载所有文件,然后过滤最新的文件名并将其保存在新位置。或者,我们可以尝试创建一个每天都在变化的外部表。

有没有更好的方法来解决这个问题?

【问题讨论】:

【参考方案1】:

如果您使用的是专用池,那么我会使用最新的文件夹更改您的表的位置。

将每天加载到一个新文件夹中,然后更改外部表的 LOCATION 以查看当前/最新日期,但您可能需要添加其他逻辑以在控制表中跟踪最新成功加载日期是什么。

很遗憾,我自己还没有找到更好的方法。

【讨论】:

"更改外部表的位置" - 这可能吗?在无服务器(按需)SQL 池上尝试过,但无法在 Synapse 中工作

以上是关于Azure Synapse Polybase/外部表 - 仅返回最新文件的主要内容,如果未能解决你的问题,请参考以下文章

Azure Synapse 可以从外部关系存储中查询吗?

Azure SQL 数据仓库 (Synapse Analytics) 使用 ORC 表的 Polybase 性能

将 ADLS Gen 2 中的数据加载到 Azure Synapse

Azure synapse 中的两次复制(暂存复制 + 普通复制)如何比普通复制更优化

使用 ADF 将 azure blob 文件复制到 azure synapse

将数据从 ADLS Gen2 加载到 Azure Synapse 时出错