【问题标题】:Get Last Modified Date on Partitioned Data Using Azure Data Factory使用 Azure 数据工厂获取分区数据的最后修改日期
【发布时间】:2021-11-25 07:59:00
【问题描述】:

我最终试图获取在过去 24 小时内修改过的分区的名称(即 DATE_ID=20211004)。我试过使用获取元数据活动,但它似乎只迭代分区文件夹,而不是分区文件夹中的文件。我需要获取文件夹中分区文件的最后修改日期,但我不知道该怎么做。

文件夹结构:

product_data/

|---------DATE_ID=20211002/

|---------|---------part-00011-tid-345678900-abc123-6793-1.c000.snappy.parquet

|---------|---------committed_123456789

|---------DATE_ID=20211003/

|---------|---------part-00086-tid-345678900-abc123-6756-2.c000.snappy.parquet

|---------|---------committed_123456789

|---------DATE_ID=20211004/

|---------|---------part-00042-tid-345678900-abc123-6712-1.c000.snappy.parquet

|---------|---------committed_123456789

在上面的示例中,我想获取每个 parquet 文件的最后修改日期和全名。

我尝试了多种 For Each + get Metadata 活动组合,如下所示:

https://ibb.co/B4vMF6j

【问题讨论】:

  • @KarthikBhyresh-MT 我还没有尝试过!看起来它确实会起作用!我打算在下周中旬试一试。在加倍返回之前,我需要与其他管道/流程一起前进。我会更新你!感谢您的彻底回复!您知道为什么带有分区数据的复制活动可能会失败吗? docs.microsoft.com/en-us/answers/questions/582075/…
  • 我已经在这里回答了stackoverflow.com/questions/69522310/…这主要是架构不匹配,尝试在映射部分重置和导入架构。

标签: azure-blob-storage azure-data-factory last-modified


【解决方案1】:

您必须将 开始时间 (UTC) 设置为 @getPastTime(24,'Hour') 并将 结束时间 (UTC) 保留为 NULL 以获取过去 24 小时内修改的所有文件从当前时间戳。使用它只会输出子项,即文件而不是文件夹。这是设计使然。

使用路径作为分区数据的根创建源数据集。使用Get Metadata 活动列出该文件夹中的文件。

将文件的输出列表分配给数组变量:

@activity('Get Metadata').output.childItems

接下来,您可以使用元数据选项lastModified来获取每个文件或文件夹的最后修改日期时间。

foreach 活动@variables('items') 中,创建源文件的克隆,并添加参数 以根据我们在foreach 中收到的每个文件动态获取文件。

内部foreach activity

然后我们将收到的这些 lastmodified 时间戳附加到另一个变量(您可以根据需要自定义它

 @concat(item().name, '  ', 'LastModified:' , activity('Get Metadata1').output.lastModified)

最后列出所有结果,将 result 从附加变量存储到名为 final 的结果变量中。

   {
    "name": "final",
    "value": [
        "SourceAAD.csv  LastModified:2021-09-29T13:15:07Z",
        "mysource.csv  LastModified:2021-09-27T11:56:33Z",
        "new adf.xlsx  LastModified:2021-09-29T13:16:01Z",
        "sourceDataTime.parquet  LastModified:2021-09-13T05:42:43Z",
        "table3_CustomerAddress.csv  LastModified:2021-10-04T06:01:12Z",
        "table4_product.csv  LastModified:2021-10-04T06:01:13Z",
        "table5_ProductCategory.csv  LastModified:2021-10-04T06:01:12Z",
        "table6_ProductDescription.csv  LastModified:2021-10-04T06:01:12Z",
        "testSource.json  LastModified:2021-08-30T04:19:54Z",
        "testSource.txt  LastModified:2021-08-30T04:17:56Z",
        "userdata2.parquet  LastModified:2021-09-13T03:57:27Z",
        "userdataCopy.parquet  LastModified:2021-09-13T03:57:28Z",
        "userdataOriginal.parquet  LastModified:2021-09-13T03:56:51Z"
    ]
}

【讨论】:

    猜你喜欢
    • 2021-12-11
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-21
    相关资源
    最近更新 更多