„Sqoop“ mokymo programa: kas yra „Apache Sqoop“? Architektūra & Pavyzdys

Kas yra SQOOP „Hadoop“?

„Apache SQOOP“ („SQL-to-Hadoop“) yra įrankis, skirtas palaikyti masinį duomenų eksportavimą ir importavimą į HDFS iš struktūrinių duomenų saugyklų, tokių kaip reliacinės duomenų bazės, įmonės duomenų saugyklos ir „NoSQL“ sistemos. Tai yra duomenų perkėlimo įrankis, pagrįstas jungčių architektūra, palaikantis papildinius, kad būtų galima prisijungti prie naujų išorinių sistemų.

„Hadoop Sqoop“ naudojimo atvejo pavyzdys yra įmonė, vykdanti naktinį „Sqoop“ importavimą, kad dienos duomenis iš gamybos operacijų RDBMS įkeltų į „Hive“ duomenų saugyklą tolesnei analizei atlikti.

Toliau šioje „Apache Sqoop“ pamokoje sužinosime apie „Apache Sqoop“ architektūrą.

„Sqoop“ architektūra

Visos esamos duomenų bazių valdymo sistemos yra sukurtos atsižvelgiant į SQL standartą. Tačiau kiekviena DBVS tam tikru mastu skiriasi tarmiškai. Taigi, šis skirtumas kelia problemų, kai reikia perduoti duomenis visose sistemose. „Sqoop“ jungtys yra komponentai, padedantys įveikti šiuos iššūkius.

Duomenų perdavimas tarp „Sqoop Hadoop“ ir išorinės atminties sistemos yra įmanomas „Sqoop“ jungtimis.

„Sqoop“ turi jungtis, skirtas dirbti su daugeliu populiarių reliacinių duomenų bazių, įskaitant „MySQL“, „PostgreSQL“, „Oracle“, „SQL Server“ ir DB2. Kiekviena iš šių jungčių žino, kaip bendrauti su susieta DBVS. Taip pat yra bendra JDBC jungtis, skirta prisijungti prie bet kurios duomenų bazės, palaikančios „Java“ JDBC protokolą. Be to, „Sqoop Big data“ teikia optimizuotas „MySQL“ ir „PostgreSQL“ jungtis, kurios naudoja duomenų bazės API, kad efektyviai atliktų masinius pervedimus.

„Sqoop“ architektūra

Be to, „Sqoop“ didžiuosiuose duomenyse turi įvairias trečiųjų šalių jungtis duomenų saugykloms, pradedant nuo įmonės duomenų saugyklų (įskaitant „Netezza“, „Teradata“ ir „Oracle“) iki „NoSQL“ parduotuvių (pvz., „Couchbase“). Tačiau šių jungčių nėra „Sqoop“ pakete; jas reikia atsisiųsti atskirai ir jas galima lengvai pridėti prie esamo „Sqoop“ diegimo.

Kodėl mums reikia „Sqoop“?

Analizuojant naudojant „Hadoop“ reikia į „Hadoop“ grupes įkelti didžiulį kiekį duomenų iš įvairių šaltinių. Šis masinio duomenų įkėlimo į „Hadoop“ procesas iš heterogeninių šaltinių ir vėliau jų apdorojimas yra susijęs su tam tikrais iššūkiais. Duomenų nuoseklumo palaikymas ir užtikrinimas bei efektyvaus išteklių naudojimo užtikrinimas yra keletas veiksnių, į kuriuos reikia atsižvelgti prieš pasirenkant tinkamą duomenų apkrovos metodą.

Pagrindiniai klausimai:

1. Duomenų apkrova naudojant scenarijus

Tradicinis scenarijų naudojimo būdas įkelti duomenis netinka masiniam duomenų įkelimui į „Hadoop“; šis metodas yra neefektyvus ir užima daug laiko.

2. Tiesioginė prieiga prie išorinių duomenų naudojant „Map-Reduce“ programą

Suteikiant tiesioginę prieigą prie duomenų, esančių išorinėse sistemose (neįkeliant į „Hadoop“), mažinant žemėlapius, šias programas sudėtinga. Taigi, šio požiūrio neįmanoma įgyvendinti.

3. Be galimybės dirbti su didžiuliais duomenimis, Hadoopas gali dirbti su keletu skirtingų formų duomenimis. Taigi, norint įkelti tokius nevienalyčius duomenis į „Hadoop“, buvo sukurtos skirtingos priemonės. „Sqoop“ ir „ Flume“ yra du tokie duomenų įkėlimo įrankiai.

Toliau šioje „Sqoop“ pamokoje su pavyzdžiais sužinosime apie „Sqoop“, „Flume“ ir HDFS skirtumus.

„Sqoop“ vs „Flume“ vs HDFS „Hadoop“

Sqoop Flume HDFS
„Sqoop“ naudojamas duomenims importuoti iš struktūrinių duomenų šaltinių, tokių kaip RDBMS. „Flume“ naudojamas masinio srauto duomenų perkėlimui į HDFS. HDFS yra paskirstyta failų sistema, kurią Hadoop ekosistema naudoja duomenims saugoti.
„Sqoop“ turi jungtimi pagrįstą architektūrą. Jungtys žino, kaip prisijungti prie atitinkamo duomenų šaltinio ir gauti duomenis. „Flume“ turi agentų architektūrą. Čia parašomas kodas (kuris vadinamas „agentu“), kuris rūpinasi duomenų paėmimu. HDFS turi paskirstytą architektūrą, kai duomenys paskirstomi keliems duomenų mazgams.
HDFS yra duomenų importavimo naudojant „Sqoop“ paskirties vieta. Duomenys patenka į HDFS per nulį ar daugiau kanalų. HDFS yra pagrindinis duomenų saugojimo tikslas.
„Sqoop“ duomenų apkrova nėra nukreipta į įvykius. Duomenų apkrovą gali lemti įvykis. HDFS tiesiog saugo duomenis, pateiktus jai bet kokiomis priemonėmis.
Norint importuoti duomenis iš struktūrinių duomenų šaltinių, reikia naudoti tik „Sqoop“ komandas, nes jo jungtys žino, kaip sąveikauti su struktūrizuotais duomenų šaltiniais ir iš jų gauti duomenis. Norint įkelti srautinius duomenis, pvz., „Twitter“ sugeneruotus „tweets“, arba žiniatinklio serverio žurnalo failus, reikia naudoti „Flume“. Flume agentai yra sukurti srautiniams duomenims gauti. HDFS turi savo įmontuotas apvalkalo komandas duomenims saugoti. HDFS negali importuoti srautinių duomenų

Įdomios straipsniai...