gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 02:31:11 36 4
gpt4 key购买 nike

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

文件以以下分区格式存储{source}/{year}/{month}/{filename}_{date}.parquet

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

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

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

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

最佳答案

您可以使用文件元数据查询最新文件,但您需要确保您的 parquet 文件以日期戳开头:

CREATE VIEW v_latest_user AS (
SELECT
*
, t1.filename() AS [FILE_NAME]
FROM OPENROWSET (
BULK 'RAW/my_data/users/year=*/month=*/*.parquet',
DATA_SOURCE = 'myDataLake',
FORMAT = 'PARQUET'
) WITH (
Serial bigint
-- , MyColumn varchar(8), ...
) t1
WHERE
t1.filename() IN (
SELECT TOP 1
t2.filename()
FROM OPENROWSET (
BULK 'RAW/my_data/users/year=*/month=*/*.parquet',
DATA_SOURCE = 'myDataLake',
FORMAT = 'PARQUET'
) t2
ORDER BY
t2.filename() DESC
)
)

看看https://learn.microsoft.com/en-us/azure/synapse-analytics/sql/query-specific-files有关在 SQL Serverless 查询中使用文件元数据的详细信息。

关于Azure Synapse Polybase/外部表 - 仅返回最新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65100262/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com