Programovanie

10 spôsobov dotazovania na Hadoop pomocou SQL

SQL: starý a zrušený. Hadoop: nová horúčava. To je konvenčná múdrosť, ale samotný počet projektov, ktoré dávajú pohodlné rozhranie SQL do dátových obchodov Hadoop, ukazuje, že existuje skutočná potreba produktov, ktoré spúšťajú dotazy SQL na dáta, ktoré žijú vo vnútri Hadoopu, na rozdiel od toho, že používajú iba natívne reporty Hadoopu alebo exportujú dáta Hadoop konvenčná databáza.

MapR produkuje vlastnú distribúciu Hadoop a najnovšie vydanie (4.0.1) ju spája so štyrmi odlišnými modulmi na zisťovanie dotazov na liekovke Hadoop SQL. Štyri z nich sú významnými dotazovacími systémami SQL pre Hadoop, ale existuje oveľa viac technológií SQL pre Hadoop a sú postavené tak, aby uspokojili rôzne potreby a prípady použitia, od ezoterického po univerzálne.

Najprv štyri motory SQL, ktoré sú dodávané s MapR:

Apache Hive: Toto je pôvodné riešenie SQL-on-Hadoop, ktoré sa pokúša napodobniť správanie, syntax a rozhranie MySQL vrátane klienta príkazového riadku. Zahŕňa tiež rozhranie Java API a ovládače JDBC pre tých, ktorí majú investície do aplikácií Java, ktoré vykonávajú dopytovanie v štýle MySQL. Napriek relatívnej jednoduchosti a ľahkému použitiu bol program Hive pomalý a iba na čítanie, čo vyvolalo množstvo iniciatív na jeho zlepšenie.

Stinger: Hortonworks, producent vlastnej distribúcie Hadoop, zahájil projekt Stinger ako spôsob pokroku v rozvoji Apache Hive a zlepšenia jeho výkonu. Najnovšia inkarnácia projektu, Stinger.next, má ako jeden z cieľov návrhu „časy podsekundových odpovedí na dotazy“ spolu s podporou transakčného správania (vkladanie, aktualizácia a mazanie). Všetky tieto zmeny budú debutovať v priebehu nasledujúcich 18 mesiacov a budú nasledovať ďalšie funkcie, ako napríklad analytika SQL.

Vŕtačka Apache: Implementácia aplikácie Dremel (aka BigQuery) spoločnosti Google ako open source bola vyvinutá na vykonávanie dotazovania s nízkou latenciou na viacerých typoch dátových úložísk naraz s rôznymi rozhraniami dotazov (napríklad Hadoop a NoSQL) a na zabezpečenie vysokej škálovateľnosti. Vŕtačky tiež chceli spúšťať dotazy v širokom rozsahu časov vykonania, ktoré trvali iba pár milisekúnd a boli spustené celé minúty. Spoločnosť MapR tvrdí, že spoločnosť Drill je zameraná na budúcnosť, nielen na spätnú kompatibilitu, a je jedným z dôvodov, prečo sa rozhodla postaviť za týmto projektom svoje vlastné vývojové úsilie.

Spark SQL: Projekt Apache's Spark slúži na paralelné spracovanie údajov Hadoop v pamäti v pamäti. Na jej vrchole je postavený program Spark SQL, ktorý umožňuje zapisovanie dotazov SQL na dáta. Lepší spôsob, ako o tom uvažovať, by mohol byť Apache Hive pre Apache Spark, pretože opakovane používa kľúčové kúsky technológie Hive. V tomto zmysle je to doplnok pre tých, ktorí už pracujú so Sparkom. (Predchádzajúci projekt, Shark, bol zahrnutý do tohto projektu.)

Okrem týchto štyroch vyniká šesť ďalších:

Apache Phoenix: Jeho vývojári to nazývajú „SQL skin pre HBase“ - spôsob dotazovania HBase pomocou príkazov podobných SQL prostredníctvom zabudovateľného ovládača JDBC vytvoreného pre vysoký výkon a operácie čítania a zápisu. Považujte to za takmer nemožné pre tých, ktorí využívajú HBase, vďaka tomu, že je open source, agresívne vyvinutý a vybavený užitočnými funkciami, ako je hromadné načítanie dát.

Cloudera Impala: V niektorých ohľadoch je Impala ďalšou implementáciou Dremel / Apache Drill, ktorá je navrhnutá tak, aby rozšírila Hive tak, aby ho mohli dnešní používatelia Hive využiť naplno. Dáta uložené v HDFS alebo HBase je možné dopytovať a syntax SQL je predvídateľne rovnaká ako Apache Hive. Ale hlavným rozdielom Impaly od Drillu je, že to nemá byť zdrojovo-agnostické; dopytuje sa výlučne na Hadoop.

HAWQ pre Pivotal HD: Pivotal poskytuje vlastnú distribúciu Hadoop (Pivotal HD) a HAWQ je patentovaná súčasť na vykonávanie SQL dotazov v HDFS. V dôsledku toho je to produkt iba pre Pivotal, aj keď Pivotal pne pre svoje paralelné spracovanie SQL a vysokú zhodu so štandardmi SQL.

Presto: Tento dopytový modul otvoreného zdroja, ktorý vytvorili inžinieri spoločnosti Facebook a interne sa používa v tejto spoločnosti, pripomína Apache Drill v tom, že je zdrojovo-agnostický. Môže dopytovať Úľ aj Cassandru pomocou príkazov ANSI SQL a vývojári môžu rozšíriť systém tak, že pre neho budú písať konektory pomocou rozhrania poskytovateľa služieb. Niektoré funkcie vkladania údajov sú podporované, ale stále sú veľmi základné: Aktualizácie nemôžete vykonávať, iba sa vkladajú.

Oracle Big Data SQL: Bolo len otázkou času, kedy Oracle vydá pre Hadoop svoje vlastné front-endy s dotazovaním na SQL. Rovnako ako Drill, dokáže dopytovať ako Hadoop, tak aj ďalšie obchody NoSQL. Ale na rozdiel od Drill, je to vlastný produkt Oracle a integruje sa iba s Oracle Database 12c a novšou verziou, čo pre ňu vážne obmedzuje trh.

IBM BigSQL: Bolo iba otázkou času, kedy IBM urobí to isté, hoci prvý technologický náhľad na BigSQL ohlásila už začiatkom roku 2013. Je smutné, že rovnako ako v prípade ponuky Oracle je viazaná na konkrétny produkt IBM na zadnej strane - v tomto prípade , IBM Hadoop, InfoSphere BigInsights. To znamená, že klientskym rozhraním môže byť štandardný klient JDBC / ODBC a dotazy môžu obsahovať údaje z inštancií IBM DB2, Teradata alebo PureData Systems pre inštancie Analytics.

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