Mikor – és mikor nem-nyílt forráskódú Apache Cassandra, Kafka, Spark és Elasticsearch

szinte minden technológiai döntéshozatalnak két alapvető kritériumnak kell megfelelnie: lehetővé kell tennie az üzleti célok elérését, és jól kell működnie a többi technológiai verem mellett. Az alkalmazás architektúrájának felépítéséhez szükséges adatréteg-technológiák kiválasztásakor a nyílt forráskódú Apache Cassandra, az Apache Kafka, Az Apache Spark és az Elasticsearch továbbra is növekszik.

azonban nem minden felhasználási esethez megfelelő választás.

vessünk egy mélyebb pillantást ezekre a technológiákra, és néhány olyan felhasználási esetre, amelyek ezeknek a nyílt forráskódú megoldásoknak – és nem – előnyös alkalmazásai.

Apache Cassandra

az eredetileg a Facebook által 2007-ben létrehozott Cassandra egy Dynamo architektúrát és egy Bigtable-stílusú adatmodellt használ egy NoSQL adattárolóhoz, amely magas rendelkezésre állást és magas skálázhatóságot biztosít.

mikor kell használni Apache Cassandra

Cassandra ideális választás a használati esetekben, amelyek megkövetelik a legmagasabb szintű mindig rendelkezésre álló. Az adatbázis különösen alkalmas olyan szervezetek kiszolgálására is, amelyek hatalmas munkaterhelést várnak el, vagy amelyek biztosítani akarják, hogy szolgáltatásaik rugalmasan növekedjenek a munkaterhelés növekedésével (és így szükségük van a Cassandra által nyújtott könnyű skálázhatóságra). A Cassandra megbízható adatredundanciát és aktív-aktív műveleteket kínál több adatközpontban.

When You Shouldn ‘ t

a Cassandra erőforrás-igényesebb, mint az alternatívák, ha adattárházzal vagy tiszta analitikai tárolással bízzák meg (még a rendelkezésre álló Spark csatlakozók, valamint a Tableau és Hadoop bővítmények használatát is figyelembe véve). A Cassandra szintén rosszul alkalmas a valós idejű elemzésre, különösen végfelhasználói ad-hoc vagy egyéni lekérdezések formájában, mivel a kód alkalmazásoldali megvalósításának szükségessége összezavarodhat. Ezenkívül a Cassandra nem felel meg a legtöbb SAVKÖVETELMÉNYNEK.

Apache Kafka

a LinkedIn technikai csapata által először létrehozott Apache Kafka rendkívül skálázható és rendkívül elérhető streaming platformot és üzenetbuszt kínál. A Kafka elosztott naplóként működik, amelyben az újonnan érkező üzenetek hozzáadódnak a sor fejéhez, és az olvasók (fogyasztók) eltolás alapján fogyasztják őket.

When you should Use Apache Kafka

az Apache Kafka általában okos választás a mikroszolgáltatásokat és szolgáltatásorientált architektúrát magában foglaló Használati esetekhez. A Kafka egy rendkívül hatékony munka várólistaként is szolgálhat, amely képes koordinálni a különálló munkautakat, fenntartva a számítási teljesítményt a hallgatással és a munka megérkezéséig. A platform adatfolyam-feldolgozási képességei hasznosak anomáliák észleléséhez, összegzéséhez és összesítéséhez, valamint a mutatók átadásához. A Kafka kiválóan alkalmas az események beszerzésére, Az adatok egyeztetésére a különböző mikroszolgáltatások között, valamint egy külső commit napló biztosítására az elosztott rendszerek számára. További megfelelő felhasználási esetek közé tartozik a napló-összesítés, az adatok maszkolása és szűrése, az adatok gazdagítása és a csalások felderítése.

ha nem kellene

bár bizonyos esetekben csábító lehet, meggondolatlan lehet A Kafka adatbázisként vagy rekordforrásként történő használata, legalábbis a Kafka korlátozásainak és tulajdonságainak nagyon alapos megértése nélkül ebben a használati esetben. Egy valódi adatbázis szinte mindig egyszerűbb és rugalmasabb lesz. A Kafka hasonlóan nem megfelelő választás a teljes téma sorrend szerinti feldolgozásához. Minden olyan felhasználási esetben, amikor a cél az adatcsomagok gyors továbbítása a végforrásig, például valós idejű audio és video vagy más veszteséges adatfolyamok, a szervezeteknek a Kafka helyett erre a célra épített megoldásokat kell használniuk.

Apache Spark

általános célú klaszter számítási keretrendszer, amely alkalmas nagy adatmennyiségű esetek használatára, az Apache Spark megosztja az adatokat és futtatja a számításokat ezeken a szegmenseken, úgy, hogy a munkavállalók minden lehetséges munkát elvégeznek, amíg más dolgozóktól nem igényelnek adatokat. Ez a kialakítás óriási skálázhatóságot és rendelkezésre állást biztosít a Spark számára, miközben rendkívül rugalmas az adatvesztéssel szemben.

When you should Use Apache Spark

a Spark alkalmas nagy léptékű analitikai esetek használatára, különösen olyan esetekben, amikor az adatok több forrásból érkeznek. A Spark hatékony megoldás az ETL-hez vagy bármely olyan felhasználási esethez, amely magában foglalja az adatok rendszerek közötti mozgatását, akár adattárház vagy adattó folyamatos feltöltésére a tranzakciós adattárolókból, akár egyszeri forgatókönyvekben, például adatbázis-vagy rendszer-migrációkban. Azok a szervezetek, amelyek gépi tanulási csővezetékeket építenek a meglévő adatok tetejére, nagy késleltetésű adatfolyammal dolgoznak, vagy interaktív, ad-hoc vagy feltáró elemzést végeznek, a Spark erős illeszkedést fog találni. A Spark arra is alkalmas, hogy segítse a szervezeteket megfelelőségi igényeik kielégítésében azáltal, hogy adatmaszkolást, adatszűrést és nagy adatkészletek megfelelőségi szempontból történő auditálását kínálja.

ha nem kellene

általában a Spark nem lesz a legjobb választás valós idejű vagy alacsony késleltetésű feldolgozással járó használati esetekhez. (Az Apache Kafka vagy más technológiák kiváló végpontok közötti késleltetést biztosítanak ezekhez az igényekhez, beleértve a valós idejű adatfolyam-feldolgozást is.) Ha kicsi vagy egyetlen adatkészlettel dolgozik, a Spark leggyakrabban túl túlzott lehetőség. Továbbá, amikor az adattárházakról és az adattavakról van szó, jobb, ha az Apache Spark helyett magasabb szintű technológiát használunk, bár a Spark ilyen termékei léteznek.

Elasticsearch

az Elasticsearch egy teljes szövegű keresőmotort kínál, amely széles funkcionalitással rendelkezik a strukturálatlan adatok keresésére és elemzésére. A technológia skálázható lineáris keresést kínál közel valós időben, robusztus keresési helyettesítést és jelentős elemzési képességeket biztosít.

When you should Use Elasticsearch

az Elasticsearch kiválóan alkalmas teljes szöveges keresést, földrajzi keresést, nyilvános adatok lekaparását és kombinálását, naplózást és naplóelemzést, vizualizációkat, valamint kis volumenű eseményadatokat és mutatókat igénylő esetek használatára.

ha nem kellene

az Elasticsearch nem használható adatbázisként vagy rekordforrásként, relációs adatokkal, vagy az ACID követelmények teljesítéséhez.

kiegészítő technológiák kiválasztása

a szervezet számára a legjobb technológiák keverékének kiválasztása (akár nyílt forráskódú, akár más módon) nyilvánvalóan többet jelent, mint maguk a megoldások értékelése – a döntéshozóknak azt is el kell képzelniük, hogy a szervezet hogyan fogadja el és használja fel az egyes megoldásokat a technológiai verem részeként. Az Apache Cassandra, az Apache Kafka, Az Apache Spark és az Elasticsearch különösen kiegészítő technológiákat kínálnak, amelyeket a szervezetek együtt használhatnak, és amelyek nyílt forráskódú jellegüknek köszönhetően mentesek a licencdíjaktól vagy a forgalmazói zárolástól. Ezeknek a technológiáknak az összefogásával és összegyűjtött előnyeik megvalósításával a szervezetek elérhetik céljaikat, és lehetővé tehetik olyan alkalmazások fejlesztését, amelyek nagymértékben skálázhatók, elérhetők, hordozhatók és ellenállóak.

Ben Slater az Instaclustr vezető termékigazgatója, amely olyan nyílt forráskódú technológiák menedzselt szolgáltatási platformját biztosítja, mint az Apache Cassandra, az Apache Spark, az Elasticsearch és az Apache Kafka.

kapcsolódó elemek:

itt van, amit Doug Cutting mondja Hadoop legnagyobb hozzájárulása

egy évtizeddel később, Apache Spark még mindig erős lesz

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.