Az Apache Hive használata kinyerési, átalakítási és betöltési (ETL) eszközként

A bejövő adatokat általában törölnie és átalakítania kell, mielőtt betöltené őket egy elemzésre alkalmas helyre. A kinyerési, átalakítási és betöltési (ETL) műveletek az adatok előkészítésére és adatcélba való betöltésére szolgálnak. A HDInsighton futó Apache Hive strukturálatlan adatokban olvashat, szükség szerint feldolgozhatja az adatokat, majd betöltheti az adatokat egy relációs adattárházba döntéstámogatási rendszerekhez. Ebben a megközelítésben a rendszer kinyeri az adatokat a forrásból. Ezután adaptálható tárolóban, például Azure Storage-blobokban vagy Azure Data Lake Storage-ban tárolva. Az adatok ezután Hive-lekérdezések sorozatával lesznek átalakítva. Ezt követően a Hive-ben a céladattárba történő tömeges betöltés előkészítésére kerül sor.

Használati eset és modell áttekintése

Az alábbi ábra az ETL-automatizálás használati esetének és modelljének áttekintését mutatja be. A bemeneti adatok a megfelelő kimenet létrehozásához lesznek átalakítva. Az átalakítás során az adatok alakot, adattípust és még nyelvet is módosítanak. Az ETL-folyamatok metriká alakíthatják az imperialt, módosíthatják az időzónákat, és javíthatják a pontosságot, hogy megfelelően igazodjanak a célban lévő meglévő adatokhoz. Az ETL-folyamatok az új adatokat a meglévő adatokkal kombinálva naprakészen tarthatják a jelentéskészítést, vagy további betekintést nyerhetnek a meglévő adatokba. Az olyan alkalmazások, mint a jelentéskészítési eszközök és szolgáltatások ezt követően a kívánt formátumban használhatják fel ezeket az adatokat.

Apache Hive as ETL architecture.

A Hadoopot általában olyan ETL-folyamatokban használják, amelyek nagy mennyiségű szövegfájlt (például CSV-ket) importálnak. Vagy kisebb, de gyakran változó számú szövegfájlt vagy mindkettőt. A Hive nagyszerű eszköz az adatok előkészítésére, mielőtt betöltené őket az adat célhelyére. A Hive lehetővé teszi, hogy sémát hozzon létre a CSV-n keresztül, és SQL-szerű nyelvet használva olyan MapReduce-programokat hozzon létre, amelyek használják az adatokat.

A Hive ETL-hez való használatának tipikus lépései a következők:

  1. Adatok betöltése az Azure Data Lake Storage-ba vagy az Azure Blob Storage-ba.

  2. Hozzon létre egy metaadattár-adatbázist (az Azure SQL Database használatával), amelyet a Hive használ a sémák tárolásához.

  3. Hozzon létre egy HDInsight-fürtöt, és csatlakoztassa az adattárat.

  4. Határozza meg az adattárban lévő adatokra vonatkozó olvasási időben alkalmazandó sémát:

    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. Alakítsa át az adatokat, és töltse be a célhelyre. A Hive többféleképpen is használható az átalakítás és a betöltés során:

    • Adatokat kérdezhet le és készíthet elő a Hive használatával, és mentheti CSV-ként az Azure Data Lake Storage-ban vagy az Azure Blob Storage-ban. Ezután használjon egy olyan eszközt, mint az SQL Server Integration Services (SSIS) ezeknek a CSV-knek a beszerzéséhez, és töltse be az adatokat egy cél relációs adatbázisba, például az SQL Serverbe.
    • Az adatokat közvetlenül az Excelből vagy a C#-ból kérdezheti le a Hive ODBC-illesztővel.
    • Az Apache Sqoop használatával olvassa be az előkészített lapos CSV-fájlokat, és töltse be őket a cél relációs adatbázisba.

Adatforrások

Az adatforrások általában külső adatok, amelyek megfeleltethetők az adattárban lévő meglévő adatoknak, például:

  • Közösségimédia-adatok, naplófájlok, érzékelők és adatfájlokat létrehozó alkalmazások.
  • Adatszolgáltatóktól beszerzett adathalmazok, például időjárási statisztikák vagy szállítói értékesítési számok.
  • Megfelelő eszközzel vagy keretrendszerrel rögzített, szűrt és feldolgozott streamelési adatok.

Kimeneti célok

A Hive használatával különböző típusú célokhoz adhat ki adatokat, például:

  • Relációs adatbázis, például SQL Server vagy Azure SQL Database.
  • Egy adattárház, például az Azure Synapse Analytics.
  • Excel.
  • Azure Table and Blob Storage.
  • Olyan alkalmazások vagy szolgáltatások, amelyeknél az adatok meghatározott formátumokba vagy adott típusú információstruktúrát tartalmazó fájlokként való feldolgozását igénylik.
  • Egy JSON-dokumentumtár, például az Azure Cosmos DB.

Megfontolások

Az ETL-modellt általában a következő esetekben használja:

* Adatok vagy nagy mennyiségű félig strukturált vagy strukturálatlan adat betöltése külső forrásokból egy meglévő adatbázisba vagy információs rendszerbe. * Az adatok betöltése előtt tisztítsa meg, alakítsa át és ellenőrizze az adatokat, esetleg több átalakítás használatával, amely áthalad a fürtön. * Rendszeresen frissített jelentések és vizualizációk létrehozása. Ha például a jelentés létrehozása túl sokáig tart a nap folyamán, ütemezheti, hogy a jelentés éjszaka fusson. Hive-lekérdezés automatikus futtatásához használhatja az Azure Logic Appst és a PowerShellt.

Ha az adatok célja nem adatbázis, létrehozhat egy fájlt a lekérdezésen belül a megfelelő formátumban, például egy CSV-t. Ez a fájl ezután importálható az Excelbe vagy a Power BI-ba.

Ha az ETL-folyamat részeként több műveletet kell végrehajtania az adatokon, gondolja át, hogyan kezelheti őket. Ha a műveleteket külső program vezérli, és nem munkafolyamatként a megoldáson belül, döntse el, hogy egyes műveletek párhuzamosan végrehajthatók-e. És észlelni, hogy mikor fejeződik be az egyes feladatok. Egy munkafolyamat-mechanizmus, például az Oozie használata a Hadoopon belül egyszerűbb lehet, mint egy műveletsor vezénylése külső szkriptekkel vagy egyéni programokkal.

Következő lépések