Mění se každé nasazení Azure Data Factory v boj s ARM šablonami?
Pod vizuálním editorem je Azure Data Factory JSON: pipelines, datasety, linked services a ARM šablona, která je nasazuje. Přenesení změny z Dev do Prod znamená soubory parametrů, globální parametry a šablonu, která selže na jediné neshodě typů. Releases by měly být generovány z modelu, včetně rollbacku.
Zní vám to povědomě?
- Nasazení do produkce selže v kroku ARM šablony a opravou je soubor parametrů, na jehož úpravu si nikdo nevzpomíná.
- Dev, Test a Prod mají mírně odlišnou konfiguraci linked services, udržovanou ručně na třech různých místech.
- Definice datasetu se změnila v jedné pipeline a rozbila jinou, protože ji obě sdílely a otestována byla pouze jedna.
- Rollback znamená znovu nasadit předchozí ARM šablonu a doufat, že datasety, na které odkazuje, stále existují.
Azure Data Factory skrývá svůj podkladový JSON dobře, dokud nepřijde den nasazení. V tu chvíli se ARM šablona, soubory parametrů, globální parametry a přepisy linked services objeví najednou a jediná neshoda datových typů zablokuje nasazení, dokud ji někdo nedohledá.
Proč jsou releases křehké
- Pipeline je JSON, ať už jej vidíte, nebo ne. Vizuální editor zapisuje definice pipelines, datasetů a linked services a proces publikování je kompiluje do ARM šablony. Některé týmy to balí do Bicepu; artefakt pod ním zůstává stejný.
- Rozdíly mezi prostředími se řídí soubory parametrů. Dev, Test a Prod se liší v připojovacích řetězcích, klíčích a názvech a tyto rozdíly jsou uložené v ručně spravovaných souborech.
- Závislosti jsou implicitní. Datasety a linked services se sdílejí napříč pipelines; úprava jedné z nich pro pipeline, kterou jste otestovali, změní chování i těch, které jste netestovali.
- Rollback je nové nasazení předchozího stavu. Návrat zpět vyžaduje předchozí šablonu a vše, na co odkazovala, musí v cíli stále existovat.
ADF se chová tak, jak je u prostředků Azure běžné: nasazuje se jako šablona. Šablony jsou však navrženy pro statickou infrastrukturu, účty úložiště a sítě. Schéma datového skladu je stavové a mění se s každou release; na to šablony navržené nejsou.
Kam patří správa nasazení
- Do generátoru. Pokud datový sklad vychází z modelu, release je rozdílem mezi dvěma stavy tohoto modelu a nástroj ví, na čem každý rozdíl závisí.
- Včetně rollbacku. Generovaná release ví, co změnila, takže reverzní skript existuje dříve, než se release spustí.
- Porovnáno, nikoli odhadováno. Rozdíl mezi Testem a Produkcí má být report, nikoli překvapení při spuštění.
Co se mění s Datavault Builderem
Datavault Builder vytváří release porovnáním dvou stavů s integrovanou podporou pro Git a Gitflow. Stavem může být vaše lokální prostředí, stav uložený v Gitu, jiné živé prostředí, zip soubor nebo složka; porovnání vypíše rozdíly a vy zvolíte, které z nich nasadit.
- Žádná šablona k údržbě. Release je množina vybraných rozdílů, vygenerovaná pro cílové prostředí. Zvolte datový produkt a nástroj navrhne potřebný hub, satelit, staging tabulku i zdroj.
- Rollback se generuje spolu s ní. Každá release nese svůj reverzní skript i verzi modelu, ke které patří.
- Prostředí se porovnávají, nikoli odhadují. To, co má produkce obdržet, je seznam rozdílů mezi jejím stávajícím stavem a nasazovanou verzí.
- Odchylky ve zdrojích nevyžadují novou release. Chybějící sloupce se načtou jako null s upozorněním, sloupce, které narostou, se rozšíří a nové sloupce znamenají úpravu mapování.
- Vaše nástroje pro CI zůstávají. Azure DevOps nebo GitHub Actions spouštějí vygenerovaný balíček; samotnému skladu již rozumět nemusejí.
Co rozhodnout
Zrevidujte svůj proces nasazování a spočítejte dvě věci: počet souborů parametrů a přepisů pro jednotlivá prostředí, které udržujete, a počet nasazení v minulém čtvrtletí, která selhala na kroku šablony. Přesně tuto režii generovaná release odstraňuje.
Podívejte se, jak to funguje na jednom z vašich zdrojů
Rezervujte si bezplatné demo a přineste konektor, který vás stojí nejvíce peněz nebo času.
Tři kroky k pipeline, kterou máte plně pod kontrolou
-
Oddělit model od nasazení
Struktura datového skladu je model. Nasazení je vygenerovaný skript pro cílové prostředí, nikoli ručně udržovaná šablona.
-
Generovat release
Datavault Builder porovná dva stavy, vybere rozdíly k nasazení a navrhne potřebné závislosti. Rollback je jeho součástí.
-
Porovnat před nasazením do dalšího prostředí
Lze porovnat jakékoli dva stavy: vaše lokální prostředí, stav v Gitu, jiné živé prostředí, zip soubor nebo složku.
Jak Datavault Builder odstraňuje třecí plochy při ingestu dat
-
Ingest dat je integrovaný
Dávkové, delta i CDC nahrávání z databází, souborů, REST API, NoSQL a Python zdrojů, přičemž proudy jako Kafka přicházejí v micro-batches. Stejná platforma, která generuje datový sklad, bez dalších faktur za licence.
-
Vaše schéma, nikoli schéma dodavatele
Zdrojové tabulky jsou namapovány na model Data Vault 2.0, který jste sami navrhli. Nový sloupec nebo přejmenovaná tabulka mění pouhé mapování, nikoli řetězec post-load skriptů.
-
Přenášejí se pouze delty
Huby, linky a satelity nahrávají jen to, co se skutečně změnilo. Plná přenačtení zůstávají ve stagingu, místo aby se každou noc přepočítávala v celém skladu.
-
Historie se uchovává automaticky návrhem
Každá změna je zachycena tak, jak dorazí, takže historický reporting funguje i tam, kde zdrojový systém přepisuje vlastní záznamy.
-
Kód, který nikdy nemusíte psát ručně
Nahrávání, historizace a lineage se generují z modelu v reálném čase a běží nativně na Snowflake, Databricks, BigQuery, SQL Serveru, Fabricu, Oracle nebo PostgreSQL.
-
Jedna platforma, až o devět nástrojů méně
Modelování, ETL, CI/CD, dokumentace a lineage na jednom místě. Právě to umožňuje přejít od zadání požadavku do produkce za 14,7 minuty.
Seznamte se s naším expertem
Dvacet minut s naším obchodním ředitelem a upřímná odpověď, zda se to hodí pro váš technologický stack.
Matt Collett
Sales Director
Skvělé, vyberte si vyhovující termín:
Další problémy, které tato série řeší
-
Úskalí Azure Data Factory: Skryté náklady vizuálních pipelines a Sparku
Azure Data Factory je dobrá transportní vrstva v rámci Azure a nevhodné místo pro uchovávání logiky datového skladu. Její nasazení v roli modelovací a transformační platformy přináší nepřehledné plátno, nasazení selhávající na ARM šablonách a clustery Sparku pro dávky, které zvládne jediný SQL příkaz. A každá z těchto pipelines existuje jen v Azure.
-
Stojí vaše Azure Data Factory Mapping Data Flows více než data, která zpracovávají?
Mapping Data Flows běží na spravovaném Spark clusteru, který startuje několik minut a účtuje se za vCore-hodinu. Pro rozsáhlou noční transformaci to dává smysl. Pro pár set tisíc řádků je to spouštění clusteru jen proto, aby vykonal to, co by v datovém skladu vyřešil jediný SQL příkaz.
-
Přerostlo plátno Azure Data Factory tým, který jej původně vybudoval?
Pipeline sestavená přetahováním myší vznikne rychle, ale mění se pomalu. Po překročení několika desítek aktivit se z plátna stává jediná dokumentace, vizuální vazby nahrazují obchodní logiku a každý nový zdroj znamená další aktivitu kopírování, na kterou nikdo nechce sahat. Řešením není uklizenější plátno, ale model, který pipelines generuje.
Otázky a odpovědi
- Je to správa verzí plus krok publikování a balíček utilit může tento krok spustit bezobslužně při každém sloučení místo klikání v rozhraní. To, co validuje, je však samotná šablona. Výsledným artefaktem zůstává popis pipeline v JSONu se souborem parametrů pro každé prostředí. Reference, která existuje v Dev, ale chybí v Prod, se odhalí až při nasazení. Rozdíl spočívá v release generované z modelu, který zná závislosti každé změny; rollback je její součástí.
- Ne. Generuje databázový balíček pro nasazení; Azure DevOps nebo GitHub Actions mohou nasazení stále spouštět. Co odpadá, je ruční údržba šablony a souborů parametrů pro jednotlivá prostředí.
- Zdrojový sloupec, který zmizí, se načte jako null s varováním, nikoli jako selhání běhu. Sloupec, který ve zdroji naroste, se v cíli rozšíří. Nový sloupec znamená aktualizaci mapování. Žádná z těchto situací nevyžaduje novou release na úrovni pipelines.