Programmering

Gennemgang: Kinetica analyserer milliarder af rækker i realtid

I 2009 kom de fremtidige grundlæggere af Kinetica tomme, da de forsøgte at finde en eksisterende database, der kunne give den amerikanske hærs efterretnings- og sikkerhedskommando (INSCOM) i Fort Belvoir (Virginia) muligheden for at spore millioner af forskellige signaler i realtid til evaluere nationale sikkerhedstrusler. Så de byggede en ny database fra bunden, centreret om massiv parallelisering, der kombinerer kraften fra GPU og CPU til at udforske og visualisere data i rum og tid. I 2014 tiltrak de andre kunder, og i 2016 indlemmede de sig som Kinetica.

Den aktuelle version af denne database er kernen i Kinetica 7, der nu udvides til at være Kinetica Active Analytics-platform. Platformen kombinerer historisk og streaming dataanalyse, placeringsintelligens og maskinindlæring i en højtydende, skyklar pakke.

Som referencekunder har Kinetica blandt andet Ovo, GSK, SoftBank, Telkomsel, Scotiabank og Caesars. Ovo bruger Kinetica til personlig personalisering. Telkomsel, den trådløse Worldn-operatør, bruger Kinetica til netværks- og abonnentindsigt. Anadarko, der for nylig er erhvervet af Chevron, bruger Kinetica til at fremskynde analyser af oliebassiner til det punkt, hvor virksomheden ikke behøver at nedprøve sine 90-milliarder række undersøgelsesdatasæt til 3D-visualisering og analyse.

Kinetica sammenlignes ofte med andre GPU-databaser, såsom OmniSci, Brytlyt, SQream DB og BlazingDB. Ifølge virksomheden konkurrerer de normalt med en meget bredere vifte af løsninger, lige fra skræddersyede stack-løsninger (Spark, Mesos, Akka, Cassandra og Kafka) til de mere traditionelle distribuerede databehandlings- og datalagerplatforme.

Kinetica nøglefunktioner og arkitektur

Kinetica kombinerer sin distribuerede, in-memory, GPU-accelererede database med streaming analytics, location intelligence og machine learning. Databasen er vektoriseret, kolonneformet, hukommelse først og designet til analytiske (OLAP) arbejdsbelastninger, der automatisk distribuerer enhver arbejdsbyrde på tværs af CPU'er og GPU'er. Kinetica bruger SQL-92 til et forespørgselssprog, ligesom PostgreSQL og MySQL, og understøtter en udvidet vifte af funktioner, herunder tekstsøgning, tidsserie-analyse, lokalitetsintelligens og grafanalyse.

Kinetica kan fungere på hele datakorpuset ved intelligent styring af data på tværs af GPU-hukommelse, systemhukommelse, disk eller SSD, HDFS og cloud-lagring såsom Amazon S3. Ifølge virksomheden er denne evne til at styre alle lagringsniveauer unik for Kinetica blandt GPU-databaser.

Med sine distribuerede parallelle indtagningsfunktioner kan Kinetica udføre højhastighedsindtagelse på streaming datasæt (med Kafka) og kompleks analyse på streaming og historiske data samtidigt. Du kan træne TensorFlow-modeller mod data direkte i Kinetica eller importere foruddannede TensorFlow- eller "black box" -modeller til at udføre slutninger via batchbehandling, stream-behandling eller offentlig webservice.

Kinetica har et robust og GPU-accelereret bibliotek med geospatiale funktioner til at udføre on-demand-filtrering, aggregering, tidsserier, rumlig sammenføjning og geofence-analyse. Det kan også vise ubegrænset geometri, heatmaps og konturer ved hjælp af renderingsteknologi på serversiden (da gengivelse af store datasæt på klientsiden er meget tidskrævende).

Du kan bruge dine relationsdata i en indfødt grafkontekst (ved eksplicit at oprette noder, kanter og andre grafobjekter fra relationsdata) til forståelse af geospatiale og ikke-geospatiale forhold, og du kan udføre ruteoptimering i realtid og endda analyse af sociale netværk ved hjælp af Kineticas GPU-accelererede grafalgoritmer (ved hjælp af kinetica.solve_graph fungere).

Kinetica Kinetica

Kinetica installations- og konfigurationsmuligheder

Der er tre metoder til installation af Kinetica. Den foretrukne metode er nu KAgent, som automatiserer installationen og konfigurationen af ​​Kinetica, Active Analytics Workbench (AAW) og Kubernetes, ringe (høj tilgængelighed) og mere. De to alternative metoder bruger Docker (til bærbare installationer af Kinetica) og installeres manuelt via kommandolinjen ved hjælp af almindelige Linux-baserede pakkehåndtere som f.eks. yum og apt.

Ressourcestyring. Kinetica understøtter fem lagringsniveauer: VRAM, RAM, diskcache, vedvarende og kold opbevaring. Alle operationer, der bruger GPU'en, kræver, at de data, som de fungerer på, skal være placeret i VRAM-niveauet. Håndtering af data i disse fem lag er et ikke-trivielt problem.

Udkastning er den tvungne bevægelse af data fra et højere niveau til et lavere niveau for at gøre plads til, at andre data kan flyttes til det højere niveau. Hvert objekt i systemet har et niveau af udsættelighed, der afhænger af den type objekt, det er, og de tilgængelige niveauer under det, hvortil det kan udkastes. Udkastning kan udføres som svar på en anmodning, som kan forårsage en masse dataflytning eller proaktivt i baggrunden baseret på høje og lave vandmærkeniveauer og udsættelsesprioriteter, hvilket normalt skaber mindre dataflytning.

Høj tilgængelighed. Kinetica HA eliminerer det enkelte fejlpunkt i en standard Kinetica-klynge og giver genopretning efter fiasko. Det implementeres eksternt for Kinetica for at udnytte flere replikaer af data og giver en til sidst konsistent datalager. Kinetica HA-løsningen består af fire komponenter: en front-end load balancer, procesadministratorer med høj tilgængelighed, en eller flere Kinetica-klynger og en distribueret meddelelseskø.

Administration. Du kan administrere Kinetica med det grafiske GAdmin-værktøj, Linux-kommandolinjen service kommando eller KAgent. Skærmbilledet nedenfor viser et GAdmin-dashboard til en 6-node-klynge.

Kinetica demoer

Ud over GAdmin og KAgent tilbyder Kinetica et webbaseret visualiseringsværktøj, Reveal og Active Analytics Workbench (AAW), der er til integration af maskinindlæringsmodeller og algoritmer.

Klyngen med seks noder vist i skærmbilledet ovenfor er den, jeg brugte til at udforske flere Kinetica-demoer. Klyngen består af g3.8xlarge forekomster, der hver indeholder to Nvidia Tesla M60 GPU'er og 32 Intel Xeon E5 2686 v4 CPU'er. Hver forekomst har 244 GiB RAM og 16 GiB VRAM pr. GPU. Denne opsætning kan skaleres ned, op og ud for at imødekomme enhver brugssag. Efter at jeg var færdig med mine tests indeholdt databasen 413 tabeller og 2,2 milliarder poster.

Demoer, jeg udforskede, var for prognoser for økonomiske risici ved hjælp af optioner, forsikringsrisiko for oversvømmelser i Texas, netværkssikkerhedsvurdering baseret på trafikinspektion og taxaturer i NYC. I processen bemærkede jeg, at i modsætning til OmniSci's demoer (se min anmeldelse), som alle brugte enkeltfladede tabeller (for hastighed), brugte Kinetica-demoer ofte flere tabeller, visninger og analytiske dashboards.

Finansiel risikoprognose med optioner

Denne applikation er i det væsentlige et bevis på begrebet realtids finansiel risikostyring med Kinetica. En React-mobilapp og to web-dashboards giver en risikostyring mulighed for at se alle “grækerne” (faktorer til måling af risiko) for hans eller hendes portefølje og tilføje afdækninger. Bag kulisserne strømmer transaktioner ind i databasen, og en Black Scholes risikomodel for maskinindlæring opdateres løbende om live-dataene. I modsætning hertil indebærer traditionel risikostyring at kopiere transaktionsdataene til en separat klynge, der kører risikomodeller om natten.

Forsikringsrisiko for katastrofale oversvømmelser i Texas

Målet med denne ansøgning er at vurdere et forsikringsselskabs risikoeksponering for katastrofale oversvømmelser i Texas fra en tabel over forsikringstagere og orkanen Harvey oversvømmelseszoner. Applikationen udfører tunge geospatiale beregninger i SQL sammen med statistiske beregninger.

Netværkssikkerhedsvurdering

Denne applikation er designet til at hjælpe en netværkssikkerhedsofficer med at beskytte et netværk mod indbrud. Den underliggende Kinetica-tabel kombinerer ca. 1,8 milliarder historiske netværksanmodninger med et realtidsfeed.

NYC taxaturer

New York City taxi ride database er noget, jeg også kiggede på i OmniSci. Kinetica leverer det som et datasæt, som du kan indlæse; det tog cirka et minut. Oprindeligt tog det længere tid at opdatere alle kortene efter hver kortzoomoperation i Kinetica, end jeg huskede fra OmniSci; så ændrede jeg en indstilling, så Kinetica ikke ville plotte data uden for det zoomede kort på de andre grafer, og responstiden faldt til undersekvensområdet.

Kinetica skiver og dashboards

Individuel grafik i Kinetica Reveal kaldes skiver. Skiverne er organiseret i dashboards.

Slice-designeren er meget lig de designere, du finder i OmniSci og et antal BI-produkter, såsom Tableau.

Jeg testede ikke grafanalysedelen af ​​Kinetica, men jeg kan godt lide den måde, den er designet på. Hvis grafdatabaser kun er en lille del af det, du skal gøre med dine data, giver genbrug af lagrede rækker fra relationelle tabeller som kanter og noder mening. Brug af GPU'er til at fremskynde grafalgoritmer giver også god mening.

At se, hvordan Kinetica integrerer maskinindlæring med sin GPU-database, realtidsanalyse og geografiske oplysninger, får mig til at forstå, hvor OmniSci vil hen - men Kinetica er der allerede. At se, hvordan Kinetica administrerer sine lagringsniveauer, får mig også til at forstå, hvorfor Kinetica normalt konkurrerer med big data og data warehouse-systemer.

Samlet set er Kinetica meget imponerende. Det gør, hvad det hævder, springer høje databaser med en enkelt ... Jeg mener, analyserer databaser med milliarder af historiske rækker og live feeds i realtid. Jeg ville ønske, at jeg havde en fornemmelse af abonnementsomkostningerne, men det er proprietært, som det ofte er tilfældet med systemer i denne skala.

Koste: Kinetica opkræver et årligt abonnement baseret på antallet af terabyte i hukommelsen; det opkræves ikke betaling for datalagring i andre niveauer. Abonnementslicensen giver dig mulighed for at køre Kinetica hvor som helst — lokalt eller i skyen. Abonnementsomkostninger er helt forudsigelige. 30-dages gratis prøveversion tilgængelig.

Platform: RHEL-, CentOS-, Ubuntu-, Suse- eller Debian Linux-server med mindst otte CPU-kerner og 8 GB RAM; Nvidia K40 eller derover GPU'er; lokalt, i skyen eller ved kanten på en Jetson TX2-integreret enhed. Kinetica kører også på Docker med eller uden GPU'er.