Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A arquitetura medallion lakehouse, vulgarmente conhecida como arquitetura medallion, é um padrão de design usado para organizar dados numa casa de lago. É a abordagem de design recomendada para o Fabric. Como o OneLake é o data lake do Fabric, a arquitetura medallion é implementada criando lakehouses no OneLake.
** A arquitetura Medallion compreende três camadas distintas. As três camadas de medalhão são: bronze (dados brutos), prata (dados enriquecidos) e ouro (dados curados). Cada camada indica a qualidade dos dados armazenados na casa do lago, com níveis mais altos representando maior qualidade.
A arquitetura em medalhão ajuda a manter os seus dados precisos e fiáveis de acordo com os princípios de atomicidade, consistência, isolamento e durabilidade (ACID). Os seus dados começam na sua forma bruta, e as cópias originais são preservadas como fonte de verdade enquanto os seus pipelines de validações e transformações preparam os dados para análise.
Para obter mais informações, consulte O que é a arquitetura da casa do lago medalhão?.
Audiência
Este artigo apresenta a arquitetura do lago medallion e descreve como você pode implementar o padrão de design no Microsoft Fabric. Destina-se a vários públicos:
- Engenheiros de dados: equipe técnica que projeta, constrói e mantém infraestruturas e sistemas que permitem que sua organização colete, armazene, processe e analise grandes volumes de dados.
- Equipes de Centro de Excelência, TI e BI: As equipes que são responsáveis por supervisionar a análise em toda a organização.
- Administradores do Fabric: os administradores responsáveis por supervisionar o Fabric na organização.
O que é a arquitetura dos medalhões?
O objetivo da arquitetura medallion é melhorar incrementalmente a estrutura e a qualidade dos dados. Pense na arquitetura em medalhão como um processo de limpeza e organização em três etapas para os seus dados. Cada camada torna os seus dados mais fiáveis e fáceis de usar.
- Bronze (Raw): Guarda tudo exatamente como chega. Não são permitidas alterações.
- Prata (Enriquecida): Corrigir erros, padronizar formatos e remover duplicados.
- Ouro (Curado): Organizar para relatórios e painéis de controle.
Mantenha cada camada separada no seu próprio lago ou armazém de dados no OneLake, com os dados a moverem-se entre as camadas à medida que são transformados e refinados.
Numa implementação típica de arquitetura "medallion" no Fabric, a camada de bronze armazena os dados no mesmo formato da fonte de dados. Quando a fonte de dados é um banco de dados relacional, as tabelas Delta são uma boa escolha. As camadas de prata e ouro devem conter tabelas Delta.
Gorjeta
Para aprender a criar uma lakehouse, siga o tutorial do cenário de ponta a ponta da Lakehouse.
Exemplo do mundo real
Considere o seguinte exemplo de uma empresa de e-commerce que aplica a medallion architecture aos seus dados:
Camada de Bronze:
- Armazenar dados brutos de vendas do site (JSON)
- Armazenar dados brutos de inventário do armazém (CSV)
- Armazenar dados brutos de clientes a partir do CRM (exportação SQL)
Camada de Prata:
- Padronizar os formatos de data em todas as fontes
- Converter toda a moeda para USD
- Remover transações de teste
- Corresponder registos de clientes entre sistemas
Camada de Ouro:
- Criar tabela diária de dashboard de vendas
- Construir tabela do valor do tempo de vida do cliente
- Gerar tabela de previsão de inventário
Arquitetura de medalhões em OneLake
A base de um armazém de dados moderno é um data lake. O Microsoft OneLake é um data lake lógico único e unificado para toda a sua organização. Ele vem provisionado automaticamente com todos os locatários do Fabric e é o único local para todos os seus dados de análise.
Para armazenar dados no OneLake, crie uma 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, podem ser compartilhados e reutilizados em toda a organização.
Para obter mais informações, consulte O que é uma casa de lago no Microsoft Fabric?.
Tabelas e ficheiros
Quando você cria uma casa de lago no OneLake, dois locais de armazenamento físico são provisionados automaticamente:
- A Tables armazena tabelas de todos os formatos no Apache Spark (CSV, Parquet ou Delta).
- Os ficheiros armazenam dados em qualquer formato de ficheiro. Se quiseres criar uma tabela baseada em dados na área de ficheiros, podes criar um atalho que aponte para a pasta que contém os ficheiros da tabela.
Na camada de bronze, armazena-se os dados no seu formato original, que podem ser tabelas ou ficheiros. 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.
Nas camadas de prata e ouro, normalmente armazena-se 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 todo o Lakehouse para que os usuários naveguem, acessem e atualizem seus dados.
Armazenamento Delta Lake
O Delta Lake é uma camada de armazenamento otimizada que fornece a base para armazenar dados e tabelas. Este suporta transações ACID para cargas de trabalho de big data e, por esse motivo, é o formato de armazenamento padrão em um lakehouse Fabric.
O Delta Lake oferece confiabilidade, segurança e desempenho no lakehouse para operações de streaming e em lote. Internamente, ele armazena dados no formato de arquivo Parquet, no entanto, também mantém logs de transações e estatísticas que fornecem recursos e melhoria de desempenho em relação ao formato Parquet padrão.
O formato Delta Lake oferece os seguintes benefícios em comparação com formatos de arquivo genéricos:
- Suporte às propriedades ACID, com especial atenção à durabilidade para evitar a corrupção de dados.
- Consultas de leitura mais rápidas.
- Maior atualização de dados.
- Suporte para cargas de trabalho em lote e streaming.
- Suporte para reversão de dados usando o recurso de viagem no tempo do Delta Lake.
- Conformidade regulatória e auditoria aprimoradas através do uso do histórico da tabela 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 Tabelas Lakehouse e Delta Lake.
Modelo de implementação
Para implementar a arquitetura medallion no Fabric, podes usar lakehouses (um para cada camada), um data warehouse, ou uma combinação de ambos. A sua decisão deve basear-se na sua preferência e na experiência da sua equipa. 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 considerar:
- Padrão 1: Cria cada camada como uma casa de lago. Nesse caso, os usuários corporativos acedem aos dados utilizando o endpoint de análise SQL.
- Padrão 2: Criar as camadas de bronze e prata como casas de lago, e a camada de ouro como um armazém de dados. Nesse caso, os usuários corporativos acessam dados usando o ponto de extremidade do data warehouse.
Embora você possa criar todas as lakehouses em um único espaço de trabalho Fabric, recomendamos que você crie cada lakehouse em seu próprio espaço de trabalho separado. Esta abordagem dá-lhe mais controlo e melhor governação ao nível da camada.
Para a camada de bronze, recomendamos que armazene os dados no seu formato original ou use Parquet ou Delta Lake. Sempre que possível, mantenha os dados no 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 utilize tabelas Delta devido às capacidades extra e melhorias de desempenho que proporcionam. O Fabric padroniza no formato Delta Lake e, por padrão, todos os mecanismos no Fabric gravam dados nesse formato. Além disso, esses mecanismos usam a otimização do tempo de gravação V-Order para o formato de arquivo Parquet. Essa otimização permite leituras rápidas por mecanismos de computação de malha, como Power BI, SQL, Apache Spark e outros. Para obter mais informações, consulte Otimização da tabela Delta Lake e V-Order.
Por fim, hoje muitas organizações enfrentam um crescimento maciço 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 levá-lo a estabelecer e gerenciar uma organização de dados descentralizada ou federada com governança. Para atingir esse objetivo, considere a implementação de 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 sua propriedade 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, estoque, recursos humanos e outros. Pode então implementar a arquitetura medallion configurando camadas de dados em cada um dos seus domínios. Para obter mais informações sobre domínios, consulte Domínios.
Use vistas materializadas do lago para arquitetura de medalhão
As vistas materializadas do lago no Microsoft Fabric ajudam-no a implementar a arquitetura medalhão na sua casa do lago. Em vez de construir pipelines complexos para transformar dados entre as camadas de bronze, prata e ouro, você pode definir vistas materializadas do lago que gerenciam automaticamente as transformações.
Os principais benefícios do uso de vistas materializadas do lago para a arquitetura do 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ências: a malha determina automaticamente a ordem de execução correta com base nas dependências de exibição.
- Regras de qualidade de dados: suporte integrado para definir e aplicar restrições de qualidade de dados à medida que os dados se movem por camadas.
- Atualização ideal: o sistema determina automaticamente se deve ser executada uma atualização incremental, completa ou nenhuma para cada visualização.
- Visualização e monitoramento: Visualize a linhagem em todas as camadas e acompanhe o progresso da execução.
Por exemplo, pode-se criar uma vista de camada de prata que limpa e une dados de tabelas de bronze e, em seguida, criar vistas de camada de ouro que agregam os dados da camada de prata para relatórios. O sistema gere automaticamente a orquestração do refresh.
Para obter mais informações, consulte Implementar arquitetura de medalhão com vistas materializadas do lago.
Compreender o armazenamento de dados da tabela Delta
Esta seção descreve outras orientações relacionadas à implementação de uma arquitetura de casa de lago medalhão no Fabric.
Tamanho do ficheiro
Geralmente, uma plataforma de big data tem um desempenho melhor quando tem alguns arquivos grandes em vez de muitos arquivos pequenos. A degradação do desempenho ocorre quando o mecanismo de computação tem muitos metadados e operações de arquivo para gerenciar. Para um melhor desempenho da consulta, recomendamos que você procure arquivos de dados com aproximadamente 1 GB de tamanho.
Diferentes camadas da arquitetura medallion têm requisitos distintos para o tamanho do ficheiro, dependendo do motor de consumo que será utilizado. Na camada de bronze, podes ter ficheiros mais pequenos devido à natureza bruta dos dados, desde que te concentres na modificação e preparação dos dados com o Spark. Nas camadas prata e ouro, deve otimizar para tamanhos maiores de ficheiros e grupos de linhas maiores para melhorar o desempenho das consultas nos motores de consumo. Para saber mais sobre como otimizar tamanhos de ficheiros para diferentes camadas, consulte Manutenção e otimização de tabelas de carga cruzada.
Retenção histórica
Por padrão, o Delta Lake mantém um histórico de todas as alterações feitas, para que o tamanho dos metadados históricos cresça ao longo do tempo. Com base em seus requisitos de negócios, mantenha os dados históricos apenas por um determinado período de tempo para reduzir os custos de armazenamento. Considere reter dados históricos apenas para o último mês ou outro período de tempo apropriado.
Você pode remover dados históricos mais antigos de uma tabela Delta usando o comando VACUUM. No entanto, por padrão, não é possível excluir dados históricos nos últimos sete dias. Esta restrição mantém a coerência dos dados. Configure o número de dias padrão com a propriedade tabledelta.deletedFileRetentionDuration = "interval <interval>". Essa propriedade determina o período de tempo em que um arquivo deve ser excluído antes que ele possa ser considerado um candidato para uma operação de vácuo.
Partições de tabelas e agrupamento
Quando armazena dados em cada camada, recomendamos que utilize uma estrutura de pastas particionada sempre que aplicável. Essa técnica melhora a capacidade de gerenciamento de dados e o desempenho da consulta. Geralmente, os dados particionados em uma estrutura de pastas resultam em uma pesquisa mais rápida por entradas de dados específicas devido à poda/eliminação de partições. A partição é geralmente uma boa estratégia para ingestão de alta frequência na camada de Bronze, pois está alinhada com múltiplas ferramentas de ingestão. No entanto, para camadas Silver e Gold, recomendamos que utilize Liquid Clustering em vez de particionamento para otimizar o desempenho das consultas. Para saber mais sobre otimização para diferentes camadas, consulte Manutenção e otimização de tabelas de carga cruzada.
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, pode-se executar uma operação upsert usando o comando MERGE. Quando a tabela de destino estiver particionada, certifique-se de usar 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 a dados
Você deve planejar e controlar quem precisa acessar dados específicos na casa do lago. Também deves compreender os vários padrões de transação que vão usar ao aceder a estes dados para cada camada.
Gorjeta
Cada camada de medalhão tem diferentes requisitos de otimização. Para orientações abrangentes sobre estratégias de manutenção de tabelas para camadas de bronze, prata e ouro, incluindo quando ativar o V-Order e tamanhos ótimos de ficheiros, consulte Manutenção e otimização de tabelas entre cargas de trabalho.
Conteúdos relacionados
Para obter mais informações sobre como implementar a arquitetura medallion lakehouse, consulte os recursos a seguir.
- Manutenção e otimização de tabelas de carga de trabalho cruzadas
- Otimização da tabela Delta Lake e V-Order
- Tutorial: Cenário de ponta a ponta Lakehouse
- Tutorial: Implementar arquitetura medalhão com vistas materializadas do lago
- Tabelas Lakehouse e Delta Lake
- Guia de decisão do Microsoft Fabric: escolha um armazenamento de dados
- A necessidade de otimizar a escrita no Apache Spark
- Perguntas? Tente perguntar à comunidade da Fabric.
- Sugestões? Contribua com ideias para melhorar o Fabric.