Delen via


Gegevens uit OLAP-kubussen gebruiken in R

Van toepassing op: SQL Server 2016 (13.x) en latere versies

Het olapR-pakket is een R-pakket in SQL Server Machine Learning Services waarmee u MDX-query's kunt uitvoeren om gegevens op te halen uit OLAP-kubussen. Met dit pakket hoeft u geen gekoppelde servers te maken of afgevlakte rijensets op te schonen; U kunt OLAP-gegevens rechtstreeks uit R ophalen.

In dit artikel wordt de API beschreven, samen met een overzicht van OLAP- en MDX voor R-gebruikers die mogelijk niet bekend zijn met multidimensionale kubusdatabases.

Belangrijk

Een exemplaar van Analysis Services kan conventionele multidimensionale kubussen of tabellaire modellen ondersteunen, maar een exemplaar kan geen ondersteuning bieden voor beide typen modellen. Controleer daarom voordat u een MDX-query maakt op basis van een kubus of het Analysis Services-exemplaar multidimensionale modellen bevat.

Wat is een OLAP-kubus?

OLAP is een afkorting voor Online Analytical Processing. OLAP-oplossingen worden veel gebruikt voor het vastleggen en opslaan van kritieke bedrijfsgegevens in de loop van de tijd. OLAP-gegevens worden gebruikt voor zakelijke analyses door verschillende hulpprogramma's, dashboards en visualisaties. Zie Online analytische verwerking voor meer informatie.

Microsoft biedt Analysis Services, waarmee u OLAP-gegevens kunt ontwerpen, implementeren en opvragen in de vorm van kubussen of tabellaire modellen. Een kubus is een multidimensionale database. Dimensies zijn vergelijkbaar met facetten van de gegevens of factoren in R: u gebruikt dimensies om een bepaalde subset van gegevens te identificeren die u wilt samenvatten of analyseren. Tijd is bijvoorbeeld een belangrijke dimensie, zozeer dat veel OLAP-oplossingen standaard meerdere kalenders bevatten die standaard zijn gedefinieerd, om te gebruiken bij het segmenteren en samenvatten van gegevens.

Om prestatieredenen berekent een OLAP-database vaak vooraf samenvattingen (of aggregaties) en slaat deze vervolgens op voor een snellere ophaaltijd. Samenvattingen zijn gebaseerd op metingen, die formules vertegenwoordigen die kunnen worden toegepast op numerieke gegevens. U gebruikt de dimensies om een subset met gegevens te definiëren en vervolgens de meting over die gegevens te berekenen. U gebruikt bijvoorbeeld een meting om de totale verkoop voor een bepaalde productlijn over meerdere kwartalen minus belastingen te berekenen, om de gemiddelde verzendkosten voor een bepaalde leverancier, de cumulatieve lonen van het jaar tot heden, enzovoort te rapporteren.

MDX, kort voor multidimensionale expressies, is de taal die wordt gebruikt voor het uitvoeren van query's op kubussen. Een MDX-query bevat doorgaans een gegevensdefinitie die een of meer dimensies bevat, en ten minste één meting, hoewel MDX-query's aanzienlijk complexer kunnen worden en rollende vensters, cumulatieve gemiddelden, sommen, rangschikkingen of percentielen kunnen bevatten.

Hier volgen enkele andere termen die nuttig kunnen zijn bij het bouwen van MDX-query's:

  • Doorsnijden neemt een subset van de kubus met behulp van waarden uit één dimensie.

  • Met Dicing wordt een subkubus gemaakt door een bereik van waarden op te geven voor meerdere dimensies.

  • Inzoomen gaat van een samenvatting naar details.

  • Inzoomen wordt verplaatst van details naar een hoger aggregatieniveau.

  • Roll-up vat de gegevens op een dimensie samen.

  • Pivot de kubus of de gegevensselectie roteren.

OLAPR gebruiken om MDX-query's te maken

Het volgende artikel bevat gedetailleerde voorbeelden van de syntaxis voor het maken of uitvoeren van query's op een kubus:

olapR-API

Het olapR-pakket ondersteunt twee methoden voor het maken van MDX-query's:

  • Gebruik de MDX-opbouwfunctie. Gebruik de R-functies in het pakket om een eenvoudige MDX-query te genereren door een kubus te kiezen en vervolgens assen en slicers in te stellen. Dit is een eenvoudige manier om een geldige MDX-query te maken als u geen toegang hebt tot traditionele OLAP-hulpprogramma's of geen diepgaande kennis van de MDX-taal hebt.

    Niet alle MDX-query's kunnen worden gemaakt met behulp van deze methode, omdat MDX complex kan zijn. Deze API ondersteunt echter de meeste veelgebruikte en nuttige bewerkingen, waaronder segmenten, dobbelstenen, inzoomen, samenvouwen en draaien in N-dimensies.

  • Copy-paste goed gevormde MDX. Handmatig een MDX-query maken en plakken. Deze optie is het beste als u bestaande MDX-query's hebt die u opnieuw wilt gebruiken, of als de query die u wilt bouwen te complex is voor olapR .

    Sla de queryreeks op nadat u uw MDX hebt gemaakt met behulp van een clienthulpprogramma, zoals SSMS of Excel. Geef deze MDX-tekenreeks op als argument voor de SSAS-queryhandler in het olapR-pakket . De provider verzendt de query naar de opgegeven Analysis Services-server en stuurt de resultaten terug naar R.

Zie MDX-query's maken met R voor voorbeelden van het bouwen van een MDX-query of het uitvoeren van een bestaande MDX-query.

Bekende problemen

In deze sectie vindt u enkele bekende problemen en veelgestelde vragen over het olapR-pakket .

Ondersteuning voor tabellaire modellen

Als u verbinding maakt met een exemplaar van Analysis Services dat een tabellair model bevat, rapporteert de explore functie succes met een retourwaarde WAAR. Tabellaire modelobjecten verschillen echter van multidimensionale objecten en de structuur van een multidimensionale database verschilt van die van een tabellair model.

Hoewel DAX (Data Analysis Expressions) de taal is die doorgaans wordt gebruikt met tabellaire modellen, kunt u geldige MDX-query's ontwerpen voor een tabellair model, als u al bekend bent met MDX. U kunt de olapR-constructors niet gebruiken om geldige MDX-query's te bouwen op basis van een tabellair model.

MDX-query's zijn echter een inefficiënte manier om gegevens op te halen uit een tabellair model. Als u gegevens wilt ophalen uit een tabellair model voor gebruik in R, kunt u in plaats daarvan de volgende methoden overwegen:

  • Schakel DirectQuery in op het model en voeg de server toe als een gekoppelde server in SQL Server.
  • Als het tabellaire model is gebouwd op een relationele datamart, haalt u de gegevens rechtstreeks uit de bron op.

Bepalen of een exemplaar tabellaire of multidimensionale modellen bevat

Eén Analysis Services-exemplaar kan slechts één type model bevatten, maar kan meerdere modellen bevatten. De reden hiervoor is dat er fundamentele verschillen zijn tussen tabellaire modellen en multidimensionale modellen die bepalen hoe gegevens worden opgeslagen en verwerkt. Tabellaire modellen worden bijvoorbeeld opgeslagen in het geheugen en maken gebruik van columnstore-indexen om zeer snelle berekeningen uit te voeren. In multidimensionale modellen worden gegevens opgeslagen op schijf en aggregaties worden vooraf gedefinieerd en opgehaald met behulp van MDX-query's.

Als u verbinding maakt met Analysis Services met behulp van een client zoals SQL Server Management Studio, kunt u in één oogopslag zien welk modeltype wordt ondersteund door naar het pictogram voor de database te kijken.

U kunt ook de servereigenschappen weergeven en er query's op uitvoeren om te bepalen welk type model het exemplaar ondersteunt. De eigenschap Servermodus ondersteunt twee waarden: multidimensionaal of tabellair.

Zie het volgende artikel voor algemene informatie over de twee typen modellen:

Zie het volgende artikel voor informatie over het uitvoeren van query's op servereigenschappen:

Terugschrijven wordt niet ondersteund

Het is niet mogelijk om de resultaten van aangepaste R-berekeningen terug te schrijven naar de kubus.

In het algemeen worden, zelfs wanneer een kubus is ingeschakeld voor write-back, alleen beperkte bewerkingen ondersteund en is er mogelijk extra configuratie vereist. We raden u aan MDX te gebruiken voor dergelijke bewerkingen.

Langlopende MDX-queries blokkeren cubeverwerking

Hoewel het olapR-pakket alleen leesbewerkingen uitvoert, kunnen langlopende MDX-query's vergrendelingen maken die verhinderen dat de kubus wordt verwerkt. Test uw MDX-query's altijd van tevoren, zodat u weet hoeveel gegevens moeten worden geretourneerd.

Als u verbinding probeert te maken met een kubus die is vergrendeld, krijgt u mogelijk een foutmelding dat het SQL Server-datawarehouse niet kan worden bereikt. Voorgestelde oplossingen zijn het inschakelen van externe verbindingen, het controleren van de server- of exemplaarnaam, enzovoort; Houd echter rekening met de mogelijkheid van een eerdere open verbinding.

Een SSAS-beheerder kan vergrendelingsproblemen voorkomen door geopende sessies te identificeren en te beëindigen. Een time-outeigenschap kan ook worden toegepast op MDX-query's op serverniveau om beëindiging van alle langlopende query's af te dwingen.

Resources

Als u nieuw bent met OLAP of MDX-query's, raadpleeg dan deze Wikipedia-artikelen: