簡體   English   中英

使用 Azure 數據工廠的多步增量加載和處理

[英]Multi Step Incremental load and processing using Azure Data Factory

我想實現增量加載/處理,並在處理后使用Azure 數據工廠將它們存儲在不同的地方,例如:

外部數據源(數據是結構化的)-> ADLS(原始)-> ADLS(已處理)-> SQL DB

因此,我需要根據當前日期從源中提取原始數據樣本,將它們存儲在 ADLS 容器中,然后處理相同的樣本數據,將它們存儲在另一個 ADLS 容器中,最后 append 處理結果在SQL 數據庫中。

ADLS 原始

2022-03-01.txt

2022-03-02.txt

ADLS 處理

2022-03-01-processed.txt

2022-03-02-processed.txt

SQL 數據庫

ADLS 處理容器中的所有 txt 文件將被追加並存儲在SQL DB中。

因此想檢查在必須分批運行的單個管道中實現此目的的最佳方法是什么?

您可以使用動態管道實現此目的,如下所示:

  1. 在 SQL DB 中創建一個 Config / Metadata.table,您可以在其中放置源表名稱、源名稱等詳細信息。

  2. 創建管道如下:

    a) 添加一個查找活動,您將在其中創建一個基於您的配置表https://learn.microsoft.com/en-us/azure/data-factory/control-flow-lookup-activity的查詢

    b) 添加 ForEach 活動並使用 Lookup output 作為 ForEach 的輸入https://learn.microsoft.com/en-us/azure/data-factory/control-flow-for-each-activity

    c) 在 ForEach 中,您可以添加一個 switch 活動,其中每個 Switch case 區分表或源

    d) 在每種情況下添加一個 COPY 或您需要在 RAW 層中創建文件的其他活動

    e) 在處理層的管道中添加另一個 ForEach,您可以在其中添加與為 RAW 層所做的類似類型的內部活動,並且在此活動中您可以添加處理邏輯

這樣你就可以創建一個單一的管道,也可以創建一個動態的管道,它可以對所有源執行必要的操作

您不能一次重命名多個文件,因此您必須一個接一個地復制文件。

  • Create a pipeline with tumbling window trigger - 在名為 WindowStartTime 和 WindowEndTime 的觸發器和管道中創建兩個參數
  • 創建一個GetMetaData活動,使用參數 last modified datetime 並傳遞 WindowStartTime 和 WindowEndTime 以獲取放置在 WindowStartTime 和 WindowEndTime 之間的文件列表
  • 創建一個ForEach活動,傳遞從Getmetadata收到的數據
  • 在活動內部創建復制活動並從ForEach循環傳遞文件名
  • 在接收器數據集中傳遞文件名並連接“_processed/txt”
  • 在為每個以源作為處理層的活動再次傳遞 WindowStartTime 和 WindowEndTime 之后創建復制活動
  • 復制活動將讀取當天收到的最新文件 append 到 SQL DB

暫無
暫無

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

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