Sdílet prostřednictvím


Použití Apache Hive jako nástroje pro extrakci, transformaci a nahrávání (ETL)

Před načtením do cíle vhodného pro analýzu obvykle potřebujete vyčistit a transformovat příchozí data. Operace extrakce, transformace a načítání (ETL) slouží k přípravě dat a jejich načtení do cíle dat. Apache Hive ve službě HDInsight může číst v nestrukturovaných datech, zpracovávat data podle potřeby a pak je načíst do relačního datového skladu pro systémy podpory rozhodování. V tomto přístupu se data extrahují ze zdroje. Pak se uloží v přizpůsobitelném úložišti, jako jsou objekty blob služby Azure Storage nebo Azure Data Lake Storage. Data se pak transformují pomocí posloupnosti dotazů Hive. Následně je v rámci Hivu připraven pro hromadné načtení do cílového úložiště dat.

Přehled případů použití a modelu

Následující obrázek ukazuje přehled případu použití a modelu pro automatizaci ETL. Vstupní data se transformují tak, aby vygenerovala příslušný výstup. Během této transformace se změní tvar dat, datový typ a dokonce jazyk. Procesy ETL můžou převést Imperial na metriku, změnit časová pásma a zlepšit přesnost, aby správně odpovídaly stávajícím datům v cíli. Procesy ETL mohou také kombinovat nová data s existujícími daty, aby byly sestavy aktuální, nebo poskytovat další přehled o existujících datech. Aplikace, jako jsou nástroje pro vytváření sestav a služby, pak mohou tato data využívat v požadovaném formátu.

Apache Hive jako architektura ETL

Hadoop se obvykle používá v procesech ETL, které importují enormní počet textových souborů (například CSV souborů). Nebo menší, ale často se měnící počet textových souborů nebo obojí. Hive je skvělý nástroj, který slouží k přípravě dat před jejich načtením do cíle dat. Hive umožňuje vytvořit schéma přes CSV a pomocí jazyka podobného jazyku SQL generovat MapReduce programy, které interagují s daty.

Typický postup použití Hivu k etL je následující:

  1. Načtěte data do Služby Azure Data Lake Storage nebo Azure Blob Storage.

  2. Vytvořte databázi úložiště metadat (pomocí Azure SQL Database) pro použití Hivem při ukládání vašich schémat.

  3. Vytvořte cluster HDInsight a připojte úložiště dat.

  4. Definujte schéma, které se má použít při čtení dat v úložišti dat:

    DROP TABLE IF EXISTS hvac;
    
    --create the hvac table on comma-separated sensor data stored in Azure Storage blobs
    
    CREATE EXTERNAL TABLE hvac(`date` STRING, time STRING, targettemp BIGINT,
        actualtemp BIGINT,
        system BIGINT,
        systemage BIGINT,
        buildingid BIGINT)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
    STORED AS TEXTFILE LOCATION 'wasbs://{container}@{storageaccount}.blob.core.windows.net/HdiSamples/SensorSampleData/hvac/';
    
  5. Transformujte data a načtěte je do cíle. Během transformace a načítání můžete Hive použít několika způsoby:

    • Připravte a zpracujte data pomocí Hive a uložte je jako CSV v Azure Data Lake Storage nebo úložišti objektů blob Azure. Pomocí nástroje, jako je SQL Server Integration Services (SSIS), získejte tyto CSV soubory a načtěte data do cílové relační databáze, jako je SQL Server.
    • Dotazujte se na data přímo z Excelu nebo jazyka C# pomocí ovladače Odbc Hive.
    • Pomocí Apache Sqoopu můžete číst připravené ploché soubory CSV a načíst je do cílové relační databáze.

Zdroje dat

Zdroje dat jsou obvykle externí data, která se dají spárovat s existujícími daty v úložišti dat, například:

  • Data sociálních médií, soubory protokolů, senzory a aplikace, které generují datové soubory.
  • Datové sady získané od poskytovatelů dat, jako jsou statistiky počasí nebo prodejní čísla dodavatelů.
  • Streamování dat zachycených, filtrovaných a zpracovaných prostřednictvím vhodného nástroje nebo architektury

Výstupní cíle

Hive můžete použít k výstupu dat do různých druhů cílů, mezi které patří:

  • Relační databáze, jako je SQL Server nebo Azure SQL Database.
  • Datový sklad, jako je Azure Synapse Analytics.
  • Excel.
  • Úložiště tabulek a blobů Azure.
  • Aplikace nebo služby, které vyžadují zpracování dat do konkrétních formátů, nebo jako soubory, které obsahují konkrétní typy informační struktury.
  • Úložiště dokumentů JSON, jako je Azure Cosmos DB.

Úvahy

Model ETL se obvykle používá v následujících případech:

* Načtěte proud dat nebo velké objemy částečně strukturovaných či nestrukturovaných dat z externích zdrojů do existující databáze nebo informačního systému. * Před načtením data vyčistíte, transformujte a ověříte, například pomocí více než jedné transformace procházející clusterem. * Generujte sestavy a vizualizace, které se pravidelně aktualizují. Pokud například generování sestavy trvá příliš dlouho, můžete naplánovat spuštění sestavy v noci. K automatickému spuštění dotazu Hive můžete použít Azure Logic Apps a PowerShell.

Pokud cíl dat není databáze, můžete vygenerovat soubor v příslušném formátu v dotazu, například csv. Tento soubor pak můžete importovat do Excelu nebo Power BI.

Pokud potřebujete v rámci procesu ETL provést několik operací s daty, zvažte, jak je spravujete. Při operacích řízených externím programem, nikoli jako pracovním postupem v rámci řešení, se rozhodněte, jestli se některé operace dají spustit paralelně. A zjistit, kdy se každá úloha dokončí. Použití mechanismu pracovního postupu, jako je Oozie v rámci Systému Hadoop, může být jednodušší než pokus o orchestraci posloupnosti operací pomocí externích skriptů nebo vlastních programů.

Další kroky