Programmering

Gjennomgang: Kinetica analyserer milliarder av rader i sanntid

I 2009 kom de fremtidige grunnleggerne av Kinetica tomme når de prøvde å finne en eksisterende database som kunne gi United States Army Intelligence and Security Command (INSCOM) i Fort Belvoir (Virginia) muligheten til å spore millioner av forskjellige signaler i sanntid til evaluere nasjonale sikkerhetstrusler. Så de bygget en ny database fra grunnen av, sentrert om massiv parallellisering som kombinerer kraften til GPU og CPU for å utforske og visualisere data i tid og rom. I 2014 tiltok de andre kunder, og i 2016 ble de innlemmet som Kinetica.

Den nåværende versjonen av denne databasen er hjertet til Kinetica 7, som nå er utvidet til å være Kinetica Active Analytics-plattform. Plattformen kombinerer historisk og strømmende dataanalyse, stedsintelligens og maskinlæring i en høyytelses, skyklar pakke.

Som referansekunder har Kinetica blant annet Ovo, GSK, SoftBank, Telkomsel, Scotiabank og Caesars. Ovo bruker Kinetica for personlig personalisering. Telkomsel, den trådløse Worldn-operatøren, bruker Kinetica for nettverks- og abonnentinnsikt. Anadarko, som nylig ble kjøpt opp av Chevron, bruker Kinetica til å øke hastigheten på analysen av oljekummen til det punktet hvor selskapet ikke trenger å nedprøve sine 90 milliarder raders undersøkelsesdatasett for 3D-visualisering og analyse.

Kinetica sammenlignes ofte med andre GPU-databaser, som OmniSci, Brytlyt, SQream DB og BlazingDB. I følge selskapet konkurrerer de imidlertid vanligvis med et mye bredere utvalg av løsninger, fra skreddersydde stack-løsninger (Spark, Mesos, Akka, Cassandra og Kafka) til de mer tradisjonelle distribuerte databehandlings- og datalagerplattformene.

Kinetica sentrale funksjoner og arkitektur

Kinetica kombinerer sin distribuerte, GPU-akselererte database i minnet med streaminganalyse, stedsintelligens og maskinlæring. Databasen er vektorisert, søyle, minne først og designet for analytiske (OLAP) arbeidsbelastninger, og distribuerer automatisk arbeidsbelastning på tvers av CPUer og GPUer. Kinetica bruker SQL-92 for et spørrespråk, omtrent som PostgreSQL og MySQL, og støtter et utvidet utvalg av muligheter, inkludert tekstsøk, tidsserieanalyse, stedsintelligens og grafanalyse.

Kinetica kan operere på hele datakorpuset ved å administrere data på tvers av GPU-minne, systemminne, disk eller SSD, HDFS og skylagring som Amazon S3. Ifølge selskapet er denne evnen til å administrere alle lagringsnivåer unik for Kinetica blant GPU-databaser.

Med sine distribuerte parallelle inntaksmuligheter kan Kinetica utføre høyhastighetsinntak på streaming datasett (med Kafka) og kompleks analyse på streaming og historiske data samtidig. Du kan trene TensorFlow-modeller mot data direkte i Kinetica, eller importere pre-trente TensorFlow- eller "black box" -modeller for å utføre slutninger via batchbehandling, strømbehandling eller offentlig webtjeneste.

Kinetica har et robust og GPU-akselerert bibliotek med geospatiale funksjoner for å utføre on-demand-filtrering, aggregering, tidsserier, romlig sammenføyning og geofence-analyse. Det kan også vise ubegrenset geometri, varmekart og konturer ved hjelp av gjengivelsesteknologi på serversiden (siden gjengivelse av store datasett på klientsiden er veldig tidkrevende).

Du kan bruke relasjonsdataene dine i en innfødt grafkontekst (ved eksplisitt å lage noder, kanter og andre grafobjekter fra relasjonsdata) for å forstå geospatiale og ikke-geospatiale relasjoner, og du kan utføre ruteoptimalisering i sanntid og til og med sosiale nettverksanalyser ved hjelp av Kineticas GPU-akselererte grafalgoritmer (ved hjelp av kinetica.solve_graph funksjon).

Kinetica Kinetica

Kinetica installasjons- og konfigurasjonsalternativer

Det er tre metoder for å installere Kinetica. Den foretrukne metoden er nå KAgent, som automatiserer installasjonen og konfigurasjonen av Kinetica, Active Analytics Workbench (AAW) og Kubernetes, ringer (høy tilgjengelighet) og mer. De to alternative metodene bruker Docker (for bærbare installasjoner av Kinetica) og installeres manuelt via kommandolinjen ved bruk av vanlige Linux-baserte pakkeforvaltere som yum og apt.

Ressursforvaltning. Kinetica støtter fem lagringsnivåer: VRAM, RAM, diskbuffer, vedvarende og kald lagring. Alle operasjoner som bruker GPU krever at dataene de opererer for skal være plassert i VRAM-nivået. Å administrere data i disse fem lagene er et ikke-trivielt problem.

Utkastelse er den tvungne bevegelsen av data fra et høyere nivå til et lavere nivå for å gi rom for at andre data kan flyttes til det høyere nivået. Hvert objekt i systemet har et nivå av evictability som er avhengig av hvilken type objekt det er og de tilgjengelige nivåene under det som det kan bli kastet ut i. Eviction kan utføres som svar på en forespørsel, noe som kan forårsake mye databevegelse, eller proaktivt i bakgrunnen basert på høye og lave vannmerkenivåer og utkastingsprioriteter, noe som vanligvis skaper mindre databevegelse.

Høy tilgjengelighet. Kinetica HA eliminerer det eneste feilpunktet i en standard Kinetica-klynge og gir utvinning etter feil. Den er implementert eksternt for Kinetica for å bruke flere kopier av data og gir en til slutt konsistent datalager. Kinetica HA-løsningen består av fire komponenter: en front-end lastbalanser, prosessledere med høy tilgjengelighet, en eller flere Kinetica-klynger og en distribuert meldingskø.

Administrasjon. Du kan administrere Kinetica med det grafiske GAdmin-verktøyet, Linux-kommandolinjen service kommando, eller KAgent. Skjermbildet nedenfor viser et GAdmin-dashbord for en klynge med 6 noder.

Kinetica demoer

I tillegg til GAdmin og KAgent tilbyr Kinetica et nettbasert visualiseringsverktøy, Reveal og Active Analytics Workbench (AAW), som er for integrering av maskinlæringsmodeller og algoritmer.

Klyngen med seks noder vist i skjermbildet ovenfor er den jeg brukte til å utforske flere Kinetica-demoer. Klyngen består av g3.8xlarge forekomster som hver inneholder to Nvidia Tesla M60 GPUer og 32 Intel Xeon E5 2686 v4 CPUer. Hver forekomst har 244 GiB RAM og 16 GiB VRAM per GPU. Dette oppsettet kan skaleres ned, opp og ut for å imøtekomme ethvert brukstilfelle. Etter at jeg var ferdig med testene, inneholdt databasen 413 tabeller og 2,2 milliarder poster.

Demoene jeg utforsket var for økonomiske risikoprognoser ved bruk av opsjoner, forsikringsrisiko for flom i Texas, nettverkssikkerhetsvurdering basert på trafikkinspeksjon, og drosjeturer i NYC. I prosessen la jeg merke til at, i motsetning til OmniScis demoer (se min anmeldelse), som alle brukte enkeltflattede tabeller (for hastighet), brukte Kinetica-demoer ofte flere tabeller, visninger og analytiske dashboards.

Finansiell risikoprognose med opsjoner

Denne applikasjonen er i hovedsak et bevis på konseptet med sanntids økonomisk risikostyring med Kinetica. En React-mobilapp og to nettdashboards gir en risikostyrer mulighet til å se alle “grekerne” (faktorer for å måle risiko) for sin portefølje og legge til sikringer. Bak kulissene strømmer transaksjoner inn i databasen, og en Black Scholes risikomodell for maskinlæring oppdateres kontinuerlig på live data. Tradisjonell risikostyring innebærer derimot å kopiere transaksjonsdataene til en egen klynge som kjører risikomodeller hver natt.

Forsikringsrisiko for katastrofale flom i Texas

Målet med denne applikasjonen er å vurdere et forsikringsselskaps risikoeksponering for katastrofale flom i Texas fra en oversikt over forsikringstakere og orkanen Harvey flomsoner. Applikasjonen gjør tunge geospatiale beregninger i SQL sammen med statistiske beregninger.

Nettsikkerhetsvurdering

Denne applikasjonen er designet for å hjelpe en nettverkssikkerhetsansvarlig med å beskytte et nettverk mot inntrenging. Den underliggende Kinetica-tabellen kombinerer rundt 1,8 milliarder historiske nettverksforespørsler med en sanntidsstrøm.

NYC drosjeturer

New York City taxi ride database er noe jeg også så på i OmniSci. Kinetica gir det som et datasett du kan laste; det tok omtrent et minutt. Opprinnelig tok det lengre tid å oppdatere alle kartene etter hver kartzoomoperasjon i Kinetica enn jeg husket fra OmniSci; så endret jeg en innstilling slik at Kinetica ikke ville plotte data utenfor det zoomede kartet på de andre grafene, og responstiden falt til undersekvensområdet.

Kinetica skiver og dashbord

Individuell grafikk i Kinetica Reveal kalles skiver. Skivene er organisert i dashbord.

Slice-designeren er ganske lik designerne du finner i OmniSci og en rekke BI-produkter, for eksempel Tableau.

Jeg testet ikke grafanalysedelen av Kinetica, men jeg liker måten den er designet på. Hvis grafdatabaser bare er en liten del av det du trenger å gjøre med dataene dine, er det perfekt å bruke lagrede rader fra relasjonstabellene som kanter og noder. Å bruke GPUer for å akselerere grafalgoritmer gir også god mening.

Å se hvordan Kinetica integrerer maskinlæring med GPU-databasen, sanntidsanalyse og geografisk informasjon, får meg til å forstå hvor OmniSci ønsker å gå - men Kinetica er allerede der. Å se hvordan Kinetica administrerer lagringsnivåene får meg til å forstå hvorfor Kinetica vanligvis konkurrerer med store data- og datalagersystemer.

Samlet sett er Kinetica veldig imponerende. Den gjør det den hevder, hopper høye databaser med en enkelt ... Jeg mener, analyserer databaser med milliarder av historiske rader og live feeds i sanntid. Jeg skulle ønske jeg hadde en følelse av abonnementskostnaden, men det er proprietær, som ofte er tilfelle med systemer av denne skalaen.

Koste: Kinetica belaster et årlig abonnement basert på antall terabyte i minnet; det tar ikke betalt for datalagring i andre nivåer. Abonnementslisensen lar deg kjøre Kinetica hvor som helst — på stedet eller i skyen. Abonnementskostnader er helt forutsigbare. 30-dagers gratis prøveversjon tilgjengelig.

Plattform: RHEL-, CentOS-, Ubuntu-, Suse- eller Debian Linux-server med minst åtte CPU-kjerner og 8 GB RAM; Nvidia K40 eller nyere GPUer; lokalt, i skyen eller i utkanten av en Jetson TX2 innebygd enhet. Kinetica kjører også på Docker, med eller uten GPUer.

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