![](/img/trans.png)
[英]Azure Data Factory Copy Activity fails converting MongoDB ISODate to DateTime v2 connector
[英]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 Lake到SQL 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.