Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
O olapR é um pacote de R da Microsoft usado para consultas MDX em um cubo OLAP do SQL Server Analysis Services. As funções não oferecem suporte a todas as operações MDX, mas você pode criar consultas que segmentam e reorganizam dados, fazem detalhamento, consolidação e pivotamento nas dimensões. O pacote está incluído nos Serviços de Machine Learning do SQL Server e no SQL Server 2016 R Services.
Você pode usar esse pacote em conexões com um cubo OLAP do Analysis Services em todas as versões compatíveis do SQL Server. Não há suporte para conexões a um modelo de tabela no momento.
Carregar pacote
O pacote olapR não é pré-carregado em uma sessão de R. Execute o comando a seguir para carregar o pacote.
library(olapR)
Versão do pacote
A versão atual é a 1.0.0 em todos os produtos e downloads somente do Windows que fornecem o pacote.
Disponibilidade e localização
Esse pacote é fornecido nos seguintes produtos, bem como em várias imagens de máquina virtual no Azure. A localização do pacote varia de acordo com isso.
| Produto | Localização |
|---|---|
| Serviços de Machine Learning do SQL Server (com integração de R) | C:\Arquivos de Programas\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\library |
| SQL Server 2016 R Services | C:\Arquivos de Programas\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\library |
| Microsoft Machine Learning Servidor (Servidor R) | C:\Arquivos de Programas\Microsoft\R_SERVER\library |
| Microsoft R Client | C:\Arquivos de Programas\Microsoft\R Client\R_SERVER\library |
| Máquina Virtual de Ciência de Dados (no Azure) | C:\Arquivos de Programas\Microsoft\R Client\R_SERVER\library |
| Máquina Virtual do SQL Server (no Azure) 1 | C:\Arquivos de Programas\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\library |
1 A integração do R é opcional no SQL Server. O pacote olapR será instalado quando você adicionar o Machine Learning ou o recurso de R durante a configuração da VM.
Como usar o olapR
A biblioteca olapR fornece uma API de estilo R simples para gerar e validar consultas MDX em relação a um cubo do Analysis Services. O olapR não fornece APIs para todos os cenários de MDX, mas cobre os casos de uso mais comuns, incluindo cenários de slice, dice, drill-down, roll-up e pivot em N dimensões. Você também pode inserir uma consulta MDX direta para o Analysis Services para consultas que não podem ser construídas usando as APIs olapR.
Fluxo de trabalho para usar o olapR
- Carregue a biblioteca.
- Crie uma cadeia de conexão apontando para um cubo MOLAP no Analysis Services.
- Verifique se você tem acesso de leitura no cubo
- Use a string de conexão em uma conexão.
- Verifique a conexão usando a função explore.
- Configure uma consulta enviando uma cadeia de caracteres de consulta MDX ou criando uma estrutura de consulta.
- Execute a consulta e verifique o resultado.
Para executar uma consulta MDX em um Cubo OLAP, primeiro você precisa criar uma cadeia de conexão (olapCnn) e validar usando a função OlapConnection(connectionString). A cadeia de conexão deve ter uma Fonte de Dados (como localhost) e um Provedor (MSOLAP).
Depois que a conexão for estabelecida, você poderá transmitir uma consulta MDX totalmente definida ou construir a consulta usando o objeto Query(), definindo os detalhes da consulta usando cube(), axis(), columns(), slicers() e assim por diante.
Por fim, transmita olapCnn e a consulta para executeMD ou execute2D para obter uma matriz multidimensional ou uma estrutura de dados de volta.
Importante
olapR requer o provedor OLE DB do Analysis Services. Se você não tiver o SQL Server Analysis Services instalado no seu computador, baixe o provedor da Microsoft: Provedores de dados usados para conexões do Analysis Services
Baixe SQLServer2016SP2-KB4052908-x64-ENU.exe do SQL Server 2016.
Lista de funções
| Função | Descrição |
|---|---|
OlapConnection |
Crie a cadeia de conexão para acessar o banco de dados do Analysis Services. |
Query |
Construa um objeto Query a ser usado no banco de dados do Analysis Services. Use o cubo, o eixo, as colunas, as linhas, as páginas, os capítulos e os segmentadores para adicionar detalhes à consulta. |
executeMD |
Usa um objeto Query ou uma cadeia de caracteres MDX e retorna o resultado como uma matriz multidimensional. |
execute2D |
Usa um objeto Query ou uma cadeia de caracteres MDX e retorna o resultado como uma estrutura de dados 2D. |
explore |
Permite a exploração de metadados do cubo. |
Conceitos MDX
MDX é a linguagem de consulta para cubos MOLAP (OLAP multidimensionais) 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 aplicativos empresariais e científicos para extrair insights sobre relações em dados históricos. Internamente, os cubos consistem em grande parte de dados numéricos quantificáveis, que são divididos em dimensões como data e hora, geografia ou outras entidades. Uma consulta típica pode acumular vendas para uma determinada região e período de tempo, divididas por categoria de produto, promoção, canal de vendas e assim por diante.
Os dados do cubo podem ser acessados usando várias operações:
Fatiamento – Obtenção de um subconjunto do cubo ao escolher um valor para uma dimensão, resultando em um cubo com uma dimensão a menos.
Segmentação – crie um subcubo, especificando um intervalo de valores em várias dimensões.
Drill-Down/Up – Navegue dos intervalos de dados mais gerais para os mais detalhados, ou vice-versa.
Consolidação - Resuma os dados ao longo de uma dimensão.
Pivô - Gire o cubo.
As consultas MDX são semelhantes a consultas SQL, mas, devido à flexibilidade dos bancos de dados OLAP, podem conter até 128 eixos de consulta. Os quatro primeiros eixos são nomeados para conveniência: Colunas, Linhas, Páginas e Capítulos. Também é comum usar apenas dois (Linhas e Colunas), conforme mostrado no exemplo a seguir:
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 do AdventureWorks do tutorial de cubo multidimensional, esta consulta MDX seleciona a contagem de vendas pela internet e o valor das vendas e os posiciona no eixo de colunas. No eixo Linha, ela coloca todos os valores possíveis da dimensão "Linha de produto". Em seguida, usando a cláusula WHERE (que é o eixo de segmentação em consultas MDX), ela filtra a consulta para que apenas as vendas da Austrália sejam importantes. Sem o eixo de segmentação, iríamos acumular e resumir as vendas de todos os países/regiões.
Exemplos 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)