Implementar arquitetura medallion lakehouse no Microsoft Fabric

Este artigo apresenta a arquitetura do medallion lake e descreve como implementar uma lakehouse 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.
  • Equipe do Centro de Excelência, TI e BI: as equipes responsáveis por supervisionar as análises em toda a organização.
  • Administradores de malha: os administradores responsáveis por supervisionar a malha na organização.

A arquitetura medallion lakehouse, comumente conhecida como medallion architecture, é um padrão de design que é usado por organizações para organizar logicamente os dados em uma lakehouse. É a abordagem de design recomendada para o Fabric.

A arquitetura Medallion compreende três camadas distintas — ou zonas. Cada camada indica a qualidade dos dados armazenados na casa do lago, com níveis mais altos representando maior qualidade. Essa abordagem em várias camadas ajuda você a criar uma única fonte de verdade para produtos de dados corporativos.

É importante ressaltar que a arquitetura medalhão garante o conjunto de propriedades Atomicidade, Consistência, Isolamento e Durabilidade (ACID) à medida que os dados progridem pelas camadas. Começando com dados brutos, uma série de validações e transformações prepara dados otimizados para análises eficientes. São três etapas de medalhão: bronze (cru), prata (validado) e ouro (enriquecido).

Para obter mais informações, consulte O que é a arquitetura da casa do lago medalhão?.

OneLake e lakehouse em Fabric

A base de um armazém de dados moderno é um data lake. Microsoft OneLake, que é um data lake único, unificado e lógico para toda a sua organização. Ele vem automaticamente provisionado com todos os locatários do Fabric e foi projetado para ser o único local para todos os seus dados de análise.

Você pode usar o OneLake para:

  • Remova silos e reduza o esforço de gerenciamento. Todos os dados organizacionais são armazenados, gerenciados e protegidos em um recurso de data lake. Como o OneLake é provisionado com seu locatário do Fabric, não há mais recursos para provisionar ou gerenciar.
  • Reduza a movimentação e a duplicação de dados. O objetivo do OneLake é armazenar apenas uma cópia dos dados. Menos cópias de dados resultam em menos processos de movimentação de dados, e isso leva a ganhos de eficiência e redução da complexidade. Se necessário, você pode criar um atalho para fazer referência a dados armazenados em outros locais, em vez de copiá-los para o OneLake.
  • Utilização com múltiplos motores analíticos. Os dados no OneLake são armazenados em um formato aberto. Dessa forma, os dados podem ser consultados por vários mecanismos analíticos, incluindo o Analysis Services (usado pelo Power BI), T-SQL e Apache Spark. Outros aplicativos que não são de malha também podem usar APIs e SDKs para acessar o OneLake .

Para obter mais informações, consulte OneLake, o OneDrive para dados.

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 facilmente dimensionado para grandes volumes de dados de todos os tipos e tamanhos de arquivos e, como é armazenado em um único local, é facilmente compartilhado e reutilizado em toda a organização.

Cada lakehouse tem um endpoint de análise SQL integrado que desbloqueia recursos de data warehouse sem a necessidade de mover dados. Isso significa que você pode consultar seus dados no lakehouse usando consultas SQL e sem qualquer configuração especial.

Para obter mais informações, consulte O que é uma casa de lago no Microsoft Fabric?.

Tabelas e ficheiros

Quando você cria uma lakehouse no Fabric, dois locais de armazenamento físico são provisionados automaticamente para tabelas e arquivos.

  • Tables é uma área gerenciada para hospedar tabelas de todos os formatos no Apache Spark (CSV, Parquet ou Delta). Todas as tabelas, criadas automática ou explicitamente, são reconhecidas como tabelas na casa do lago. Além disso, todas as tabelas Delta, que são arquivos de dados do Parquet com um log de transações baseado em arquivo, também são reconhecidas como tabelas.
  • Arquivos é uma área não gerenciada para armazenar dados em qualquer formato de arquivo. Todos os arquivos Delta armazenados nesta área não são reconhecidos automaticamente como tabelas. Se quiser criar uma tabela sobre uma pasta Delta Lake na área não gerenciada, você precisará 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.

A principal distinção entre a área gerenciada (tabelas) e a área não gerenciada (arquivos) é o processo automático de descoberta e registro de tabelas. Esse processo é executado em qualquer pasta criada apenas na área gerenciada, mas não na área não gerenciada.

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.

Para obter mais informações sobre a descoberta automática de tabelas, consulte Descoberta e registro automáticos de tabelas.

Armazenamento Delta Lake

O Delta Lake é uma camada de armazenamento otimizada que fornece a base para armazenar dados e tabelas. Ele suporta transações ACID para cargas de trabalho de big data e, por esse motivo, é o formato de armazenamento padrão em um lago de malha.

É importante ressaltar que o Delta Lake oferece confiabilidade, segurança e desempenho na casa do lago 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 em relação aos formatos de arquivo genéricos oferece os seguintes benefícios principais.

  • Suporte para propriedades ACID e, especialmente, durabilidade para evitar 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 a viagem no tempo Delta Lake.
  • Conformidade regulatória e auditoria aprimoradas usando o histórico da tabela Delta Lake.

O Fabric padroniza o formato de arquivo de armazenamento com o Delta Lake e, 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.

Arquitetura de medalhão em tecido

O objetivo da arquitetura medalhão é melhorar de forma incremental e progressiva a estrutura e a qualidade dos dados à medida que progridem em cada etapa.

A arquitetura Medallion consiste em três camadas (ou zonas) distintas.

  • Bronze: Também conhecida como zona bruta, esta primeira camada armazena os dados de origem em seu formato original. Os dados nessa camada são normalmente somente acréscimo e imutáveis.
  • Prata: também conhecida como zona enriquecida, esta camada armazena dados provenientes da camada de bronze. Os dados brutos foram limpos e padronizados, e agora estão estruturados como tabelas (linhas e colunas). Ele também pode ser integrado com outros dados para fornecer uma visão corporativa de todas as entidades comerciais, como cliente, produto e outros.
  • Ouro: Também conhecida como zona curada, esta camada final armazena dados provenientes da camada prateada. Os dados são refinados para atender a requisitos específicos de negócios e análises downstream. As tabelas normalmente estão em conformidade com o design de esquema em estrela, que suporta o desenvolvimento de modelos de dados otimizados para desempenho e usabilidade.

Importante

Como uma casa de lago de tecido representa uma única zona, você cria uma casa de lago para cada uma das três zonas.

Diagrama da arquitetura medallion OneLake que mostra fontes de dados, preparar e transformar com três camadas, e análise com SQL e Power BI.

Em uma implementação típica de arquitetura medalhão no Fabric, a zona 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 zonas de prata e ouro contêm tabelas Delta.

Gorjeta

Para aprender a criar uma lakehouse, trabalhe no tutorial de cenário de ponta a ponta da Lakehouse.

Orientação de lacustre de tecido

Esta seção fornece orientações relacionadas à implementação de sua casa de lago Fabric usando a arquitetura medalhão.

Modelo de implementação

Para implementar a arquitetura medallion no Fabric, você pode usar lakehouses (um para cada zona), 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. Lembre-se de que o Fabric oferece flexibilidade: você pode usar diferentes mecanismos analíticos que funcionam em uma única cópia de seus dados no OneLake.

Aqui estão dois padrões a considerar.

  • Padrão 1: Crie cada zona como uma casa de lago. Nesse caso, os usuários corporativos acessam dados usando o ponto de extremidade de análise SQL.
  • Padrão 2: Crie as zonas de bronze e prata como casas de lago, e a zona de ouro como 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 do Fabric. Essa abordagem fornece mais controle e melhor governança no nível da zona.

Para a zona bronze, recomendamos que você armazene os dados em 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 zona bronze em vez de copiar os dados.

Para as zonas prata e ouro, recomendamos que você use tabelas Delta devido aos recursos extras e aprimoramentos de desempenho que elas oferecem. 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 extremamente rápidas por mecanismos de computação Fabric, 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. Em seguida, você pode implementar a arquitetura medallion configurando zonas de dados dentro de cada um dos seus domínios.

Para obter mais informações sobre domínios, consulte Domínios.

Compreender o armazenamento de dados da tabela Delta

Esta seção descreve outros tópicos de orientação relacionados à 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 um pequeno número de arquivos grandes em vez de um grande número de arquivos pequenos. Isso porque a degradação do desempenho ocorre quando o mecanismo de computação precisa gerenciar muitos metadados e operações de arquivo. Para um melhor desempenho da consulta, recomendamos que você procure arquivos de dados com aproximadamente 1 GB de tamanho.

Delta Lake tem um recurso chamado otimização preditiva. A otimização preditiva elimina a necessidade de gerenciar manualmente as operações de manutenção para tabelas Delta. Quando esse recurso está habilitado, o Delta Lake identifica automaticamente as tabelas que se beneficiariam das operações de manutenção e, em seguida, otimiza seu armazenamento. Ele pode aglutinar de forma transparente muitos arquivos menores em arquivos grandes, e sem qualquer impacto sobre outros leitores e gravadores dos dados. Embora esse recurso deva fazer parte de sua excelência operacional e de seu trabalho de preparação de dados, o Fabric também tem a capacidade de otimizar esses arquivos de dados durante a gravação de dados. Para obter mais informações, consulte Otimização preditiva para Delta Lake.

Retenção histórica

Por padrão, o Delta Lake mantém um histórico de todas as alterações feitas Isso significa que o tamanho dos metadados históricos cresce ao longo do tempo. Com base em seus requisitos de negócios, você deve procurar manter 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, esteja ciente de que, por padrão, você não pode excluir dados históricos nos últimos sete dias, ou seja, para manter a consistência nos dados. O número padrão de dias é controlado pela propriedade delta.deletedFileRetentionDuration = "interval <interval>"table . Ele determina o período de tempo que um arquivo deve ser excluído antes que ele possa ser considerado um candidato para uma operação de vácuo.

Partições da tabela

Quando você armazena dados em cada zona, recomendamos que você use uma estrutura de pastas particionadas sempre que aplicável. Essa técnica ajuda a melhorar a capacidade de gerenciamento de dados e o desempenho da consulta. Geralmente, os dados particionados em uma estrutura de pastas resultam em uma busca mais rápida por entradas de dados específicas graças à poda/eliminação de partições.

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 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

Por fim, você deve planejar e controlar quem precisa acessar dados específicos na casa do lago. Você também deve entender os vários padrões de transação que eles usarão ao acessar esses dados. Em seguida, você pode definir o esquema de particionamento de tabela correto e a colocação de dados com índices de ordem Z do Delta Lake.

Para obter mais informações sobre como implementar um Fabric lakehouse, consulte os recursos a seguir.