Programovanie

Recenzia: Kinetica analyzuje miliardy riadkov v reálnom čase

V roku 2009 prišli budúci zakladatelia spoločnosti Kinetica prázdni, keď sa pokúsili nájsť existujúcu databázu, ktorá by mohla dať Veleniu spravodajských a bezpečnostných služieb armády Spojených štátov (INSCOM) vo Fort Belvoir vo Virgínii schopnosť sledovať milióny rôznych signálov v reálnom čase vyhodnotiť národné bezpečnostné hrozby. Preto od základu vytvorili novú databázu zameranú na masívnu paralelizáciu kombinujúcu silu GPU a CPU na skúmanie a vizualizáciu údajov v priestore a čase. Do roku 2014 priťahovali ďalších zákazníkov a v roku 2016 sa začlenili ako Kinetica.

Aktuálna verzia tejto databázy je srdcom Kinetica 7, ktorá sa teraz rozšírila na platformu Kinetica Active Analytics. Platforma kombinuje historické a streamované dátové analýzy, lokalizačné inteligencie a strojové učenie vo vysokovýkonnom balíku pripravenom na cloud.

Ako referenčných zákazníkov má Kinetica okrem iných aj Ovo, GSK, SoftBank, Telkomsel, Scotiabank a Caesars. Ovo používa na prispôsobenie maloobchodu Kineticu. Telekomsel, svetový bezdrôtový operátor, používa Kineticu na prehľady sietí a predplatiteľov. Spoločnosť Anadarko, ktorú nedávno získal spoločnosť Chevron, využíva technológiu Kinetica na urýchlenie analýzy ropných nádrží do bodu, keď spoločnosť nepotrebuje prevzorkovanie svojich 90-miliardových množín dátových prieskumov pre 3D vizualizáciu a analýzu.

Kinetica sa často porovnáva s inými databázami GPU, ako sú OmniSci, Brytlyt, SQream DB a BlazingDB. Podľa spoločnosti však zvyčajne konkurujú oveľa širšej škále riešení, od zákazkových riešení SMACK (Spark, Mesos, Akka, Cassandra a Kafka) až po tradičnejšie distribuované platformy na spracovanie a skladovanie údajov.

Kľúčové vlastnosti a architektúra spoločnosti Kinetica

Kinetica kombinuje svoju distribuovanú databázu v pamäti zrýchlenú pomocou GPU so streamingovou analýzou, lokalizačnou inteligenciou a strojovým učením. Databáza je vektorizovaná, stĺpcová, najskôr v pamäti a určená pre analytické pracovné záťaže (OLAP), ktoré automaticky distribuujú akékoľvek pracovné zaťaženie medzi CPU a GPU. Kinetica používa pre dotazovací jazyk SQL-92, podobne ako PostgreSQL a MySQL, a podporuje širokú škálu funkcií vrátane textového vyhľadávania, analýzy časových radov, lokalizačnej inteligencie a analýzy grafov.

Kinetica dokáže pracovať s celým dátovým korpusom inteligentnou správou dát v pamäti GPU, systémovej pamäti, disku alebo SSD, HDFS a cloudovom úložisku, ako je Amazon S3. Podľa spoločnosti je táto schopnosť spravovať všetky úrovne úložiska pre databázu GPU pre Kineticu jedinečná.

Vďaka svojim schopnostiam distribuovaného paralelného prijímania môže Kinetica vykonávať vysokorýchlostné prijímanie streamovaných dátových súborov (pomocou Kafky) a komplexnú analýzu streamovaných a historických údajov súčasne. Môžete trénovať modely TensorFlow oproti údajom priamo v Kinetici alebo importovať vopred vyškolené modely TensorFlow alebo „black box“ na vykonávanie dedukcií prostredníctvom dávkového spracovania, spracovania toku alebo verejnej webovej služby.

Kinetica má robustnú a GPU-akcelerovanú knižnicu geopriestorových funkcií na vykonávanie filtrovania na požiadanie, agregácie, časových radov, priestorového spojenia a analýzy geofence. Môže tiež zobraziť neobmedzenú geometriu, tepelné mapy a obrysy pomocou technológie vykresľovania na strane servera (pretože vykresľovanie veľkých súborov údajov na strane klienta je veľmi náročné na čas).

Svoje relačné údaje môžete použiť v natívnom kontexte grafu (explicitným vytvorením uzlov, hrán a iných objektov grafu z relačných údajov) na pochopenie geopriestorových a negeopriestorových vzťahov a môžete vykonať optimalizáciu trasy v reálnom čase a dokonca aj analýzu sociálnych sietí. pomocou grafických algoritmov akcelerovaných Kinetica GPU (pomocou kinetica.solve_graph funkcia).

Kinetica Kinetica

Možnosti inštalácie a konfigurácie Kinetica

Existujú tri spôsoby inštalácie Kinetica. Preferovanou metódou je teraz KAgent, ktorá automatizuje inštaláciu a konfiguráciu Kinetica, Active Analytics Workbench (AAW) a Kubernetes, ring (vysoká dostupnosť) a ďalších. Tieto dve alternatívne metódy používajú Docker (pre prenosné inštalácie systému Kinetica) a manuálna inštalácia pomocou príkazového riadku pomocou bežných správcov balíkov založených na systéme Linux, ako napr. mňam a trefný.

Riadenie zdrojov. Kinetica podporuje päť úložných úrovní: VRAM, RAM, diskovú medzipamäť, trvalé a chladné úložisko. Všetky operácie, ktoré využívajú GPU, vyžadujú, aby sa dáta, na ktorých pracujú, nachádzali na vrame VRAM. Správa údajov v týchto piatich vrstvách je nepodstatný problém.

Vysťahovanie je vynútený pohyb údajov z vyššej úrovne na nižšiu úroveň, aby sa vytvoril priestor na presun ďalších údajov do tejto vyššej úrovne. Každý objekt v systéme má úroveň vylúčenia, ktorá závisí od typu objektu a dostupných úrovní pod ním, do ktorých je možné ho vypudiť. Vysťahovanie je možné vykonať na základe žiadosti, ktorá môže spôsobiť veľa pohybu údajov, alebo proaktívne na pozadí na základe vysokej a nízkej úrovne vodoznaku a priorít vysťahovania, ktoré zvyčajne vytvárajú menší pohyb údajov.

Vysoká dostupnosť. Kinetica HA eliminuje jediný bod zlyhania v štandardnom klastri Kinetica a poskytuje zotavenie po zlyhaní. Implementuje sa externe pre spoločnosť Kinetica na využitie viacerých replík údajov a poskytuje nakoniec konzistentné úložisko údajov. Riešenie Kinetica HA sa skladá zo štyroch komponentov: front-end load balancer, manažéri procesov s vysokou dostupnosťou, jeden alebo viac klastrov Kinetica a front distribuovaných správ.

Administratíva. Kineticu môžete spravovať pomocou grafického nástroja GAdmin, príkazového riadku systému Linux služby príkaz alebo KAgent. Screenshot nižšie zobrazuje informačný panel GAdmin pre klaster so 6 uzlami.

Ukážky Kinetica

Okrem GAdmin a KAgent ponúka Kinetica webový vizualizačný nástroj Reveal a Active Analytics Workbench (AAW), ktorý slúži na integráciu modelov a algoritmov strojového učenia.

Šesťuzlový klaster zobrazený na snímke vyššie je ten, ktorý som použil na preskúmanie niekoľkých ukážok Kinetica. Klaster sa skladá z inštancií g3.8xlarge, z ktorých každá obsahuje dva GPU Nvidia Tesla M60 a 32 procesorov Intel Xeon E5 2686 v4. Každá inštancia má na GPU 244 GiB RAM a 16 GiB VRAM. Toto nastavenie je možné zmenšiť, zmenšiť a rozšíriť tak, aby vyhovovalo všetkým prípadom použitia. Po dokončení testov databáza obsahovala 413 tabuliek a 2,2 miliardy záznamov.

Ukážky, ktoré som preskúmal, boli predpovede finančného rizika pomocou možností, poistné riziko pre povodne v Texase, hodnotenie bezpečnosti siete na základe dopravnej inšpekcie a jazdy taxíkom v NYC. V tomto procese som si všimol, že na rozdiel od ukážok spoločnosti OmniSci (pozri moje hodnotenie), ktoré všetky používali jednotlivé sploštené tabuľky (pre rýchlosť), ukážky Kinetica často používali viac tabuliek, zobrazení a analytických dashboardov.

Prognóza finančného rizika s opciami

Táto aplikácia je v podstate dôkazom koncepcie riadenia finančných rizík v reálnom čase v prostredí Kinetica. Mobilná aplikácia React a dva webové dashboardy umožňujú manažérovi rizika vidieť všetkých „Grékov“ (faktory pri meraní rizika) pre svoje portfólio a pridávať zaistenia. V zákulisí sa transakcie prenášajú do databázy a model rizika strojového učenia Black Scholes sa neustále aktualizuje na živých dátach. Naproti tomu tradičné riadenie rizík spočíva v kopírovaní údajov o transakciách do samostatného klastra, ktorý v noci spúšťa modely rizika.

Poistné riziko pre katastrofické povodne v Texase

Cieľom tejto aplikácie je posúdiť vystavenie poisťovacej spoločnosti riziku katastrofických povodní v Texase z tabuľky poistníkov a povodňových zón hurikánu Harvey. Aplikácia robí náročné geopriestorové výpočty v SQL spolu so štatistickými výpočtami.

Posúdenie bezpečnosti siete

Táto aplikácia je navrhnutá tak, aby pomohla pracovníkovi zabezpečenia siete chrániť sieť pred vniknutím. Podkladová tabuľka Kinetica kombinuje asi 1,8 miliárd historických sieťových požiadaviek s informačným kanálom v reálnom čase.

Jazdy v NYC taxíkom

Databáza jazdenia taxíkom v New Yorku je niečo, na čo som sa pozrel aj v OmniSci. Kinetica ho poskytuje ako množinu údajov, ktorú môžete načítať; to trvalo asi minútu. Aktualizácia všetkých grafov po každej operácii zväčšenia mapy v Kinetici spočiatku trvala dlhšie, než som si pamätal z OmniSci; potom som zmenil nastavenie, aby Kinetica nekreslila údaje mimo zväčšenej mapy na ďalšie grafy a čas odozvy klesol na subsekundový rozsah.

Plátky a palubné dosky Kinetica

Jednotlivé grafiky v Kinetica Reveal sa nazývajú plátky. Plátky sú usporiadané do dashboardov.

Návrhár plátov je dosť podobný návrhárom, ktorých nájdete v spoločnosti OmniSci a množstve BI produktov, napríklad Tableau.

Netestoval som časť Kinetica venovanú analýze grafov, ale páči sa mi spôsob, akým je navrhnutá. Ak sú databázy grafov iba malou časťou toho, čo musíte urobiť so svojimi údajmi, potom má opätovné použitie uložených riadkov z relačných tabuliek ako hrany a uzly zmysel. Perfektný zmysel má aj použitie GPU na urýchlenie algoritmov grafov.

Keď vidím, ako Kinetica integruje strojové učenie do svojej databázy GPU, analýza v reálnom čase a geografické informácie mi umožňujú pochopiť, kam chce spoločnosť OmniSci ísť - ale Kinetica už je tu. Vidieť tiež, ako Kinetica spravuje svoje úložné úrovne, mi dáva pochopenie, prečo Kinetica zvyčajne konkuruje systémom veľkých dát a dátových skladov.

Celkovo je Kinetica veľmi pôsobivá. Robí to, čo tvrdí, preskakuje vysoké databázy pomocou jediného ... myslím tým, analyzuje databázy s miliardami historických riadkov a živých prenosov v reálnom čase. Prial by som si, aby som mal pocit z ceny predplatného, ​​ale to je vlastníctvo, ako je to často v prípade systémov tohto rozsahu.

Náklady: Kinetica si účtuje ročné predplatné na základe počtu terabajtov v pamäti; neúčtuje poplatky za ukladanie dát v iných úrovniach. Predplatená licencia vám umožňuje prevádzkovať Kineticu kdekoľvek - lokálne alebo v cloude. Náklady na predplatné sú úplne predvídateľné. K dispozícii je 30-dňová bezplatná skúšobná verzia.

Plošina: RHEL, CentOS, Ubuntu, Suse alebo Debian Linux server s najmenej ôsmimi procesorovými jadrami a 8 GB RAM; GPU Nvidia K40 alebo novší; lokálne, v cloude alebo na okraji zabudovaného zariadenia Jetson TX2. Kinetica funguje aj na Dockri, s grafickými procesormi alebo bez nich.

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