Kas ir SQOOP Hadoopā?
Apache SQOOP (SQL-to-Hadoop) ir rīks, kas paredzēts datu lielapjoma eksportēšanai un importēšanai HDFS no strukturētiem datu krājumiem, piemēram, relāciju datu bāzēm, uzņēmuma datu noliktavām un NoSQL sistēmām. Tas ir datu migrācijas rīks, kura pamatā ir savienotāju arhitektūra, kas atbalsta spraudņus, lai nodrošinātu savienojamību ar jaunām ārējām sistēmām.
Hadoop Sqoop izmantošanas gadījuma piemērs ir uzņēmums, kas katru nakti veic Sqoop importēšanu, lai dienas datus no ražošanas darījumu RDBMS ielādētu Hive datu noliktavā tālākai analīzei.
Tālāk šajā Apache Sqoop apmācībā mēs uzzināsim par Apache Sqoop arhitektūru.
Sqoop arhitektūra
Visas esošās datu bāzes pārvaldības sistēmas ir izstrādātas, ņemot vērā SQL standartu. Tomēr katra DBVS attiecībā uz dialektu zināmā mērā atšķiras. Tātad šī atšķirība rada problēmas, kad runa ir par datu pārsūtīšanu starp sistēmām. Sqoop savienotāji ir komponenti, kas palīdz pārvarēt šīs problēmas.
Datu pārsūtīšana starp Sqoop Hadoop un ārējo atmiņas sistēmu ir iespējama ar Sqoop savienotāju palīdzību.
Sqoop ir savienotāji darbam ar daudzām populārām relāciju datu bāzēm, tostarp MySQL, PostgreSQL, Oracle, SQL Server un DB2. Katrs no šiem savienotājiem zina, kā mijiedarboties ar saistīto DBVS. Ir izveidots arī vispārējs JDBC savienotājs, lai izveidotu savienojumu ar jebkuru datu bāzi, kas atbalsta Java JDBC protokolu. Turklāt Sqoop Big data nodrošina optimizētus MySQL un PostgreSQL savienotājus, kas efektīvai lielapjoma pārsūtīšanai izmanto datu bāzei specifiskus API.
Papildus tam Sqoop lielajos datos ir dažādi trešo pušu savienotāji datu krātuvēm, sākot no uzņēmuma datu noliktavām (ieskaitot Netezza, Teradata un Oracle) līdz NoSQL veikaliem (piemēram, Couchbase). Tomēr šiem savienotājiem nav komplektā Sqoop; tie ir jālejupielādē atsevišķi, un tos var viegli pievienot esošai Sqoop instalācijai.
Kāpēc mums vajadzīgs Skoops?
Analītiskajai apstrādei, izmantojot Hadoop, Hadoop kopās ir jāielādē milzīgs daudzums datu no dažādiem avotiem. Šis datu apjomīgas ielādes process Hadoopā no neviendabīgiem avotiem un pēc tam to apstrāde ir saistīts ar noteiktu problēmu kopumu. Datu konsekvences uzturēšana un nodrošināšana un resursu efektīvas izmantošanas nodrošināšana ir daži faktori, kas jāņem vērā, pirms izvēlēties pareizo pieeju datu slodzei.
Galvenie jautājumi:
1. Datu ielāde, izmantojot skriptus
Tradicionālā pieeja skriptu izmantošanai datu ielādēšanai nav piemērota datu lielapjoma ielādei Hadoop; šī pieeja ir neefektīva un ļoti laikietilpīga.
2. Tieša piekļuve ārējiem datiem, izmantojot programmu Map-Reduce
Nodrošinot tiešu piekļuvi datiem, kas atrodas ārējās sistēmās (neielādējot Hadoop), kartes samazinošām lietojumprogrammām ir sarežģītas šīs lietojumprogrammas. Tātad šī pieeja nav iespējama.
3. Papildus spējai strādāt ar milzīgiem datiem, Hadoop var strādāt ar datiem vairākās dažādās formās. Tātad, lai ielādētu šādus neviendabīgus datus Hadoop, ir izstrādāti dažādi rīki. Sqoop un Flume ir divi šādi datu ielādes rīki.
Tālāk šajā Sqoop apmācībā ar piemēriem mēs uzzināsim par atšķirību starp Sqoop, Flume un HDFS.
Sqoop vs Flume vs HDFS Hadoopā
Sqoop | Flume | HDFS |
---|---|---|
Sqoop tiek izmantots datu importēšanai no strukturētiem datu avotiem, piemēram, RDBMS. | Flume tiek izmantots lielapjoma straumēšanas datu pārvietošanai HDFS. | HDFS ir izplatīta failu sistēma, kuru Hadoop ekosistēma izmanto datu glabāšanai. |
Sqoop ir uz savienotāju balstīta arhitektūra. Savienotāji zina, kā izveidot savienojumu ar attiecīgo datu avotu un iegūt datus. | Flume ir uz aģentiem balstīta arhitektūra. Šeit tiek uzrakstīts kods (ko sauc par “aģentu”), kas rūpējas par datu ienešanu. | HDFS ir sadalīta arhitektūra, kurā dati tiek sadalīti vairākos datu mezglos. |
HDFS ir datu importēšanas galamērķis, izmantojot Sqoop. | Dati plūst uz HDFS pa nulles vai vairāk kanāliem. | HDFS ir galvenais datu glabāšanas galamērķis. |
Sqoop datu slodze nav notikumu vadīta. | Datu plūsmu var vadīt notikums. | HDFS glabā tikai datus, ko tai sniedz ar jebkādiem līdzekļiem. |
Lai importētu datus no strukturētiem datu avotiem, ir jāizmanto tikai komandas Sqoop, jo tā savienotāji zina, kā mijiedarboties ar strukturēto datu avotiem un iegūt datus no tiem. | Lai ielādētu straumēšanas datus, piemēram, čivināt ģenerētus tvītus vai tīmekļa servera žurnālfailus, jāizmanto Flume. Plūmju aģenti ir veidoti straumēšanas datu ielādēšanai. | HDFS ir savas iebūvētās čaulas komandas, lai tajā saglabātu datus. HDFS nevar importēt straumēšanas datus |