Ir para o conteúdo

Construção de um data lakehouse

Construímos um data lakehouse em camadas bronze, prata e ouro, começando por um caso de uso, como fizemos para a Fokker Services Group.

Estamos a construir uma plataforma de dados para a Fokker Services Group segundo a arquitetura medallion

Os dados de várias fontes são reunidos, limpos e modelados segundo a arquitetura medallion, com Databricks no Azure e dbt. Os fluxos de dados estão diretamente ligados a casos de uso como planeamento, gestão de stocks e visibilidade sobre os custos.

Leia o caso de estudo

Porque é que a nossa equipa de dados faz os cálculos com uma cópia dos dados diferente da utilizada pelo dashboard?

O data scientist obtém ficheiros em bruto do data lake, o controller faz relatórios a partir de um data warehouse separado e, todas as noites, uma tarefa copia tabelas de um para o outro. Um lakehouse permite que ambos trabalhem com as mesmas tabelas, com um único conjunto de permissões.

Agende uma conversa
Man staat voor een whiteboard met een getekend stroomschema en schetsen, met papieren onder zijn arm.

Tem uma única camada de armazenamento para relatórios e machine learning, organizada em bronze, prata e ouro

Fale connosco sobre o seu lakehouse

Dados brutos preservados

A camada bronze preserva os dados da fonte tal como chegaram, para que possam ser processados novamente. Na Vivara, chegam diariamente dados de fontes como SAP, Magento e SharePoint.

Dados limpos na prata, prontos no ouro

A camada prata valida e elimina duplicados; a camada ouro disponibiliza tabelas para cada questão. Na Fokker Services Group, os controlos de qualidade dos dados fazem parte da própria plataforma.

Tabelas abertas no seu próprio armazenamento

As tabelas estão no formato aberto Delta, no seu próprio armazenamento na cloud ou no OneLake. Power BI, SQL e Python leem as mesmas tabelas.

Permissões e proveniência por tabela

Um catálogo controla quem pode ver o quê e qual é a origem de cada tabela. Para o Koninklijk Concertgebouworkest, trabalhamos com Delta Lake e Unity Catalog.

Uma pergunta percorre primeiro todas as camadas; depois ligamos as fontes seguintes

  1. Escolher a plataforma e as camadas

    Escolhemos a plataforma em função da sua cloud e da sua equipa e definimos os catálogos ou workspaces e um responsável por cada camada.

  2. Levar um caso de uso por todas as camadas

    Para uma pergunta concreta, carregamos as fontes na camada bronze e construímos as camadas prata e ouro. Os utilizadores validam o resultado.

  3. Expandir e gerir

    As novas fontes reutilizam as mesmas camadas e as versões passam pelo Git. Depois, a sua equipa gere a plataforma, ou tratamos nós disso.

Precisamos de um lakehouse ou basta uma solução mais simples?

Avalie connosco numa conversa

Faz sentido quando

Além das tabelas de ERP e CRM, há dados de sensores, ficheiros de registo, documentos ou JSON proveniente de APIs, e pretende utilizar os mesmos dados para relatórios e machine learning sem manter duas cópias.

Não faz sentido quando

Os seus relatórios baseiam-se em algumas fontes estruturadas e a sua equipa trabalha em SQL. Nesse caso, um data warehouse é mais simples. Se precisar apenas de alguns relatórios, muitas vezes basta um modelo Power BI ligado diretamente à fonte.

O que determina a dimensão

O número de fontes e a frequência com que são atualizadas, a necessidade de streaming, a quantidade de dados históricos que conserva, a existência de um ambiente que possamos reutilizar e quem ficará responsável pela gestão.

Ficamos depois dependentes de um único fornecedor?

Os dados ficam no formato aberto Delta, no seu próprio armazenamento, e as pipelines e transformações ficam guardadas como código no seu próprio repositório Git. Mudar de fornecedor dá trabalho, mas os dados continuam a pertencer-lhe e a ser legíveis.

Devemos construir o lakehouse em Databricks, em Microsoft Fabric ou em ambos?

Databricks

Escolha esta opção se a sua equipa trabalha com Python e Spark, se os seus dados estão no Azure, na AWS ou no Google Cloud, ou se os modelos precisam de entrar em produção com controlo de versões. Veja implementação de Databricks.

Microsoft Fabric

Escolha esta opção se o Power BI já é o padrão e pretende gerir menos infraestrutura. As camadas bronze e prata tornam-se lakehouses; a camada ouro pode ser um warehouse. Veja implementação de Microsoft Fabric.

Ambos

Escolha esta opção se o trabalho de data engineering é feito no Azure Databricks e a organização utiliza o Power BI. O Fabric pode então ler o catálogo sem criar uma cópia. O nosso conselho: mantenha um único local onde as tabelas são escritas.

Como parceiros da Databricks e da Microsoft, recomendamos a plataforma adequada à sua organização

A Data Science Lab trabalha com dados e IA desde 2016 e está sediada em Amesterdão. Desenvolvemos plataformas de dados em Databricks para Fokker Services Group, Vivara e Koninklijk Concertgebouworkest, entre outros.

Agende uma reunião inicial

Na primeira conversa, decidimos em conjunto qual a fonte que passa primeiro para a camada bronze

Stef Stoelwinder

Stef Stoelwinder

Desenvolvimento de Negócio

Stef é o seu primeiro ponto de contacto. Na primeira conversa, falamos das suas fontes de dados, da sua plataforma atual e da primeira questão que pretende abordar com o lakehouse.

Que fontes teremos de reunir no nosso lakehouse?

Indique-nos que fontes e que plataforma utiliza atualmente. Respondemos por email ou marcamos uma primeira conversa.

Introduza um endereço de e-mail válido.

Diga-nos como podemos ajudar.

Perguntas frequentes

Um data lakehouse combina o armazenamento aberto e de baixo custo de um data lake com a fiabilidade de um data warehouse. Os dados são guardados em ficheiros num formato aberto, com uma camada adicional que gere as transações, a validação de esquemas e as permissões.

Assim, os relatórios, a análise e o machine learning usam as mesmas tabelas validadas, em vez de cada um depender da sua própria cópia. O lakehouse faz parte da nossa fundação de dados.

Um data warehouse disponibiliza tabelas estruturadas e depuradas para BI e é geralmente desenvolvido em SQL. Um lakehouse também pode guardar dados não estruturados e semiestruturados, como ficheiros de registo e JSON, e foi concebido para Spark e Python, além de SQL.

A distinção está a esbater-se: no Microsoft Fabric, tanto o lakehouse como o warehouse guardam tabelas Delta no OneLake. Segundo a Microsoft, um warehouse é adequado quando precisa de T-SQL e de transações que abrangem várias tabelas. Se trabalha sobretudo com dados estruturados de sistemas ERP e CRM, leia sobre a criação de um data warehouse.

A arquitetura medallion divide um lakehouse em três camadas. A camada bronze contém dados em bruto, não validados, tal como chegaram da origem. A camada prata contém dados validados, depurados e sem duplicados. A camada ouro contém tabelas organizadas por questões de negócio, para dashboards e modelos.

A Databricks apresenta-a como uma prática recomendada, não como uma obrigação, e desaconselha escrever diretamente da ingestão para a camada prata: uma alteração ao esquema na origem poderia interromper a pipeline. A Microsoft recomenda colocar cada camada num workspace próprio no Fabric, para ter mais controlo sobre cada uma.

O Delta Lake guarda os dados em ficheiros Parquet acompanhados de um registo de transações. Isto permite transações ACID, validação do esquema durante a escrita e uma versão por cada alteração, para que possa consultar um estado anterior através de time travel. É o formato predefinido tanto no Databricks como no Microsoft Fabric.

Como o protocolo é aberto, outras ferramentas também conseguem ler as tabelas. Com o UniForm, a Databricks acrescenta metadados Iceberg, permitindo aos leitores Iceberg ler os mesmos ficheiros sem criar uma cópia.

No Databricks, usa-se o Unity Catalog: as tabelas, os volumes e os modelos recebem nomes como catalog.schema.tabela, as permissões são atribuídas através de grupos e a linhagem dos dados mostra que origem alimenta cada dashboard. Para o Koninklijk Concertgebouworkest, trabalhamos com Delta Lake e Unity Catalog.

No Fabric, esse trabalho é feito pelas funções dos workspaces, pela segurança do OneLake até ao nível das linhas e colunas e pelas etiquetas de confidencialidade do Microsoft Purview. Os acordos sobre a responsabilidade pelos dados e as definições fazem parte da governação de dados.

Se alguém pedir a eliminação dos seus dados ao abrigo do RGPD, um DELETE não é suficiente. O Delta Lake conserva versões anteriores das tabelas para time travel, pelo que os dados permanecem nos ficheiros até serem removidos pelo VACUUM. Nas tabelas com deletion vectors, é ainda necessário executar primeiro um passo REORG.

A Databricks recomenda começar pela camada bronze e aplicar depois a eliminação às camadas prata e ouro. Documente esse processo antes de chegar o primeiro pedido. Cabe ao seu jurista ou responsável pela proteção de dados decidir sobre os aspetos jurídicos.

Raramente são problemas técnicos. Normalmente, falta um responsável por cada tabela, cada equipa escreve na sua própria pasta e ninguém sabe que notebook alimenta uma tabela da camada ouro. O lakehouse acaba então por se tornar num pântano de ficheiros.

A manutenção também é esquecida. Muitos ficheiros pequenos tornam as queries mais lentas e, sem VACUUM, as versões antigas fazem crescer o armazenamento. No Databricks, o predictive optimization trata disso para as tabelas geridas. Defina antecipadamente quem vai manter a plataforma após a entrada em produção; pode ser a sua própria equipa ou o nosso serviço de gestão e melhoria contínua.

Se cria relatórios a partir de algumas fontes estruturadas, a sua equipa trabalha em SQL e não prevê usar machine learning nem dados não estruturados. Nesse caso, um data warehouse é mais simples de criar e gerir. Se precisa apenas de alguns relatórios a partir de um único sistema, muitas vezes basta um modelo Power BI ligado à origem.

Um lakehouse também não resolve problemas numa fonte de dados desorganizada; comece por definir regras para a introdução dos dados. Se uma solução mais simples for mais adequada, dizemos-lhe. Se quiser comparar fornecedores primeiro, consulte a nossa visão geral de empresas especializadas em plataformas de dados.