Sqoop vodič: Što je Apache Sqoop? Architekstura i primjer
Što je SQOOP u Hadoopu?
Apache SQOOP (SQL-to-Hadoop) alat je osmišljen za podršku masovnog izvoza i uvoza podataka u HDFS iz strukturiranih pohrana podataka kao što su relacijske baze podataka, skladišta poslovnih podataka i NoSQL sustavi. To je alat za migraciju podataka temeljen na arhitekturi konektora koji podržava dodatke za pružanje povezivosti s novim vanjskim sustavima.
Primjer upotrebe Hadoop Sqoopa je poduzeće koje svake noći pokreće Sqoop import za učitavanje dnevnih podataka iz proizvodnog transakcijskog RDBMS-a u Košnica skladište podataka za daljnju analizu.
Zatim ćemo u ovom vodiču za Apache Sqoop učiti o arhitekturi Apache Sqoopa.
Sqoop Architektura
Sve postojeće Sustavi za upravljanje bazama podataka dizajnirani su s SQL standard na umu. Međutim, svaki DBMS se u određenoj mjeri razlikuje s obzirom na dijalekt. Dakle, ova razlika predstavlja izazov kada je u pitanju prijenos podataka kroz sustave. Sqoop konektori su komponente koje pomažu u prevladavanju ovih izazova.
Prijenos podataka između Sqoop Hadoop-a i vanjskog sustava za pohranu omogućen je uz pomoć Sqoop konektora.
Sqoop ima konektore za rad s nizom popularnih relacijskih baza podataka, uključujući MySQL, PostgreSQL, Oracle, SQL Server i DB2. Svaki od ovih konektora zna kako komunicirati sa svojim povezanim DBMS-om. Postoji i generički JDBC konektor za povezivanje s bilo kojom bazom podataka koja podržava JavaJDBC protokol. Osim toga, Sqoop Big data pruža optimizirane MySQL i PostgreSQL konektori koji koriste API-je specifične za bazu podataka za učinkovito izvođenje skupnih prijenosa.
Uz to, Sqoop u velikim podacima ima razne konektore trećih strana za pohranu podataka, u rasponu od poslovnih skladišta podataka (uključujući Netezzu, Teradatu i Oracle) u NoSQL trgovine (kao što je Couchbase). Međutim, ovi priključci ne dolaze sa Sqoop paketom; one se moraju zasebno preuzeti i mogu se jednostavno dodati postojećoj Sqoop instalaciji.
Zašto nam treba Sqoop?
Analitička obrada pomoću Hadoopa zahtijeva učitavanje ogromnih količina podataka iz različitih izvora u Hadoop klastere. Ovaj proces skupnog učitavanja podataka u Hadoop, iz heterogenih izvora i zatim njihova obrada, dolazi s određenim nizom izazova. Održavanje i osiguravanje dosljednosti podataka i osiguravanje učinkovite upotrebe resursa neki su čimbenici koje treba razmotriti prije odabira pravog pristupa za učitavanje podataka.
Veliki problemi:
1. Učitavanje podataka pomoću skripti
Tradicionalni pristup korištenja skripti za učitavanje podataka nije prikladan za skupno učitavanje podataka u Hadoop; ovaj pristup je neučinkovit i oduzima puno vremena.
2. Izravan pristup vanjskim podacima putem Map-Reduce aplikacije
Pružanje izravnog pristupa podacima koji se nalaze u vanjskim sustavima (bez učitavanja u Hadoop) za aplikacije sa smanjenjem karte komplicira te aplikacije. Dakle, ovaj pristup nije izvediv.
3. Osim što ima sposobnost rada s ogromnim podacima, Hadoop može raditi s podacima u nekoliko različitih oblika. Dakle, za učitavanje takvih heterogenih podataka u Hadoop, razvijeni su različiti alati. Sqoop i Žlijeb su dva takva alata za učitavanje podataka.
Zatim ćemo u ovom Sqoop vodiču s primjerima naučiti o razlici između Sqoopa, Flumea i HDFS-a.
Sqoop vs Flume vs HDFS u Hadoopu
Sqoop | Žlijeb | HDFS |
---|---|---|
Sqoop se koristi za uvoz podataka iz strukturiranih izvora podataka kao što je RDBMS. | Flue se koristi za premještanje masovnog strujanja podataka u HDFS. | HDFS je distribuirani datotečni sustav koji koristi Hadoop ekosustav za pohranu podataka. |
Sqoop ima arhitekturu temeljenu na konektorima. Konektori znaju kako se povezati s odgovarajućim izvorom podataka i dohvatiti podatke. | Flume ima arhitekturu temeljenu na agentima. Ovdje je napisan kod (koji se naziva 'agent') koji se brine za dohvaćanje podataka. | HDFS ima distribuiranu arhitekturu gdje se podaci distribuiraju na više podatkovnih čvorova. |
HDFS je odredište za uvoz podataka pomoću Sqoopa. | Podaci teku u HDFS kroz nula ili više kanala. | HDFS je krajnje odredište za pohranu podataka. |
Sqoop učitavanje podataka nije vođeno događajima. | Učitavanje podataka Flume može biti potaknuto događajem. | HDFS samo pohranjuje podatke koji su mu dostavljeni na bilo koji način. |
Da bi se uvezli podaci iz izvora strukturiranih podataka, potrebno je koristiti samo Sqoop naredbe, jer njegovi konektori znaju kako komunicirati s izvorima strukturiranih podataka i dohvaćati podatke iz njih. | Za učitavanje podataka o strujanju kao što su tweetovi generirani na Twitteru ili log datoteke web poslužitelja, treba koristiti Flume. Flume agenti napravljeni su za dohvaćanje strujanja podataka. | HDFS ima vlastite ugrađene naredbe ljuske za pohranu podataka u njega. HDFS ne može uvesti strujanje podataka |