Programiranje

Kaj lahko naredi baza podatkov, ki jo poganja GPU

Baza podatkov SQL sega v sedemdeseta leta prejšnjega stoletja in je že od osemdesetih let prejšnjega stoletja standard ANSI, vendar to še ne pomeni, da tehnologija sedi mirno. Še vedno se spreminja in eden od teh načinov kot podatkovne baze, pospešene z GPU.

Relacijske zbirke podatkov so se povečale do nabora podatkov, ki merijo v petabajtih in širše. Tudi s pojavom 64-bitnega računalništva in terabajtov pomnilnika za večjo obdelavo je to še vedno veliko podatkov, ki jih je mogoče prežvečiti - in CPU lahko upravljajo le toliko. Tu so prišli GPU-ji.

GPU so se od prvotnega poslanstva pospeševanja iger preusmerili v skoraj vse. Nvidia se je mojstrsko vrtela, da je postala sinonim za umetno inteligenco, postopek, ki zahteva velike količine vzporedno obdelanih podatkov in druge naloge, ki jih je mogoče dobro vzporediti. AMD je začel igrati dohitevanje, vendar ima Nvidia dolgo prednost.

Ko gre za jedra, niti približno ni. Procesorji Xeon imajo največ 22 jeder. AMD Epyc ima 32 jeder. Arhitektura Nvidia Volta ima 5120 jeder. Zdaj si predstavljajte, da več kot 5000 jeder deluje vzporedno s podatki in jasno je, zakaj so grafični procesorji postali tako priljubljeni za obsežne računalniške projekte.

Tako se je pojavil nov razred baz podatkov, napisan od tal, da podpira in zajema GPU-je in njihove ogromne zmožnosti vzporedne obdelave. Te zbirke podatkov omogočajo nove ravni obdelave podatkov, analitike in sprotnega zbiranja velikih podatkov, saj lahko obdelujejo nabore podatkov, ki jih običajne baze podatkov s CPU preprosto ne morejo.

Opredeljena baza podatkov GPU

Koncept zbirke podatkov GPU je dovolj preprost: uporablja vzporednost grafičnih procesorjev za izvedbo velikega pospeševanja obdelave podatkov. GPU je idealen za pospeševanje obdelave poizvedb SQL, ker SQL izvaja enako operacijo - običajno iskanje - v vsaki vrstici v nizu.

Vendar pa v strežnik, ki gosti Oracleovo bazo podatkov, preprosto ne vstavite kup kartic Nvidia Tesla. Podatkovne baze GPU so bile zasnovane in napisane od začetka do vzporedne obdelave, začenši s SQL PRIDRUŽITE SE operacij.

PRIDRUŽITE SEs vzpostavijo razmerje med stolpci iz več tabel v zbirki podatkov in so ključnega pomena za izvajanje smiselne analitike. Tradicionalni oblikovalski pristopi za PRIDRUŽITE SESistemi starejših sistemov RDBMS so bili pred leti zasnovani za enojedrne procesorje in se ne zmorejo niti CPE, še manj pa GPU.

Onstran PRIDRUŽITE SEPodatkovne baze GPU imajo znatno raven podpore, vključno z:

  • Priključki za priljubljene odprtokodne okvire, kot so Hadoop, Kafka, HBase, Spark in Storm.
  • Gonilniki ODBC in JDBC za integracijo z obstoječimi orodji za vizualizacijo in BI, kot so Tableau, Power BI in Spotfire
  • API-ji za vezave s priljubljenimi programskimi jeziki, kot so C ++, SQL, Java, Node.js in Python.

Kje uporabiti bazo podatkov GPU

V zvezi s tem zbirke podatkov GPU v resnici ne konkurirajo Oracle, SQL Server ali DB2. Podatkovne baze GPU so usmerjene v sprejemanje odločitev o analitiki podatkov, kjer se podjetja poskušajo v realnem času odločiti na podlagi ogromnih količin podatkov, vendar se tega ne morejo lotiti, ker je podatkov preveč ali ker so orodja za vizualno analizo prepočasna.

Ponudniki baz podatkov GPU se ne vidijo kot nadomestilo za Oracle ali bazo podatkov OLTP, kot je Teradata. Namesto da ciljajo na tradicionalne delovne obremenitve RDBMS, zbirke podatkov GPU ciljajo na svet OLAP / OLTP in velike podatke, kjer so nabori podatkov ogromni in potrebe sproti. Namesto serijskih procesov, ki se izvajajo v urah ali čez noč, so v zbirkah podatkov GPU podatki predstavljeni v realnem času ali na uro.

Zbirka GPU bi morala rešiti veliko težav, ki jih NoSQL poskuša rešiti, vendar vam omogoča uporabo obstoječih orodij za strukturirane poizvedbe. Uporaba NoSQL pomeni prepis vseh orodij SQL, vendar zbirke podatkov GPU uporabljajo obstoječa orodja SQL.

"Kar mislimo, da bomo videli, so ljudje, ki se zavedajo, da lahko uporabljajo večdimenzionalne sisteme in jemljejo podatke iz več scenarijev ter jih kombinirajo," pravi Steve Worthington, arhitekt za nastajajoče tehnološke rešitve za Datatrend Technologies, IT svetovalno podjetje, ki uporablja GPU bazo podatkov SQream. "Medicinska podjetja želijo vzeti [podatke] iz več sistemov in izvajati analitiko med bazami podatkov, ker prej niso mogli izvajati navzkrižnih referenc in niso imeli možnosti, da bi se povezali z bazami podatkov."

Prav tako navaja finančne institucije, ki opravljajo analize goljufij in tveganj, ki zdaj morda opravljajo samo preglede kreditnih kartic, vendar želijo preverjati več računov. Z močjo grafičnega procesorja se lahko hkrati sklicujejo na vse te vire informacij.

Rich Sutton, podpredsednik geoprostorskih podatkov pri Skyhooku, ponudniku lokacijskih storitev, mu z uporabo zbirke podatkov OmniSci GPU omogoča veliko večjo vizualizacijo naborov geografskih podatkov, kot bi to lahko storil z bazo podatkov, ki temelji na CPU. "V OmniSci lahko naložim milijardo vrstic in z malo ali nič zakasnitve, namesto da bi si moral ogledovati nabor podatkov z 10.000 vrsticami v tradicionalnem CPU prostoru," pravi. "Več zaporednih velikosti mi koristi, saj zmanjšujem porabo podatkov z močno zmanjšano zakasnitvijo."

Todd Mostak, izvršni direktor podjetja OmniSci, pravi, da mu je ena stranka rekla, da hitrost OmniScija "znižuje stroške radovednosti. Zastavijo vprašanja, ki bi jih prej zadržali. « En kupec finančnih storitev mu je povedal, da se je poizvedba o 18-urni obdelavi v tradicionalni zbirki podatkov zmanjšala na sekundo, medtem ko mu je telekomunikacijski operater povedal, da se poizvedbe, ki so trajale ure, zdaj odzovejo v sekundi.

Drugo mesto za zbirke podatkov GPU je v realnem času velikih podatkov, kjer Hadoop ni uspel. Ami Gal, izvršni direktor ponudnika baz podatkov GPU SQream, pravi, da veliko obljub o velikih podatkih - iskanju vseh priložnosti, ki so v desetinah petabajtov podatkov vrstic - na Hadoopu ni bilo doseženo, ker je bilo prepočasno.

“Spark je zelo dober za pretok in preoblikovanje podatkov, toda ko morate drobiti ogromne količine podatkov in jih premakniti, se začnete ukvarjati s sto tisoč [računskimi] vozlišči, kar se v velikih naborih podatkov zdi preveč. Če pa to lahko storiš z desetimi ali 15 vozlišči, je to veliko bolj učinkovito, «pravi.

Worthington pravi, da lahko strežniki, ki temeljijo na GPU, v eni omari naredijo tisto, kar zahteva več vozlišč z več paralelno obdelavo (MPP), ki jih poganja CPU. »Stojala vozlišč MPP lahko nadomestimo s pol ducata vozlišč, od katerih ima vsak dva do štiri grafične procesorje. S tem lahko naložbo v višini 10 milijonov dolarjev nadomestimo z naložbo pod milijon dolarjev, «pravi.

GPU je pomemben tudi za Skyhook, ki izvaja vizualizacijo velikih naborov geografskih podatkov. »Če imate na terenu milijon naprav in pingirate lokacijo nekajkrat na minuto, govorite o 2 milijardi podatkovnih vrstic na dan. To je nemogoče zaužiti v tradicionalni bazi podatkov. To preprosto ni mogoče. Torej [a] GPU [baza podatkov] vas pripelje do mesta, kjer lahko porabite te podatke, «pravi Sutton.

Preden bi Skyhook sprejel OmniSci, bi moral podatke "piramidizirati", za ponazoritev pa bi vzel le njihove segmente. Zdaj, pravi Sutton, lahko pogleda celotno sliko podatkov. "Nikoli še nisem videl nobenega realističnega načina za oblikovanje podatkov za svojo vrsto uporabe."

GPU baze podatkov: kaj je na voljo

Podatkovne baze GPU so povsem zagonski pojav s podjetji, kot so Brytlyt, SQream Technologies, OmniSci, Kinetica, PG-Strom in Blazegraph.

Vsi se nekoliko razlikujejo glede tega, kako delujejo. OmniSci na primer vizualizira podatke, medtem ko SQream uporablja konektorje za orodja za vizualizacijo, kot je Tableau, zato je treba vsakega posebej oceniti, da se določi, kako najbolje ustreza vašim potrebam.

Velika imena v RDBMS se še niso vkrcala, razen IBM-a, ki podpira nekaj obdelave grafičnih procesorjev v DB2 Blu, posebni različici DB2 za delovne obremenitve analitike. Oracle in TeraData sta že povedala, da sodelujeta z Nvidijo, vendar iz tega še ni nič. Microsoft ne podpira pospeševanja GPU v strežniku SQL Server. Gal iz SQream je dejal, da je slišal, da si vsi ponudniki RDBMS prizadevajo dodati svoje izdelke za podporo GPU-ja, vendar ni imel dodatnih informacij.

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