OlapR (paquete de R en SQL Server Machine Learning Services)
Se aplica a: SQL Server 2016 (13.x) y versiones posteriores
OlapR es un paquete de R de Microsoft que se usa para las consultas MDX en un cubo OLAP de SQL Server Analysis Services. Las funciones no admiten todas las operaciones MDX, pero puede crear consultas que segmenten, desmenucen, obtengan detalles, acumulen y dinamicen en las dimensiones. El paquete se incluye en SQL Server Machine Learning Services y en SQL Server 2016 R Services.
Puede usar este paquete en las conexiones a un cubo OLAP de Analysis Services en todas las versiones compatibles de SQL Server. En este momento no se admiten las conexiones a un modelo tabular.
Carga de paquete
El paquete olapR no se ha cargado previamente en una sesión de R. Ejecute el siguiente comando para cargar el paquete.
library(olapR)
Versión del paquete
La versión actual es 1.0.0 en todos los productos solo de Windows y descargas que proporcionan el paquete.
Disponibilidad y ubicación
Este paquete se proporciona en los siguientes productos, así como en varias imágenes de máquina virtual en Azure. La ubicación del paquete varía en consecuencia.
Producto | Location |
---|---|
SQL Server Machine Learning Services (con la integración de R) | C:\Archivos de programa\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\library |
SQL Server 2016 R Services | C:\Archivos de programa\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\library |
Microsoft Machine Learning Server (R Server) | C:\Archivos de programa\Microsoft\ R_SERVER \library |
Cliente de Microsoft R | C:\Archivos de programa\Microsoft\R Client\R_SERVER\library |
Data Science Virtual Machine (en Azure) | C:\Archivos de programa\Microsoft\R Client\R_SERVER\library |
SQL Server Virtual Machine (en Azure) 1 | C:\Archivos de programa\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\library |
1 integración de R es opcional en SQL Server. El paquete olapr se instalará cuando agregue la característica Machine Learning o de R durante la configuración de la máquina virtual.
Uso de olapR
La biblioteca olapR proporciona una API de estilo R sencilla para generar y validar consultas MDX en un cubo de Analysis Services. olapR no proporciona API para todos los escenarios MDX, pero sí abarca la mayoría de los casos de uso, incluidos los escenarios de segmentación, desglose, obtención de detalles, acumulación y dinamización en dimensiones N. También puede especificar una consulta MDX directa para Analysis Services en el caso de consultas que no se pueden construir mediante las API de olapR.
Flujo de trabajo para usar olapR
- Cargue la biblioteca.
- Cree una cadena de conexión que apunte a un cubo MOLAP en Analysis Services.
- Compruebe que tiene acceso de lectura en el cubo.
- Use la cadena de conexión en una conexión.
- Compruebe la conexión mediante la función de exploración.
- Configure una consulta enviando una cadena de consulta MDX o creando una estructura de consulta.
- Ejecute la consulta y compruebe el resultado.
Para ejecutar una consulta MDX en un cubo OLAP, primero debe crear una cadena de conexión (olapCnn
) y validarla mediante la función OlapConnection(connectionString)
. La cadena de conexión debe tener un origen de datos (como localhost) y un proveedor (MSOLAP).
Una vez establecida la conexión, puede pasar una consulta MDX totalmente definida, o bien puede construir la consulta mediante el objeto Query()
, estableciendo los detalles de la consulta mediante cube(), axis(), columns(), slicers(), etc.
Por último, pase olapCnn
y la consulta a executeMD
o execute2D
para obtener una matriz multidimensional o una trama de datos.
Importante
olapR requiere el proveedor OLE DB de Analysis Services. Si no tiene instalado SQL Server Analysis Services en el equipo, descargue el proveedor de Microsoft: Proveedores de datos usados para las conexiones de Analysis Services.
La versión exacta que debe instalar para SQL Server 2016 está aquí.
Lista de funciones
Función | Descripción |
---|---|
OlapConnection |
Cree la cadena de conexión para acceder a la base de datos de Analysis Services. |
Query |
Construya un objeto Query que se usará en la base de datos de Analysis Services. Use cubos, ejes, columnas, filas, páginas, capítulos y segmentaciones para agregar detalles a la consulta. |
executeMD |
Toma un objeto Query o una cadena MDX y devuelve el resultado como una matriz multidimensional. |
execute2D |
Toma un objeto Query o una cadena MDX y devuelve el resultado como una trama de datos 2D. |
explore |
Permite la exploración de los metadatos de cubo. |
Conceptos de MDX
MDX es el lenguaje de consulta para los cubos OLAP multidimensionales (MOLAP) que contienen datos procesados y agregados almacenados en estructuras optimizadas para el análisis y la exploración de datos. Los cubos se usan en aplicaciones empresariales y científicas para extraer información sobre las relaciones en datos históricos. Internamente, los cubos constan principalmente de datos numéricos cuantificables, que se segmentan a lo largo de dimensiones como fecha y hora, geografía u otras entidades. Una consulta típica puede incluir las ventas de una región y un periodo de tiempo determinados, segmentadas por categoría de producto, promoción, canal de venta, etc.
Se puede acceder a los datos del cubo mediante varias operaciones:
Segmentación: tomar un subconjunto del cubo mediante la selección de un valor para una dimensión, lo que da lugar a un cubo que es una dimensión más pequeña.
Desglose: crear un subcubo mediante la especificación de un intervalo de valores en varias dimensiones.
Exploración en profundidad u obtención de detalles: ir de intervalos de datos más generales a intervalos de datos más detallados, o viceversa.
Acumulación: resumir los datos en una dimensión.
Dinamización: girar el cubo.
Las consultas MDX son similares a las consultas SQL pero, debido a la flexibilidad de las bases de datos OLAP, pueden contener hasta 128 ejes de consulta. Los cuatro primeros ejes se denominan por motivos prácticos Columnas, Filas, Páginas y Capítulos. También es habitual usar solo dos (Filas y Columnas), como se muestra en el ejemplo siguiente:
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]
Utilizando un cubo OLAP de AdventureWorks del tutorial de cubos multidimensionales, esta consulta MDX selecciona el recuento de ventas en Internet y el importe de las ventas y los coloca en el eje Columnas. En el eje Fila se colocan todos los valores posibles de la dimensión "Línea de productos". A continuación, mediante la cláusula WHERE (que es el eje de segmentación en las consultas MDX), filtra la consulta para que solo se tomen en cuenta las ventas de Australia. Sin el eje de segmentación de datos, se incluyen y resumen las ventas de todos los países y regiones.
Ejemplos de olapR
# 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)