如何在一天内从子文件夹 Azure 数据流中加载上次修改文件的数据

how to Load data from last modified files within one day from subfolders Azure Data Flow

我在 Azure 容器上有以下目录结构:

-dwh-prod
  -Main_Folder
   -2021-01
     -file1.parquet
   -2021-02
     -file2.parquet
     -file3.parquet

其中数据按年和月分区以创建子文件夹。在这些子文件夹中,我有我的数据文件。我只想将一天内从 运行 我的数据流管道中添加的最新文件加载到我的数据流中。

我尝试在结束时间中使用 currentUTC() 并在源选项中提供的 'Filter by last modified' 选项中的开始时间中减去一天 -> AddDays(currentUTC(), -1) 但它不起作用.

我也尝试使用 currentTimestamp() 代替,但没有用。

我该如何解决这个问题?

我认为您的解决方案很接近,但我不确定文件夹名称是否足够。我也不熟悉“currentUTC”。正确的函数应该是utcNow.

下面是我将如何解决这个问题的概述。

源数据集

为子文件夹添加一个参数(年-月):

然后将文件夹路径设置为如下表达式:

管道

您可以传入子文件夹或在 运行 时计算它。我的偏好是将其作为参数传递:

然后我会添加变量来计算开始和结束时间。由于您每天都 运行 这样做,我一定会将时间强制到一天的开始。这应该可以处理基于 运行 时间的任何变化。另外,我会使用内置的 getPastTime 函数:

现在在您的源配置中使用这些对象:

你的表达是正确的。请将数据集中的文件夹路径从 MainFolder 更改为 Main_folder,并在源选项中将 Main_Folder/*/*.parquet 设置为通配符路径。然后就可以了