Wanneer – en wanneer niet-Open Source Apache Cassandra, Kafka, Spark en Elasticsearch gebruiken

zowat alle technologische besluitvorming moet voldoen aan twee essentiële criteria: het moet u in staat stellen om uw zakelijke doelen te bereiken en het moet goed werken samen met de rest van uw technologie stack. Als het gaat om het selecteren van data-layer technologieën om uit te bouwen van uw applicatie-architectuur, open source Apache Cassandra, Apache Kafka, Apache Spark, en Elasticsearch blijven stijgen in populariteit.

echter, ze zijn niet de juiste keuze voor elke use case.

laten we eens dieper ingaan op elk van deze technologieën, en enkele van de use cases die – en niet – voordelige toepassingen zijn van deze open source oplossingen.Apache Cassandra

oorspronkelijk gemaakt door Facebook in 2007, gebruikt Cassandra een Dynamo-architectuur en een Bigtable-stijl datamodel om een NoSQL-dataopslag te bieden die hoge beschikbaarheid en hoge schaalbaarheid biedt.

wanneer u Apache Cassandra

zou moeten gebruiken Cassandra is een ideale keuze voor use cases die de hoogste niveaus van always-on beschikbaarheid vereisen. De database is ook bijzonder geschikt voor het bedienen van organisaties die grote workloads verwachten, of die ervoor willen zorgen dat hun diensten flexibel kunnen groeien naarmate workloads uitbreiden (en dus de eenvoudige schaalbaarheid nodig hebben die Cassandra biedt). Cassandra biedt betrouwbare gegevensredundantie en actief-actieve bewerkingen in meerdere datacenters.

wanneer u

niet zou moeten

Cassandra is meer resource-intensief dan alternatieven wanneer het wordt belast met data warehousing of pure analytics-opslag (zelfs rekening houdend met het gebruik van beschikbare Spark-connectoren en Tableau-en Hadoop-plugins). Cassandra is ook slecht geschikt voor real-time analytics, vooral in de vorm van eindgebruikers ad-hoc of aangepaste query ‘ s, omdat de noodzaak om code te implementeren op de applicatie kant kan ingewikkeld worden. Bovendien voldoet Cassandra niet aan de meeste ZUURVEREISTEN.Apache Kafka

Apache Kafka is gemaakt door het technische team van LinkedIn en biedt een zeer schaalbaar en zeer beschikbaar streaming platform en message bus. Kafka functioneert als een gedistribueerd logboek, waarin nieuw binnengekomen berichten aan het hoofd van een wachtrij worden toegevoegd en lezers (consumenten) deze consumeren op basis van een offset.

wanneer u Apache Kafka

zou moeten gebruiken Apache Kafka is over het algemeen een slimme keuze voor use cases die microservices en service-georiënteerde architectuur omvatten. Kafka kan ook dienen als een zeer effectieve werkwachtrij die in staat is om afzonderlijke werkpaden te coördineren, het reserveren van rekenkracht door te luisteren en te wachten tot het werk aankomt. De stream processing mogelijkheden van het platform zijn nuttig voor anomalie detectie, roll-ups, en aggregaties, evenals voor het passeren van statistieken door. Kafka is ook een zeer capabele optie voor event sourcing, data reconciliatie over verschillende microservices, en om een externe commit log voor gedistribueerde systemen te bieden. Aanvullende geschikte use cases omvatten log aggregation, Data masking en filtering, data verrijking, en fraude detectie.

wanneer u niet

zou moeten

hoewel het in sommige gevallen verleidelijk kan zijn, kan het onverstandig zijn om Kafka als database of recordbron te gebruiken, in ieder geval zonder een zeer goed begrip van Kafka beperkingen en eigenschappen voor deze use case. Een echte database zal bijna altijd eenvoudiger te bedienen en flexibeler zijn. Kafka is een even ongepaste keuze voor in-order verwerking over een heel onderwerp. In elk geval waar het doel is om datapakketten snel naar de eindbron te brengen, zoals real-time audio en video of andere gegevensstromen met verlies, moeten organisaties speciaal gebouwde oplossingen gebruiken in plaats van Kafka.Apache Spark

een algemeen cluster computing framework dat geschikt is voor het gebruik van grote datavolumes, Apache Spark verdeelt gegevens en voert berekeningen uit op die segmenten, zodat werknemers al het mogelijke doen totdat ze gegevens van andere werknemers nodig hebben. Dit ontwerp geeft Spark enorme schaalbaarheid en beschikbaarheid, terwijl het ook zeer veerkrachtig tegen verlies van gegevens.

wanneer u Apache Spark

zou moeten gebruiken, leent Spark zich voor het gebruik van grootschalige analytics, vooral wanneer gegevens via meerdere bronnen binnenkomen. Spark is een krachtige oplossing voor ETL of een use case die het verplaatsen van gegevens tussen systemen omvat, hetzij wanneer gebruikt om continu bevolken een data warehouse of data lake van transactionele data stores, of in eenmalige scenario ‘ s zoals database of systeem migraties. Organisaties die machine learning pijpleidingen bovenop bestaande gegevens Bouwen, werken met high-latency streaming, of het uitvoeren van interactieve, ad-hoc, of verkennende analyse zal vonk een sterke pasvorm vinden. Spark leent zich ook om organisaties te helpen voldoen aan hun compliance-behoeften door het aanbieden van data masking, data filtering en auditing van grote datasets vanuit een compliance-perspectief.

wanneer u niet

zou moeten

in het algemeen, zal Spark niet de beste keuze zijn voor use cases waarbij real-time of low latency verwerking is betrokken. (Apache Kafka of andere technologieën bieden superieure end-to-end latency voor deze behoeften, inclusief real-time stream processing.) Bij het werken met kleine of enkele datasets, Spark is meestal te overdreven een optie. Ook, als het gaat om data warehousing en data lakes, het is beter om een hoger niveau technologie te gebruiken in plaats van Apache Spark, hoewel dergelijke producten voor Spark bestaan.

Elasticsearch

Elasticsearch biedt een full-text zoekmachine met een breed scala aan functies voor het zoeken en analyseren van ongestructureerde gegevens. De technologie biedt schaalbaar lineair zoeken in de buurt van real-time, biedt robuuste drop-in search vervanging, en aanzienlijke analytics mogelijkheden.

wanneer u Elasticsearch

zou moeten gebruiken, is Elasticsearch zeer geschikt voor gebruik in gevallen waarin zoeken in volledige tekst, geografisch zoeken, schrapen en combineren van openbare gegevens, logging en loganalyse, visualisaties, en kleine volumegebeurtenissen en metrics.

wanneer u

niet zou moeten gebruiken, dient Elasticsearch niet te worden gebruikt als database of recordbron, met relationele gegevens, of om te voldoen aan ZUURVEREISTEN.

het selecteren van complementaire technologieën

het kiezen van de beste combinatie van technologieën voor uw organisatie (open source of anderszins) houdt uiteraard meer in dan alleen het evalueren van de oplossingen zelf – besluitvormers moeten zich ook voorstellen hoe de organisatie elke oplossing zal aannemen en gebruiken als onderdeel van hun technologie stack. Apache Cassandra, Apache Kafka, Apache Spark en Elasticsearch bieden een bijzonder complementaire set van technologieën die zinvol zijn voor organisaties om samen te gebruiken, en die vrijheid bieden van licentiekosten of vendor lock-in dankzij hun open source aard. Door deze technologieën samen te voegen en hun verzamelde voordelen te realiseren, kunnen organisaties hun doelen bereiken en de ontwikkeling mogelijk maken van toepassingen die zeer schaalbaar, beschikbaar, draagbaar en veerkrachtig zijn.

Ben Slater is de Chief Product Officer bij Instaclustr, dat een managed service platform biedt van open source technologieën zoals Apache Cassandra, Apache Spark, Elasticsearch en Apache Kafka.

gerelateerde Items:

hier is wat Doug Cutting zegt is Hadoop ‘ s grootste bijdrage

tien jaar Later gaat Apache Spark nog steeds sterk

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.