Partilhar via


olapR (pacote R em SQL Server Machine Learning Services)

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores

OlapR é um pacote R da Microsoft utilizado para consultas MDX contra um cubo OLAP do SQL Server Analysis Services. As funções não suportam todas as operações MDX, mas podes construir consultas que segmentam, dividem, detalham, agregam e fazem pivot sobre as dimensões. O pacote está incluído no SQL Server Machine Learning Services e no SQL Server 2016 R Services.

Pode usar este pacote em ligações a um cubo OLAP dos Serviços de Análise em todas as versões suportadas do SQL Server. Ligações a um modelo tabular não são suportadas neste momento.

Carregar pacote

O pacote olapR não está pré-carregado numa sessão R. Execute o seguinte comando para carregar o pacote.

library(olapR)

Versão do pacote

A versão atual é a 1.0.0 em todos os produtos e downloads exclusivos para Windows que fornecem o pacote.

Disponibilidade e localização

Este pacote é fornecido nos seguintes produtos, bem como em várias imagens de máquinas virtuais no Azure. A localização da encomenda varia em conformidade.

Produto Localização
Serviços de Aprendizagem Automática SQL Server (com integração R) 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
Servidor de Aprendizagem Automática Microsoft (Servidor R) C:\Program Files\Microsoft\R_SERVER\library
Cliente Microsoft R C:\Program Files\Microsoft\R Client\R_SERVER\library
Data Science Virtual Machine (no Azure) C:\Program Files\Microsoft\R Client\R_SERVER\library
SQL Server Máquina Virtual (no Azure) 1 C:\Program Files\Microsoft SQL Server\MSSQL14. MSSQLSERVER\R_SERVICES\library

A integração com 1 R é opcional no SQL Server. O pacote olapR será instalado quando adicionares a funcionalidade de Aprendizagem Automática ou R durante a configuração da VM.

Como usar o olapR

A biblioteca olapR fornece uma API simples ao estilo R para gerar e validar consultas MDX contra um cubo de Serviços de Análise. O olapR não fornece APIs para todos os cenários MDX, mas cobre a maioria dos casos de uso, incluindo cenários de slice, dice, drilldown, rollup e pivot em N dimensões. Também pode introduzir uma consulta MDX direta para os Serviços de Análise para consultas que não podem ser construídas usando as APIs do olapR.

Fluxo de trabalho para usar olapR

  1. Carrega a biblioteca.
  2. Crie uma cadeia de ligação apontando para um cubo MOLAP nos Serviços de Análise.
  3. Verifique se tem acesso de leitura no cubo
  4. Utilize a cadeia de conexão numa conexão.
  5. Verifica a ligação usando a função explorar.
  6. Configure uma consulta submetendo uma string de consulta MDX ou construindo uma estrutura de consulta.
  7. Execute a consulta e verifique o resultado.

Para executar uma consulta MDX num Cubo OLAP, é necessário primeiro criar uma cadeia de ligação (olapCnn) e validar usando a função OlapConnection(connectionString). A cadeia de ligação deve ter uma Fonte de Dados (como localhost) e um Fornecedor (MSOLAP).

Depois de estabelecida a ligação, pode passar uma consulta MDX totalmente definida, ou pode construir a consulta usando o Query() objeto, definindo os detalhes da consulta usando cube(), axis(), columns(), slicers(), e assim por diante.

Finalmente, passe o olapCnn e a consulta para o executeMD ou execute2D para obter um array multidimensional ou uma estrutura de dados de volta.

Importante

O olapR requer o fornecedor OLE DB dos Serviços de Análise. Se não tiver o SQL Server Analysis Services instalado no seu computador, descarregue o fornecedor da Microsoft: Fornecedores de dados usados para ligações aos Serviços de Análise

DescarregueSQLServer2016SP2-KB4052908-x64-ENU.exe para SQL Server 2016.

Lista de funções

Função Description
OlapConnection Crie a cadeia de ligação para aceder à Base de Dados de Serviços de Análise.
Query Construa um objeto de Consulta para usar na Base de Dados de Serviços de Análise. Usar cubo, eixo, colunas, linhas, páginas, capítulos, segmentadores para adicionar detalhes à consulta.
executeMD Pega num objeto Query ou numa string MDX e devolve o resultado como um array multidimensional.
execute2D Pega num objeto Query ou numa string MDX e devolve o resultado como um frame de dados 2D.
explore Permite a exploração dos metadados do cubo.

Conceitos MDX

MDX é a linguagem de consulta para cubos OLAP multidimensionais (MOLAP) que contêm dados processados e agregados armazenados em estruturas otimizadas para análise e exploração de dados. Os cubos são usados em aplicações empresariais e científicas para extrair insights sobre relações em dados históricos. Internamente, os cubos consistem maioritariamente em dados numéricos quantificáveis, que são segmentados ao longo de dimensões como data e hora, geografia ou outras entidades. Uma consulta típica pode agrupar vendas para uma determinada região e período temporal, segmentada por categoria de produto, promoção, canal de vendas, e assim por diante.

Os dados do cubo podem ser acedidos através de várias operações:

  • Fatiamento - Tomar um subconjunto do cubo escolhendo um valor para uma dimensão, resultando num cubo que é uma dimensão menor.

  • Dados - Criar um subcubo especificando um intervalo de valores em múltiplas dimensões.

  • Aprofundar/Subir - Navegar de intervalos de dados mais gerais para mais detalhados, ou vice-versa.

  • Enrolamento - Resume os dados numa dimensão.

  • Pivotar - Girar o cubo.

As consultas MDX são semelhantes às consultas SQL mas, devido à flexibilidade das bases de dados OLAP, podem conter até 128 eixos de consulta. Os primeiros quatro eixos são nomeados por conveniência: Colunas, Linhas, Páginas e Capítulos. Também é comum usar apenas dois (Linhas e Colunas), como mostrado no seguinte exemplo:

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]

Usando um cubo OLAP AdventureWorks do tutorial de cubos multidimensionais, esta consulta MDX seleciona o número de vendas na internet e valor de vendas, colocando-os no eixo Coluna. No eixo das Linhas, coloca todos os valores possíveis da dimensão "Linha de Produtos". Depois, usando a cláusula WHERE (que é o eixo do slicer nas consultas MDX), filtra a consulta para que somente as vendas originárias da Austrália sejam consideradas. Sem o eixo slicer, juntaríamos e resumiríamos as vendas de todos os países/regiões.

Exemplos do 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)

Consulte também

Como criar consultas MDX usando olapR