Průvodce optimalizací výkonu a ladění toků dat
PLATÍ PRO:
Azure Data Factory
Azure Synapse Analytics
Mapování toků dat v kanálech Azure Data Factory a Synapse nabízí rozhraní bez kódu pro návrh a spouštění transformací dat ve velkém. Pokud mapování toků dat ještě neznáte, projděte si téma Přehled mapování toků dat. V tomto článku se seznámíte s různými způsoby, jak vyladit a optimalizovat toky dat, aby splňovaly srovnávací testy výkonu.
Podívejte se na toto video, kde se dozvíte, že ukázka časování transformuje data pomocí toků dat.
Monitorování výkonu toku dat
Po ověření logiky transformace pomocí režimu ladění spusťte celý tok dat jako aktivitu v kanálu. Toky dat jsou v kanálu v provozu pomocí aktivity spustit tok dat. Aktivita toku dat má jedinečné monitorování v porovnání s ostatními aktivitami, které zobrazují podrobný plán spuštění a profil výkonu logiky transformace. Chcete-li zobrazit podrobné informace o sledování toku dat, klikněte na ikonu brýlí v aktivitě spustit výstup kanálu. Další informace najdete v tématu monitorování toků dat mapování.
Při monitorování výkonu toku dat existují čtyři možná kritická místa pro hledání:
- Čas spuštění clusteru
- Čtení ze zdroje
- Čas transformace
- Zápis do jímky
Doba spuštění clusteru je doba potřebná k vystavení clusteru Apache Spark. Tato hodnota je umístěna v pravém horním rohu obrazovky monitorování. Toky dat běží na modelu za běhu, kde každá úloha používá izolovaný cluster. Tento čas zahájení obvykle trvá 3-5 minut. U sekvenčních úloh to můžete zkrátit tím, že zapnete hodnotu TTL (Time to Live). Další informace najdete v části Time to Live v tématu Integration runtime Performance.
Toky dat využívají Optimalizátor Sparku, který mění pořadí a spouští vaši obchodní logiku ve fázích, aby je bylo možné co nejrychleji provést. Pro každou jímku, do které tok dat zapisuje, výstup monitorování vypíše dobu trvání jednotlivých fází transformace spolu s časem potřebným k zápisu dat do jímky. Čas, který je největší, je pravděpodobný kritickým bodem toku dat. Pokud fáze transformace, která využívá největší, obsahuje zdroj, můžete chtít zobrazit další informace o optimalizaci doby čtení. Pokud transformace trvá dlouhou dobu, může být nutné změnit rozdělení nebo zvětšit velikost prostředí Integration runtime. Pokud je doba zpracování jímky velká, možná budete potřebovat škálovat databázi nebo ověřit, že nechcete mít výstup do jednoho souboru.
Po zjištění kritického bodu toku dat můžete zvýšit výkon pomocí níže uvedených strategií optimalizace.
Testování logiky toku dat
Při navrhování a testování toků dat z uživatelského rozhraní umožňuje režim ladění interaktivní testování proti aktivnímu clusteru Spark. Díky tomu můžete zobrazovat náhled dat a spouštět toky dat bez čekání na zahřívání clusteru. Další informace naleznete v tématu režim ladění.
Karta Optimalizace
Karta optimalizace obsahuje nastavení pro konfiguraci schématu dělení clusteru Spark. Tato karta existuje v každé transformaci toku dat a určuje, zda chcete znovu rozdělit data po dokončení transformace. Úpravy dělení poskytují kontrolu nad distribucí vašich dat mezi výpočetními uzly a optimalizací dat, které mohou mít jak pozitivní, tak negativní dopad na celkový výkon toku dat.
Ve výchozím nastavení je vybrána možnost použít aktuální rozdělení do oddílů , která instruuje službu a udržuje aktuální výstupní oddíl transformace. Při změně rozdělení dat do oddílů se ve většině scénářů doporučuje použít aktuální dělení . scénáře, ve kterých můžete chtít znovu rozdělit data, patří po agregacích a spojeních, které významně zkosí vaše data nebo při použití zdrojových oddílů v SQL DB.
Chcete-li změnit dělení na jakékoli transformaci, vyberte kartu optimalizace a vyberte přepínač nastavit dělení . Zobrazí se řada možností pro dělení. Nejlepší způsob dělení se liší v závislosti na vašich datových svazcích, kandidátních klíčích, hodnotách null a mohutnosti.
Důležité
Jeden oddíl kombinuje všechna distribuovaná data do jednoho oddílu. Jedná se o velmi pomalou operaci, která významně ovlivňuje veškerou transformaci a zápisy po celém proudu. Tato možnost se důrazně nedoporučuje, pokud není k dispozici explicitní obchodní důvody k jejímu použití.
Následující možnosti dělení jsou k dispozici v každé transformaci:
Kruhové dotazování
Kruhové dotazování distribuuje data rovnoměrně napříč oddíly. Pomocí kruhového dotazování nemusíte mít vhodné klíčové kandidáty k implementaci ucelené strategie vytváření oddílů. Můžete nastavit počet fyzických oddílů.
Hodnoty hash
Služba vytvoří hodnotu hash sloupců, aby vytvořila jednotné oddíly, takže řádky s podobnými hodnotami spadají do stejného oddílu. Když použijete možnost hash, otestujete možnou hodnotu zešikmení oddílu. Můžete nastavit počet fyzických oddílů.
Dynamický rozsah
Dynamický rozsah používá dynamické rozsahy Spark na základě sloupců nebo výrazů, které zadáte. Můžete nastavit počet fyzických oddílů.
Pevný rozsah
Sestavte výraz, který poskytuje pevný rozsah pro hodnoty v rámci sloupců s dělenými daty. Abyste se vyhnuli zkosení oddílu, měli byste před použitím této možnosti dobře pochopit svá data. Hodnoty, které zadáte pro výraz, se používají jako součást funkce oddílu. Můžete nastavit počet fyzických oddílů.
Klíč
Pokud máte dobré znalosti o mohutnosti vašich dat, může být vytváření oddílů dobrým zvykem. Klíčové vytváření oddílů vytváří oddíly pro každou jedinečnou hodnotu ve sloupci. Počet oddílů nejde nastavit, protože číslo je založené na jedinečných hodnotách v datech.
Tip
Ruční nastavení schématu dělení přesadí data a může kompenzovat výhody Optimalizátoru Sparku. Osvědčeným postupem je nenastavit oddíly ručně, pokud nepotřebujete.
Úroveň protokolování
Pokud nepotřebujete, aby každé spuštění kanálu pro aktivity toku dat plně protokoloval všechny protokoly telemetrie, můžete nastavit úroveň protokolování na "Basic" nebo "none". Při provádění datových toků v režimu "Verbose" (výchozí) požadujete, aby služba při transformaci dat plně protokoloval aktivitu na každé úrovni jednotlivých oddílů. To může být náročná operace, takže jenom při řešení potíží můžete zlepšit celkový tok dat a výkon kanálu. Režim "základní" bude pouze dobu trvání transformace protokolu, zatímco možnost None bude obsahovat pouze souhrn dob trvání.
Další kroky
podívejte se na další články s daty Flow týkající se výkonu: