簡體   English   中英

Data Factory v2:Data Lake增量復制活動

[英]Data Factory v2: Data Lake incremental copy activity

在我的Azure Data Lake目錄ingest ,我有一個以時間戳記命名的子目錄:

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

Azure Data Factory v2復制活動(從Data LakeSQL Server )中,如何將Data Lake目錄過濾到大於指定時間戳的目錄?

假設我將已經復制的時間戳記錄到SQL Server中 ,並且在下一次管道運行時,我只想基於Lookup Activity復制增量新目錄。

Data Factory文檔引用了邏輯功能 ,但是我不了解如何在這種情況下實現它們。

或者 :如果在文件名(而不是目錄)上提供了邏輯比較過濾器,這也將有所幫助。

注意 :我也想加載歷史數據,因此僅過濾大於或等於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”復制到您的數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM