共用方式為


對應資料流中的結構描述漂移

適用於:Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用

結構描述漂移是您的來源經常變更中繼資料的情況。 欄位、資料行和類型都可以即時新增、移除或變更。 若不處理結構描述漂移,您的資料流程會變得容易受上游資料來源變更所影響。 當傳入的資料行和欄位變更時,典型的 ETL 模式會失敗,因為典型的 ETL 模式通常會繫結至這些來源名稱。

為防止結構描述漂移,資料流程工具中一定要有一些功能,可讓您以資料工程師的身分:

  • 定義具有可變動欄位名稱、資料類型、值和大小的來源
  • 定義可搭配資料模式 (而不是硬式編碼的欄位和值) 運作的轉換參數
  • 定義一些運算式,以了解要比對傳入欄位的模式,而不需使用具名欄位

Azure Data Factory 原生支援隨執行而變更的彈性結構描述,讓您不需要重新編譯資料流程,即可建置一般資料轉換邏輯。

您需要在資料流程中做出架構決策,才能接受整個流程的結構描述漂移。 當您這樣做時,您可以抵抗來自來源的結構描述變更。 不過,您會遺失整個資料流程中早期的資料行與類型繫結。 Azure Data Factory 會將結構描述漂移流程視為晚期繫結的流程,因此當您建置轉換時,漂移資料行名稱無法供您在整個流程的結構描述檢視中使用。

這段影片提供一些複雜解決方案的簡介,您可以使用資料流程的結構描述漂移功能,在 Azure Data Factory 或 Synapse Analytics 管線中輕鬆建置。 在此範例中,我們會根據彈性的資料庫結構描述,建置可重複使用的模式:

來源中的結構描述漂移

當資料行不存在來源投影中,從來源定義進入資料流程的資料行會定義為「漂移」。 您可以從來源轉換中的投影索引標籤檢視來源投影。 當您選取來源的資料集時,服務會自動採用資料集的結構描述,並從該資料集結構描述定義建立投影。

在來源轉換中,結構描述漂移的定義是讀取資料集結構描述中未定義的資料行。 若要啟用結構描述漂移,請勾選來源轉換中的 [允許結構描述漂移]

Schema drift source

啟用結構描述漂移時,所有傳入的欄位會在執行期間從來源讀取,然後通過整個流程傳遞至接收。 依預設,所有新偵測到的資料行 (稱為漂移資料行) 會以字串資料類型送達。 如果您想要讓資料流程自動推斷漂移資料行的資料類型,請勾選來源設定中的 [推斷漂移資料行類型]

接收中的結構描述漂移

在接收轉換中,結構描述漂移是您在接收資料結構描述定義之上寫入其他資料行的情況。 若要啟用結構描述漂移,請勾選接收轉換中的 [允許結構描述漂移]

Schema drift sink

如果已啟用結構描述漂移,請確定已開啟 [對應] 索引標籤中的 [自動對應] 滑桿。 開啟此滑桿之後,所有傳入的資料行都會寫入至您的目的地。 否則,您必須使用規則型對應來寫入漂移資料行。

Sink auto mapping

轉換漂移資料行

當您的資料流程有漂移資料行時,您可以使用下列方法在轉換中加以存取:

  • 使用 byPositionbyName 運算式,以名稱或位置編號明確參考資料行。
  • 在衍生的資料行或彙總轉換中新增資料行模式,以對應名稱、資料流、位置、原點或類型的任何組合
  • 在選取或接收轉換中新增規則型對應,透過模式將漂移資料行對應至資料行別名

如需如何實作資料行模式的詳細資訊,請參閱對應資料流程中的資料行模式

對應漂移資料行的快速動作

若要明確參考漂移資料行,您可以透過資料預覽快速動作,快速產生這些資料行的對應。 開啟偵錯模式之後,請移至 [資料預覽] 索引標籤,然後按一下 [重新整理] 以擷取資料預覽。 如果資料處理站偵測到有漂移資料行存在,您可以按一下 [對應漂移],產生衍生的資料行,可讓您參考結構描述檢視下游中的所有漂移資料行。

Screenshot shows the Data Preview tab with Map drifted called out.

在產生的衍生資料行轉換中,每個漂移資料行都會對應至其偵測到的名稱和資料類型。 在上述資料預覽中,已偵測到資料行 'movieId' 為整數。 按下 [對應漂移] 之後,會將 movieId 定義為衍生資料行中的 toInteger(byName('movieId')),然後包含在下游轉換的結構描述檢視中。

Screenshot shows the Derived Column's Settings tab.

在 [資料流程運算式語言] 中,您會發現資料行模式和結構描述漂移的其他功能,包括「byName」和「byPosition」。