Extrakce, transformace a načítání (ETL) ve velkém měřítku

Extrakce, transformace a načítání (ETL) je proces, pomocí kterého se data získávají z různých zdrojů. Data se shromažďují ve standardním umístění, vyčištěné a zpracovávané. Nakonec se data načtou do úložiště dat, ze kterého se dají dotazovat. Starší verze ETL zpracovává import dat, vyčistit je a pak je uložit do relačního datového modulu. S Azure HDInsight podporuje celá řada komponent prostředí Apache Hadoop etL ve velkém měřítku.

Použití SLUŽBY HDInsight v procesu ETL je shrnuto tímto kanálem:

HDInsight ETL at scale overview.

Následující části se zabývají jednotlivými fázemi ETL a jejich přidruženými komponentami.

Orchestrace

Orchestrace zahrnuje všechny fáze kanálu ETL. Úlohy ETL v HDInsight často zahrnují několik různých produktů, které vzájemně spolupracují. Příklad:

  • Apache Hive můžete použít k vyčištění části dat a Apache Pig k vyčištění jiné části.
  • Službu Azure Data Factory můžete použít k načtení dat do služby Azure SQL Database z Azure Data Lake Store.

Orchestrace je nutná ke spuštění příslušné úlohy v odpovídající době.

Apache Oozie

Apache Oozie je systém koordinace pracovních postupů, který spravuje úlohy platformy Hadoop. Oozie běží v clusteru HDInsight a je integrovaná se zásobníkem Hadoop. Oozie podporuje úlohy Hadoop pro Apache Hadoop MapReduce, Pig, Hive a Sqoop. Oozie můžete použít k naplánování úloh specifických pro systém, jako jsou programy Java nebo skripty prostředí.

Další informace najdete v tématu Použití Apache Oozie s Apache Hadoopem k definování a spuštění pracovního postupu ve službě HDInsight. Viz také zprovoznění datového kanálu.

Azure Data Factory

Azure Data Factory poskytuje možnosti orchestrace ve formě platformy jako služby (PaaS). Azure Data Factory je cloudová datová integrační služba. Umožňuje vytvářet pracovní postupy řízené daty pro orchestraci a automatizaci přesunu a transformace dat.

Pomocí služby Azure Data Factory můžete:

  1. Vytváření a plánování pracovních postupů řízených daty Tyto kanály ingestují data z různorodých úložišť dat.
  2. Zpracování a transformace dat pomocí výpočetních služeb, jako je HDInsight nebo Hadoop. K tomuto kroku můžete také použít Spark, Azure Data Lake Analytics, Azure Batch nebo azure machine Učení.
  3. Publikujte výstupní data do úložišť dat, jako je Azure Synapse Analytics, aby aplikace BI spotřebovávají.

Další informace o službě Azure Data Factory najdete v dokumentaci.

Ingestování úložiště souborů a výsledného úložiště

Zdrojové datové soubory se obvykle načítají do umístění ve službě Azure Storage nebo Azure Data Lake Storage. Soubory jsou obvykle v plochém formátu, například CSV. Ale můžou být v libovolném formátu.

Azure Storage

Azure Storage má specifické cíle přizpůsobení. Další informace najdete v tématu Škálovatelnost a cíle výkonu pro úložiště objektů blob. U většiny analytických uzlů se Azure Storage nejlépe škáluje při práci s mnoha menšími soubory. Pokud se nacházíte v mezích limitů účtu, Azure Storage zaručuje stejný výkon bez ohledu na to, jak velké soubory jsou. Můžete ukládat terabajty dat a stále dosáhnout konzistentního výkonu. Toto tvrzení platí bez ohledu na to, jestli používáte podmnožinu nebo všechna data.

Azure Storage má několik typů objektů blob. Doplňovací objekt blob je skvělou volbou pro ukládání webových protokolů nebo dat ze senzorů.

Více objektů blob je možné distribuovat napříč mnoha servery, aby bylo možné škálovat přístup na více instancí. Jeden objekt blob ale obsluhuje jenom jeden server. I když se objekty blob dají logicky seskupit do kontejnerů objektů blob, z tohoto seskupení to nemá žádný vliv.

Azure Storage má vrstvu rozhraní WEBHDFS API pro úložiště objektů blob. Všechny služby HDInsight mají přístup k souborům v úložišti objektů blob v Azure pro účely čištění a zpracování dat. To se podobá tomu, jak by tyto služby používaly systém souborů HDFS (Hadoop Distributed File System).

Data se obvykle ingestují do služby Azure Storage prostřednictvím PowerShellu, sady SDK služby Azure Storage nebo AzCopy.

Azure Data Lake Storage

Azure Data Lake Storage je spravované úložiště hyperškálování pro analytická data. Je kompatibilní s návrhovým paradigmatem, které je podobné HDFS. Data Lake Storage nabízí neomezenou adaptabilnost pro celkovou kapacitu a velikost jednotlivých souborů. Je to dobrá volba při práci s velkými soubory, protože je možné je uložit napříč několika uzly. Dělení dat ve službě Data Lake Storage probíhá na pozadí. Získáte mimořádně velkou propustnost pro spouštění analytických úloh s tisíci souběžnými vykonavateli, kteří efektivně čtou a zapisují stovky terabajtů dat.

Data se obvykle ingestují do Služby Data Lake Storage prostřednictvím služby Azure Data Factory. Můžete také použít sady SDK služby Data Lake Storage, službu AdlCopy, Apache DistCp nebo Apache Sqoop. Vámi zvolená služba závisí na tom, kde jsou data. Pokud je v existujícím clusteru Hadoop, můžete použít Apache DistCp, službu AdlCopy nebo Azure Data Factory. Pro data ve službě Azure Blob Storage můžete použít sadu .NET SDK služby Azure Data Lake Storage, Azure PowerShell nebo Azure Data Factory.

Služba Data Lake Storage je optimalizovaná pro příjem událostí prostřednictvím služby Azure Event Hubs.

Důležité informace o obou možnostech úložiště

U nahrávání datových sad v rozsahu terabajtů může být latence sítě velkým problémem. To platí zejména v případě, že data pocházejí z místního umístění. V takových případech můžete použít tyto možnosti:

  • Azure ExpressRoute: Vytvořte privátní připojení mezi datacentry Azure a místní infrastrukturou. Tato připojení poskytují spolehlivou možnost přenosu velkých objemů dat. Další informace najdete v dokumentaci k Azure ExpressRoute.

  • Nahrání dat z pevných disků: Službu Azure Import/Export můžete použít k odeslání pevných disků s daty do datacentra Azure. Vaše data se nejprve nahrají do úložiště objektů blob v Azure. Potom můžete pomocí služby Azure Data Factory nebo nástroje AdlCopy zkopírovat data z úložiště objektů blob v Azure do Data Lake Storage.

Azure Synapse Analytics

Azure Synapse Analytics je vhodná volba pro ukládání připravených výsledků. K provedení těchto služeb pro Azure Synapse Analytics můžete použít Azure HDInsight.

Azure Synapse Analytics je úložiště relačních databází optimalizované pro analytické úlohy. Škáluje se na základě dělených tabulek. Tabulky je možné rozdělit na více uzlů. Uzly jsou vybrány při vytváření. Můžou se škálovat po faktu, ale to je aktivní proces, který může vyžadovat přesun dat. Další informace najdete v tématu Správa výpočetních prostředků ve službě Azure Synapse Analytics.

Apache HBase

Apache HBase je úložiště klíč/hodnota dostupné ve službě Azure HDInsight. Jedná se o opensourcovou databázi NoSQL, která je založená na Hadoopu a modelovaná po Google BigTable. HBase poskytuje výkonný náhodný přístup a silnou konzistenci pro velké objemy nestrukturovaných a částečně strukturovaných dat.

Protože HBase je databáze bez schématu, nemusíte před jejich použitím definovat sloupce a datové typy. Data se ukládají v řádcích tabulky a jsou seskupené podle řady sloupců.

Kód open-source se škáluje lineárně pro manipulaci s petabajty dat na tisících uzlech. HBase spoléhá na redundanci dat, dávkové zpracování a další funkce poskytované distribuovanými aplikacemi v prostředí Hadoop.

HBase je dobrým cílem pro data snímačů a protokolů pro budoucí analýzu.

Přizpůsobitelnost HBase závisí na počtu uzlů v clusteru HDInsight.

Databáze Azure SQL

Azure nabízí tři relační databáze PaaS:

Přidejte více procesoru a paměti pro vertikální navýšení kapacity těchto produktů. Pro lepší výkon vstupně-výstupních operací můžete také použít disky Premium s produkty.

Azure Analysis Services

Azure Analysis Services je analytický datový modul používaný v oblasti podpory rozhodování a obchodní analýzy. Poskytuje analytická data pro obchodní sestavy a klientské aplikace, jako je Power BI. Analytická data také fungují s excelovými, sql serverovými sestavami služby Reporting Services a dalšími nástroji pro vizualizaci dat.

Škálování analytických datových krychlí změnou vrstev pro každou jednotlivou datovou krychli Další informace najdete v tématu o cenách služby Azure Analysis Services.

Extrakce a načtení

Jakmile data v Azure existují, můžete pomocí mnoha služeb extrahovat a načíst je do jiných produktů. HDInsight podporuje Sqoop a Flume.

Apache Sqoop

Apache Sqoop je nástroj navržený pro efektivní přenos dat mezi strukturovanými, částečně strukturovanými a nestrukturovanými zdroji dat.

Sqoop k importu a exportu dat používá MapReduce k zajištění paralelní operace a odolnosti proti chybám.

Apache Flume

Apache Flume je distribuovaná, spolehlivá a dostupná služba pro efektivní shromažďování, agregaci a přesouvání velkých objemů dat protokolů. Její flexibilní architektura je založená na streamovaných tocích dat. Flume je robustní a odolný proti chybám s vyladěnými mechanismy spolehlivosti. Má mnoho mechanismů převzetí služeb při selhání a obnovení. Flume používá jednoduchý rozšiřitelný datový model, který umožňuje online analytickou aplikaci.

Apache Flume se nedá použít se službou Azure HDInsight. Místní instalace Hadoopu ale může pomocí flume odesílat data do úložiště objektů blob v Azure nebo do Azure Data Lake Storage. Další informace najdete v tématu Použití Apache Flume se službou HDInsight.

Transformace

Jakmile ve zvoleném umístění existují data, musíte je vyčistit, zkombinovat nebo připravit na konkrétní vzor použití. Hive, Pig a Spark SQL jsou všechny dobré volby pro tento druh práce. Všechny jsou podporované ve službě HDInsight.

Další kroky