Share via


olapR (R-pakket in SQL Server Machine Learning Services)

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

olapR is een R-pakket van Microsoft dat wordt gebruikt voor MDX-query's voor een OLAP-kubus van SQL Server Analysis Services. Functies ondersteunen niet alle MDX-bewerkingen, maar u kunt query's bouwen die segmenten, dobbelstenen, inzoomen, samenvouwen en draaien op dimensies. Het pakket is opgenomen in SQL Server Machine Learning Services en SQL Server 2016 R Services.

U kunt dit pakket gebruiken voor verbindingen met een Analysis Services OLAP-kubus op alle ondersteunde versies van SQL Server. Verbindingen met een tabellair model worden momenteel niet ondersteund.

Softwarepakket laden

Het olapR-pakket wordt niet vooraf geladen in een R-sessie. Voer de volgende opdracht uit om het pakket te laden.

library(olapR)

Versie van het pakket

De huidige versie is 1.0.0 in alle Windows-only producten en downloads die het pakket aanbieden.

Beschikbaarheid en locatie

Dit pakket wordt geleverd in de volgende producten, evenals op verschillende installatiekopieën van virtuele machines in Azure. Pakketlocatie varieert dienovereenkomstig.

Product Locatie
SQL Server Machine Learning Services (met R-integratie) C:\Program Files\Microsoft SQL Server\MSSQL14. MSSQLSERVER\R_SERVICES\library
SQL Server 2016 R Services C:\Program Files\Microsoft SQL Server\MSSQL13. MSSQLSERVER\R_SERVICES\library
Microsoft Machine Learning Server (R Server) C:\Program Files\Microsoft\R_SERVER\library
Microsoft R Client C:\Program Files\Microsoft\R Client\R_SERVER\library
Data Science Virtual Machine (in Azure) C:\Program Files\Microsoft\R Client\R_SERVER\library
Virtuele SQL Server-machine (op Azure) 1 C:\Program Files\Microsoft SQL Server\MSSQL14. MSSQLSERVER\R_SERVICES\library

1 R-integratie is optioneel in SQL Server. Het olapR-pakket wordt geïnstalleerd wanneer u de machine learning- of R-functie toevoegt tijdens de VM-configuratie.

OLAPR gebruiken

De olapR-bibliotheek biedt een eenvoudige R-stijl-API voor het genereren en valideren van MDX-query's voor een Analysis Services-kubus. olapR biedt geen APIs voor alle MDX-scenario's, maar behandelt wel de meeste gebruiksvoorbeelden, zoals snijd-, dobbel-, drilldown-, oprol- en draaiscenario's in N-dimensies. U kunt ook een directe MDX-query invoeren bij Analysis Services voor query's die niet kunnen worden samengesteld met behulp van de olapR-API's.

Werkstroom voor het gebruik van olapR

  1. Laad de bibliotheek.
  2. Maak een verbindingsreeks die verwijst naar een MOLAP-kubus in Analysis Services.
  3. Controleer of u leesrechten hebt op de kubus
  4. Gebruik de connection string bij een verbinding.
  5. Controleer de verbinding met behulp van de functie Verkennen.
  6. Stel een query in door een MDX-querytekenreeks in te dienen of door een querystructuur te bouwen.
  7. Voer de query uit en controleer het resultaat.

Als u een MDX-query wilt uitvoeren op een OLAP-kubus, moet u eerst een verbindingsreeks (olapCnn) maken en valideren met behulp van de functie OlapConnection(connectionString). De verbindingsreeks moet een gegevensbron (zoals localhost) en een provider (MSOLAP) hebben.

Nadat de verbinding tot stand is gebracht, kunt u een volledig gedefinieerde MDX-query doorgeven of kunt u de query samenstellen met behulp van het Query() object, de querydetails instellen met behulp van cube(), as(), columns(), slicers(, enzovoort).

Geef ten slotte de olapCnn en query door in executeMD of execute2D om een multidimensionale matrix of een gegevensframe terug te krijgen.

Belangrijk

olapR vereist de Analysis Services OLE DB-provider. Als u SQL Server Analysis Services niet op uw computer hebt geïnstalleerd, downloadt u de provider van Microsoft: Gegevensproviders die worden gebruikt voor Analysis Services-verbindingen

Download SQLServer2016SP2-KB4052908-x64-ENU.exe voor SQL Server 2016.

Functielijst

Functie Description
OlapConnection Maak de verbindingsreeks voor toegang tot de Analysis Services-database.
Query Maak een queryobject dat moet worden gebruikt in de Analysis Services-database. Gebruik kubus, as, kolommen, rijen, pagina's, hoofdstukken, slicers om details aan de query toe te voegen.
executeMD Neemt een queryobject of een MDX-tekenreeks en retourneert het resultaat als een multidimensionale matrix.
execute2D Neemt een queryobject of een MDX-tekenreeks en retourneert het resultaat als een 2D-gegevensframe.
explore Hiermee kunt u kubusmetagegevens verkennen.

MDX-concepten

MDX is de querytaal voor multidimensionale OLAP-kubussen (MOLAP) die verwerkte en geaggregeerde gegevens bevatten die zijn opgeslagen in structuren die zijn geoptimaliseerd voor gegevensanalyse en -verkenning. Kubussen worden gebruikt in zakelijke en wetenschappelijke toepassingen om inzicht te krijgen in relaties in historische gegevens. Intern bestaan kubussen uit voornamelijk kwantificeerbare numerieke gegevens, die worden gesegmenteerd op dimensies zoals datum en tijd, geografie of andere entiteiten. Een typische query kan de verkoop voor een bepaalde regio en periode samenvouwen, gesegmenteerd op productcategorie, promotie, verkoopkanaal, enzovoort.

Kubusgegevens kunnen worden geopend met behulp van verschillende bewerkingen:

  • Segmentering: het nemen van een subset van de kubus door een waarde voor één dimensie te kiezen, wat resulteert in een kubus die één dimensie kleiner is.

  • Dicing - Een subkubus maken door een bereik van waarden op te geven op meerdere dimensies.

  • Inzoomen/omhoog: navigeer van algemener naar meer gedetailleerde gegevensbereiken of omgekeerd.

  • Roll-up: gegevens op een dimensie samenvatten.

  • Draai - Draai de kubus.

MDX-query's zijn vergelijkbaar met SQL-query's, maar vanwege de flexibiliteit van OLAP-databases kunnen maximaal 128 queryassen worden gebruikt. De eerste vier assen zijn voor het gemak benoemd: kolommen, rijen, pagina's en hoofdstukken. Het is ook gebruikelijk om twee (rijen en kolommen) te gebruiken, zoals wordt weergegeven in het volgende voorbeeld:

SELECT {[Measures].[Internet Sales Count], [Measures].[Internet Sales-Sales Amount]} ON COLUMNS, 
{[Product].[Product Line].[Product Line].MEMBERS} ON ROWS
FROM [Analysis Services Tutorial]
WHERE [Sales Territory].[Sales Territory Country].[Australia]

Met behulp van een AdventureWorks OLAP-kubus uit de multidimensionale kubuszelfstudie, selecteert deze MDX-query het aantal internetverkopen en het verkoopbedrag en plaatst deze op de kolom-as. Op de rij-as worden alle mogelijke waarden van de dimensie Productlijn weergegeven. Vervolgens wordt met behulp van de WHERE-component (de sliceras in MDX-query's) de query gefilterd, zodat alleen de verkoop uit Australië van belang is. Zonder de sliceras zouden we de verkoop uit alle landen/regio's samenvoegen en samenvatten.

olapR-voorbeelden

# load the library
library(olapR)

# Connect to a local SSAS default instance and the Analysis Services Tutorial database.
# For named instances, use server-name\\instancename, escaping the instance name delimiter.
# For databases containing multiple cubes, use the cube= parameter to specify which one to use.
cnnstr <- "Data Source=localhost; Provider=MSOLAP; initial catalog=Analysis Services Tutorial"
olapCnn <- OlapConnection(cnnstr)

# Approach 1 - build the mdx query in R
qry <- Query()

cube(qry) <- "[Analysis Services Tutorial]"
columns(qry) <- c("[Measures].[Internet Sales Count]", "[Measures].[Internet Sales-Sales Amount]")
rows(qry) <- c("[Product].[Product Line].[Product Line].MEMBERS") 
slicers(qry) <- c("[Sales Territory].[Sales Territory Country].[Australia]")

result1 <- executeMD(olapCnn, qry)

# Approach 2 - Submit a fully formed MDX query
mdx <- "SELECT {[Measures].[Internet Sales Count], [Measures].[Internet Sales-Sales Amount]} ON AXIS(0), {[Product].[Product Line].[Product Line].MEMBERS} ON AXIS(1) FROM [Analysis Services Tutorial] WHERE [Sales Territory].[Sales Territory Country].[Australia]"

result2 <- execute2D(olapCnn, mdx)

Zie ook

MDX-query's maken met olapR