O processamento analítico on-line (OLAP) é uma tecnologia que organiza grandes bancos de dados de negócios e suporta análises complexas. Ele pode ser usado para executar consultas analíticas complexas sem afetar negativamente os sistemas transacionais.
Os bancos de dados que uma empresa usa para armazenar todas as suas transações e registros são chamados de bancos de dados OLTP (processamento de transações online). Esses bancos de dados geralmente têm registros que são inseridos um de cada vez. Muitas vezes eles contêm uma grande quantidade de informações que são valiosas para a organização. Os bancos de dados que são usados para OLTP, no entanto, não foram projetados para análise. Portanto, recuperar respostas dessas bases de dados é dispendioso em termos de tempo e esforço. Os sistemas OLAP foram projetados para ajudar a extrair essas informações de business intelligence dos dados de uma forma de alto desempenho. Isso ocorre porque os bancos de dados OLAP são otimizados para cargas de trabalho de leitura pesada e baixa gravação.
Modelação semântica
Um modelo de dados semânticos é um modelo conceitual que descreve o significado dos elementos de dados que ele contém. As organizações geralmente têm seus próprios termos para as coisas, às vezes com sinônimos, ou até mesmo significados diferentes para o mesmo termo. Por exemplo, um banco de dados de inventário pode rastrear um equipamento com um ID de ativo e um número de série, mas um banco de dados de vendas pode se referir ao número de série como o ID do ativo. Não há uma maneira simples de relacionar esses valores sem um modelo que descreva a relação.
A modelagem semântica fornece um nível de abstração sobre o esquema de banco de dados, para que os usuários não precisem conhecer as estruturas de dados subjacentes. Isso torna mais fácil para os usuários finais consultar dados sem executar agregações e junções sobre o esquema subjacente. Além disso, geralmente as colunas são renomeadas para nomes mais amigáveis, para que o contexto e o significado dos dados sejam mais óbvios.
A modelagem semântica é predominantemente usada para cenários de leitura pesada, como análise e business intelligence (OLAP), em oposição ao OLTP (processamento de dados transacionais com muita gravação). Isto é principalmente devido à natureza de uma camada semântica típica:
- Os comportamentos de agregação são definidos para que as ferramentas de relatório os exibam corretamente.
- A lógica de negócios e os cálculos são definidos.
- Estão incluídos cálculos orientados para o tempo.
- Os dados são frequentemente integrados a partir de várias fontes.
Tradicionalmente, a camada semântica é colocada sobre um data warehouse por esses motivos.
Existem dois tipos principais de modelos semânticos:
- Tabela. Usa construções de modelagem relacional (modelo, tabelas, colunas). Internamente, os metadados são herdados de construções de modelagem OLAP (cubos, dimensões, medidas). Código e script usam metadados OLAP.
- Multidimensional. Usa construções tradicionais de modelagem OLAP (cubos, dimensões, medidas).
Serviço do Azure relevante:
Exemplo de caso de uso
Uma organização tem dados armazenados em um grande banco de dados. Ela quer disponibilizar esses dados para usuários corporativos e clientes criarem seus próprios relatórios e fazerem algumas análises. Uma opção é apenas dar a esses usuários acesso direto ao banco de dados. No entanto, há várias desvantagens em fazer isso, incluindo o gerenciamento de segurança e o controle de acesso. Além disso, o design do banco de dados, incluindo os nomes de tabelas e colunas, pode ser difícil para um usuário entender. Os usuários precisariam saber quais tabelas consultar, como essas tabelas devem ser unidas e outra lógica de negócios que deve ser aplicada para obter os resultados corretos. Os usuários também precisariam conhecer uma linguagem de consulta como SQL até mesmo para começar. Normalmente, isso leva vários usuários a relatar as mesmas métricas, mas com resultados diferentes.
Outra opção é encapsular todas as informações que os usuários precisam em um modelo semântico. O modelo semântico pode ser consultado mais facilmente pelos usuários com uma ferramenta de relatório de sua escolha. Os dados fornecidos pelo modelo semântico são extraídos de um data warehouse, garantindo que todos os usuários vejam uma única versão da verdade. O modelo semântico também fornece nomes amigáveis de tabelas e colunas, relações entre tabelas, descrições, cálculos e segurança em nível de linha.
Traços típicos da modelagem semântica
A modelagem semântica e o processamento analítico tendem a ter as seguintes características:
Requisito | Description |
---|---|
Esquema | Esquema na gravação, fortemente imposto |
Usa transações | Não |
Estratégia de bloqueio | Nenhuma |
Atualizável | Não (normalmente requer recomputação do cubo) |
Anexável | Não (normalmente requer recomputação do cubo) |
Carga de trabalho | Leituras pesadas, somente leitura |
Indexação | Indexação multidimensional |
Tamanho do datum | Pequenas e médias empresas |
Modelo | Multidimensional |
Forma de dados: | Esquema de cubo ou estrela/floco de neve |
Flexibilidade de consulta | Altamente flexível |
Dimensionamento: | Grande (10s-100s GBs) |
Quando utilizar esta solução
Considere o OLAP nos seguintes cenários:
- Você precisa executar consultas analíticas e ad hoc complexas rapidamente, sem afetar negativamente seus sistemas OLTP.
- Você deseja fornecer aos usuários corporativos uma maneira simples de gerar relatórios a partir de seus dados
- Você deseja fornecer uma série de agregações que permitirão que os usuários obtenham resultados rápidos e consistentes.
OLAP é especialmente útil para aplicar cálculos agregados sobre grandes quantidades de dados. Os sistemas OLAP são otimizados para cenários de leitura intensa, como análise e business intelligence. O OLAP permite que os usuários segmentem dados multidimensionais em fatias que podem ser exibidas em duas dimensões (como uma tabela dinâmica) ou filtrem os dados por valores específicos. Esse processo às vezes é chamado de "fatiamento e corte" dos dados e pode ser feito independentemente de os dados estarem particionados em várias fontes de dados. Isso ajuda os usuários a encontrar tendências, identificar padrões e explorar os dados sem ter que saber os detalhes da análise de dados tradicional.
Os modelos semânticos podem ajudar os usuários de negócios a abstrair as complexidades do relacionamento e facilitar a análise rápida dos dados.
Desafios
Apesar de todos os benefícios que os sistemas OLAP oferecem, eles produzem alguns desafios:
- Enquanto os dados em sistemas OLTP são constantemente atualizados por meio de transações que fluem de várias fontes, os armazenamentos de dados OLAP normalmente são atualizados em intervalos muito mais lentos, dependendo das necessidades de negócios. Isso significa que os sistemas OLAP são mais adequados para decisões estratégicas de negócios, em vez de respostas imediatas a mudanças. Além disso, algum nível de limpeza e orquestração de dados precisa ser planejado para manter os armazenamentos de dados OLAP atualizados.
- Ao contrário das tabelas relacionais tradicionais, normalizadas e encontradas em sistemas OLTP, os modelos de dados OLAP tendem a ser multidimensionais. Isso torna difícil ou impossível mapear diretamente para modelos de relacionamento de entidade ou orientados a objetos, onde cada atributo é mapeado para uma coluna. Em vez disso, os sistemas OLAP normalmente usam um esquema de estrela ou floco de neve no lugar da normalização tradicional.
OLAP no Azure
No Azure, os dados mantidos em sistemas OLTP, como o Banco de Dados SQL do Azure, são copiados para o sistema OLAP, como o Azure Analysis Services. Ferramentas de exploração e visualização de dados, como Power BI, Excel e opções de terceiros, se conectam aos servidores do Analysis Services e fornecem aos usuários informações altamente interativas e visualmente ricas sobre os dados modelados. O fluxo de dados de dados OLTP para OLAP normalmente é orquestrado usando o SQL Server Integration Services, que pode ser executado usando o Azure Data Factory.
No Azure, todos os seguintes armazenamentos de dados atenderão aos requisitos principais do OLAP:
O SQL Server Analysis Services (SSAS) oferece OLAP e funcionalidade de mineração de dados para aplicativos de business intelligence. Você pode instalar o SSAS em servidores locais ou hospedar em uma máquina virtual no Azure. O Azure Analysis Services é um serviço totalmente gerenciado que fornece os mesmos recursos principais do SSAS. O Azure Analysis Services dá suporte à conexão com várias fontes de dados na nuvem e no local em sua organização.
Os índices Columnstore clusterizados estão disponíveis no SQL Server 2014 e superior, bem como no Banco de Dados SQL do Azure, e são ideais para cargas de trabalho OLAP. No entanto, a partir do SQL Server 2016 (incluindo o Banco de Dados SQL do Azure), você pode aproveitar o processamento transacional/analítico híbrido (HTAP) por meio do uso de índices columnstore não clusterizados atualizáveis. O HTAP permite que você execute o processamento OLTP e OLAP na mesma plataforma, o que elimina a necessidade de armazenar várias cópias de seus dados e elimina a necessidade de sistemas OLTP e OLAP distintos. Para obter mais informações, consulte Introdução ao Columnstore para análise operacional em tempo real.
Principais critérios de seleção
Para restringir as escolhas, comece por responder a estas perguntas:
Você quer um serviço gerenciado em vez de gerenciar seus próprios servidores?
Você precisa de autenticação segura usando o Microsoft Entra ID?
Deseja realizar análises em tempo real? Em caso afirmativo, restrinja suas opções àquelas que oferecem suporte a análises em tempo real.
A análise em tempo real neste contexto aplica-se a uma única fonte de dados, como um aplicativo de planejamento de recursos empresariais (ERP), que executará uma carga de trabalho operacional e uma carga de trabalho de análise. Se você precisar integrar dados de várias fontes ou exigir um desempenho de análise extremo usando dados pré-agregados, como cubos, ainda poderá precisar de um data warehouse separado.
Você precisa usar dados pré-agregados, por exemplo, para fornecer modelos semânticos que tornem a análise mais amigável para os negócios? Em caso afirmativo, escolha uma opção que suporte cubos multidimensionais ou modelos semânticos tabulares.
O fornecimento de agregações pode ajudar os usuários a calcular agregações de dados de forma consistente. Os dados pré-agregados também podem fornecer um grande aumento de desempenho ao lidar com várias colunas em várias linhas. Os dados podem ser pré-agregados em cubos multidimensionais ou modelos semânticos tabulares.
Você precisa integrar dados de várias fontes, além do seu armazenamento de dados OLTP? Em caso afirmativo, considere opções que integrem facilmente várias fontes de dados.
Matriz de capacidades
As tabelas a seguir resumem as principais diferenças nos recursos.
Capacidades gerais
Funcionalidade | Azure Analysis Services | SQL Server Analysis Services | SQL Server com índices Columnstore | Banco de Dados SQL do Azure com índices Columnstore |
---|---|---|---|---|
É serviço gerenciado | Sim | No | No | Sim |
Suporta cubos multidimensionais | Não | Sim | No | Não |
Suporta modelos semânticos tabulares | Sim | Sim | No | Não |
Integre facilmente várias fontes de dados | Sim | Sim | N.º 1 | N.º 1 |
Suporta análises em tempo real | No | No | Sim | Sim |
Requer processo para copiar dados de fontes | Sim | Sim | No | Não |
Integração com o Microsoft Entra | Sim | No | N.o 2 | Sim |
[1] Embora o SQL Server e o Banco de Dados SQL do Azure não possam ser usados para consultar e integrar várias fontes de dados externas, você ainda pode criar um pipeline que faça isso para você usando o SSIS ou o Azure Data Factory. O SQL Server hospedado em uma VM do Azure tem opções adicionais, como servidores vinculados e PolyBase. Para obter mais informações, consulte Orquestração de pipeline, fluxo de controle e movimentação de dados.
[2] Não há suporte para a conexão com o SQL Server em execução em uma Máquina Virtual do Azure usando uma conta do Microsoft Entra. Em alternativa, utilize um domínio da conta do Active Directory.
Recursos de escalabilidade
Funcionalidade | Azure Analysis Services | SQL Server Analysis Services | SQL Server com índices Columnstore | Banco de Dados SQL do Azure com índices Columnstore |
---|---|---|---|---|
Servidores regionais redundantes para alta disponibilidade | Sim | No | Sim | Sim |
Suporta dimensionamento de consulta | Sim | No | Sim | Sim |
Escalabilidade dinâmica (scale-up) | Sim | No | Sim | Sim |
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.
Autor principal:
- Zoiner Tejada - Brasil | CEO e Arquiteto
Próximos passos
- Índices columnstore: Descrição geral
- Criar um servidor do Analysis Services
- O que é o Azure Data Factory?
- O que é Power BI?