Editar

Partilhar via


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

Power BI
Azure Synapse Analytics
Azure Data Factory
Microsoft Entra ID
Azure Blob Storage

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

Estas orientações baseiam-se no cenário completo do Azure Synapse Analytics. Esse processo usa pipelines do Azure Synapse Analytics para ingerir dados de um banco de dados SQL em pools 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 os pipelines do Azure Data Factory ou os pipelines do Fabric Data Factory para executar essas tarefas.

Quando usar esta arquitetura

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

Considere as seguintes abordagens de design:

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

Arquitetura

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

Transfira um ficheiro do Visio desta arquitetura.

Fluxo de Trabalho

Data source

  • Um banco de dados do SQL Server no Azure contém os dados de origem. Para simular o ambiente local, os scripts de implantação para este cenário configuram um banco de dados SQL do Azure. O banco de dados de exemplo AdventureWorks é usado como o esquema de dados de origem e dados de exemplo. Para obter mais informações, consulte Copiar e transformar dados de e para o SQL Server.

Ingestão e armazenamento de dados

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

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

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

Análise e relatórios

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

Componentes

Este cenário usa os seguintes componentes:

  • do Banco de Dados SQL do Azure é um servidor SQL 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 resultados de migração intermediários persistentes.

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

  • 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 multicloud que suporta o fluxo de autenticação e autorização.

Arquitetura simplificada

Diagrama que mostra a arquitetura simplificada de BI da empresa.

Detalhes do cenário

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

Autenticação

O Microsoft Entra ID autentica usuários que se conectam a 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 fonte.

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 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 abordagem de marca d'água valor alto, que rastreia o valor mais recente de uma coluna de data e hora ou uma coluna inteira exclusiva na tabela de origem.

Você pode usar tabelas temporais no SQL Server. As tabelas temporais são tabelas com 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 cada alteração 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 de histórico, mas é transparente para o aplicativo.

As tabelas temporais suportam dados de dimensão, que podem mudar ao longo do tempo. As tabelas de fatos geralmente representam uma transação imutável, como uma venda, caso em que manter o histórico de versões do sistema não faz sentido. 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 SalesLT.* têm um campo LastModified.

Aqui está o fluxo geral para o pipeline ELT:

  1. Para cada tabela no banco de dados de origem, controle o tempo de corte quando o último trabalho ELT foi executado. Armazene essas informações no data warehouse. Na configuração inicial, todos os horários são definidos como 1-1-1900.

  2. Durante a etapa de exportação de dados, o tempo de corte é passado 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 ModifiedDate coluna.

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

Pipeline de dados

Este cenário usa o banco de dados de exemplo AdventureWorks como uma fonte de dados. O padrão de carga de dados incremental garante que apenas 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 interna orientada por metadados nos 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 que ele se conectar, configure o carregamento incremental ou o carregamento completo para cada tabela.

  3. A ferramenta Copiar dados cria os pipelines e scripts SQL necessários para gerar a tabela de controle. Esta tabela armazena dados, como o alto valor de marca d'água ou coluna 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 orientada por metadados no Azure Synapse Analytics.

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

Os pipelines executam as seguintes tarefas:

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

  • Itere sobre cada objeto a ser carregado ou copiado.

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

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

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

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

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

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

Carregar dados em um pool SQL do Azure Synapse Analytics

A atividade de cópia copia dados do banco de dados SQL para o pool SQL do Azure Synapse Analytics. O banco de dados SQL deste exemplo está no Azure, portanto, ele usa o tempo de execução 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 Guidance for designing distributed tables in 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 tenham índices columnstore clusterizados, que oferecem o melhor desempenho geral de consulta. Os índices Columnstore são otimizados para consultas que verificam muitos registros.

Os índices Columnstore não têm o desempenho ideal para pesquisas singleton ou para 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 são normalmente 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.

Nota

As tabelas columnstore clusterizadas não suportam varchar(max), nvarchar(max)nem varbinary(max) tipos de dados. Se você usar esses tipos de dados, considere um heap ou índice clusterizado. 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 os pools provisionados do Azure Synapse Analytics para executar 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 Import para algumas tabelas e DirectQuery para outras.

Este cenário usa o painel do DirectQuery porque ele tem uma pequena quantidade de dados e baixa complexidade do modelo. O DirectQuery delega a consulta ao poderoso mecanismo de computação abaixo e usa amplos recursos de segurança 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 cabe inteiramente na memória do Power BI.
  • A latência de dados entre atualizações é aceitável.
  • Você requer 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 querem todos os dados históricos, que excedem a capacidade do conjunto de dados do Power BI. Um conjunto de dados do Power BI pode lidar com 25-400 GB, dependendo do tamanho da capacidade. O modelo de dados no pool SQL dedicado já está em um esquema em estrela e não requer transformação, portanto, o DirectQuery é uma escolha apropriada.

Captura de ecrã que mostra o dashboard no Power BI.

Use Power BI Premium para gerenciar modelos grandes, 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 proposta de valor única.

Quando o modelo de BI cresce ou a complexidade do painel aumenta, você pode alternar para modelos compostos e importar partes de tabelas de pesquisa por meio de tabelas híbridas e importar dados pré-agregados. Você pode habilitar de cache de consulta no Power BI para conjuntos de dados importados e usar de 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 SQL do Azure Synapse Analytics. O Power BI determina se o armazenamento na 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 para o pool 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 DirectQuery ou combinar dados de origem do DirectQuery e dados importados.

Quando você usa o DirectQuery com um pool provisionado do Azure Synapse Analytics:

  • Use o Azure Synapse Analytics de cache do conjunto de resultados 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 nenhum slot de simultaneidade no Azure Synapse Analytics, portanto, não contam para os limites de simultaneidade existentes.

  • Use o Azure Synapse Analytics exibições materializadas para pré-calcular, armazenar e manter dados como uma tabela. As consultas que usam todos os dados ou um subconjunto dos dados em exibições materializadas podem alcançar um desempenho mais rápido sem a necessidade de fazer referência direta à exibição materializada definida para usá-la.

Considerações

Essas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios orientadores que você pode usar para melhorar 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 introduz preocupações de segurança, como violações de dados, infeções por malware e injeção de código mal-intencionado. Você precisa de um provedor de nuvem ou solução de serviço que possa resolver suas preocupações, porque medidas de segurança inadequadas podem criar grandes problemas.

Este 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 acede aos dados através do DirectQuery através do início de sessão único. Você pode usar o Microsoft Entra ID para autenticação. Há também controles de segurança abrangentes para autorização de dados dentro dos pools provisionados.

Algumas questões de segurança comuns incluem:

  • Defina quem pode ver quais dados.

    • Certifique-se de que seus dados estejam em conformidade com as diretrizes federais, locais e da empresa para mitigar 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 por meio de de controle de acesso e autenticação.
  • Escolha uma tecnologia de segurança de rede para proteger a integridade, confidencialidade e acesso de suas redes e dados.

    • Ajude a proteger o Azure Synapse Analytics usando opções de de segurança de rede.
  • Escolha ferramentas para detetar e notificá-lo de ameaças.

    • Use o Azure Synapse Analytics recursos deteção de ameaças, como auditoria SQL, deteção de ameaças SQL e avaliação de vulnerabilidades para auditar, proteger e monitorar bancos de dados.
  • Determine como proteger os dados na 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 têm um alto número de IOPs (operações de entrada/saída) por segundo. As contas de armazenamento podem armazenar todos os seus objetos de dados e ter várias opções de segurança de conta de armazenamento .

Otimização de Custos

A Otimização de Custos concentra-se em formas 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 projeto para Otimização de custos.

Esta seção fornece informações sobre preços para diferentes serviços envolvidos nessa solução e menciona as decisões tomadas para esse cenário com um conjunto de dados de exemplo. Utilize esta configuração inicial na calculadora de preços do Azuree ajuste-a de acordo com o 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, portanto, seus custos aumentam à medida que você ingere dados.

Pipelines do Azure Synapse Analytics

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

  • Atividades de pipeline de dados e horas de tempo de execução de integração
  • Tamanho e implementação do cluster de fluxos de dados
  • Nos custos de operações

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

O preço varia dependendo dos componentes ou atividades, da frequência e do número de unidades de tempo de execução de integração.

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

Pool dedicado e armazenamento do Azure Synapse Analytics

Para o conjunto de dados de exemplo, você pode provisionar 500 unidades de data warehouse (DWUs) para fornecer uma experiência suave 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 para um pool dedicado do Azure Synapse Analytics, consulte a guia Data Warehousing em de preços do Azure Synapse Analytics . No modelo de consumo dedicado, os clientes incorrem em custos para cada DWU provisionada, 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 este modelo, você obtém um desconto se reservar capacidade fixa de armazenamento por um ou três anos. Para obter mais informações, consulte Otimizar custos para armazenamento de blob com capacidade reservada. Este cenário não usa armazenamento persistente.

Power BI Premium

Este cenário usa espaços de trabalho 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 operacionais que implantam um aplicativo e o mantêm em execução na produção. Para obter mais informações, consulte Lista de verificação de revisão de projeto para o Operational Excellence.

  • Use um pipeline de lançamento do Azure DevOps e as Ações do GitHub para automatizar a implantação de um espaço de trabalho do Azure Synapse Analytics em vários ambientes. Para obter mais informações, consulte Integração contínua e entrega contínua para um espaço de trabalho 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 juntos ou individualmente como parte de um processo de integração contínua e entrega contínua (CI/CD). Essa abordagem simplifica o processo de automação. Essa arquitetura tem quatro cargas de trabalho principais:

    • O servidor de armazém de dados e recursos relacionados
    • Pipelines do Azure Synapse Analytics
    • Ativos do Power BI, incluindo painéis, aplicativos e conjuntos de dados
    • Um cenário simulado no local para a nuvem
  • Considere preparar suas cargas de trabalho onde 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 para seus ambientes de produção de forma controlada e minimiza problemas de implantação imprevistos. Use de implantação azul-verde e canary release estratégias para atualizar ambientes de produção ao vivo.

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

  • Use do Azure Monitor para analisar o desempenho do seu data warehouse e de toda a plataforma de análise do Azure para obter uma experiência de monitoramento integrada. O Azure Synapse Analytics fornece uma experiência de monitoramento no portal do Azure para mostrar informações sobre sua carga de trabalho de 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 gráficos e painéis 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 sua carga de trabalho de escalar para atender às demandas dos usuários de forma eficiente. Para obter mais informações, consulte Lista de verificação de revisão de design para 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 da expansão, especialmente para DWUs maiores, use pelo menos um conjunto de dados de 1 TB. Para encontrar o melhor número de DWUs para seu pool SQL dedicado, tente dimensionar para cima e para baixo. Execute consultas com números diferentes de DWUs depois de carregar os dados. O dimensionamento é rápido, para que você possa experimentar facilmente vários níveis de desempenho.

Encontre o melhor número de DWUs

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

Dimensionar um pool SQL do Azure Synapse Analytics

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

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

Power BI Premium e malha

Este artigo usa o de capacidade F64 do Power BI Premium para demonstrar os recursos de BI. As capacidades dedicadas do Power BI na malha variam de F64 (8 vCores) a F1024 (128 vCores).

Para determinar quanta capacidade você precisa:

Contribuidores

A Microsoft mantém este artigo. Os seguintes colaboradores escreveram este artigo.

Principais autores:

Outros contribuidores:

Para ver perfis não públicos do LinkedIn, faça login no LinkedIn.

Próximos passos