数据工厂 v2:数据湖增量复制活动



在我的Azure Data Lake目录ingest中,我有以时间戳命名的子目录:

ingest/1510395023/file.tsv
ingest/1510425023/file.tsv
ingest/1510546210/file.tsv
...

Azure 数据工厂 v2 复制活动(数据湖到 SQL Server(中,如何将数据湖目录筛选为大于指定时间戳的目录?

假设我将已复制的时间戳记录到 SQL Server 中,并且在下一次管道运行时,我只想根据查找活动复制增量新目录。

数据工厂文档引用逻辑函数,但我不明白如何在这种情况下实现它们。

或者:如果文件名(而不是目录(上有可用的逻辑比较过滤器,那也会很有帮助。

注意:我也想加载历史数据,因此仅过滤大于或等于now的时间戳是不够的。

我假设您有一个Data Lake Analytics帐户。

使用 U-SQL 活动,可以将目标文件复制到单个文件,然后可以使用复制活动复制该文件。

您可以通过提取文件集并按其虚拟列对其进行筛选来实现此目的。

@timestamp字符串作为输入参数,该参数是通过查找活动获得的,并且是已处理的最新时间戳:

@delta = 
    SELECT Col1, Col2 
    FROM(
        EXTRACT 
            [Col1] string,
            [Col2] string,
            [Timestamp] string
        FROM "ingest/{Timestamp}/file.tsv"
        USING Extractors.Tsv(skipFirstNRows : 1/* change if the header is not part of the file*/)
    ) AS T
    WHERE long.Parse([Timestamp]) > long.Parse(@timestamp);

OUTPUT @delta
TO "delta/file.tsv"
USING Outputters.Tsv(outputHeader : true);

从那里你可以将"delta/file.tsv"复制到你的数据库中。

相关内容

  • 没有找到相关文章

最新更新