analista de dados

Data Lake, Data Warehouse e Data Mart: entenda as diferenças

No universo da arquitetura de dados, a forma como organizamos a informação é tão importante quanto os dados em si. Com tantas tecnologias disponíveis, como saber qual usar em cada situação? Como os dados fluem desde sua captura até se tornarem insights valiosos?

Neste artigo, vamos explorar desde os fundamentos até aspectos práticos sobre Data Lake, Data Warehouse e Data Mart, com base em conceitos apresentados por Felipe Rodrigues (Bidu), Engenheiro de Software Sênior na Doist, em sua aula sobre Estrutura e Arquitetura de Dados na Tera.

Você vai reconhecer como uma arquitetura de dados bem estruturada permite que a informação flua de forma organizada — desde sua captura bruta até análises sofisticadas — e por que isso é fundamental para o sucesso de organizações em um mundo cada vez mais orientado por dados.

Uma arquitetura completa de dados

Uma arquitetura completa de dados é composta por diferentes camadas, cada uma com sua função específica. No começo, temos as diversas fontes de informação que o sistema pode ter, como bancos de dados internos da empresa, bancos de dados externos, sensores, entre outras coisas.

diagrama de arquitetura de dados
No meio dessa arquitetura, temos um Data Lake que vai receber todas essas informações. Em seguida, temos um Data Warehouse, que recebe essas informações filtradas através de processos de ETL (extração, transformação e carga). Por fim, temos toda a camada de análise e processamento de informações.

Como alguns bancos são melhores para alguns casos de uso do que outros e, por vezes, vários casos de usos diferentes são necessários em uma equipe, é usual que exista uma arquitetura em que os mesmos dados habitem em servidores diferentes, com finalidades diferentes.

Vamos ver agora mais sobre cada uma das partes, do Data Lake ao Data Warehouse.

O que é Data Lake?

O Data Lake, como o próprio nome diz, é um lago de dados. Vai ser o lugar em que a gente vai colocar todas as informações das nossas fontes que podem ser interessantes nas nossas análises. É o repositório central de todos os dados, onde reside toda a informação que pode ser útil em alguma análise.

Um HD "infinito" e muito barato

A principal característica que é legal a gente olhar para uma plataforma de Data Lake é ela ser barata. O foco dele é funcionar como um HD "infinito", com armazenamento muito barato - cerca de 2 centavos de dólar por mês por gigabyte - para que a gente consiga justamente fazer uma grande ingestão de informação e grandes volumes de informação possam ser guardados.

Dado cru: armazenamento sem grande tratamento

Nessa camada, os dados são armazenados sem grande tratamento, vindo diretamente das fontes de dados que queremos consumir. O Data Lake guarda dado cru, não processado, não agregado e não filtrado. Essas fontes podem ser diversas: os bancos de dados utilizados por alguma aplicação, dados extras como do IBGE para enriquecer análises, serviços externos como Serasa, entre outros. São conjuntos grandes e variados de dados.

Um exemplo que é muito utilizado em situações de Data Lake é o Amazon S3, que permite que a gente pegue informações na forma de arquivos de texto ou qualquer formato genérico e coloque lá dentro. O S3 possui preços baixos para armazenamento, sendo uma solução comumente usada como Data Lake. Porém, qualquer outra solução que bata com esse quesito pode ser utilizada, como o Google Cloud Storage.

Data Lake: uma fonte desorganizada de informação

O Data Lake é o primeiro passo de toda essa escala e ele é considerado uma fonte desorganizada de informação. Se o Data Lake possui um volume grande de informações desconexas e pouco estruturadas, isso é justamente o que o caracteriza.

data lake

No entanto, o conceito de organização é um pouco genérico e um pouco abstrato. Vai depender muito do problema que você está lidando. Então, embora o S3 seja um exemplo bem legal e bem comum para nós usarmos como um Data Lake, se você tem um banco de dados, pode até ser relacional, que recebe informações que não foram muito processadas, aquilo pode muito bem ser o seu Data Lake também.

O que é Data Warehouse?

Se um Data Lake recebe informações de qualquer fonte que está disponível e guarda tudo lá dentro, um Data Warehouse vai possuir as informações já mais processadas, filtradas, informações que passaram por uma certa curadoria vindo do Data Lake para dentro dele.

O Data Warehouse é um repositório orientado à performance e de interface amigável. Se o Data Lake possui um volume grande de informações desconexas e pouco estruturadas, o Data Warehouse é o oposto disso - ele terá uma quantidade menor de informações, mas limpas e organizadas de acordo com um objetivo.

Dado estruturado e pronto para uso

No Data Warehouse, nós vamos guardar informações que são realmente relevantes para análise que nós queremos fazer naquele momento ou naquele projeto. O dado está estruturado e ordenado, pronto para ser consultado e manipulado.

Performance analítica vs economia de armazenamento

Diferentemente de um Data Lake, uma solução de Data Warehousing não é voltada necessariamente para a economia por armazenamento, mas sim para a performance analítica. As tecnologias usadas para Data Warehousing normalmente são mais caras que as do Data Lake, recebendo geralmente os dados já processados e de menor volume, porém são muito mais rápidas para consultas e mais poderosas.

data warehouse caracteristicas

Um Data Warehouse é otimizado para consulta: leituras rápidas, escritas lentas. As soluções de Data Warehousing possuem velocidades muito grandes na consulta de informações, como, por exemplo, os bancos colunares do Google BigQuery ou do Amazon Redshift. Outras soluções normalmente encontradas nessas categorias incluem o Elasticsearch.

O que é Data Mart?

Bem, se um Data Lake é esse conjunto de informações que nós temos desordenadas, um Data Warehousing é um conjunto de informações que sofreu uma certa curadoria, um processo de limpeza, de seleção, o Data Mart nada mais é do que um subconjunto de dados de um Data Warehouse.

Enquanto o Data Warehouse pode possuir informações estruturadas e organizadas sobre um determinado tópico, ele pode conter diversos tópicos e projetos ao mesmo tempo. Nós chamamos de "Data Mart" um subconjunto temático de um Data Warehouse, uma subárea voltada para uma finalidade em especial.

Escopo claro e definido

O Data Mart possui escopo claro e definido, com dados de propósito específico. Geralmente são usados para guardar dados de áreas específicas, diminuindo a complexidade do todo. Isso facilita o trabalho das equipes, que podem focar nas informações relevantes para seus projetos sem se perder no volume total de dados do Data Warehouse.

data mart

Exemplo prático de Data Mart

Suponha, por exemplo, que eu e você trabalhamos na mesma empresa. A diferença é que eu estou lidando com um processo que envolva determinar a performance das nossas campanhas de marketing. E você está lidando com outro processo que diz respeito a avaliar quais são as partes do nosso produto que mais recebem críticas dos nossos consumidores.

Em outro cenário, imagine que duas equipes estejam trabalhando em projetos analíticos diferentes - uma quer avaliar a satisfação dos consumidores com o SAC e a outra quer avaliar a performance de vendas no último ano.

Esses projetos podem muito bem consumir informações que foram selecionadas no nosso Data Lake, inseridas no nosso Data Warehouse, e agora as equipes estão consumindo no seu dia a dia de trabalho. Cada uma delas irá carregar do Data Lake para o Data Warehouse informações específicas de seus projetos. Porém a coleta será bem diferente entre os projetos.

Porém, nós estamos trabalhando em duas frentes muito diferentes. Então, existem dois subconjuntos de informação dentro do nosso Data Warehouse, que nós podemos chamar cada um de um Data Mart. A grosso modo, podemos dizer que cada um desses projetos montou um Data Mart para si.

Comparativo: Data Lake vs Data Warehouse vs Data Mart

Para facilitar o entendimento das principais diferenças entre essas três camadas de arquitetura de dados, confira a tabela comparativa abaixo:

Característica Data Lake Data Warehouse Data Mart
Tipo de Dado CruNão processado ProcessadoEstruturado EspecíficoTemático
Custo de Armazenamento Muito baixo (~$0.02/GB/mês) Médio a alto Médio
Performance Leitura lenta, escrita rápida Leitura rápida, escrita lenta Leitura muito rápida (escopo reduzido)
Estrutura Desorganizada, flexível Organizada, schema-on-write Altamente organizada, focada
Objetivo Principal Armazenar todo tipo de dado bruto Análises corporativas amplas Análises departamentais específicas
Usuários Típicos Cientistas de dados, Engenheiros Analistas de negócio, BI Equipes específicas (Marketing, Vendas)
Exemplos de Tecnologia Amazon S3, Google Cloud Storage BigQuery, Redshift, Snowflake Subconjunto do Data Warehouse
Escopo de Dados Todos os dados da organização Dados relevantes para análise Dados de uma área/projeto específico

Tabela comparativa das principais características de Data Lake, Data Warehouse e Data Mart

Conclusão

Nós vimos três partes importantes de uma boa arquitetura de dados: Data Lake, Data Warehouse e Data Mart. E como a informação flui desde um estado menos organizado até mais organizado.

Compreender essas diferenças é fundamental para construir uma arquitetura de dados eficiente e que atenda às necessidades específicas de cada área da empresa. Cada camada tem sua função e importância dentro do ecossistema de dados, trabalhando em conjunto para permitir análises cada vez mais precisas e relevantes.

Se você quer se aprofundar nesse universo, conheça mais sobre engenharia de dados e as carreiras em dados em destaque no mercado.