Sdílet prostřednictvím


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ůže 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.

Typ assertu

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. V podokně náhledu dat se zobrazí informace o tom, 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ů.

Nastavení kontrolního výrazu

Typ assertu

  1. Očekávejte hodnotu true: Výsledek výrazu musí být vyhodnocen jako logický pravdivý výsledek. To slouží k ověření rozsahů hodnot domény v datech.
  2. Očekávejte jedinečnost: Nastavte ve svých datech sloupec nebo výraz jako pravidlo jedinečnosti. Slouží k označení duplicitních řádků.
  3. Očekává se: Tato možnost je dostupná pouze v případě, že jste vybrali druhý příchozí datový proud. Existují datové proudy 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.

Konfigurace Assert

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). Později v toku hasError() dat budete moct použít identifikátor, pomocí nebo výstupem kódu selhání kontrolního výrazu. 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ý ADF bude muset vyhodnotit, pokud kontrolní výraz proběhl úspěšně.

Ignorovat seznamy NUL

Ve výchozím nastavení bude transformace assert obsahovat hodnoty NULLs do 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 budete mít 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 unqiue')) ~> Assert1