Programování

Recenze: Kinetica analyzuje miliardy řádků v reálném čase

V roce 2009 přišli budoucí zakladatelé společnosti Kinetica prázdní, když se pokoušeli najít existující databázi, která by mohla dát velení Armády Spojených států pro zpravodajské a bezpečnostní služby (INSCOM) ve Fort Belvoir ve Virginii schopnost sledovat v reálném čase miliony různých signálů vyhodnotit národní bezpečnostní hrozby. Od základu tedy vytvořili novou databázi, která se soustředila na masivní paralelizaci kombinující sílu GPU a CPU pro zkoumání a vizualizaci dat v prostoru a čase. Do roku 2014 přilákali další zákazníky a v roce 2016 se začlenili jako Kinetica.

Aktuální verze této databáze je srdcem systému Kinetica 7, který je nyní rozšířen na platformu Kinetica Active Analytics. Platforma kombinuje historické a streamované datové analýzy, lokalizační inteligenci a strojové učení ve vysoce výkonném balíčku připraveném na cloud.

Jako referenční zákazníci má Kinetica mimo jiné Ovo, GSK, SoftBank, Telkomsel, Scotiabank a Caesars. Ovo používá Kineticu k personalizaci maloobchodu. Telkomsel, světový bezdrátový operátor, používá Kinetica pro přehledy o sítích a předplatitelích. Anadarko, které nedávno získal Chevron, používá Kineticu k urychlení analýzy ropných nádrží do bodu, kdy společnost nemusí převzorkovat své 90miliardové datové sady průzkumů pro 3D vizualizaci a analýzu.

Kinetica se často srovnává s jinými databázemi GPU, jako jsou OmniSci, Brytlyt, SQream DB a BlazingDB. Podle společnosti však obvykle soutěží s mnohem širší škálou řešení, od zakázkových řešení SMACK (Spark, Mesos, Akka, Cassandra a Kafka) až po tradiční platformy distribuovaného zpracování dat a datových skladů.

Klíčové vlastnosti a architektura Kinetica

Kinetica kombinuje svou distribuovanou databázi v paměti s akcelerovanou GPU se streamovací analytikou, lokalizační inteligencí a strojovým učením. Databáze je vektorizovaná, sloupcovitá, nejdříve v paměti a je navržena pro analytická (OLAP) pracovní zatížení, přičemž automaticky distribuuje jakoukoli pracovní zátěž mezi CPU a GPU. Kinetica používá pro dotazovací jazyk SQL-92, podobně jako PostgreSQL a MySQL, a podporuje rozšířené spektrum funkcí včetně textového vyhledávání, analýzy časových řad, lokalizační inteligence a analýzy grafů.

Kinetica může fungovat na celém datovém korpusu inteligentní správou dat v paměti GPU, systémové paměti, disku nebo SSD, HDFS a cloudovém úložišti, jako je Amazon S3. Podle společnosti je tato schopnost spravovat všechny úrovně úložiště jedinečná pro Kinetica mezi databázemi GPU.

Díky svým funkcím distribuovaného paralelního příjmu může Kinetica provádět vysokorychlostní příjem datových sad streamování (pomocí Kafky) a komplexní analýzu streamování a historických dat současně. Můžete trénovat modely TensorFlow proti datům přímo v Kinetica, nebo importovat předem vyškolené modely TensorFlow nebo „black box“ pro provádění závěrů pomocí dávkového zpracování, zpracování streamu nebo veřejné webové služby.

Kinetica má robustní a GPU akcelerovanou knihovnu geoprostorových funkcí pro provádění filtrování na vyžádání, agregace, časových řad, prostorového spojení a analýzy geofence. Může také zobrazit neomezenou geometrii, tepelné mapy a obrysy pomocí technologie vykreslování na straně serveru (protože vykreslování velkých datových sad na straně klienta je velmi časově náročné).

Můžete použít relační data v kontextu nativního grafu (explicitním vytvořením uzlů, hran a dalších objektů grafu z relačních dat) pro pochopení geoprostorových a negeoprostorových vztahů a můžete provádět optimalizaci tras v reálném čase a dokonce i analýzu sociálních sítí pomocí grafických algoritmů akcelerovaných GPU společnosti Kinetica (pomocí kinetica.solve_graph funkce).

Kinetica Kinetica

Možnosti instalace a konfigurace Kinetica

Existují tři způsoby instalace Kinetica. Upřednostňovanou metodou je nyní KAgent, která automatizuje instalaci a konfiguraci Kinetica, Active Analytics Workbench (AAW) a Kubernetes, ring (vysoká dostupnost) a dalších. Tyto dvě alternativní metody používají Docker (pro přenosné instalace systému Kinetica) a ruční instalaci pomocí příkazového řádku pomocí běžných správců balíků založených na systému Linux, jako je například Mňam a výstižný.

Správa zdrojů. Kinetica podporuje pět úrovní úložiště: VRAM, RAM, diskovou mezipaměť, trvalé a chladné úložiště. Jakékoli operace, které využívají GPU, vyžadují, aby byla data, na kterých pracují, umístěna na úrovni VRAM. Správa dat v těchto pěti vrstvách je netriviální problém.

Vystěhování je vynucený pohyb dat z vyšší úrovně na nižší úroveň, aby se vytvořil prostor pro přesun dalších dat do této vyšší úrovně. Každý objekt v systému má úroveň evikovatelnosti, která závisí na typu objektu, který je, a na dostupných úrovních pod ním, do kterých by mohl být vystěhován. Vystěhování lze provést v reakci na požadavek, který může způsobit hodně pohybu dat, nebo proaktivně na pozadí na základě vysoké a nízké úrovně vodoznaku a priorit vystěhování, což obvykle vytváří méně pohybu dat.

Vysoká dostupnost. Kinetica HA eliminuje jediný bod selhání ve standardním klastru Kinetica a zajišťuje zotavení po selhání. Je implementován externě od společnosti Kinetica za účelem využití více replik dat a poskytuje nakonec konzistentní úložiště dat. Řešení Kinetica HA se skládá ze čtyř komponent: front-end load balancer, high-availability process manažery, jeden nebo více clusterů Kinetica a fronta distribuovaných zpráv.

Správa. Kineticu můžete spravovat pomocí grafického nástroje GAdmin, příkazového řádku systému Linux servis příkaz nebo KAgent. Snímek obrazovky níže ukazuje řídicí panel GAdmin pro klastr se 6 uzly.

Ukázky Kinetica

Kromě GAdmin a KAgent nabízí Kinetica webový vizualizační nástroj Reveal a Active Analytics Workbench (AAW), který slouží k integraci modelů a algoritmů strojového učení.

Klastr se šesti uzly zobrazený na výše uvedeném snímku obrazovky je ten, který jsem použil k prozkoumání několika ukázek Kinetica. Klastr se skládá z instancí g3.8xlarge, z nichž každá obsahuje dva GPU Nvidia Tesla M60 a 32 procesorů Intel Xeon E5 2686 v4. Každá instance má 244 GiB RAM a 16 GiB VRAM na GPU. Toto nastavení lze zmenšit dolů, nahoru a ven, aby vyhovovalo případu použití. Po dokončení testů databáze obsahovala 413 tabulek a 2,2 miliardy záznamů.

Ukázky, které jsem prozkoumal, byly předpovědi finančního rizika pomocí možností, pojistné riziko povodní v Texasu, posouzení bezpečnosti sítě na základě kontroly provozu a jízdy taxíkem v NYC. V tomto procesu jsem si všiml, že na rozdíl od ukázek OmniSci (viz moje recenze), které všechny používaly jednotlivé zploštělé tabulky (pro rychlost), ukázky Kinetica často používaly více tabulek, pohledů a analytických dashboardů.

Prognóza finančních rizik s opcemi

Tato aplikace je v zásadě důkazem konceptu řízení finančních rizik v reálném čase ve společnosti Kinetica. Mobilní aplikace React a dva webové řídicí panely umožňují manažerovi rizik vidět všechny „Řeky“ (faktory při měření rizika) pro své portfolio a přidávat zajištění. V zákulisí se transakce streamují do databáze a model rizika strojového učení Black Scholes se průběžně aktualizuje na živá data. Naproti tomu tradiční řízení rizik zahrnuje kopírování transakčních dat do samostatného klastru, který v noci spouští rizikové modely.

Pojistné riziko pro katastrofické povodně v Texasu

Cílem této aplikace je posoudit vystavení pojišťovny riziku katastrofickým povodním v Texasu z tabulky pojistníků a povodňových zón hurikánu Harvey. Aplikace provádí těžké geoprostorové výpočty v SQL spolu se statistickými výpočty.

Hodnocení zabezpečení sítě

Tato aplikace je navržena tak, aby pomohla pracovníkovi zabezpečení sítě chránit síť před vniknutím. Základní tabulka Kinetica kombinuje přibližně 1,8 miliardy historických síťových požadavků se zdrojem v reálném čase.

Jízda taxíkem NYC

Databáze jízd v taxíku v New Yorku je něco, na co jsem se také podíval v OmniSci. Kinetica poskytuje jako datovou sadu, kterou můžete načíst; to trvalo asi minutu. Zpočátku trvalo aktualizovat všechny grafy po každé operaci přiblížení mapy v Kinetice déle, než jsem si pamatoval z OmniSci; pak jsem změnil nastavení tak, aby Kinetica nevykreslovala data mimo zvětšenou mapu na ostatní grafy, a doba odezvy klesla na subsekundový rozsah.

Kinetica řezy a dashboardy

Jednotlivé grafiky v Kinetica Reveal se nazývají řezy. Řezy jsou uspořádány do řídicích panelů.

Návrhář řezů je docela podobný návrhářům, které najdete v OmniSci a řadě produktů BI, jako je například Tableau.

Netestoval jsem část analýzy grafů Kinetica, ale líbí se mi způsob, jakým je navržena. Pokud jsou databáze grafů jen malou částí toho, co musíte s daty dělat, pak opětovné použití uložených řádků z relačních tabulek jako hran a uzlů dává smysl. Použití GPU k urychlení grafových algoritmů má také dokonalý smysl.

Když vidím, jak Kinetica integruje strojové učení se svou databází GPU, analýzou v reálném čase a geografickými informacemi, chápu, kam chce OmniSci jít - ale Kinetica tam už je. Také když vidím, jak Kinetica spravuje své úložné úrovně, pochopím, proč Kinetica obvykle soutěží s velkými daty a systémy datových skladů.

Celkově je Kinetica velmi působivá. Dělá to, co tvrdí, přeskakuje vysoké databáze jediným… Chci říct, analyzuje databáze s miliardami historických řádků a živými kanály v reálném čase. Přál bych si, abych měl cit pro náklady na předplatné, ale to je vlastnické, jak to u systémů tohoto rozsahu často bývá.

Náklady: Kinetica účtuje roční předplatné na základě počtu terabajtů v paměti; neúčtuje poplatky za ukládání dat v jiných úrovních. Předplacená licence vám umožňuje provozovat Kineticu kdekoli - místně nebo v cloudu. Náklady na předplatné jsou zcela předvídatelné. K dispozici je 30denní bezplatná zkušební verze.

Plošina: RHEL, CentOS, Ubuntu, Suse nebo Debian Linux server s alespoň osmi jádry CPU a 8 GB RAM; GPU Nvidia K40 nebo vyšší; místně, v cloudu nebo na okraji integrovaného zařízení Jetson TX2. Kinetica také běží na Dockeru, s nebo bez GPU.