Video: 14. Verticaal en horizontaal zoeken in een bereik 2024
De meeste relationele databasemanagers zijn gebouwd op een horizontaal opslagbeheer , waarmee alle gegevens in een database per rij (of record) wanneer een transactie plaatsvindt. Een databasetabel wordt weergegeven als een reeks databasepagina's die een of meer gegevensrijen bevatten.
Een horizontaal opslagbeheer biedt snelle OLTP-ondersteuning (online transactieverwerking) omdat de meeste transacties voorkomen in een recordindeling, bijvoorbeeld door een grootboekboeking in te voegen of een cheque in te voeren. Wanneer een gebruiker een record aanvraagt, wordt de databasepagina die de gegevens bevat echter vaak verplaatst naar het geheugen, wat voor Business Intelligence-toepassingen zeer inefficiënt is.
In de loop der jaren zijn er verschillende producten met speciale databases ontwikkeld om query-gecentreerde applicaties, zoals business intelligence, te ondersteunen en te optimaliseren. Met dergelijke producten kunt u gemakkelijker interactieve datawarehouses ontwikkelen. Het doel van deze kolomgewijze databases is om de snelheid te verhogen van beslissingen voor ondersteuning bij beslissingen die worden uitgevoerd tegen grote hoeveelheden gegevens.
Wanneer databasebeheerders wordt gevraagd of ze ooit een index in een kolom plaatsen die het netnummer van een persoon, het gemiddelde van een cijfer voor een student of de totale transacties van een klant bevat, reageren ze met een volmondig: "Nee! "Ze geven dit onvermijdelijke antwoord meestal om redenen die zijn gebaseerd op technologie, zoals:
-
We indexeren alleen op basis van standaard, bekende paden (zoals naam) vanwege de overhead van indexen.
-
De kardinaliteit, of unieke occurrence van gegevens zou de database dwingen om toch een tafelscan uit te voeren.
Maar als u gebruikers vraagt welke informatie ze nodig hebben om hun taken uit te voeren, reageren ze met dit soort vereisten:
-
Zie het aantal mensen per regiocode in mijn territorium, zodat ik mijn promoties effectiever kan beheren.
-
Identificeer de best beoordeelde studenten in de afstudeerklas zodat ik de juiste interviews kan regelen.
-
Zoek uit welke klanten zaken doen met mijn bedrijf en besteed jaarlijks tussen $ 100, 000 en $ 500.000.
Elk van deze drie vereisten kenmerkt een ander gebruikersverzoek, maar ze hebben allemaal vergelijkbare functies: het zijn op beslissingen ondersteunde zoekopdrachten. Een behoefte om toegang te krijgen tot datastromen vereist gebruikersinformatie-eisen, maar de toegangspatronen van gebruikers zijn niet compatibel met de meeste RDBMS-indexeringsstrategieën. Kortom, de RDBMS-technologie hindert het succes van de applicaties.
Een databasetabel wordt weergegeven als een reeks databasepagina's die een of meer gegevensrijen bevatten, zoals weergegeven in deze afbeelding.Een horizontale opslagmanager biedt snelle OLTP-ondersteuning (online transactieverwerking) omdat de meeste transacties voorkomen in een recordindeling.
Deze relationele databases helpen query-activiteit met behulp van indexen. Indexen worden bovenop de rijen gebouwd om het ophalen van gegevens op gemeenschappelijke paden te vereenvoudigen en te versnellen, zoals wordt weergegeven in de afbeelding.
Oplossingen voor gegevensopslag, zoals Business Intelligence, gebruiken veel van deze indexeringstechnieken niet omdat ze zijn gemaakt om OLTP-toepassingen te helpen bij de frequente behoefte om afzonderlijke rijen in databasetabellen te vinden en bij te werken.
Om de typische zoekopdrachten van gebruikers in Business Intelligence correct te ondersteunen, zijn andere opslag- en indexeertechnieken vereist. Leveranciers zoals Sybase en Vertica hebben verticale opslagbeheerders gebouwd. In plaats van gegevens per rij op te slaan, slaan deze producten de gegevens op per kolom - vandaar de naam verticaal opslagbeheer of kolomgewijs opslaan.
Deze opslagmethode lost effectief het probleem op van gebruikersquery's tegen grote gegevenssets omdat een gebruiker vaak slechts enkele kolommen zoekt, in tegenstelling tot het grote aantal kolommen dat op rij wordt beheerd door een horizontale opslagmanager. Met de gegevens die zijn opgeslagen als een reeks paginabewegingen, waarbij elke pagina kolomgegevens bevat, wordt de verwerkingsduur van de query met een factor 500 of meer verminderd.
Bovendien ondersteunen deze producten andere optimalisaties die helpen bij de snelheid van de query verwerking, inclusief gegevenscompressie, parallelle querybewerkingen en meerdere indexeringstechnieken per kolom. De uitdaging bij het implementeren van dergelijke technologieën omvat standaardisatie. Veel afdelingen voor gegevensbeheer weigeren daarom dergelijke technologieën te implementeren omdat die technologieën extra ondersteuningsarbeid vereisen.