如何在一天内从子文件夹 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
设置为通配符路径。然后就可以了
我在 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
设置为通配符路径。然后就可以了