Programování

Co pro vás může udělat databáze využívající GPU

Databáze SQL sahá až do 70. let a od 80. let je standardem ANSI, ale to neznamená, že tato technologie stále zůstává. Stále se mění a jedním z těchto způsobů jsou databáze zrychlené GPU.

Velikost relačních databází vzrostla na datové sady, které měří v petabajtech i mimo ně. I s příchodem 64bitového výpočetního výkonu a terabajtů paměti pro zvýšené zpracování je stále ještě spousta dat, která je třeba projít - a CPU toho zvládnou jen tolik. To je místo, kde přicházejí GPU.

GPU se změnily z původního poslání akcelerace her na akceleraci téměř všeho. Nvidia se mistrovsky otočila, aby se stala synonymem umělé inteligence, což je proces, který vyžaduje obrovské množství dat zpracovávaných paralelně a další úkoly, které lze dobře paralelizovat. AMD začíná hrát dohánění, ale Nvidia má dlouhý náskok.

Pokud jde o jádra, není to ani zdaleka. CPU Xeon mají maximálně 22 jader. AMD Epyc má 32 jader. Architektura Nvidia Volta má 5 120 jader. Nyní si představte více než 5 000 jader běžících paralelně na datech a je jasné, proč se GPU staly tak populární pro masivní výpočetní projekty.

Takže se objevila nová třída databází, napsaná od základu, aby podporovala a přijímala GPU a jejich masivní možnosti paralelního zpracování. Tyto databáze umožňují nové úrovně zpracování dat, analytiky a velkých dat v reálném čase, protože mohou zpracovávat datové sady, které běžné databáze s procesorem CPU prostě nemohou.

Je definována databáze GPU

Koncept databáze GPU je dostatečně jednoduchý: Využívá paralelismu GPU k provádění masivní akcelerace zpracování dat. GPU je ideální pro zrychlení zpracování dotazů SQL, protože SQL provádí stejnou operaci - obvykle vyhledávání - na každém řádku v sadě.

Na server hostující databázi Oracle však jednoduše nevložíte spoustu karet Nvidia Tesla. Databáze GPU byly navrženy a zapsány od základu k provádění paralelního zpracování, počínaje SQL PŘIPOJIT operace.

PŘIPOJITs vytvořit vztah mezi sloupci z více tabulek v databázi a jsou zásadní pro provádění smysluplné analýzy. Tradiční designové přístupy pro PŘIPOJITStarší systémy RDBMS byly navrženy před lety pro jednojádrové procesory a nevyhovují ani CPU, natož GPU.

Mimo PŘIPOJITs, databáze GPU mají podstatnou úroveň podpory, včetně:

  • Konektory k populárním open source frameworkům, jako jsou Hadoop, Kafka, HBase, Spark a Storm.
  • Ovladače ODBC a JDBC pro integraci se stávajícími vizualizačními a BI nástroji, jako jsou Tableau, Power BI a Spotfire
  • API pro vazby s populárními programovacími jazyky jako C ++, SQL, Java, Node.js a Python.

Kde použít databázi GPU

V tomto ohledu databáze GPU ve skutečnosti nekonkurují Oracle, SQL Server nebo DB2. Databáze GPU jsou orientovány na rozhodování o analýze dat, kde se společnosti pokoušejí rozhodovat v reálném čase z velkého množství dat, ale zjistí, že to nedokážou, protože existuje příliš mnoho dat nebo protože nástroje pro vizuální analýzu jsou příliš pomalé.

Prodejci databází GPU se nevidí jako náhrada za Oracle nebo databázi OLTP, jako je Teradata. Namísto cílení na tradiční pracovní zátěže RDBMS se databáze GPU zaměřují na svět OLAP / OLTP a velká data, kde jsou datové sady obrovské a potřeba je v reálném čase. Namísto dávkových procesů běžících přes hodiny nebo přes noc jsou v databázích GPU data, která lze prezentovat v reálném čase nebo na hodinovém základě.

Databáze GPU by měla vyřešit mnoho problémů, které se NoSQL snaží vyřešit, ale umožní vám použít vaše stávající nástroje pro strukturované dotazy. Používání NoSQL znamená přepisování všech vašich nástrojů SQL, ale databáze GPU používají existující nástroje SQL.

„Myslíme si, že uvidíme, že si lidé uvědomí, že mohou dělat multidimenzionální systémy a přijímat data z různých scénářů a kombinovat je,“ říká Steve Worthington, architekt řešení pro vznikající technologie pro Datatrend Technologies, IT konzultant, který využívá databázi GPU SQream. "Lékařské společnosti chtějí odebírat [data] z více systémů a provádět analýzy napříč databázemi, protože dříve nemohly dělat křížové odkazy a neměly žádný způsob, jak se připojit k databázím."

Cituje také finanční instituce provádějící podvody a analýzy rizik, které by nyní mohly provádět pouze kontroly kreditních karet, ale chtějí provádět kontroly na více účtech. Díky výkonu GPU mohou porovnávat všechny tyto zdroje informací najednou.

Pro Richa Suttona, viceprezidenta geoprostorových dat ve Skyhooku, poskytovatele služeb určování polohy, mu použití databáze OmniSci GPU poskytuje mnohem větší vizualizaci geografických datových souborů, než by mohl dělat s databází založenou na CPU. "Mohu načíst miliardu řádků do OmniSci as malou nebo žádnou latencí, místo toho, abych se musel dívat na datovou sadu 10 000 řádků v tradičním prostoru CPU," říká. "Je to pro mě výhodné několik řádů, což snižuje spotřebu dat s výrazně sníženou latencí."

Todd Mostak, generální ředitel společnosti OmniSci, říká, že jeden zákazník mu řekl, že rychlost OmniSci „snižuje náklady na zvědavost. Kladou otázky, které by dříve držely zpátky. “ Jeden zákazník finančních služeb mu sdělil, že 18hodinový dotaz na zpracování v tradiční databázi klesl na jednu sekundu, zatímco telekomunikační společnost mu řekla, že dotazy, jejichž spuštění trvalo hodiny, nyní odpovídají za sekundu.

Další místo pro databáze GPU je ve velkých datech v reálném čase, kde Hadoop nedosáhl. Ami Gal, generální ředitel poskytovatele databází GPU SQream, říká, že velká část příslibu velkých dat - hledání všech příležitostí, které se nacházejí v desítkách petabajtů dat řádků - nebyla na Hadoopu dosažena, protože byla příliš pomalá.

"Spark je docela dobrý pro pohyb a transformaci dat, ale jakmile potřebujete zpracovat obrovské množství dat a přesunout je, začnete se zabývat stovkami tisíc [výpočetních] uzlů, a to je považováno za příliš velké na to, aby se ve velkých datových sadách drtilo." Ale pokud to dokážete s deseti nebo 15 uzly, je to mnohem efektivnější, “říká.

Worthington říká, že servery založené na GPU mohou dělat v jedné skříni, což vyžaduje mnoho skříní v hodnotě uzlů MPP (multi-parallel-processing) s procesorem. "Můžeme nahradit stojany uzlů MPP za půl tuctu uzlů, z nichž každý má dva až čtyři GPU." Díky tomu můžeme nahradit investici ve výši 10 milionů dolarů investicí pod 1 milion dolarů, “říká.

GPU je také důležité pro Skyhook, který provádí vizualizaci velkých geografických datových sad. "Pokud máte v terénu milion zařízení a pingujete několikrát za minutu, mluvíte o 2 miliardách datových řádků denně." To je nemožné spotřebovat v tradiční databázi. To prostě není možné. Takže [a] GPU [databáze] vás přivede na místo, kde můžete tato data spotřebovat, “říká Sutton.

Před přijetím OmniSci by Skyhook musel „pyramidizovat“ data a pro vizualizaci by vzal pouze jejich segmenty. Nyní Sutton říká, že se může podívat na celý datový obrázek. "Nikdy jsem neviděl jiný realistický způsob, jak dostat data do formy pro můj druh použití."

Databáze GPU: Co je k dispozici

Databáze GPU jsou zcela startupovým fenoménem se společnostmi jako Brytlyt, SQream Technologies, OmniSci, Kinetica, PG-Strom a Blazegraph.

Všechny se mírně liší v tom, jak fungují. Například OmniSci provádí vizualizaci dat, zatímco SQream používá konektory k vizualizačním nástrojům, jako je Tableau, takže každý musí být individuálně vyhodnocen, aby se určilo, co nejlépe vyhovuje vašim potřebám.

Známá jména v RDBMS se teprve musí dostat na palubu, s výjimkou IBM, která nepodporuje zpracování některých GPU v DB2 Blu, speciální verzi produktu DB2 pro analytické úlohy. Oracle i TeraData uvedly, že spolupracují s Nvidia, ale zatím z toho nic nepřišlo. Společnost Microsoft nepodporuje akceleraci GPU na serveru SQL Server. Gal společnosti SQream řekl, že slyšel, že všichni prodejci RDBMS pracují na přidání nějaké podpory GPU do svých produktů, ale neměl žádné další informace.