U bent misschien bekend met databases die records in rijen opslaan. Een columnaire database slaat echter data op in kolommen. Een columnaire database is een vorm van NoSQL-database die ongestructureerde data opslaat. Het kan data sneller ophalen dan een traditionele gestructureerde row-based database. Databases die data in kolommen opslaan, maken veel sneller lezen mogelijk, maar offeren de prestaties op bij schrijftransacties. Leesprestaties worden verbeterd omdat data worden opgeslagen gegroepeerd op kolom in plaats van op rijen.
Wat is een columnaire database?
Om query's te versnellen, slaat een columnaire database data op in kolommen in plaats van rijen. Deze moderne databases worden ook wel "kolomgeoriënteerde" of "brede kolom"-winkels genoemd. Naarmate bedrijven de hoeveelheid opgeslagen data verhogen, kunnen ze terabytes (of meer) aan dataopslag bereiken die moeten worden opgehaald. Columnaire databases versnellen de verwerking van query's en worden vaak gebruikt voor big data of query's voor machine learning-analyses.
Belangrijkste kenmerken van Columnar Databases
Verbeterde queryprestaties zijn een belangrijk voordeel van columnaire databases, maar ze hebben verschillende andere voordelen. Hier zijn een paar redenen waarom u baat zou hebben bij het overschakelen van row-based databases naar columnaire databases:
- Datacompressie: Geavanceerde datacompressie verlaagt de hoeveelheid opslagvereisten, wat ook minder tijd kost om de data op schijf te vinden. De snellere zoektijden en prestatie-upgrades versnellen veelvoorkomende berekeningen (bijv. MIN of SUM).
- Snellere analyticssnelheid: Machine learning- en analyticssoftware vereisen enorme hoeveelheden data, dus een columnaire database versnelt deze applicaties met snellere queryverwerking van grote datasets.
- Zelfindexerend: Beheerders die gewend zijn aan handmatige indexen op traditionele databases zullen het vermogen van de columnaire database om zichzelf te indexeren waarderen, wat ook de hoeveelheid opslagruimte die nodig is voor data vermindert.
- Vectorisatie: Columnaire databases verwerken meerdere datapunten voor geavanceerde analyses en wiskundige functies veel sneller dan standaard row-based databases.
- Eliminatie van NULL: In plaats van NULL-waarden op te slaan, die opslagruimte in beslag nemen, slaan columnaire databases geen ontbrekende of NULL-waarden op.
Gebruikssituaties voor columnaire databases
Kolomdatabases zijn het meest nuttig voor dataquery's waarbij slechts een paar kolommen nodig zijn voor resultaten. Traditionele relationele databases hebben tabellen die meerdere kolommen voor één rij kunnen hebben, maar columnaire databases groeperen data op basis van kolommen. Als u een query hebt die slechts een paar kolommen nodig heeft om resultaten aan gebruikers weer te geven, dan zal een columnaire database de prestaties van uw applicaties verbeteren.
Een paar use cases voor columnaire databases:
- Bedrijfsanalyses: Voor veel bedrijfsstatistieken hebt u een paar kolommen nodig om succes samen te vatten. Een columnaire database kan analytics en machine learning-voorspellingen beter weergeven op basis van deze paar kolommen. Analyses op basis van de totale verkoop van een product kunnen bijvoorbeeld zeer geschikt zijn voor columnaire databaseopslag.
- Beveiliging of applicatiemonitoring: Gegevens die worden verzameld uit applicatiegebeurtenissen (bijv. authenticatiefouten of responstijden) kunnen worden opgeslagen in een columnaire database en worden gebruikt in analyses om de prestaties te verbeteren en eventuele lopende cyberaanvallen te stoppen.
- IoT IoT-sensoren voor magazijnmachines of gezondheidszorgmonitoring verzamelen data en slaan deze op in specifieke kolommen, die vervolgens kunnen worden gebruikt om afwijkingen in machines of menselijke bioactiviteit op te sporen.
Vergelijking met Row-based Databases
Het belangrijkste verschil tussen een kolomgebaseerde database en een rijgebaseerde database is de backend-opslagfunctionaliteit. Een columnaire database groepeert kolomgegevens, zodat query's niet naar volledige rijen hoeven te zoeken voor elke kolom die moet worden opgehaald. In plaats daarvan worden kolommen gegroepeerd voor sneller ophalen.
Rijgebaseerde databases groeperen opslag van hele rijen met behulp van indexen, dus ze zijn nuttig als u transactionele query's hebt. Als u bijvoorbeeld een site host waar gebruikers zoeken naar hun recente aankopen, biedt een relationele database betere prestatie- en ontwikkelingsstrategieën. Kolomgebaseerde databases zijn beter geschikt voor big data en analytics. Als u miljoenen records moet doorzoeken om aankopen te vinden en resultaten aan machine learning-algoritmen te koppelen, zou een database op basis van kolommen beter zijn.
Populaire Columnar Database-oplossingen
Er zijn verschillende populaire columnaire databases beschikbaar voor uw ontwikkelingsoplossingen. Elk heeft zijn eigen voor- en nadelen. Hier zijn er een paar om te overwegen:
- Snowflake Snowflake is populair bij grote datawarehouse-infrastructuur. Het kan meerdere databronnen combineren om vanaf één locatie een query-engine te bieden. Snowflake wordt voornamelijk gebruikt voor machine learning en analytics, maar het staat bekend om Snowpipe, een continue data-opnamefunctie die geweldig is voor realtime output.
- MariaDB MariaDB is een aangepaste, schaalbarere versie van MySQL, dus het wordt vaak gebruikt wanneer de huidige infrastructuur met MySQL werkt. Beheerders die bekend zijn met MySQL zullen de uitgebreide JSON-queryondersteuning waarderen, en MariaDB ondersteunt tot 200.000 gelijktijdige verbindingen. MariaDB maakt gebruik van uitgebreidere storage-engines, waaronder XtraDB, Aria, InnoDB, MariaDB ColumnStore, Memory, Cassandra en Connect. Gebruik MariaDB wanneer u verbindingen met grote volumes hebt en snelle realtime resultaten nodig hebt.
- Redshift: Redshift is een Amazon-oplossing, dus het wordt vaak gebruikt wanneer een organisatie AWSAWSinfrastructuur heeft. Het is nuttig voor bedrijven die werken met AWS-clouddatabases die data moeten delen met Redshift voor machine learning, prognoses, financiële voorspellingen en gebruikersdashboards voor analytics.
- BigQuery: Voor gebruikers van Google Cloud Platform (GCP) biedt Google BigQuery. Net als bij Redshift kunnen beheerders met reeds op het Google-platform opgeslagen data profiteren van BigQuery en de data in GCP gebruiken om een silo van data te bouwen die aan machine learning-algoritmen wordt gevoerd. Business intelligence en analytics worden vaak gebruikt met BigQuery.
- Vertica: Beheerders met het doel om Hadoop-oplossingen te integreren, kunnen merken dat Vertica veel handiger is dan de andere hier vermelde columnaire databases. Vertica is ook gunstig als u het on-premise wilt implementeren.
- SAP HANA: SAP HANA Cloud biedt de SAP HANA DPaaS (databaseplatform as a service) en SAP werkt met zijn eigen database voor zijn ERP-technologie. Ontwikkelaars die JavaScript-oplossingen bouwen, kunnen het SAP HANA JavaScript-framework met HTML5 waarderen om hun ERP-projecten te ondersteunen.
- Cosmos DB: Cosmos DB is een Microsoft Azure-oplossing, dus het wordt gebruikt wanneer beheerders al Azure-clouddiensten hebben. Het wordt vaak gebruikt in Microsoft-omgevingen, maar het is gunstig voor IoT-dataverzameling, retail en marketing, gaming en sociale toepassingen die behoefte hebben aan voorspellingen en realtime analyses.
Conclusie
Als u grote datasets hebt op basis van een paar kolommen in een relationele database, kunt u de prestaties verbeteren door over te schakelen op een columnaire database. Deze databases zijn perfect voor analytics, realtime applicaties, machine learning, voorspellende analytics en andere big data-applicaties. De meeste columnaire databases werken met big data met terabytes aan opslagvereisten. Pure Storage biedt oplossingen om uw big data op te slaan die kunnen worden opgenomen en opgeslagen in uw columnaire database.