Når – og Når Ikke-Å Bruke Åpen Kildekode Apache Cassandra, Kafka, Spark og Elasticsearch

Omtrent alle teknologibeslutninger må oppfylle to viktige kriterier: det må gjøre deg i stand til å oppfylle forretningsmålene dine, og det må fungere godt sammen med resten av teknologibunken din. Når det gjelder å velge datalagsteknologier for å bygge ut applikasjonsarkitekturen, fortsetter Apache Cassandra, Apache Kafka, Apache Spark og Elasticsearch å øke i popularitet.

men de er Ikke det riktige valget for hver brukstilfelle.

La oss ta en dypere titt på hver av disse teknologiene, og noen av brukstilfellene som er – og ikke – fordelaktige anvendelser av disse open source-løsningene.

Apache Cassandra

Opprinnelig opprettet Av Facebook I 2007, Bruker Cassandra En Dynamo-arkitektur og En Bigtable-stil datamodell for å gi En NoSQL datalager som gir høy tilgjengelighet og høy skalerbarhet.

Når Du Skal Bruke Apache Cassandra

Cassandra er et ideelt valg for brukstilfeller som krever de høyeste nivåene av alltid på tilgjengelighet. Databasen er også spesielt godt egnet til å betjene organisasjoner som forventer massive arbeidsbelastninger, eller som ønsker å sikre at deres tjenester kan vokse fleksibelt etter hvert som arbeidsbelastningene utvides (og dermed trenger Den enkle skalerbarheten Som Cassandra gir). Cassandra tilbyr pålitelig dataredundans og aktiv-aktiv drift på tvers av flere datasentre.

When You Shouldn ‘ t

Cassandra er mer ressurskrevende enn alternativer når det gjelder datalagring eller ren analyselagring(selv factoring bruk av tilgjengelige Gnistkontakter og Tableau og Hadoop plugins). Cassandra er også dårlig egnet til sanntidsanalyse, spesielt i form av sluttbruker ad hoc eller tilpassede spørringer, fordi behovet for å implementere kode på applikasjonssiden kan bli innviklet. I Tillegg Oppfyller Cassandra ikke DE FLESTE SYREKRAV.

Apache Kafka

Først opprettet av Det tekniske teamet På LinkedIn, Tilbyr Apache Kafka en svært skalerbar og svært tilgjengelig streamingplattform og meldingsbuss. Kafka fungerer som en distribuert logg, der nyankomne meldinger legges til leder av en kø og lesere (forbrukere) vil forbruke dem basert på en offset.

Når Du Skal Bruke Apache Kafka

Apache Kafka er generelt et smart valg for brukstilfeller som involverer mikrotjenester og tjenesteorientert arkitektur. Kafka kan også fungere som en svært effektiv arbeidskø som kan koordinere separate arbeidsveier, reservere databehandlingskraft ved å lytte og vente til arbeidet kommer. Plattformens strømbehandlingsfunksjoner er nyttige for avviksdeteksjon, roll-ups og aggregeringer, samt for å passere beregninger gjennom. Kafka er også et svært kapabelt alternativ for hendelsessourcing, dataavstemming på tvers av ulike mikrotjenester, og for å gi en ekstern innføringslogg for distribuerte systemer. Andre egnede bruksmåter inkluderer loggaggregering, datamaskering og-filtrering, databerikelse og oppdagelse av svindel.

Når du Ikke bør

Selv om Det kan være fristende i noen tilfeller, kan Det være dårlig råd å bruke Kafka som en database eller kilde-av-posten, i hvert fall uten en meget solid forståelse Av Kafka begrensninger og egenskaper for denne brukstilfelle. En ekte database vil nesten alltid være enklere å betjene og mer fleksibel. Kafka er et tilsvarende upassende valg for ordrebehandling på tvers av et helt emne. I alle tilfeller der målet er å fremme datapakker til sluttkilden raskt, for eksempel lyd og video i sanntid eller andre lossy datastrømmer, bør organisasjoner bruke spesialbygde løsninger i stedet for Kafka.

Apache Spark

En generell klynge databehandling rammeverk egnet til bruk saker som involverer store datamengder, Apache Spark deler data og kjører beregning på disse segmentene, slik at arbeidere utfører alt mulig arbeid frem til de krever data fra andre arbeidere. Dette designet gir Spark enorm skalerbarhet og tilgjengelighet, samtidig som Det gjør Det svært motstandsdyktig mot tap av data.

Når Du Skal Bruke Apache Spark

Spark gir seg til å bruke saker som involverer storskala analyser, spesielt tilfeller der data kommer via flere kilder. Spark er en kraftig løsning for ETL eller enhver brukstilfelle som inkluderer flytting av data mellom systemer, enten når det brukes til kontinuerlig å fylle ut et datalager eller datasjø fra transaksjonsdatabutikker, eller i engangsscenarier som database-eller systemoverføringer. Organisasjoner som bygger machine learning pipelines på toppen av eksisterende data, arbeider med strømming med høy latens, eller utfører interaktiv, ad hoc eller utforskende analyse, vil Finne Spark en sterk passform. Spark hjelper også organisasjoner med å oppfylle samsvarsbehovene sine ved å tilby datamaskering, datafiltrering og revisjon av store datasett fra et samsvarsperspektiv.

Når du Ikke bør

Generelt, Spark er ikke til å være det beste valget for bruk saker som involverer sanntid eller lav latens behandling. (Apache Kafka eller andre teknologier leverer overlegen ende-til-ende-ventetid for disse behovene, inkludert sanntidsstrømbehandling.) Når Du arbeider med små eller enkle datasett, Er Spark oftest for overdreven et alternativ. Også når det gjelder datavarehus og datasjøer, er det bedre å bruke en høyere teknologi i Stedet For Apache Spark, selv om slike produkter for Spark eksisterer.

Elasticsearch

Elasticsearch tilbyr en fulltekstsøkemotor som har et bredt spekter av funksjonalitet for å søke og analysere ustrukturerte data. Teknologien tilbyr skalerbar lineær søk i nær sanntid, gir robust drop-in søk erstatning, og betydelige analytics evner.

Når Du Skal Bruke Elasticsearch

Elasticsearch er sterkt egnet til bruk saker som krever fulltekstsøk, geografisk søk, skraping og kombinere offentlige data, logging og logganalyse, visualiseringer, og små volum hendelsesdata og beregninger.

Når du Ikke skal

Elasticsearch bør ikke brukes som en database eller kilde til posten, med relasjonsdata, eller for Å møte SYRE krav.

Valg Av Komplementære Teknologier

Å Velge den beste blandingen av teknologier for organisasjonen din (enten åpen kildekode eller på annen måte) innebærer åpenbart mer enn bare å evaluere løsningene selv – beslutningstakere må også forestille seg hvordan organisasjonen vil vedta og utnytte hver løsning som en del av deres teknologistack. Apache Cassandra, Apache Kafka, Apache Spark og Elasticsearch tilbyr et spesielt komplementært sett med teknologier som gir mening for organisasjoner å utnytte sammen, og som gir frihet fra lisensavgifter eller leverandørlåsing takket være deres åpen kildekode-natur. Ved å samarbeide disse teknologiene og realisere sine samlede fordeler, kan organisasjoner nå sine mål og muliggjøre utvikling av applikasjoner som er svært skalerbare, tilgjengelige, bærbare og motstandsdyktige.

Ben Slater Er Chief Product Officer Hos Instaclustr, som tilbyr en administrert tjenesteplattform med åpen kildekode-teknologier Som Apache Cassandra, Apache Spark, Elasticsearch og Apache Kafka.

Relaterte Elementer:

Her Er Hva Doug Cutting Sier Er Hadoop Største Bidrag

Et Tiår Senere, Apache Spark Still Going Strong

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.