Programování

10 způsobů dotazování na Hadoop pomocí SQL

SQL: starý a zatčen. Hadoop: nová žhavost. To je obvyklá moudrost, ale pouhý počet projektů uvádějících pohodlné rozhraní SQL do datových obchodů Hadoop ukazuje, že existuje skutečná potřeba produktů provozujících dotazy SQL proti datům, která žijí uvnitř Hadoopu, na rozdíl od pouhého použití nativního hlášení Hadoop nebo exportu dat Hadoop do konvenční databáze.

MapR produkuje vlastní distribuci Hadoop a nejnovější vydání (4.0.1) ji spojuje se čtyřmi odlišnými enginy pro dotazování Hadoop lahvičky SQL. Čtyři z nich jsou významnými systémy dotazů SQL pro Hadoop, ale existuje mnohem více technologií SQL pro Hadoop a jsou postaveny tak, aby uspokojily různé potřeby a případy použití, od esoterických po univerzální.

Nejprve čtyři SQL enginy, které jsou součástí MapR:

Apache Hive: Toto je původní řešení SQL-on-Hadoop, které se snaží napodobit chování, syntaxi a rozhraní MySQL, včetně klienta příkazového řádku. Zahrnuje také rozhraní Java API a ovladače JDBC pro ty, kteří již investují do aplikací Java, které provádějí dotazování ve stylu MySQL. Navzdory své relativní jednoduchosti a snadnému použití byl Hive pomalý a pouze ke čtení, což vyvolalo řadu iniciativ, které by jej vylepšily.

Stinger: Společnost Hortonworks, výrobce vlastní distribuce Hadoop, zahájila projekt Stinger jako způsob, jak urychlit vývoj Apache Hive a zvýšit jeho výkon. Nejnovější inkarnace projektu, Stinger.next, má jako jeden z cílů návrhu „doby odezvy dotazu na druhou sekundu“ spolu s podporou transakčního chování (vkládání, aktualizace a mazání). Všechny tyto změny budou debutovat v příštích 18 měsících a budou následovat další funkce, jako je analýza SQL.

Apache Drill: Jako implementace open source aplikace Dremel (aka BigQuery) společnosti Google byla společnost Drill vyvinuta pro provádění dotazů s nízkou latencí na více typech datových úložišť najednou s různými rozhraními dotazů (například Hadoop a NoSQL) a aby byla vysoce škálovatelná. Cvičení také znamenalo spouštět dotazy v širokém rozsahu časů provádění, které by trvaly jen několik milisekund, než by mohly běžet celé minuty. Společnost MapR tvrdí, že společnost Drill je zaměřená na budoucnost, nejen na zpětnou kompatibilitu, a je jedním z důvodů, proč se rozhodla za tímto projektem postavit vlastní vývojové úsilí.

Spark SQL: Projekt Spache společnosti Apache je určen pro paralelní zpracování dat Hadoop v paměti v paměti. Spark SQL staví na tom, aby bylo možné zapisovat dotazy SQL proti datům. Lepší způsob, jak o tom přemýšlet, může být jako Apache Hive pro Apache Spark, protože opakovaně využívá klíčové technologie Hive. V tomto smyslu je to doplněk pro ty, kteří již pracují se Sparkem. (Dřívější projekt, Shark, byl zahrnut do tohoto projektu.)

Kromě těchto čtyř vyniká šest dalších:

Apache Phoenix: Jeho vývojáři jej nazývají „SQL skin pro HBase“ - způsob dotazování HBase pomocí příkazů podobných SQL prostřednictvím integrovatelného ovladače JDBC vytvořeného pro vysoký výkon a operace čtení / zápisu. Považujte to za téměř neznámé pro ty, kteří využívají HBase, díky tomu, že je otevřený zdroj, agresivně vyvinutý a vybaven užitečnými funkcemi, jako je hromadné načítání dat.

Cloudera Impala: V některých ohledech je Impala další implementací Dremel / Apache Drill, která je navržena tak, aby rozšířila Hive tak, aby jej mohli stávající uživatelé Hive co nejlépe využít. Lze dotazovat data uložená v HDFS nebo HBase a syntaxe SQL je předvídatelně stejná jako Apache Hive. Ale hlavní rozdíl Impaly od Drill je, že to nemá být zdrojově agnostické; dotazuje se výhradně na Hadoop.

HAWQ pro Pivotal HD: Pivotal poskytuje vlastní distribuci Hadoop (Pivotal HD) a HAWQ je proprietární komponenta pro provádění dotazů SQL v HDFS. V důsledku toho se jedná o produkt pouze pro Pivotal, přestože Pivotal pro jeho paralelní zpracování SQL a vysokou shodu se standardy SQL přestává.

Rychle: Postavený inženýry Facebooku a interně používaný v této společnosti, tento vyhledávací modul s otevřeným zdrojovým kódem připomíná Apache Drill v tom, že je zdrojově agnostický. Může dotazovat Hive i Cassandru pomocí příkazů ANSI SQL a vývojáři mohou rozšířit systém tak, že pro něj budou psát konektory pomocí rozhraní poskytovatele služeb. Některé funkce vkládání dat jsou podporovány, ale stále jsou velmi základní: Nelze provádět aktualizace, pouze vkládá.

Oracle Big Data SQL: Bylo jen otázkou času, než Oracle pro Hadoop vydá vlastní front-end dotazování SQL. Stejně jako Drill může dotazovat jak Hadoop, tak další obchody NoSQL. Ale na rozdíl od Drill je to vlastní produkt Oracle a integruje se pouze s Oracle Database 12c a novějším, což pro něj vážně omezuje trh.

IBM BigSQL: Bylo jen otázkou času, kdy IBM učiní totéž, ačkoli na začátku roku 2013 oznámila první technologický náhled BigSQL. Bohužel, stejně jako u nabídky Oracle, je vázána na konkrétní produkt IBM na zadní straně - v tomto případě , IBM Hadoop, InfoSphere BigInsights. To znamená, že front-end může být standardní klient JDBC / ODBC a dotazy mohou zahrnovat data z instancí IBM DB2, Teradata nebo PureData Systems pro Analytics.

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