Slimme technologie voor een sterke maakindustrie met 24/7 ononderbroken productie van IIoT-oplossingen voor bedrijven.

Blog

NoSQL - Wide column, Graph en Search databanken

Wide column databanken

Een wide-column databank gebruikt tabellen, rijen en kolommen, maar in tegenstelling tot een RDBMS kunnen de namen en het formaat van de kolommen van rij tot rij verschillen binnen dezelfde tabel. Een wide-column store kan worden geïnterpreteerd als een tweedimensionale key-value store. Voorbeelden van NoSQL wide-column databanken zijn Cassandra, Datastax, Amazon Redshift en Snowflake.

In echte kolomgeoriënteerde databanken wordt een kolomdata-indeling gebruikt waarbij elke kolom afzonderlijk op de schijf wordt opgeslagen. Wide-column databanken ondersteunen vaak het concept van column families die afzonderlijk worden opgeslagen, maar niet noodzakelijkerwijs elke kolom afzonderlijk op de schijf bewaren.

Elke dergelijke column family bevat echter meestal meerdere kolommen die samen worden gebruikt, vergelijkbaar met traditionele relationele databasetabellen. Binnen een gegeven column family worden alle gegevens rij voor rij opgeslagen, zodat de kolommen voor een bepaalde rij bij elkaar worden bewaard.

Wide-column databanken zijn zeer geschikt voor data waarbij applicaties slechts enkele kolommen van veel rijen tegelijkertijd moeten benaderen en lenen zich uitstekend voor OLAP-toepassingen. Dat is ook de reden waarom Amazon Redshift en Snowflake worden beschouwd als moderne data warehouse-databanken.

Wanneer toepassen?

Voordelen

  • Zeer schaalbaar en performant bij grote datasets

  • Flexibel kolommodel

  • Goede write-performance

Nadelen

  • Complex beheer en data modeling

  • Geen echte joins of transacties

  • Consistentie kan beperkt zijn (afhankelijk van configuratie)

Use cases

  • IoT data op massale schaal

  • Data warehousing voor grote datasets

Graph databanken

Graph databases zijn speciaal ontworpen om relaties op te slaan en te navigeren. Ze gebruiken knooppunten (nodes) om data-entiteiten op te slaan en verbindingen (edges) om de relaties tussen entiteiten vast te leggen. Voorbeelden van dergelijke NoSQL databases zijn Neo4J, ArangoDB en Amazon Neptune.

Een edge heeft altijd een startknooppunt, een eindknooppunt, een type en een richting. Een edge kan ouder-kindrelaties, acties, eigendom en dergelijke beschrijven. Er is geen limiet aan het aantal en soort relaties dat een knooppunt kan hebben.

Een grafiek in een graph database kan worden doorlopen langs specifieke edge-types of over de gehele grafiek. In graph databases is het traverseren van joins of relaties zeer snel omdat de relaties tussen knooppunten niet tijdens de query worden berekend, maar persistent in de database worden opgeslagen.

Deze databases zijn voordelig voor use cases zoals sociale netwerken, aanbevelingssystemen en elk systeem waarbij je relaties tussen data moet creëren en deze snel wilt opvragen.

Wanneer toepassen?

Voordelen

  • Sterk in relaties en traversals

  • Flexibel model

  • Efficiënt voor netwerkdata (social graphs, routes, kennisnetwerken)

Nadelen

  • Niet geschikt voor grote, vlakke datasets

  • Complexe leercurve

  • Minder ondersteuning in traditionele BI-tools

Use cases

  • Social networks (wie kent wie)

  • Aanbevelingssystemen

  • Fraudebestrijding (transactieconnecties)

Search-engine databanken

Een NoSQL search-engine databank is een type niet-relationele databank die specifiek is ontworpen voor het doorzoeken van datacontent. Search-engine databanken gebruiken indexen om gelijkaardige kenmerken van data te categoriseren en de zoekfunctionaliteit te vergemakkelijken. Ze zijn geoptimaliseerd voor het omgaan met data die gestructureerd, semi-gestructureerd of ongestructureerd kan zijn. Ze bieden doorgaans gespecialiseerde methoden zoals full-text search, complexe zoekexpressies en rangschikking van zoekresultaten.

Ze worden vaak gecombineerd met andere databases om snelle zoekmogelijkheden in opgeslagen content te bieden.

Wanneer toepassen?

Voordelen

  • Full-text search, fuzzy matching, auto-completion

  • Zeer snelle zoekresultaten

  • Schaalbaar en gedistribueerd

  • Aggregaties voor analytics

Nadelen

  • Geen ACID-transacties

  • Complex beheer (index management)

  • Data moet worden geïndexeerd (duplicatie met brondatabase)

Use cases

  • Zoekfuncties op websites, applicaties of tekstgerelateerde objecten

  • Loganalyse (bv. via ELK-stack)

  • Productcatalogi met zoekfilters