Assert transformation in mapping data flow
PLATÍ PRO: Azure Data Factory
Azure Synapse Analytics
Tip
Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.
Toky dat jsou k dispozici ve službě Azure Data Factory i v kanálech Azure Synapse. Tento článek se týká mapování toků dat. Pokud s transformacemi začínáte, přečtěte si úvodní článek Transformace dat pomocí mapování toku dat.
Transformace Assert umožňuje vytvářet vlastní pravidla uvnitř mapování toků dat pro kvalitu dat a ověření dat. Můžete vytvořit pravidla, která určují, jestli hodnoty splňují očekávanou doménu hodnoty. Kromě toho můžete vytvářet pravidla, která kontrolují jedinečnost řádků. Transformace Assert pomáhá určit, jestli každý řádek v datech splňuje sadu kritérií. Transformace Assert také umožňuje nastavit vlastní chybové zprávy, pokud nejsou splněna pravidla ověření dat.
Konfigurace
Na konfiguračním panelu transformace assert zvolíte typ kontrolního výrazu, zadáte jedinečný název kontrolního výrazu, volitelného popisu a definujete výraz a volitelný filtr. Podokno náhledu dat označuje, které řádky selhaly s vašimi kontrolními výrazy. Kromě toho můžete otestovat každou značku řádku podřízenou pomocí isError()
hasError()
řádků, u nichž došlo k selhání kontrolních výrazů.
Typ assertu
- Očekávejte hodnotu true: Výsledek výrazu musí být vyhodnocen jako logický pravdivý výsledek. Pomocí tohoto nastavení ověřte rozsahy hodnot domény ve vašich datech.
- Očekávejte jedinečnost: Nastavte ve svých datech sloupec nebo výraz jako pravidlo jedinečnosti. Pomocí tohoto nastavení označíte duplicitní řádky.
- Očekává se: Tato možnost je dostupná jenom v případě, že jste vybrali druhý příchozí datový proud. Nachází se v obou datových proudech a určí, jestli řádky existují v obou datových proudech na základě sloupců nebo výrazů, které jste zadali. Chcete-li přidat druhý datový proud pro existuje, vyberte
Additional streams
.
Selhání toku dat
Vyberte fail data flow
, jestli chcete, aby aktivita toku dat okamžitě selhala, jakmile pravidlo kontrolního výrazu selže.
Assert ID
Assert ID je vlastnost, do které zadáte název kontrolního výrazu (řetězec). Pomocí nebo výstupem kódu selhání kontrolního výrazu můžete později v toku dat použít identifikátor, který je ve vašem toku hasError()
dat podřízený. Id assert musí být v rámci každého toku dat jedinečná.
Popis assertu
Sem zadejte popis řetězce pro kontrolní výraz. Tady můžete také použít výrazy a hodnoty sloupců kontextu řádku.
Filtrovat
Filtr je volitelná vlastnost, ve které můžete kontrolní výraz filtrovat pouze na podmnožinu řádků na základě hodnoty výrazu.
Výraz
Zadejte výraz pro vyhodnocení každého kontrolního výrazu. Pro každou transformaci assertu můžete mít více kontrolních výrazů. Každý typ kontrolního výrazu vyžaduje výraz, který musí ADF vyhodnotit k otestování, pokud byl kontrolní výraz úspěšný.
Ignorovat seznamy NUL
Ve výchozím nastavení transformace assert zahrnuje hodnoty NULLs v vyhodnocení kontrolního výrazu řádku. U této vlastnosti můžete ignorovat hodnoty NULLs.
Přímá selhání řádku kontrolního výrazu
Pokud kontrolní výraz selže, můžete tyto řádky chyb volitelně nasměrovat na soubor v Azure pomocí karty Chyby v transformaci jímky. U transformace jímky máte také možnost, aby se nevysílaly řádky s chybami kontrolního výrazu vůbec tím, že ignorujete řádky chyb.
Příklady
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
Skript toku dat
Příklady
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
Související obsah
- Pomocí transformace Vybrat vyberte a ověřte sloupce.
- Transformace odvozeného sloupce slouží k transformaci hodnot sloupců.