Programiranje

10 načinov za poizvedbo Hadoop z SQL

SQL: star in uničen. Hadoop: nova vročina. To je običajna modrost, toda veliko število projektov, ki postavljajo priročen čelni del SQL v shrambe podatkov Hadoop, kaže, da obstaja resnična potreba po izdelkih, ki izvajajo SQL poizvedbe proti podatkom, ki živijo v Hadoopu, v nasprotju s samo uporabo Hadoopovega izvornega poročanja ali izvozom Hadoop podatkov v običajna baza podatkov.

MapR izdeluje lastno distribucijo Hadoop, najnovejša izdaja (4.0.1) pa jo združuje s štirimi različnimi mehanizmi za poizvedovanje viale SQL Hadoop. Štirje so pomembni sistem poizvedb SQL za Hadoop, vendar je na voljo veliko več tehnologije SQL-za-Hadoop in so zgrajeni tako, da zadovoljujejo različne potrebe in primere uporabe, od ezoteričnih do univerzalnih.

Najprej štirje mehanizmi SQL, ki so priloženi MapR:

Apache panj: To je prvotna rešitev SQL-on-Hadoop, ki poskuša posnemati vedenje, sintakso in vmesnike (-e) MySQL, vključno z odjemalcem ukazne vrstice. Vključuje tudi Java API in gonilnike JDBC za tiste, ki že vlagajo v Java programe, ki opravljajo poizvedbe v slogu MySQL. Kljub relativno enostavnosti in enostavnosti uporabe je bil panj počasen in samo za branje, kar je sprožilo številne pobude za njegovo izboljšanje.

Stinger: Hortonworks, proizvajalci lastne distribucije Hadoop, so začeli projekt Stinger kot način za pospeševanje razvoja Apache Hive in izboljšanje njegove učinkovitosti. Najnovejša inkarnacija projekta, Stinger.next, ima kot enega od ciljev oblikovanja "odzivni čas poizvedbe", skupaj s podporo za transakcijsko vedenje (vstavki, posodobitve in brisanja). Vse te spremembe bodo predstavljene v naslednjih 18 mesecih, sledile pa bodo tudi druge funkcije, kot je analitika SQL.

Apache vaja: Odprtokodna izvedba Googlovega Dremela (aka BigQuery), je bil Drill zasnovan za izvajanje poizvedb z nizko zakasnitvijo na več vrstah shramb podatkov hkrati z različnimi vmesniki poizvedb (kot sta Hadoop in NoSQL) in je zelo prilagodljiv. Drill je prav tako želel zagnati poizvedbe v najrazličnejših izvedbenih časih, ki so trajali le nekaj milisekund, dokler se minute niso končale. MapR trdi, da je Drill usmerjen v prihodnost in ne zgolj nazaj, kar je eden od razlogov, da je za ta projekt postavil svoja lastna prizadevanja za razvoj.

Spark SQL: Apachejev projekt Spark je namenjen paralelni obdelavi podatkov Hadoop v realnem času, v pomnilniku. Spark SQL gradi nad njim, da omogoča zapisovanje poizvedb SQL glede na podatke. Boljši način razmišljanja bi lahko bil Apache Hive za Apache Spark, saj ponovno uporablja ključne dele Hive tehnologije. V tem smislu je dodatek za tiste, ki že sodelujejo s Sparkom. (Prejšnji projekt Shark je bil vključen v ta.)

Poleg teh štirih še šest izstopa:

Apache Phoenix: Njeni razvijalci ga imenujejo "SQL skin for HBase" - način za poizvedbo HBase z ukazi, podobnimi SQL, prek vdelanega gonilnika JDBC, zgrajenega za visoko zmogljivost in branje / pisanje. Šteje se, da je skoraj brez težav za tiste, ki uporabljajo HBase, saj je odprtokodna, agresivno razvita in opremljena s koristnimi funkcijami, kot je nalaganje podatkov v velikem obsegu.

Cloudera Impala: Impala je na nek način še ena izvedba Dremel / Apache Drill, zasnovana tako, da se razširi na Hive, tako da ga lahko izkoristijo izstopajoči uporabniki. Podatke, shranjene v HDFS ali HBase, je mogoče poizvedovati, sintaksa SQL pa je predvidljivo enaka kot Apache Hive. Toda glavna razlika Impale od Drilla je v tem, da ni mišljen kot vir-agnostik; poizveduje izključno Hadoop.

HAWQ za Pivotal HD: Pivotal ponuja lastno distribucijo Hadoop (Pivotal HD), HAWQ pa je lastniška komponenta za izvajanje poizvedb SQL v HDFS. Posledično gre za ključni izdelek, čeprav Pivotal ovira njegovo vzporedno obdelavo SQL in visoko skladnost s standardi SQL.

Presto: Ta odprtokodni poizvedbeni mehanizem, ki so ga zgradili Facebookovi inženirji in ga interno uporabljajo v tem podjetju, spominja na Apache Drill, ker je agnostičen na vir. Z ukazi ANSI SQL lahko poizveduje tako Hive kot Cassandra, razvijalci pa lahko sistem razširijo tako, da zanj vpišejo konektorje z vmesnikom ponudnika storitev. Nekatere funkcije vstavljanja podatkov so podprte, vendar so še vedno zelo osnovne: posodobitev ne morete izvajati, temveč samo vstavke.

Oracle Big Data SQL: Le vprašanje časa je bilo, kdaj bo Oracle izdal lastno čelno stran za poizvedbe SQL za Hadoop. Tako kot Drill lahko poizveduje tako v Hadoopu kot v drugih trgovinah NoSQL. Toda za razliko od Drill je Oraclov lasten izdelek in se integrira le z Oracle Database 12c in novejšimi, kar zanj resno omejuje trg.

IBM BigSQL: Samo vprašanje časa je bilo, kdaj bo IBM storil enako, čeprav je prvi tehnološki predogled BigSQL objavil že v začetku leta 2013. Na žalost je, tako kot pri Oraclovi ponudbi, na zadnji strani povezan z določenim IBM-ovim izdelkom - v tem primeru , IBM-ov Hadoop, InfoSphere BigInsights. Vendar je sprednji del lahko standardni odjemalec JDBC / ODBC, poizvedbe pa lahko vključujejo podatke iz primerkov IBM DB2, Teradata ali PureData Systems for Analytics.

$config[zx-auto] not found$config[zx-overlay] not found