適用於:
Azure Data Factory
Azure Synapse Analytics
提示
試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始試用!
數據流可在 Azure Data Factory 管線和 Azure Synapse Analytics 管線中使用。 本文章適用於映射資料流。 如果您不熟悉資料轉換,請參閱入門文章使用對應資料流程轉換資料。
Assert 轉換可讓您在映射數據流中建置自定義規則,以確保數據品質和數據驗證。 您可以建置規則,以判斷值是否符合預期的值定義域。 此外,您也可以建置規則來檢查資料列唯一性。 Assert 轉換有助於判斷數據中的每個數據列是否符合一組準則。 Assert 轉換也允許您在資料驗證規則不符合時設定自訂錯誤訊息。
組態
在判斷提示轉換組態面板中,您可以選擇判斷提示的類型、提供判斷提示的唯一名稱、選擇性描述,以及定義表達式和選擇性篩選。 [數據預覽] 窗格會指出哪些列未通過您的斷言。 此外,您也可以使用 isError() 與 hasError(),在下游測試每個資料列標籤,以找出判斷提示失敗的資料列。
斷言類型
- 預期為 true:您的運算式結果必須評估為布林值 true。 使用此設定來驗證數據中的定義域值範圍。
- 預期唯一:將資料中的資料行或運算式設定為唯一性規則。 使用此設定來標記重複的數據列。
- 預期存在:只有在您選取第二個傳入資料流時,才會有此選項。 Exists 會同時查看數據流,並根據您指定的數據行或表達式,判斷這兩個數據流中的數據列是否存在。 若要為已存在的項目新增第二個資料流,請選取
Additional streams。
資料流程失敗
如果您希望當斷言規則失敗時,資料流程活動立即失敗,請選取 fail data flow。
校驗識別碼
Assert ID 是一個屬性,可讓您輸入判斷提示的 (字串) 名稱。 您稍後可以在數據流中使用hasError()識別碼或輸出斷言失敗碼。 斷言識別碼在每個資料流程內必須唯一。
Assert 說明
在此輸入判斷提示的字串說明。 您也可以在此使用運算式與資料列內容資料行值。
篩選器
Filter 是選用屬性,可依據您的運算式值,將判斷提示篩選為僅套用至部分資料列。
表達式
輸入表達式以評估您的每個斷言。 每個 Assert 轉換都可以有多個判斷提示。 每種類型的斷言都需要一個ADF需要評估的表達式,以測試該斷言是否通過。
忽略 NULLs
根據預設,斷言轉換在行斷言評估中會包含 NULL。 您可以選擇使用此屬性來忽略 NULL。
直接處理 Assert 資料列失敗
當斷言失敗時,您可以選擇性使用匯入轉換的 [錯誤] 索引標籤,將錯誤行導向 Azure 中的檔案。 您也可以在匯入轉換中選擇忽略錯誤列,不輸出任何包含斷言失敗的數據列。
範例
source(output(
AddressID as integer,
AddressLine1 as string,
AddressLine2 as string,
City as string,
StateProvince as string,
CountryRegion as string,
PostalCode as string,
rowguid as string,
ModifiedDate as timestamp
),
allowSchemaDrift: true,
validateSchema: false,
isolationLevel: 'READ_UNCOMMITTED',
format: 'table') ~> source1
source(output(
CustomerID as integer,
AddressID as integer,
AddressType as string,
rowguid as string,
ModifiedDate as timestamp
),
allowSchemaDrift: true,
validateSchema: false,
isolationLevel: 'READ_UNCOMMITTED',
format: 'table') ~> source2
source1, source2 assert(expectExists(AddressLine1 == AddressLine1, false, 'nonUS', true(), 'only valid for U.S. addresses')) ~> Assert1
資料流程指令碼
範例
source1, source2 assert(expectTrue(CountryRegion == 'United States', false, 'nonUS', null, 'only valid for U.S. addresses'),
expectExists(source1@AddressID == source2@AddressID, false, 'assertExist', StateProvince == 'Washington', toString(source1@AddressID) + ' already exists in Washington'),
expectUnique(source1@AddressID, false, 'uniqueness', null, toString(source1@AddressID) + ' is not unique')) ~> Assert1
相關內容
- 使用選擇轉換功能來選擇並驗證欄位。
- 使用 [衍生資料行轉換] 來轉換資料行值。