10 načina za postavljanje upita za Hadoop s SQL-om

SQL: star i provaljen. Hadoop: nova vrućina. To je uobičajena mudrost, ali ogroman broj projekata koji stavljaju prikladan SQL prednji kraj na Hadoop pohrane podataka pokazuje da postoji stvarna potreba za proizvodima koji pokreću SQL upite protiv podataka koji žive unutar Hadoopa, za razliku od pukog korištenja Hadoopovog izvornog izvještavanja ili izvoza Hadoop podataka u konvencionalna baza podataka.

MapR proizvodi vlastitu distribuciju Hadoop-a, a najnovije izdanje (4.0.1) isporučuje je s četiri različita mehanizma za postavljanje upita o Hadoop bočici SQL. Četiri su značajna SQL sustava upita za Hadoop, ali postoji daleko više SQL-for-Hadoop tehnologije koja je izgrađena da zadovolji različite potrebe i slučajeve upotrebe, od ezoteričnih do univerzalnih.

Prvo, četiri SQL mehanizma koja dolaze s MapR-om:

Apache Hive: Ovo je izvorno rješenje SQL-on-Hadoop, koje pokušava oponašati ponašanje, sintaksu i sučelje MySQL-a, uključujući klijenta naredbenog retka. Također uključuje Java API i JDBC pokretačke programe za one koji već ulažu u Java programe koji vrše upite u MySQL stilu. Unatoč relativnoj jednostavnosti i jednostavnosti korištenja, Hive je bio spor i samo za čitanje, što je izazvalo brojne inicijative za njegovo poboljšanje.

Stinger: Hortonworks, proizvođači vlastite distribucije Hadoop-a, pokrenuli su projekt Stinger kao način da unaprijede razvoj Apache Hive-a i poboljšaju njegove performanse. Najnovija inkarnacija projekta, Stinger.next, kao jedan od ciljeva dizajna ima "vrijeme odgovora na upit ispod sekunde", zajedno s podrškom za transakcijsko ponašanje (umetci, ažuriranja i brisanja). Sve će promjene biti predstavljene tijekom sljedećih 18 mjeseci, a slijede i druge značajke poput SQL analitike.

Apache Drill: Implementacija otvorenog koda Googleovog Dremela (aka BigQuery), Drill je osmišljena za provođenje upita s malim kašnjenjem na više vrsta spremišta podataka odjednom s različitim sučeljima upita (kao što su Hadoop i NoSQL), te da bi bila vrlo skalabilna. Drill je također trebao pokretati upite u širokom rasponu vremena izvršavanja, trajući samo nekoliko milisekundi do pokretanja minuta na kraju. MapR tvrdi da je Drill usmjeren prema naprijed, a ne samo da je kompatibilan s unatrag, jedan od razloga zašto je izabran da vlastite razvojne napore stavi iza tog projekta.

Spark SQL: Apachein projekt Spark namijenjen je paralelnoj obradi Hadoop podataka u stvarnom vremenu, u memoriji. Spark SQL gradi se na njemu kako bi omogućio pisanje SQL upita prema podacima. Bolji način da se o njemu razmišlja može biti Apache Hive za Apache Spark, jer ponovno koristi ključne dijelove Hive tehnologije. U tom smislu, to je dodatak onima koji već rade s Sparkom. (Raniji projekt, Shark, sumiran je u ovaj.)

Osim ove četvorice, ističe se još šest:

Apache Phoenix: Njegovi ga programeri nazivaju "SQL skin for HBase" - način za postavljanje upita HBase pomoću naredbi sličnih SQL-u putem ugradivog JDBC pokretačkog programa izrađenog za visoke performanse i operacije čitanja / pisanja. Smatrajte ga gotovo nezanimljivim za one koji koriste HBase, zahvaljujući tome što je otvoren izvor, agresivno razvijen i opremljen korisnim značajkama poput skupnog učitavanja podataka.

Cloudera Impala: Na neki način, Impala je još jedna implementacija bušilice Dremel / Apache, dizajnirane da se proširi na košnicu tako da je korisnici koji mogu izaći iz košnice maksimalno iskoristiti. Podaci pohranjeni u HDFS-u ili HBase-i mogu se ispitivati, a sintaksa SQL-a je, predvidljivo, ista kao Apache Hive. No, glavna je razlika Impale od Drilla u tome što nije namijenjen izvornom agnostiku; pita isključivo za Hadoop.

HAWQ za Pivotal HD: Pivotal nudi vlastitu Hadoop distribuciju (Pivotal HD), a HAWQ je vlasnička komponenta za izvođenje SQL upita u HDFS-u. Slijedom toga, riječ je o pivotal-jedinom proizvodu, iako Pivotal zapinje zbog paralelne SQL obrade i visoke usklađenosti sa SQL standardima.

Presto: Izgradili su ga Facebookovi inženjeri i interno koristili u toj tvrtki, ovaj mehanizam za upite s otvorenim kodom podsjeća na Apache Drill jer je agnotičan na izvor. Može pitati i Hive i Cassandru pomoću ANSI SQL naredbi, a programeri mogu proširiti sustav pisanjem konektora za njega pomoću sučelja svog pružatelja usluga. Podržane su neke funkcije umetanja podataka, ali one su i dalje vrlo osnovne: ne možete izvoditi ažuriranja, već samo umetke.

Oracle Big Data SQL: Bilo je samo pitanje vremena kada će Oracle objaviti vlastiti prednji kraj za SQL-upite za Hadoop. Kao i Drill, može postavljati upite i za Hadoop i za druge NoSQL trgovine. No, za razliku od Drill-a, to je vlastiti Oracleov proizvod i integrira se samo s Oracle Database 12c i novijim verzijama, što ozbiljno ograničava tržište za njega.

IBM BigSQL: Bilo je samo pitanje vremena kada će i IBM učiniti isto, iako je najavio prvi tehnološki pregled BigSQL-a još početkom 2013. Nažalost, kao i kod Oracleove ponude, povezan je s određenim IBM-ovim proizvodom na stražnjoj strani - u ovom slučaju, IBM-ov Hadoop, InfoSphere BigInsights. Međutim, prednji kraj može biti standardni JDBC / ODBC klijent, a upiti mogu uključivati ​​podatke iz instanci IBM DB2, Teradata ili PureData Systems for Analytics.