Megosztás a következőn keresztül:


olapR (R-csomag az SQL Server Machine Learning Servicesben)

A következőkre vonatkozik: SQL Server 2016 (13.x) és újabb verziók

Az olapR a Microsoft R-csomagja, amelyet az SQL Server Analysis Services OLAP-kockán való MDX-lekérdezésekhez használnak. A függvények nem támogatják az összes MDX-műveletet, de létrehozhat olyan lekérdezéseket, amelyek szeletelnek, darabolnak, részleteznek, összesítenek és forgatnak körül a dimenziókon. A csomag az SQL Server Machine Learning Services és az SQL Server 2016 R Services részét képezi.

Ezt a csomagot egy Analysis Services OLAP-kockához való kapcsolatokhoz használhatja az SQL Server összes támogatott verzióján. A táblázatos modellhez való kapcsolatok jelenleg nem támogatottak.

Csomag betöltése

Az olapR-csomag nincs előre betöltve R-munkamenetbe. Futtassa a következő parancsot a csomag betöltéséhez.

library(olapR)

Csomag verziója

Az aktuális verzió az 1.0.0 az összes csak Windows rendszerű termékben és letöltésben, amely a csomagot tartalmazza.

Rendelkezésre állás és hely

Ez a csomag az alábbi termékekben, valamint az Azure-ban található több virtuálisgép-rendszerképen érhető el. A csomag helye ennek megfelelően változik.

Termék Elhelyezkedés
SQL Server Machine Learning Services (R-integrációval) 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
Adatelemzési virtuális gép (az Azure-ban) C:\Program Files\Microsoft\R Client\R_SERVER\library
SQL Server virtuális gép (az Azure-ban) 1 C:\Program Files\Microsoft SQL Server\MSSQL14. MSSQLSERVER\R_SERVICES\library

Az 1 R-integráció nem kötelező az SQL Serverben. Az olapR-csomag akkor lesz telepítve, amikor hozzáadja a Machine Learning vagy R funkciót a virtuális gép konfigurációja során.

Az olapR használata

Az olapR-kódtár egy egyszerű R stílusú API-t biztosít az MDX-lekérdezések Analysis Services-kockán való létrehozásához és érvényesítéséhez. Az olapR nem biztosít API-kat minden MDX forgatókönyvre, de lefedi a legtöbb felhasználási esetet, beleértve a szeletelés, a kockaelrendezés, a részletezési, az összesítő és a táblaforgatás forgatókönyveket N dimenzióban. Közvetlen MDX-lekérdezést is beírhat az Analysis Servicesbe olyan lekérdezésekhez, amelyek nem hozhatók létre az olapR API-k használatával.

Munkafolyamat az olapR használatához

  1. Töltse be a könyvtárat.
  2. Hozzon létre egy moLAP-kockára mutató kapcsolati sztringet az Analysis Servicesben.
  3. Ellenőrizze, hogy rendelkezik-e olvasási hozzáféréssel a kockához.
  4. Használja a kapcsolati karakterláncot egy összeköttetésen.
  5. Ellenőrizze a kapcsolatot a felfedező funkcióval.
  6. MDX karakterlánc elküldésével vagy lekérdezési struktúra létrehozásával állítson be egy lekérdezést.
  7. Hajtsa végre a lekérdezést, és ellenőrizze az eredményt.

Ha MDX-lekérdezést szeretne végrehajtani egy OLAP-kockán, először létre kell hoznia egy kapcsolati sztringet (olapCnn), és az OlapConnection(connectionString) függvény segítségével kell azt ellenőriznie. A kapcsolati sztringnek adatforrással (például localhost) és szolgáltatóval (MSOLAP) kell rendelkeznie.

A kapcsolat létrejötte után vagy átadhat egy teljesen definiált MDX-lekérdezést, vagy létrehozhatja a lekérdezést az Query() objektum segítségével, beállítva a lekérdezés részleteit a kocka(), tengely(), oszlopok(), szeletelők() és így tovább használatával.

Végül adja át a olapCnn lekérdezést, majd vigye be vagy a executeMD-be, vagy a execute2D-be, hogy egy többdimenziós tömb vagy egy adatkeret térjen vissza.

Fontos

Az olapR használatához az Analysis Services OLE DB-szolgáltatója szükséges. Ha nincs telepítve az SQL Server Analysis Services a számítógépre, töltse le a szolgáltatót a Microsofttól: Az Analysis Services-kapcsolatokhoz használt adatszolgáltatók

Töltse le a SQLServer2016SP2-KB4052908-x64-ENU.exe fájlt a SQL Server 2016 számára.

Függvénylista

Funkció Description
OlapConnection Hozza létre a kapcsolati sztringet az Analysis Services-adatbázis eléréséhez.
Query Hozzon létre egy lekérdezési objektumot, amelyet az Analysis Services-adatbázisban szeretne használni. A lekérdezés részleteinek hozzáadásához használjon kockát, tengelyt, oszlopokat, sorokat, oldalakat, fejezeteket, szeletelőket.
executeMD Lekérdezési objektumot vagy MDX-sztringet vesz fel, és az eredményt többdimenziós tömbként adja vissza.
execute2D Lekérdezési objektumot vagy MDX-sztringet vesz fel, és az eredményt 2D adatkeretként adja vissza.
explore Lehetővé teszi a kocka metaadatainak feltárását.

MDX-fogalmak

Az MDX az adatelemzésre és feltárásra optimalizált struktúrákban tárolt feldolgozott és összesített adatokat tartalmazó többdimenziós OLAP-kockák lekérdezési nyelve. A kockákat üzleti és tudományos alkalmazásokban használják, hogy betekintést nyerjenek az előzményadatok kapcsolataiba. A kockák belsőleg többnyire számszerűsíthető numerikus adatokból állnak, amelyek olyan dimenziók mentén vannak szeletelve, mint a dátum és az idő, a földrajzi hely vagy más entitások. Egy tipikus lekérdezés egy adott régió és időszak értékesítését összesítheti, termékkategória, promóció, értékesítési csatorna stb. szerint szeletelve.

A kockaadatok különböző műveletek használatával érhetők el:

  • Szeletelés – A kocka egy részhalmazának felvétele úgy, hogy kiválaszt egy értéket egy dimenzióhoz, ami egy egy dimenzióval kisebb kockát eredményez.

  • Diktálás – Alkube létrehozása több dimenzióban megadott értéktartomány megadásával.

  • Lehatolás/felfelé – Navigáljon az általánosabbtól a részletesebb adattartományokig, vagy fordítva.

  • Összefoglalás – Egy dimenzió adatainak összegzése.

  • Forgatás – Forgassa el a kockát.

Az MDX-lekérdezések hasonlóak az SQL-lekérdezésekhez, de az OLAP-adatbázisok rugalmassága miatt legfeljebb 128 lekérdezéstengelyt tartalmazhatnak. Az első négy tengely neve egyszerű: oszlopok, sorok, lapok és fejezetek. Gyakori az is, hogy csak két (sorok és oszlopok) elemet használunk, ahogy az alábbi példában is látható.

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]

Ez az MDX-lekérdezés a többdimenziós kocka oktatóanyagából származó AdventureWorks OLAP-kockát használva kiválasztja az internetes értékesítések darabszámát és az értékesítési összeget, és elhelyezi őket az Oszlop tengelyen. A Sor tengelyen a "Product Line" dimenzió összes lehetséges értékét elhelyezi. Ezután a WHERE záradék (amely az MDX-lekérdezések szeletelőtengelye) használatával szűri a lekérdezést, hogy csak az Ausztráliából származó értékesítések számítsanak. A szeletelő tengely nélkül összegyűjtenénk és összesítenénk az értékesítéseket minden országból/régióból.

olapR példák

# 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)

Lásd még

MDX-lekérdezések létrehozása az olapR használatával