Online analytical processing (OLAP)

Azure Analysis Services

OLAP (Online Analytical Processing) is een technologie die grote zakelijke databases organiseert en complexe analyses ondersteunt. Het kan worden gebruikt om complexe analytische query's uit te voeren zonder dat dit negatieve gevolgen heeft voor transactionele systemen.

De databases die een bedrijf gebruikt om alle transacties en records op te slaan, worden OLTP-databases (Online Transaction Processing) genoemd. Deze databases hebben meestal records die één voor één worden ingevoerd. Vaak bevatten ze veel informatie die waardevol is voor de organisatie. De databases die worden gebruikt voor OLTP, zijn echter niet ontworpen voor analyse. Het ophalen van antwoorden uit deze databases is daarom kostbaar in termen van tijd en moeite. OLAP-systemen zijn ontworpen om deze business intelligence-informatie op een zeer krachtige manier uit de gegevens te extraheren. Dit komt doordat OLAP-databases zijn geoptimaliseerd voor zware lees- en schrijfworkloads.

Diagram that shows the OLAP logical architecture in Azure.

Semantische modellering

Een semantisch gegevensmodel is een conceptueel model dat de betekenis van de gegevenselementen beschrijft die het bevat. Organisaties hebben vaak hun eigen termen voor dingen, soms met synoniemen of zelfs andere betekenissen voor dezelfde term. Een inventarisdatabase kan bijvoorbeeld een apparaat met een asset-id en een serienummer bijhouden, maar een verkoopdatabase kan verwijzen naar het serienummer als de asset-id. Er is geen eenvoudige manier om deze waarden te relateren zonder een model dat de relatie beschrijft.

Semantische modellering biedt een abstractieniveau voor het databaseschema, zodat gebruikers de onderliggende gegevensstructuren niet hoeven te kennen. Hierdoor kunnen eindgebruikers eenvoudiger query's uitvoeren op gegevens zonder aggregaties en joins uit te voeren via het onderliggende schema. Meestal worden kolommen ook gewijzigd in meer gebruiksvriendelijke namen, zodat de context en betekenis van de gegevens duidelijker zijn.

Semantische modellering wordt voornamelijk gebruikt voor leesintensieve scenario's, zoals analyse en business intelligence (OLAP), in tegenstelling tot meer schrijfintensieve transactionele gegevensverwerking (OLTP). Dit komt voornamelijk door de aard van een typische semantische laag:

  • Aggregatiegedrag wordt zo ingesteld dat rapportagehulpprogramma's deze correct weergeven.
  • Bedrijfslogica en berekeningen worden gedefinieerd.
  • Tijdgeoriënteerde berekeningen worden opgenomen.
  • Gegevens worden vaak uit meerdere bronnen geïntegreerd.

Traditioneel wordt de semantische laag om deze redenen over een datawarehouse geplaatst.

Example diagram of a semantic layer between a data warehouse and a reporting tool

Er zijn twee primaire typen semantische modellen:

  • Tabellair. Maakt gebruik van relationele modelleringsconstructies (model, tabellen, kolommen). Intern worden metagegevens overgenomen van OLAP-modelleringsconstructies (kubussen, dimensies, metingen). Code en script maken gebruik van OLAP-metagegevens.
  • Multidimensionaal. Maakt gebruik van traditionele OLAP-modelleringsconstructies (kubussen, dimensies, metingen).

Relevante Azure-service:

Voorbeeld van een toepassing

Een organisatie heeft gegevens die zijn opgeslagen in een grote database. Het wil deze gegevens beschikbaar maken voor zakelijke gebruikers en klanten om hun eigen rapporten te maken en een aantal analyses uit te voeren. Eén optie is om deze gebruikers rechtstreeks toegang te geven tot de database. Er zijn echter verschillende nadelen om dit te doen, waaronder het beheren van beveiliging en het beheren van de toegang. Het ontwerp van de database, inclusief de namen van tabellen en kolommen, kan ook moeilijk te begrijpen zijn voor een gebruiker. Gebruikers moeten weten welke tabellen moeten worden opvraagt, hoe deze tabellen moeten worden samengevoegd en andere bedrijfslogica die moet worden toegepast om de juiste resultaten te verkrijgen. Gebruikers moeten ook een querytaal zoals SQL kennen om aan de slag te gaan. Dit leidt doorgaans tot meerdere gebruikers die dezelfde metrische gegevens rapporteren, maar met verschillende resultaten.

Een andere optie is het inkapselen van alle informatie die gebruikers nodig hebben in een semantisch model. Het semantische model kan eenvoudiger worden opgevraagd door gebruikers met een rapportagehulpmiddel van hun keuze. De gegevens die door het semantische model worden geleverd, worden opgehaald uit een datawarehouse, zodat alle gebruikers één versie van de waarheid zien. Het semantische model biedt ook beschrijvende tabel- en kolomnamen, relaties tussen tabellen, beschrijvingen, berekeningen en beveiliging op rijniveau.

Typische kenmerken van semantische modellering

Semantische modellering en analytische verwerking hebben meestal de volgende eigenschappen:

Vereiste Beschrijving
Schema Schema bij schrijven, sterk afgedwongen
Maakt gebruik van transacties Nee
Strategie voor vergrendelen Geen
Kan worden bijgewerkt Nee (normaal gesproken is het opnieuw compileren van kubus vereist)
Toevoegbaar Nee (normaal gesproken is het opnieuw compileren van kubus vereist)
Workload Zware leesbewerkingen, alleen-lezen
Indexeren Multidimensionale indexering
Datumgrootte Klein tot middelgroot
Model Multidimensionale
Gegevensshape: Kubus- of ster-/sneeuwvlokschema
Queryflexiteit Zeer flexibel
Scale: Groot (10s-100 GB)

Wanneer u deze oplossing gebruikt

Overweeg OLAP in de volgende scenario's:

  • U moet snel complexe analytische en ad-hocquery's uitvoeren, zonder dat dit van invloed is op uw OLTP-systemen.
  • U wilt zakelijke gebruikers een eenvoudige manier bieden om rapporten te genereren op basis van uw gegevens
  • U wilt een aantal aggregaties opgeven waarmee gebruikers snelle, consistente resultaten kunnen krijgen.

OLAP is vooral handig voor het toepassen van statistische berekeningen op grote hoeveelheden gegevens. OLAP-systemen zijn geoptimaliseerd voor scenario's met veel leesbewerkingen, zoals analyses en business intelligence. Met OLAP kunnen gebruikers multidimensionale gegevens segmenteren in segmenten die kunnen worden weergegeven in twee dimensies (zoals een draaitabel) of de gegevens filteren op specifieke waarden. Dit proces wordt soms 'segmentering en segmentering' van de gegevens genoemd en kan worden uitgevoerd, ongeacht of de gegevens zijn gepartitioneerd in verschillende gegevensbronnen. Dit helpt gebruikers trends te vinden, patronen te herkennen en de gegevens te verkennen zonder de details van traditionele gegevensanalyse te hoeven kennen.

Semantische modellen kunnen zakelijke gebruikers helpen complexe relaties te abstraheren en het gemakkelijker maken om gegevens snel te analyseren.

Uitdagingen

Voor alle voordelen die OLAP-systemen bieden, leveren ze enkele uitdagingen op:

  • Terwijl gegevens in OLTP-systemen voortdurend worden bijgewerkt via transacties die afkomstig zijn uit verschillende bronnen, worden OLAP-gegevensarchieven doorgaans met veel tragere intervallen vernieuwd, afhankelijk van de bedrijfsbehoeften. Dit betekent dat OLAP-systemen beter geschikt zijn voor strategische zakelijke beslissingen, in plaats van onmiddellijke reacties op wijzigingen. Daarnaast moet een bepaald niveau van gegevensopschoning en indeling worden gepland om de OLAP-gegevensarchieven up-to-date te houden.
  • In tegenstelling tot traditionele, genormaliseerde, relationele tabellen in OLTP-systemen, zijn OLAP-gegevensmodellen meestal multidimensionaal. Dit maakt het moeilijk of onmogelijk om rechtstreeks toe te wijzen aan entiteitsrelaties of objectgeoriënteerde modellen, waarbij elk kenmerk aan één kolom wordt toegewezen. In plaats daarvan gebruiken OLAP-systemen doorgaans een ster- of sneeuwvlokschema in plaats van traditionele normalisatie.

OLAP in Azure

In Azure worden gegevens die zijn opgeslagen in OLTP-systemen, zoals Azure SQL Database, gekopieerd naar het OLAP-systeem, zoals Azure Analysis Services. Hulpprogramma's voor gegevensverkenning en visualisatie, zoals Power BI, Excel en opties van derden, maken verbinding met Analysis Services-servers en bieden gebruikers zeer interactieve en visueel rijke inzichten in de gemodelleerde gegevens. De stroom van gegevens van OLTP-gegevens naar OLAP wordt doorgaans ingedeeld met behulp van SQL Server Integration Services, die kan worden uitgevoerd met behulp van Azure Data Factory.

In Azure voldoen alle volgende gegevensarchieven aan de kernvereisten voor OLAP:

SQL Server Analysis Services (SSAS) biedt OLAP- en data mining-functionaliteit voor business intelligence-toepassingen. U kunt SSAS installeren op lokale servers of hosten binnen een virtuele machine in Azure. Azure Analysis Services is een volledig beheerde service die dezelfde belangrijke functies biedt als SSAS. Azure Analysis Services biedt ondersteuning voor het maken van verbinding met verschillende gegevensbronnen in de cloud en on-premises in uw organisatie.

Geclusterde Columnstore-indexen zijn beschikbaar in SQL Server 2014 en hoger, evenals Azure SQL Database, en zijn ideaal voor OLAP-workloads. Vanaf SQL Server 2016 (inclusief Azure SQL Database) kunt u echter profiteren van hybride transactionele/analyseverwerking (HTAP) door gebruik te maken van updatebare niet-geclusterde columnstore-indexen. Met HTAP kunt u OLTP- en OLAP-verwerking uitvoeren op hetzelfde platform, waardoor u niet meer meerdere kopieën van uw gegevens hoeft op te slaan en geen afzonderlijke OLTP- en OLAP-systemen meer nodig hebt. Zie Aan de slag met Columnstore voor realtime operationele analyses voor meer informatie.

Criteria voor sleutelselectie

Om de keuzes te beperken, beantwoordt u eerst deze vragen:

  • Wilt u een beheerde service in plaats van uw eigen servers beheren?

  • Hebt u beveiligde verificatie nodig met behulp van Microsoft Entra ID?

  • Wilt u realtime analyses uitvoeren? Zo ja, dan kunt u uw opties beperken tot de opties die ondersteuning bieden voor realtime analyses.

    Realtime analyses in deze context zijn van toepassing op één gegevensbron, zoals een ERP-toepassing (Enterprise Resource Planning), die zowel een operationele als een analyseworkload uitvoert. Als u gegevens uit meerdere bronnen wilt integreren of extreme analyseprestaties wilt vereisen met behulp van vooraf geaggregeerde gegevens zoals kubussen, hebt u mogelijk nog steeds een afzonderlijk datawarehouse nodig.

  • Moet u vooraf geaggregeerde gegevens gebruiken, bijvoorbeeld om semantische modellen te bieden die analyses gebruiksvriendelijker maken? Zo ja, kies dan een optie die ondersteuning biedt voor multidimensionale kubussen of semantische modellen in tabelvorm.

    Het bieden van aggregaties kan gebruikers helpen bij het consistent berekenen van gegevensaggregaties. Vooraf geaggregeerde gegevens kunnen ook een grote prestatieverbeteringen opleveren bij het omgaan met meerdere kolommen in veel rijen. Gegevens kunnen vooraf worden geaggregeerd in multidimensionale kubussen of semantische modellen in tabelvorm.

  • Moet u gegevens uit verschillende bronnen integreren, buiten uw OLTP-gegevensarchief? Zo ja, overweeg dan opties die eenvoudig meerdere gegevensbronnen kunnen integreren.

Mogelijkheidsmatrix

De volgende tabellen bevatten een overzicht van de belangrijkste verschillen in mogelijkheden.

Algemene mogelijkheden

Mogelijkheid Azure Analysis Services SQL Server Analysis Services SQL Server met Columnstore-indexen Azure SQL Database met Columnstore-indexen
Is beheerde service Ja No No Ja
Ondersteunt multidimensionale kubussen Nr. Ja No Nr.
Ondersteunt semantische modellen in tabelvorm Ja Ja No Nr.
Eenvoudig meerdere gegevensbronnen integreren Ja Ja Nee 1 Nee 1
Biedt ondersteuning voor realtime analyses Nee No Ja Ja
Vereist proces voor het kopiëren van gegevens uit bron(en) Ja Ja No Nr.
Microsoft Entra-integratie Ja Nr. Nr . 2 Ja

[1] Hoewel SQL Server en Azure SQL Database niet kunnen worden gebruikt om query's uit te voeren en meerdere externe gegevensbronnen te integreren, kunt u nog steeds een pijplijn bouwen die dit voor u doet met behulp van SSIS of Azure Data Factory. SQL Server die wordt gehost in een Azure-VM heeft extra opties, zoals gekoppelde servers en PolyBase. Zie Pijplijnindeling, controlestroom en gegevensverplaatsing voor meer informatie.

[2] Verbinding maken het uitvoeren van SQL Server op een virtuele Azure-machine wordt niet ondersteund met behulp van een Microsoft Entra-account. Gebruik in plaats hiervan een Active Directory-domeinaccount.

Schaalbaarheidsmogelijkheden

Mogelijkheid Azure Analysis Services SQL Server Analysis Services SQL Server met Columnstore-indexen Azure SQL Database met Columnstore-indexen
Redundante regionale servers voor hoge beschikbaarheid Ja No Ja Ja
Ondersteunt uitschalen van query's Ja No Ja Ja
Dynamische schaalbaarheid (omhoog schalen) Ja No Ja Ja

Bijdragers

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Hoofdauteur:

Volgende stappen