Compartilhar via


Entender a arquitetura de lakehouse medallion para Microsoft Fabric com OneLake

A arquitetura medalhão lakehouse, comumente conhecida como arquitetura medalhão, é um padrão de design usado para organizar dados em uma lakehouse. É a abordagem de design recomendada para o Fabric. Como o OneLake é o data lake do Fabric, a arquitetura medallion é implementada por meio da criação de lakehouses no OneLake.

A arquitetura Medallion é composta por três camadas distintas. As três camadas de medalhão são: bronze (dados brutos), prata (dados enriquecidos) e ouro (dados coletados). Cada camada indica a qualidade dos dados armazenados no lakehouse, com níveis mais altos representando maior qualidade.

A arquitetura medalhão ajuda seus dados a se manterem precisos e confiáveis de acordo com os princípios de atomicidade, consistência, isolamento e durabilidade (ACID). Seus dados começam em sua forma bruta e as cópias originais são preservadas como uma fonte confiável enquanto seus pipelines de validações e transformações preparam os dados para análises.

Para obter mais informações, confira O que é a arquitetura lakehouse medallion?.

Público

Este artigo apresenta a arquitetura medallion lake e descreve como você pode implementar o padrão de projeto no Microsoft Fabric. Ele é direcionado a vários públicos-alvo:

  • Engenheiros de dados: Equipe técnica que projeta, cria e mantém infraestruturas e sistemas que permitem que sua organização colete, armazene, processe e analise grandes volumes de dados.
  • Equipes do Centro de Excelência, TI e BI: As equipes responsáveis por supervisionar a análise em toda a organização.
  • Administradores de Fabric: Os administradores responsáveis por supervisionar o Fabric na organização.

O que é medallion architecture?

O objetivo da arquitetura de medalhão é melhorar incrementalmente a estrutura e a qualidade dos dados. Pense na arquitetura medallion como um processo de limpeza e organização em três estágios para os seus dados. Cada camada torna seus dados mais confiáveis e fáceis de usar.

  1. Bronze (Bruto): Armazene tudo exatamente como chega. Nenhuma alteração é permitida.
  2. Prata (Enriquecido): corrija erros, padronizar formatos e remover duplicatas.
  3. Ouro (Com curadoria): organize-se para relatórios e dashboards.

Mantenha cada camada separada em seu próprio lakehouse ou data warehouse no OneLake, com os dados se movendo entre as camadas à medida que são transformados e refinados.

Diagrama da arquitetura de medalhão do OneLake que mostra fontes de dados, preparação e transformação com três camadas e análise com SQL e Power BI.

Em uma implementação típica de arquitetura de medalhão no Fabric, a camada bronze armazena os dados no mesmo formato que a fonte de dados. Quando a fonte de dados é um banco de dados relacional, as tabelas Delta são uma boa opção. As camadas de prata e de ouro devem conter tabelas Delta.

Dica

Para saber como criar um lakehouse, siga o tutorial Cenário de ponta a ponta do Lakehouse.

Exemplo do mundo real

Considere o exemplo a seguir de uma empresa de comércio eletrônico que aplica a arquitetura de medalhão aos seus dados:

Camada bronze:

  • Armazenar dados brutos de vendas do site (JSON)
  • Armazenar dados brutos de inventário do armazém (CSV)
  • Armazenar dados brutos do cliente do CRM (exportação de SQL)

Camada Prata:

  • Padronizar formatos de data em todas as fontes
  • Converter toda a moeda em USD
  • Remover transações de teste
  • Corresponder registros de clientes entre sistemas

Camada de ouro:

  • Criar tabela de painel de vendas diária
  • Criar tabela de valor de tempo de vida do cliente
  • Gerar tabela de previsão de inventário

Arquitetura medalhão no OneLake

A base de um data warehouse moderno é um data lake. O Microsoft OneLake é um data lake único, unificado e lógico para toda a sua organização. Ele é provisionado automaticamente com cada locatário do Fabric e é o único local para todos os seus dados de análise.

Para armazenar dados no OneLake, crie um lakehouse no Fabric. Um lakehouse é uma plataforma de arquitetura de dados para armazenar, gerenciar e analisar dados estruturados e não estruturados em um único local. Ele pode ser dimensionado para grandes volumes de dados de todos os tipos e tamanhos de arquivos e, como os dados são armazenados em um único local, eles podem ser compartilhados e reutilizados em toda a organização.

Para obter mais informações, confira O que é um lakehouse no Microsoft Fabric?.

Tabelas e arquivos

Quando você cria um lakehouse no OneLake, dois locais de armazenamento físico são provisionados automaticamente:

  • As tabelas armazenam tabelas de todos os formatos no Apache Spark (CSV, Parquet ou Delta).
  • Os arquivos armazenam dados em qualquer formato de arquivo. Se você quiser criar uma tabela com base em dados na área de arquivos, poderá criar um atalho que aponte para a pasta que contém os arquivos de tabela.

Na camada bronze, você armazena dados em seu formato original, que podem ser tabelas ou arquivos. Se os dados de origem forem do OneLake, do Azure Data Lake Store Gen2 (ADLS Gen2), do Amazon S3 ou do Google, crie um atalho na camada bronze em vez de copiar os dados.

Nas camadas prata e ouro, normalmente você armazena dados em tabelas Delta. No entanto, você também pode armazenar dados em arquivos Parquet ou CSV. Se você fizer isso, deverá criar explicitamente um atalho ou uma tabela externa com um local que aponte para a pasta não gerenciada que contém os arquivos Delta Lake no Apache Spark.

No Microsoft Fabric, o Lakehouse Explorer fornece uma representação gráfica unificada de toda a Lakehouse para que os usuários naveguem, acessem e atualizem seus dados.

Armazenamento do Delta Lake

O Delta Lake é uma camada de armazenamento otimizada que fornece a base para armazenar dados e tabelas. Ele oferece suporte a transações ACID para trabalhos de grandes volumes de dados e, por esse motivo, é o formato de armazenamento padrão em um lakehouse do Fabric.

O Delta Lake oferece confiabilidade, segurança e desempenho no lakehouse para operações de streaming e em lote. Internamente, armazena dados no formato de arquivo Parquet; no entanto, também mantém logs de transações e estatísticas que fornecem recursos e melhor desempenho em relação ao formato padrão do Parquet.

O formato Delta Lake oferece os seguintes benefícios em comparação com formatos de arquivo genéricos:

  • Suporte às propriedades ACID, especialmente a durabilidade para evitar dados corrompidos.
  • Consultas de leitura mais rápidas.
  • Aumento da atualização de dados.
  • Suporte para cargas de trabalho em lote e streaming.
  • Suporte à reversão de dados usando a viagem no tempo do Delta Lake.
  • Conformidade regulatória avançada e auditoria usando o histórico de tabelas do Delta Lake.

O Fabric padroniza o formato de arquivo de armazenamento com o Delta Lake. Por padrão, cada mecanismo de carga de trabalho no Fabric cria tabelas Delta quando você grava dados em uma nova tabela. Para obter mais informações, consulte as tabelas Lakehouse e Delta Lake.

Modelo de implantação

Para implementar a arquitetura de medalhão no Fabric, você pode usar lakehouses (um para cada camada), um data warehouse ou uma combinação de ambos. Sua decisão deve ser baseada em sua preferência e na experiência de sua equipe. Com o Fabric, você pode usar diferentes mecanismos analíticos que funcionam em uma cópia de seus dados no OneLake.

Aqui estão dois padrões a serem considerados:

  • Padrão 1: Crie cada camada como uma casa de lago. Nesse caso, os usuários empresariais acessam dados usando o endpoint de análise SQL.
  • Padrão 2: Crie as camadas de bronze e prata como casas de lago e a camada de ouro como um data warehouse. Nesse caso, os usuários empresariais acessam dados através do endpoint do data warehouse.

Embora você possa criar todas as lakehouses em um único workspace do Fabric, recomendamos que você crie cada lakehouse em seu próprio workspace separado. Essa abordagem fornece mais controle e melhor governança no nível da camada.

Para a camada bronze, recomendamos que você armazene os dados em seu formato original ou use Parquet ou Delta Lake. Sempre que possível, mantenha os dados em seu formato original. Se os dados de origem forem do OneLake, Azure Data Lake Store Gen2 (ADLS Gen2), Amazon S3 ou Google, crie um atalho na camada bronze em vez de copiar os dados.

Para as camadas prata e ouro, recomendamos que você use tabelas Delta devido às funcionalidades extras e aos aprimoramentos de desempenho que elas fornecem. O Fabric padroniza no formato Delta Lake e, por padrão, cada mecanismo no Fabric grava dados nesse formato. Além disso, esses mecanismos usam a otimização de tempo de gravação do V-Order para o formato de arquivo Parquet. Essa otimização permite leituras rápidas por mecanismos de computação do Fabric, como Power BI, SQL, Apache Spark e outros. Para obter mais informações, consulte a otimização da tabela Delta Lake e o V-Order.

Por fim, hoje muitas organizações enfrentam um enorme crescimento nos volumes de dados, juntamente com uma necessidade crescente de organizar e gerenciar esses dados de forma lógica, facilitando o uso e a governança mais direcionados e eficientes. Isso pode fazer com que você estabeleça e gerencie uma organização de dados descentralizada ou federada com governança. Para atender a esse objetivo, considere implementar uma arquitetura de malha de dados. A malha de dados é um padrão de arquitetura que se concentra na criação de domínios de dados que oferecem dados como um produto.

Você pode criar uma arquitetura de malha de dados para seu patrimônio de dados no Fabric criando domínios de dados. Você pode criar domínios mapeados para seus domínios de negócios, por exemplo, marketing, vendas, inventário, recursos humanos e outros. Em seguida, você pode implementar a arquitetura de medalhão configurando camadas de dados em cada um de seus domínios. Para obter mais informações sobre domínios, consulte Domínios.

Usar vistas de lago materializadas para arquitetura de medalhão

Vistas de lago materializadas no Microsoft Fabric ajudam você a implementar a arquitetura de medalhão em sua casa de lago. Em vez de criar pipelines complexos para transformar dados entre camadas de bronze, prata e ouro, você pode definir visões materializadas de lago que gerenciam automaticamente as transformações.

Os principais benefícios do uso de vistas materializadas do lago para a arquitetura medalhão incluem:

  • Pipelines declarativos: defina transformações de dados usando instruções SQL em vez de criar pipelines manuais entre camadas.
  • Gerenciamento automático de dependência: o Fabric determina automaticamente a ordem de execução correta com base nas dependências de exibição.
  • Regras de qualidade de dados: suporte interno para definir e impor restrições de qualidade de dados à medida que os dados são movidos por camadas.
  • Atualização ideal: o sistema determina automaticamente se deve executar uma atualização incremental, completa ou não para cada exibição.
  • Visualização e monitoramento: exiba a linhagem em todas as camadas e acompanhe o progresso da execução.

Por exemplo, você pode criar uma visão de camada de prata que higieniza e une dados de tabelas de bronze e, em seguida, criar visões de camada de ouro que agregam os dados da camada de prata para relatórios. O sistema gerencia a orquestração de atualização automaticamente.

Para obter mais informações, consulte Implementar a arquitetura de medalhão com vista materializada para o lago.

Compreender o armazenamento de dados da tabela Delta

Essa seção descreve outras diretrizes relacionadas à implementação de uma arquitetura de lakehouse medallion no Fabric.

Tamanho do arquivo

Geralmente, uma plataforma de Big Data tem um desempenho melhor quando tem alguns arquivos grandes em vez de muitos arquivos pequenos. A degradação de desempenho ocorre quando o mecanismo de computação tem muitos metadados e operações de arquivo para gerenciar. Para melhorar o desempenho da consulta, recomendamos que você vise arquivos de dados com aproximadamente 1 GB de tamanho.

Diferentes camadas da arquitetura de medalhão possuem requisitos diferentes para o tamanho do arquivo, dependendo do mecanismo de consumo que será utilizado. Na camada bronze, você pode ter arquivos menores devido à natureza bruta dos dados, desde que você concentre a modificação e a preparação de dados com o Spark. Nas camadas de prata e ouro, você deve otimizar para tamanhos de arquivo maiores e grupos de linhas mais extensos, a fim de aprimorar o desempenho das consultas para os mecanismos de consumo. Para saber mais sobre como otimizar tamanhos de arquivo para camadas diferentes, consulte a manutenção e a otimização da tabela entre cargas de trabalho.

Retenção histórica

Por padrão, o Delta Lake mantém um histórico de todas as alterações feitas, de modo que o tamanho dos metadados históricos cresce ao longo do tempo. Com base nos requisitos de negócios, mantenha os dados históricos apenas por um determinado período de tempo para reduzir os custos de armazenamento. Considere a retenção de dados históricos apenas para o último mês ou outro período apropriado.

Você pode remover dados históricos mais antigos de uma tabela Delta usando o comando VACUUM. No entanto, por padrão, você não pode excluir dados históricos nos últimos sete dias. Essa restrição mantém a consistência nos dados. Configure o número padrão de dias com a propriedade delta.deletedFileRetentionDuration = "interval <interval>"da tabela. Essa propriedade determina o período de tempo em que um arquivo deve ser excluído antes de ser considerado um candidato para uma operação de vácuo.

Partições de tabela e agrupamento

Ao armazenar dados em cada camada, recomendamos que você use uma estrutura de pasta particionada sempre que aplicável. Essa técnica melhora a capacidade de gerenciamento de dados e o desempenho da consulta. Em geral, dados particionados em uma estrutura de pastas resultam em uma pesquisa mais rápida por entradas de dados específicas devido à remoção/eliminação de partições irrelevantes. O particionamento geralmente é uma boa estratégia para ingestão de alta frequência na camada Bronze, pois se alinha com várias ferramentas de ingestão. No entanto, para camadas Silver e Gold, recomendamos que você use o Clustering Líquido em vez de particionar para otimizar o desempenho da consulta. Para saber mais sobre como otimizar diferentes camadas, consulte Manutenção e otimização de tabelas entre cargas de trabalho.

Normalmente, você acrescenta dados à tabela de destino à medida que novos dados chegam. No entanto, em alguns casos, você pode mesclar dados porque precisa atualizar os dados existentes ao mesmo tempo. Nesse caso, você pode executar uma operação upsert usando o comando MERGE. Quando a tabela de destino for particionada, use um filtro de partição para acelerar a operação. Dessa forma, o mecanismo pode eliminar partições que não exigem atualização.

Acesso de dados

Planeje e controle quem precisa de acesso a dados específicos no lakehouse. Você também deve entender os vários padrões de transação que eles usarão ao acessar esses dados para cada camada.

Dica

Cada camada de medalhão tem requisitos de otimização diferentes. Para obter diretrizes abrangentes sobre estratégias de manutenção de tabelas para as camadas bronze, prata e ouro, incluindo quando habilitar o V-Order e tamanhos de arquivo ideais, consulte a manutenção e otimização de tabelas entre diferentes cargas de trabalho.

Para mais informações sobre como implementar a medallion lakehouse architecture, consulte os recursos abaixo.