Editar

Compartilhar via


Usar o Azure Synapse Analytics para criar uma solução de BI empresarial

Power BI
Azure Synapse Analytics
Fábrica de dados do Azure
Microsoft Entra ID
Armazenamento do Blobs do Azure

Este artigo descreve como transferir dados de um data warehouse local para um ambiente de nuvem e, em seguida, usar um modelo de BI (business intelligence) para atender aos dados. Você pode usar essa abordagem como uma meta final ou um primeiro passo para a modernização completa com componentes baseados em nuvem.

Essas diretrizes se baseiam no cenário de ponta a ponta do Azure Synapse Analytics. Esse processo usa pipelines do Azure Synapse Analytics para ingerir dados de um banco de dados SQL em pools de SQL. Em seguida, ele executa a transformação de dados para análise. Este artigo se concentra nos pipelines do Azure Synapse Analytics, mas você também pode usar pipelines do Azure Data Factory ou pipelines do Fabric Data Factory para executar essas tarefas.

Quando usar essa arquitetura

Você pode usar vários métodos para atender aos requisitos de negócios do BI empresarial. Vários aspectos definem requisitos de negócios, como investimentos em tecnologia atuais, habilidades humanas, linha do tempo para modernização, metas futuras e se você tem preferência por PaaS (plataforma como serviço) ou saaS (software como serviço).

Considere as seguintes abordagens de design:

  • A lakehouse no Microsoft Fabric

  • Fabric e a do Azure Databricks para clientes que têm investimentos existentes no Azure Databricks e no Power BI e desejam se modernizar com o Fabric

  • BI empresarial para pequenas e médias empresas que usam um ecossistema do SQL do Azure e o Fabric

  • Data warehousing completamente no Fabric para clientes que preferem SaaS

A arquitetura neste artigo pressupõe que você use o data warehouse do Azure Synapse Analytics como a camada persistente do modelo semântico empresarial e use o Power BI para business intelligence. Essa abordagem de PaaS tem a flexibilidade de acomodar vários requisitos e preferências de negócios.

Arquitetura

Diagrama que mostra a arquitetura de BI empresarial com o Azure Synapse Analytics.

Baixe um Arquivo Visio dessa arquitetura.

Workflow

Fonte de dados

Ingestão e armazenamento de dados

  • do Azure Data Lake Storage é uma área de preparo temporária durante a ingestão de dados. Você pode usar PolyBase para copiar dados para um pool de SQL dedicado do Azure Synapse Analytics.

  • do Azure Synapse Analytics é um sistema distribuído que executa análises em dados grandes. Ele dá suporte ao processamento paralelo maciço, para que possa executar análises de alto desempenho. O pool de SQL dedicado do Azure Synapse Analytics é um destino para ingestão contínua do ambiente local. O pool de SQL pode fornecer dados para do Power BI por meio do DirectQuery e executar processamento adicional.

  • pipelines do Azure Synapse Analytics orquestrar a ingestão e a transformação de dados no workspace do Azure Synapse Analytics.

Análise e relatórios

  • A abordagem de modelagem de dados nesse cenário combina o modelo empresarial e o modelo semântico de BI . O pool de SQL dedicado do Azure Synapse Analytics contém o modelo empresarial. F64 de capacidade do Power BI Premium contém o modelo semântico de BI. O Power BI acessa os dados por meio do DirectQuery.

Componentes

Este cenário usa os seguintes componentes:

  • banco de dados SQL do Azure é um SQL Server paaS hospedado no Azure. Essa arquitetura usa o Banco de Dados SQL para demonstrar o fluxo de dados para o cenário de migração.

  • Data Lake Storage fornece armazenamento em nuvem flexível para dados não estruturados que são usados para persistir resultados de migração intermediária.

  • do Azure Synapse Analytics é um serviço de análise empresarial para sistemas de data warehousing e Big Data. O Azure Synapse Analytics serve como computação principal e armazenamento persistente na modelagem semântica corporativa e na manutenção.

  • o Power BI Premium é uma ferramenta de BI que apresenta e visualiza dados neste cenário.

  • Microsoft Entra ID é um conjunto de soluções de rede e identidade multinuvem que dá suporte ao fluxo de autenticação e autorização.

Arquitetura simplificada

Diagrama que mostra a arquitetura simplificada do BI empresarial.

Detalhes do cenário

Nesse cenário, uma organização tem um banco de dados SQL que contém um data warehouse local grande. A organização deseja usar o Azure Synapse Analytics para executar a análise e, em seguida, fornecer essas informações por meio do Power BI para usuários e análises.

Autenticação

A ID do Microsoft Entra autentica os usuários que se conectam aos painéis e aplicativos do Power BI. O logon único conecta os usuários à fonte de dados em um pool provisionado do Azure Synapse Analytics. A autorização ocorre na origem.

Carregamento incremental

Ao executar um processo automatizado de extração, transformação, carregamento (ETL) ou extração, carregamento, transformação (ELT), você deve carregar apenas os dados que foram alterados desde a execução anterior. Esse processo é chamado de de carga incremental. Por outro lado, uma carga completa carrega todos os dados. Para executar uma carga incremental, determine como identificar os dados alterados. Você pode usar uma marca de água alta abordagem de valor, que rastreia o valor mais recente de uma coluna de data/hora ou uma coluna inteiro exclusiva na tabela de origem.

Você pode usar tabelas temporais no SQL Server. Tabelas temporais são tabelas com controle de versão do sistema que armazenam o histórico de alterações de dados. O mecanismo de banco de dados registra automaticamente o histórico de todas as alterações em uma tabela de histórico separada. Para consultar os dados históricos, você pode adicionar uma cláusula FOR SYSTEM_TIME a uma consulta. Internamente, o mecanismo de banco de dados consulta a tabela do histórico, mas isso é transparente ao aplicativo.

As tabelas temporais dão suporte a dados de dimensão, que podem ser alterados ao longo do tempo. Tabelas de fatos geralmente representam uma transação imutável, como uma venda, caso em que não faz sentido manter o histórico de versão do sistema. Em vez disso, as transações geralmente têm uma coluna que representa a data da transação. A coluna pode ser usada como o valor da marca d'água. Por exemplo, no data warehouse adventureworks, as tabelas de SalesLT.* têm um campo LastModified.

Este é o fluxo geral para o pipeline ELT:

  1. Para cada tabela no banco de dados de origem, acompanhe o tempo de corte quando o último trabalho ELT foi executado. Armazene essas informações no data warehouse. Durante a configuração inicial, todas as horas são definidas como 1-1-1900.

  2. Durante a etapa de exportação de dados, a hora de corte é passada como um parâmetro para um conjunto de procedimentos armazenados no banco de dados de origem. Esses procedimentos armazenados consultam todos os registros que são alterados ou criados após o tempo de corte. Para todas as tabelas no exemplo, você pode usar a coluna ModifiedDate.

  3. Quando a migração de dados for concluída, atualize a tabela que armazena os tempos de corte.

Pipeline de dados

Esse cenário usa o banco de dados de exemplo AdventureWorks como fonte de dados. O padrão de carga de dados incremental garante que somente os dados modificados ou adicionados após a execução mais recente do pipeline sejam carregados.

Ferramenta de cópia orientada por metadados

A ferramenta de cópia integrada controlada por metadados em pipelines do Azure Synapse Analytics carrega incrementalmente todas as tabelas contidas no banco de dados relacional.

  1. Use uma interface do assistente para conectar a ferramenta Copiar Dados ao banco de dados de origem.

  2. Depois de se conectar, configure o carregamento incremental ou o carregamento completo para cada tabela.

  3. A ferramenta Copiar Dados cria os pipelines e os scripts SQL necessários para gerar a tabela de controle. Essa tabela armazena dados, como o valor ou coluna de marca d'água alta para cada tabela, para o processo de carregamento incremental.

  4. Depois que esses scripts são executados, o pipeline carrega todas as tabelas de data warehouse de origem no pool dedicado do Azure Synapse Analytics.

Captura de tela que mostra a ferramenta Copiar Dados controlada por metadados no Azure Synapse Analytics.

Antes que a ferramenta carregue os dados, ela cria três pipelines para iterar sobre as tabelas no banco de dados.

Os pipelines fazem as seguintes tarefas:

  • Contam o número de objetos, como tabelas, a serem copiados na execução do pipeline.

  • Iterar em cada objeto a ser carregado ou copiado.

  • Depois que um pipeline itera em cada objeto, ele executa as seguintes tarefas:

    • Verifica se uma carga delta é necessária. Caso contrário, o pipeline concluirá uma carga completa normal.

    • Recupera o valor da marca d'água alta da tabela de controle.

    • Copia dados das tabelas de origem para a conta de preparo no Data Lake Storage.

    • Carrega dados no pool de SQL dedicado por meio do método de cópia selecionado, como o comando PolyBase ou Copy.

    • Atualiza o valor da marca d'água alta na tabela de controle.

Carregar dados em um pool de SQL do Azure Synapse Analytics

A atividade de cópia copia dados do banco de dados SQL para o pool de SQL do Azure Synapse Analytics. O banco de dados SQL deste exemplo está no Azure, portanto, ele usa o runtime de integração do Azure para ler dados do banco de dados SQL e gravar os dados no ambiente de preparo especificado.

Em seguida, a instrução copy carrega dados do ambiente de preparo no pool dedicado do Azure Synapse Analytics.

Usar pipelines do Azure Synapse Analytics

Os pipelines no Azure Synapse Analytics definem um conjunto ordenado de atividades para concluir um padrão de carga incremental. Gatilhos manuais ou automáticos iniciam o pipeline.

Transformar os dados

O banco de dados de exemplo nessa arquitetura de referência é pequeno, portanto, tabelas replicadas que não têm partições são criadas. Para cargas de trabalho de produção, as tabelas distribuídas podem melhorar o desempenho da consulta. Para obter mais informações, consulte Diretrizes para criar tabelas distribuídas no Azure Synapse Analytics. Os scripts de exemplo executam as consultas por meio de uma classe de recurso estática.

Em um ambiente de produção, considere a criação de tabelas de preparo que tenham distribuição round robin. Em seguida, transforme e mova os dados para tabelas de produção que têm índices columnstore clusterizados, que oferecem o melhor desempenho geral da consulta. Os índices ColumnStore são otimizados para consultas que examinam muitos registros.

Os índices Columnstore não têm um desempenho ideal para pesquisas singleton ou pesquisam uma única linha. Se você precisar executar pesquisas singleton frequentes, poderá adicionar um índice não clusterizado a uma tabela, o que aumenta a velocidade. No entanto, pesquisas singleton normalmente são menos comuns em cenários de data warehouse do que cargas de trabalho de processamento de transações online. Para obter mais informações, consulte Tabelas de índice no Azure Synapse Analytics.

Observação

As tabelas columnstore clusterizadas não dão suporte aos tipos de dados varchar(max), nvarchar(max) e varbinary(max). Se você usar esses tipos de dados, considere um índice clusterizado ou heap. Você também pode considerar colocar essas colunas em uma tabela separada.

Usar o Power BI Premium para acessar, modelar e visualizar dados

O Power BI Premium dá suporte a várias opções para se conectar a fontes de dados no Azure. Você pode usar pools provisionados do Azure Synapse Analytics para realizar as seguintes tarefas:

  • Importar: os dados são importados para o modelo do Power BI.
  • DirectQuery: os dados são extraídos diretamente do armazenamento relacional.
  • Modelo composto: combine a importação para algumas tabelas e o DirectQuery para outras.

Esse cenário usa o painel do DirectQuery porque ele tem uma pequena quantidade de dados e baixa complexidade de modelo. O DirectQuery delega a consulta ao poderoso mecanismo de computação abaixo e usa recursos de segurança extensivos na origem. O DirectQuery garante que os resultados sejam sempre consistentes com os dados de origem mais recentes.

O modo de importação fornece o tempo de resposta de consulta mais rápido. Considere o modo de importação se:

  • O modelo se encaixa inteiramente na memória do Power BI.
  • A latência de dados entre atualizações é aceitável.
  • Você precisa de transformações complexas entre o sistema de origem e o modelo final.

Nesse caso, os usuários finais querem acesso total aos dados mais recentes sem atrasos na atualização do Power BI e desejam todos os dados históricos, o que excede a capacidade do conjunto de dados do Power BI. Um conjunto de dados do Power BI pode manipular de 25 a 400 GB, dependendo do tamanho da capacidade. O modelo de dados no pool de SQL dedicado já está em um esquema estrela e não requer transformação, portanto, o DirectQuery é uma opção apropriada.

captura de tela que mostra o painel no Power BI.

Use do Power BI Premium para gerenciar grandes modelos, relatórios paginados e pipelines de implantação. Aproveite o ponto de extremidade interno do Azure Analysis Services. Você também pode ter capacidade dedicada com uma proposta de valor exclusiva.

Quando o modelo de BI aumenta ou a complexidade do painel aumenta, você pode alternar para modelos compostos e importar partes de tabelas de pesquisa por meio de tabelas híbridase importar dados pré-configurados. Você pode habilitar de cache de consulta no Power BI para conjuntos de dados importados e usar tabelas duplas para a propriedade de modo de armazenamento.

Dentro do modelo composto, os conjuntos de dados servem como uma camada de passagem virtual. Quando os usuários interagem com visualizações, o Power BI gera consultas SQL para pools de SQL do Azure Synapse Analytics. O Power BI determina se o armazenamento em memória ou DirectQuery deve ser usado com base na eficiência. O mecanismo decide quando alternar da memória para o DirectQuery e envia a lógica por push para o pool de SQL do Azure Synapse Analytics. Dependendo do contexto das tabelas de consulta, elas podem atuar como modelos compostos armazenados em cache (importados) ou não armazenados em cache. Você pode escolher qual tabela armazenar em cache na memória, combinar dados de uma ou mais fontes do DirectQuery ou combinar dados de origem do DirectQuery e dados importados.

Ao usar o DirectQuery com um pool provisionado do Azure Synapse Analytics:

  • Use o de cache do conjunto de resultados do Azure Synapse Analytics para armazenar em cache os resultados da consulta no banco de dados do usuário para uso repetitivo. Essa abordagem melhora o desempenho da consulta para milissegundos e reduz o uso de recursos de computação. As consultas que usam conjuntos de resultados armazenados em cache não consomem slots de simultaneidade no Azure Synapse Analytics, portanto, não contam com os limites de simultaneidade existentes.

  • Use o Azure Synapse Analytics exibições materializadas para pré-compilar, armazenar e manter dados como uma tabela. Consultas que usam todos os dados ou um subconjunto dos dados em exibições materializadas podem obter um desempenho mais rápido sem a necessidade de referenciar diretamente a exibição materializada definida para usá-los.

Considerações

Essas considerações implementam os pilares do Azure Well-Architected Framework​, um conjunto de princípios orientadores que você pode usar para aprimorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Well-Architected Framework.

Segurança

A segurança fornece garantias contra ataques deliberados e o uso indevido de seus valiosos dados e sistemas. Para obter mais informações, consulte Lista de verificação de revisão de design parade segurança.

A modernização da nuvem apresenta preocupações de segurança, como violações de dados, infecções por malware e injeção de código mal-intencionada. Você precisa de um provedor de nuvem ou uma solução de serviço que possa resolver suas preocupações porque medidas de segurança inadequadas podem criar grandes problemas.

Esse cenário aborda as preocupações de segurança mais exigentes usando uma combinação de controles de segurança em camadas: controles de rede, identidade, privacidade e autorização. Um pool provisionado do Azure Synapse Analytics armazena a maioria dos dados. O Power BI acessa os dados por meio do DirectQuery por meio do logon único. Você pode usar o Microsoft Entra ID para autenticação. Também há amplos controles de segurança para autorização de dados nos pools provisionados.

Algumas perguntas comuns de segurança incluem:

  • Defina quem pode ver quais dados.

    • Verifique se os dados estão em conformidade com as diretrizes federais, locais e da empresa para reduzir os riscos de violação de dados. O Azure Synapse Analytics fornece vários recursos de proteção de dados para alcançar a conformidade.
  • Determine como verificar a identidade de um usuário.

    • Use o Azure Synapse Analytics para controlar quem pode acessar quais dados via controle de acesso e de autenticação.
  • Escolha uma tecnologia de segurança de rede para proteger a integridade, a confidencialidade e o acesso de suas redes e dados.

  • Escolha ferramentas para detectar e notificar você sobre ameaças.

    • Use o Azure Synapse Analytics recursos de detecção de ameaças, como auditoria de SQL, detecção de ameaças SQL e avaliação de vulnerabilidade para auditar, proteger e monitorar bancos de dados.
  • Determine como proteger dados em sua conta de armazenamento.

    • Use contas de Armazenamento do Azure para cargas de trabalho que exigem tempos de resposta rápidos e consistentes ou que tenham um alto número de IOPs (operações de entrada/saída) por segundo. As contas de armazenamento podem armazenar todos os objetos de dados e ter várias opções de segurança da conta de armazenamento .

Otimização de custos

A Otimização de Custos concentra-se em maneiras de reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Lista de verificação de revisão de design parade Otimização de Custos.

Esta seção fornece informações sobre preços para diferentes serviços envolvidos nesta solução e menciona as decisões tomadas para esse cenário com um conjunto de dados de exemplo. Use essa configuração inicial na calculadora de preços do Azuree ajuste-a para se ajustar ao seu cenário.

Azure Synapse Analytics

O Azure Synapse Analytics é uma arquitetura sem servidor que você pode usar para dimensionar seus níveis de computação e armazenamento de forma independente. Os recursos de computação incorrem em custos com base no uso. Você pode dimensionar ou pausar esses recursos sob demanda. Os recursos de armazenamento incorrem em custos por terabyte, para que seus custos aumentem à medida que você ingerir dados.

Pipelines do Azure Synapse Analytics

Três componentes principais influenciam o preço de um pipeline:

  • Atividades do pipeline de dados e horas de runtime de integração
  • Tamanho e implementação do cluster de fluxos de dados
  • Encargos de operação

Para obter detalhes sobre preços, consulte a guia de Integração de Dados do no de preços do Azure Synapse Analytics.

O preço varia dependendo de componentes ou atividades, frequência e número de unidades de runtime de integração.

Para o conjunto de dados de exemplo, que usa o runtime de integração hospedado no Azure padrão, atividade de copiar dados serve como o núcleo do pipeline. Ele é executado em uma agenda diária para todas as entidades (tabelas) no banco de dados de origem. O cenário não contém fluxos de dados. E isso não incorre em custos operacionais porque os pipelines executam menos de um milhão de operações por mês.

Pool e armazenamento dedicados do Azure Synapse Analytics

Para o conjunto de dados de exemplo, você pode provisionar 500 DWUs (unidades de data warehouse) para fornecer uma experiência tranquila para cargas analíticas. Você pode manter a computação durante o horário comercial para fins de relatório. Se a solução passar para a produção, use a capacidade reservada do data warehouse como uma estratégia econômica. Use várias técnicas para maximizar as métricas de custo e desempenho.

Para obter detalhes de preços de um pool dedicado do Azure Synapse Analytics, consulte a guia data warehousing no de preços do Azure Synapse Analytics. No modelo de consumo dedicado, os clientes incorrem em custos para cada DWU provisionado, por hora de tempo de atividade. Considere também os custos de armazenamento de dados, incluindo o tamanho dos dados em repouso, instantâneos e redundância geográfica.

Armazenamento de Blobs

Considere usar a capacidade reservada do Armazenamento do Azure para reduzir os custos de armazenamento. Com esse modelo, você receberá um desconto se reservar uma capacidade de armazenamento fixa por um ou três anos. Para obter mais informações, consulte Otimizar custos para o armazenamento de blobs com capacidade reservada. Esse cenário não usa armazenamento persistente.

Power BI Premium

Esse cenário usa workspaces do Power BI Premium com aprimoramentos de desempenho internos para acomodar necessidades analíticas exigentes.

Para obter mais informações, consulte de preços do Power BI.

Excelência Operacional

A Excelência Operacional abrange os processos de operações que implantam um aplicativo e o mantêm em execução em produção. Para obter mais informações, consulte Lista de verificação de revisão de design parade Excelência Operacional.

  • Use um pipeline de lançamento do Azure DevOps e o GitHub Actions para automatizar a implantação de um workspace do Azure Synapse Analytics em vários ambientes. Para obter mais informações, consulte Integração contínua e entrega contínua para um workspace do Azure Synapse Analytics.

  • Coloque cada carga de trabalho em um modelo de implantação separado e armazene os recursos em sistemas de controle do código-fonte. Você pode implantar os modelos em conjunto ou individualmente como parte de um processo de CI/CD (integração contínua e entrega contínua). Essa abordagem simplifica o processo de automação. Essa arquitetura tem quatro cargas de trabalho principais:

    • O servidor de data warehouse e os recursos relacionados
    • Pipelines do Azure Synapse Analytics
    • Ativos do Power BI, incluindo dashboards, aplicativos e conjuntos de dados
    • Um cenário simulado do local para a nuvem
  • Considere preparar suas cargas de trabalho, quando for prático. Implante sua carga de trabalho em vários estágios. Execute verificações de validação em cada estágio antes de passar para o próximo estágio. Essa abordagem envia atualizações por push para seus ambientes de produção de forma controlada e minimiza problemas de implantação imprevistos. Use de implantação azul-verde e estratégias de de versão canário para atualizar ambientes de produção ao vivo.

  • Use uma estratégia de reversão para lidar com implantações com falha. Por exemplo, é possível reimplantar automaticamente uma implantação anterior bem-sucedida com base em seu histórico de implantações. Use o sinalizador --rollback-on-error na CLI do Azure.

  • Use do Azure Monitor para analisar o desempenho do data warehouse e de toda a plataforma de análise do Azure para uma experiência de monitoramento integrada. O Azure Synapse Analytics oferece uma experiência de monitoramento no portal do Azure para mostrar insights sobre a carga de trabalho do data warehouse. Use o portal do Azure para monitorar seu data warehouse. Ele fornece períodos de retenção configuráveis, alertas, recomendações e dashboards e gráficos personalizáveis para métricas e logs.

Para obter mais informações, consulte os seguintes recursos:

Eficiência de desempenho

A Eficiência de Desempenho refere-se à capacidade da carga de trabalho de dimensionar para atender às demandas do usuário com eficiência. Para obter mais informações, consulte Lista de verificação de design parade Eficiência de Desempenho.

Esta seção fornece detalhes sobre as decisões de dimensionamento para acomodar esse conjunto de dados.

Pool provisionado do Azure Synapse Analytics

Você pode usar várias configurações de data warehouse .

DWUs Número de nós de computação Número de distribuições por nó
DW100c 1 60
-- TO --
DW30000c 60 1

Para ver os benefícios de desempenho do dimensionamento, especialmente para DWUs maiores, use pelo menos um conjunto de dados de 1 TB. Para encontrar o melhor número de DWUs para o pool de SQL dedicado, tente escalar verticalmente e reduzir verticalmente. Execute consultas com números diferentes de DWUs depois de carregar seus dados. O dimensionamento é rápido, para que você possa experimentar facilmente vários níveis de desempenho.

Localizar o melhor número de DWUs

Para um pool de SQL dedicado em desenvolvimento, selecione um pequeno número de DWUs como ponto de partida, como DW400c ou DW200c. Monitore o desempenho do aplicativo para cada número de DWUs. Suponha uma escala linear e determine quanto você precisa para aumentar ou diminuir os DWUs. Continue fazendo ajustes até alcançar um nível de desempenho ideal para seus requisitos de negócios.

Dimensionar um pool de SQL do Azure Synapse Analytics

Para obter recursos de escalabilidade e otimização de desempenho de pipelines no Azure Synapse Analytics e da atividade de cópia que você usa, consulte Guia de desempenho e escalabilidade da atividade copy.

Para obter mais informações, consulte os seguintes recursos:

Power BI Premium e Fabric

Este artigo usa o de capacidade do Power BI Premium F64 para demonstrar as funcionalidades de BI. As capacidades dedicadas do Power BI no Fabric variam de F64 (8 vCores) a F1024 (128 vCores).

Para determinar a capacidade necessária:

  • Avaliar o de carga em sua capacidade.
  • Instale o aplicativo de métricas de capacidade do Fabric para monitoramento contínuo.
  • Considere usar técnicas de otimização de capacidade relacionadas à carga de trabalho.

Colaboradores

A Microsoft mantém este artigo. Os colaboradores a seguir escreveram este artigo.

Principais autores:

Outros colaboradores:

Para ver perfis não públicos do LinkedIn, entre no LinkedIn.

Próximas etapas