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.

Sqoop Architektura
Sqoop Architektura

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