Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
- Töltse be a könyvtárat.
- Hozzon létre egy moLAP-kockára mutató kapcsolati sztringet az Analysis Servicesben.
- Ellenőrizze, hogy rendelkezik-e olvasási hozzáféréssel a kockához.
- Használja a kapcsolati karakterláncot egy összeköttetésen.
- Ellenőrizze a kapcsolatot a felfedező funkcióval.
- MDX karakterlánc elküldésével vagy lekérdezési struktúra létrehozásával állítson be egy lekérdezést.
- 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)