Kaj je SQOOP v Hadoopu?
Apache SQOOP (SQL-to-Hadoop) je orodje, namenjeno podpori množičnega izvoza in uvoza podatkov v HDFS iz strukturiranih shramb podatkov, kot so relacijske baze podatkov, podatkovna skladišča podjetij in sistemi NoSQL. To je orodje za migracijo podatkov, ki temelji na arhitekturi konektorja in podpira vtičnike za zagotavljanje povezljivosti z novimi zunanjimi sistemi.
Primer uporabe Hadoop Sqoop je podjetje, ki izvaja nočni uvoz Sqoop za nalaganje dnevnih podatkov iz produkcijskega transakcijskega RDBMS v podatkovno skladišče Hive za nadaljnjo analizo.
V nadaljevanju te vadnice Apache Sqoop bomo spoznali arhitekturo Apache Sqoop.
Sqoop arhitektura
Vsi obstoječi sistemi za upravljanje baz podatkov so zasnovani z upoštevanjem standarda SQL. Vendar se vsak DBMS do dialekta do neke mere razlikuje. Torej ta razlika predstavlja izzive pri prenosu podatkov med sistemi. Sqoop priključki so sestavni deli, ki pomagajo premagati te izzive.
Prenos podatkov med Sqoop Hadoop in zunanjim sistemom za shranjevanje je omogočen s pomočjo konektorjev Sqoop.
Sqoop ima priključke za delo s številnimi priljubljenimi relacijskimi bazami podatkov, vključno z MySQL, PostgreSQL, Oracle, SQL Server in DB2. Vsak od teh konektorjev ve, kako sodelovati s pripadajočimi DBMS. Obstaja tudi splošni priključek JDBC za povezavo s katero koli bazo podatkov, ki podpira Javin protokol JDBC. Poleg tega podatki Sqoop Big ponujajo optimizirane konektorje MySQL in PostgreSQL, ki uporabljajo API-je, specifične za bazo podatkov, za učinkovito izvajanje množičnih prenosov.
Poleg tega ima Sqoop za velike podatke različne zunanje priključke za shranjevanje podatkov, od skladišč podatkov podjetja (vključno z Netezzo, Teradata in Oracle) do trgovin NoSQL (kot je Couchbase). Vendar ti priključki niso priloženi paketu Sqoop; tiste je treba prenesti ločeno in jih je mogoče enostavno dodati obstoječi namestitvi Sqoop.
Zakaj potrebujemo Sqoop?
Analitična obdelava s pomočjo Hadoopa zahteva nalaganje ogromnih količin podatkov iz različnih virov v Hadoop grozde. Ta postopek množičnega nalaganja podatkov v Hadoop iz heterogenih virov in nato njegova obdelava prinaša določene izzive. Ohranjanje in zagotavljanje doslednosti podatkov ter zagotavljanje učinkovite uporabe virov je nekaj dejavnikov, ki jih je treba upoštevati, preden izberete pravi pristop za nalaganje podatkov.
Glavna vprašanja:
1. Nalaganje podatkov s pomočjo skriptov
Tradicionalni pristop uporabe skriptov za nalaganje podatkov ni primeren za množično nalaganje podatkov v Hadoop; ta pristop je neučinkovit in zelo dolgotrajen.
2. Neposreden dostop do zunanjih podatkov prek aplikacije Map-Reduce
Zagotavljanje neposrednega dostopa do podatkov, ki se nahajajo v zunanjih sistemih (brez nalaganja v Hadoop), za aplikacije za zmanjšanje zemljevidov zaplete te aplikacije. Torej, ta pristop ni izvedljiv.
3. Poleg tega, da lahko Hadoop deluje z ogromnimi podatki, lahko deluje s podatki v več različnih oblikah. Za nalaganje tako raznovrstnih podatkov v Hadoop so bila razvita različna orodja. Sqoop in Flume sta dve takšni orodji za nalaganje podatkov.
V nadaljevanju te vadnice Sqoop s primeri bomo spoznali razliko med Sqoop, Flume in HDFS.
Sqoop vs Flume vs HDFS v Hadoopu
Sqoop | Flume | HDFS |
---|---|---|
Sqoop se uporablja za uvoz podatkov iz strukturiranih virov podatkov, kot je RDBMS. | Flume se uporablja za premikanje množičnih pretočnih podatkov v HDFS. | HDFS je porazdeljeni datotečni sistem, ki ga uporablja ekosistem Hadoop za shranjevanje podatkov. |
Sqoop ima arhitekturo na osnovi konektorja. Konektorji vedo, kako se povezati z ustreznim virom podatkov in pridobiti podatke. | Flume ima arhitekturo, ki temelji na agentu. Tu je napisana koda (ki se imenuje "agent"), ki skrbi za pridobivanje podatkov. | HDFS ima porazdeljeno arhitekturo, pri kateri se podatki porazdelijo po več podatkovnih vozliščih. |
HDFS je cilj za uvoz podatkov s pomočjo Sqoop-a. | Podatki se pretakajo v HDFS po nič ali več kanalih. | HDFS je končni cilj za shranjevanje podatkov. |
Nalaganje podatkov Sqoop ne temelji na dogodkih. | Nalaganje podatkov o flume lahko povzroči dogodek. | HDFS samo shrani podatke, ki mu jih posreduje s kakršnim koli sredstvom. |
Za uvoz podatkov iz strukturiranih podatkovnih virov je treba uporabiti samo ukaze Sqoop, ker njegovi konektorji vedo, kako lahko sodelujejo s strukturiranimi viri podatkov in iz njih pridobivajo podatke. | Za nalaganje pretočnih podatkov, kot so tviti, ustvarjeni na Twitterju, ali dnevniške datoteke spletnega strežnika, je treba uporabiti Flume. Sredstva Flume so narejena za pridobivanje pretočnih podatkov. | HDFS ima vgrajene ukaze lupine za shranjevanje podatkov. HDFS ne more uvoziti pretočnih podatkov |