data lake

O que é um Data Lake ?

Um data lake é uma arquitetura de armazenamento de dados que permite a organização e o gerenciamento de uma vasta quantidade de informações em seu formato bruto, sem a necessidade de categorização ou processamento imediato.

Ao contrário de um banco de dados tradicional ou de um data warehouse, onde os dados são estruturados em tabelas e organizados de acordo com um esquema predefinido, o data lake pode armazenar dados em diversos formatos — estruturados, semi-estruturados e não estruturados — como arquivos de texto, vídeos, imagens, dados de sensores IoT e registros de redes sociais. Essa flexibilidade torna o data lake uma solução atraente para organizações que precisam lidar com grandes volumes de dados de diferentes fontes, especialmente no contexto de big data.

Significado Data Lake

Um Data Lake é um repositório centralizado que armazena grandes volumes de dados em seu formato bruto, permitindo flexibilidade e escalabilidade. É essencial para análise de Big Data, facilitando a exploração e extração de insights por cientistas e analistas de dados.

História do Data Lake

Abaixo vamos falar um pouco mais sobre a História do Data Lake, a  primeira citação sobre o Data Lake foi do blog do James Dixon onde ele descreve problemas em relação aos dados que estavam sendo encontrados naquele momento :

https://jamesdixon.wordpress.com/2010/10/14/pentaho-hadoop-and-data-lakes/

Abaixo o Texto descrito por ele

Earlier this week, at Hadoop World in New York,  Pentaho announced availability of our first Hadoop release.

As part of the initial research into the Hadoop arena I talked to many companies that use Hadoop. Several common attributes and themes emerged from these meetings:

  • 80-90% of companies are dealing with structured or semi-structured data (not unstructured).
  • The source of the data is typically a single application or system.
  • The data is typically sub-transactional or non-transactional.
  • There are some known questions to ask of the data.
  • There are many unknown questions that will arise in the future.
  • There are multiple user communities that have questions of the data.
  • The data is of a scale or daily volume such that it won’t fit technically and/or economically into an RDBMS.

In the past the standard way to handle reporting and analysis of this data was to identify the most interesting attributes, and to aggregate these into a data mart. There are several problems with this approach:

  • Only a subset of the attributes are examined, so only pre-determined questions can be answered.
  • The data is aggregated so visibility into the lowest levels is lost

Based on the requirements above and the problems of the traditional solutions we have created a concept called the Data Lake to describe an optimal solution.

If you think of a datamart as a store of bottled water – cleansed and packaged and structured for easy consumption – the data lake is a large body of water in a more natural state. The contents of the data lake stream in from a source to fill the lake, and various users of the lake can come to examine, dive in, or take samples.

For more information on this concept you can watch a presentation on it here: Pentaho’s Big Data Architecture

O conceito fica claro com a comparação :

“Data Mart são como pacotes de garrafas de água – limpas, empacotadas e estruturadas para consumo fácil ”

“Data Lake é um grande armazenador de água em estado natural, várias fontes alimentam o lago, vários usuários podem vir para examinar, mergulhar ou pegar amostras de dados”

 

Data Lake vs Data Warehouses

Depois no  KDNuggets, um artigo muito interessante descreveu as principais diferenças entre o Data Lake e os Data Warehouses :

https://www.kdnuggets.com/2015/09/data-lake-vs-data-warehouse-key-differences.html

Comparativo : Data Lake vs. Data Warehouse

  • DATA:
    • Data Lake: Armazena dados em seu formato bruto, incluindo dados não estruturados, semi-estruturados e estruturados.
    • Data Warehouse: Armazena dados estruturados que passaram por um processo de ETL (Extração, Transformação e Carga).
  • PROCESSING:
    • Data Lake: Processamento de dados em tempo real e suporte a análises exploratórias, permitindo transformações conforme necessário.
    • Data Warehouse: Processamento mais intenso e estruturado, com foco em relatórios e análises regulares.
  • STORAGE:
    • Data Lake: Geralmente, utiliza armazenamento de baixo custo e é altamente escalável para grandes volumes de dados.
    • Data Warehouse: Armazenamento mais caro, otimizando dados para consultas rápidas e consistentes.
  • AGILITY:
    • Data Lake: Alta agilidade na ingestão e análise de dados variados, ideal para experimentação e inovação.
    • Data Warehouse: Menos ágil, pois requer um ciclo de ETL mais rigoroso antes que os dados possam ser analisados.
  • SECURITY:
    • Data Lake: Pode enfrentar desafios em governança e segurança, pois os dados são ingeridos sem controle rigoroso.
    • Data Warehouse: Oferece segurança e governança mais robustas, garantindo a integridade e qualidade dos dados.
  • USERS:
    • Data Lake: Principalmente utilizado por cientistas de dados e analistas que realizam análises complexas e experimentais.
    • Data Warehouse: Focado em usuários de negócios, como analistas e gerentes que precisam de relatórios e insights consistentes.

DATA LAKE x DATA WAREHOUSE

Data Lake e Data Warehouse são duas abordagens diferentes para armazenar e gerenciar dados, cada uma com suas características, vantagens e finalidades específicas. Abaixo está um comparativo detalhado entre essas duas arquiteturas:

1. Estrutura dos Dados

  • Data Lake: Armazena dados em seu formato bruto, ou seja, não estruturados ou semi-estruturados. Isso inclui uma grande variedade de tipos de dados, como arquivos de texto, vídeos, imagens, dados de sensores, e muito mais. Não requer um esquema definido no momento da ingestão dos dados, adotando o modelo “schema-on-read”, em que os dados são estruturados quando são lidos ou processados.
  • Data Warehouse: Armazena apenas dados estruturados, ou seja, os dados passam por um processo de ETL (Extract, Transform, Load) antes de serem carregados, adotando um esquema fixo (“schema-on-write”). Todos os dados são organizados em tabelas e colunas, o que permite consultas rápidas e análises organizadas.

2. Finalidade

  • Data Lake: Projetado para armazenar e processar grandes volumes de dados não estruturados ou semi-estruturados. É ideal para análises de dados complexas, machine learning, ciência de dados, e big data. Data lakes são usados principalmente por cientistas de dados e engenheiros de dados que precisam de dados brutos para análises exploratórias e modelos preditivos.
  • Data Warehouse: Voltado para a análise de dados corporativos e relatórios de negócios. É amplamente utilizado por analistas de negócios e gerentes para geração de relatórios, dashboards e análises detalhadas. A estrutura rígida permite relatórios consistentes e rápidos, mas com menos flexibilidade para experimentos exploratórios.

3. Custo

  • Data Lake: Geralmente, possui um custo mais baixo de armazenamento, pois utiliza sistemas de arquivos distribuídos (como HDFS ou S3) para lidar com grandes volumes de dados em diferentes formatos. No entanto, a falta de estrutura pode aumentar os custos de processamento e extração de valor dos dados.
  • Data Warehouse: O custo tende a ser mais alto, pois os dados são pré-processados e estruturados, o que requer mais recursos computacionais e ferramentas de ETL. Além disso, o armazenamento em sistemas tradicionais de data warehouse é mais caro devido à necessidade de hardware especializado.

4. Performance de Consultas

  • Data Lake: As consultas podem ser mais lentas, especialmente quando os dados não estão estruturados ou indexados. As ferramentas de análise precisam processar os dados brutos no momento da consulta, o que pode demandar mais tempo e recursos.
  • Data Warehouse: Altamente otimizado para consultas SQL e análises rápidas. A estrutura organizada e a indexação permitem respostas mais rápidas, tornando-o eficiente para relatórios regulares e consultas complexas que requerem dados estruturados.

5. Governança e Segurança

  • Data Lake: É mais difícil de gerenciar e governar devido à natureza não estruturada dos dados. Sem uma governança adequada, o data lake pode se transformar em um “data swamp” (pântano de dados), onde a localização e a qualidade dos dados são comprometidas. Requer ferramentas avançadas de governança e catalogação para organizar os dados.
  • Data Warehouse: Possui um controle rígido sobre os dados, já que os processos de ETL garantem a qualidade e consistência dos dados antes do armazenamento. A governança e a segurança são mais fáceis de implementar, com regras bem definidas para acesso e controle.

6. Escalabilidade

  • Data Lake: Altamente escalável para lidar com grandes volumes de dados de diversas fontes. Ele pode crescer facilmente em ambientes de nuvem, como AWS S3 ou Azure Data Lake, o que o torna ideal para big data.
  • Data Warehouse: Escalável, mas a escalabilidade geralmente está limitada à capacidade de processamento e ao formato dos dados estruturados. Novos dados precisam ser processados antes de serem carregados, o que pode se tornar um gargalo conforme o volume de dados aumenta.

7. Exemplos de Usos

  • Data Lake: Usado por empresas que lidam com grandes volumes de dados não estruturados, como mídia social, logs de sistemas, sensores IoT, vídeos e áudio. Também é uma escolha comum para ciência de dados e machine learning, onde os dados são explorados em seu formato bruto.
  • Data Warehouse: Usado por empresas que precisam de relatórios rápidos e consistentes para tomada de decisão, como bancos, varejo, saúde e telecomunicações. É ideal para análises históricas e relatórios periódicos.

8. Ferramentas Comuns

  • Data Lake: Hadoop, Apache Spark, AWS S3, Azure Data Lake, Google Cloud Storage.
  • Data Warehouse: Amazon Redshift, Google BigQuery, Snowflake, Microsoft Azure SQL Data Warehouse, Teradata.

Data Lake oferece flexibilidade e é ideal para grandes volumes de dados não estruturados, enquanto Data Warehouse é mais eficiente para dados estruturados e análises tradicionais de negócios. Cada um tem sua aplicação específica, e em muitos casos, as organizações utilizam uma combinação das duas abordagens, implementando uma arquitetura de data lake e data warehouse integrada para atender a diferentes necessidades de análise de dados.

PRINCIPAIS CARACTERÍSTICAS DE UM DATA LAKE

  • Armazenamento de Dados Brutos: Um data lake permite o armazenamento de dados em sua forma original, sem a necessidade de processamento ou estruturação prévia, preservando informações para futuras análises.
  • Escalabilidade: É altamente escalável, podendo acomodar grandes volumes de dados de diversas fontes e formatos, o que o torna ideal para big data e empresas em crescimento.
  • Flexibilidade no Formato de Dados: Suporta diferentes tipos de dados — estruturados, semi-estruturados e não estruturados — como textos, imagens, vídeos e dados de sensores, promovendo uma integração ampla de informações.
  • Análise Avançada e Machine Learning: Facilita a aplicação de técnicas de machine learning e análises avançadas diretamente sobre os dados armazenados, permitindo insights profundos a partir de diversas fontes de dados.
  • Schema-on-Read: O esquema dos dados é definido apenas no momento da leitura, o que permite maior flexibilidade em como os dados são analisados e processados.

E o Lakehouse ?

O Lakehouse é uma arquitetura de dados emergente que combina os melhores recursos de data lakes e data warehouses, oferecendo uma solução unificada para o armazenamento e análise de dados. Ele permite o armazenamento de dados brutos e estruturados em um único repositório, facilitando a análise em tempo real e o suporte a consultas SQL, enquanto preserva a flexibilidade dos dados não estruturados.

Com o Lakehouse, as organizações podem realizar análises avançadas e machine learning diretamente sobre dados armazenados, reduzindo a complexidade e os custos associados à movimentação de dados entre diferentes plataformas. Essa abordagem não apenas melhora a eficiência operacional, mas também proporciona uma governança mais robusta e uma melhor qualidade dos dados, permitindo que as empresas aproveitem ao máximo suas informações para tomada de decisões informadas.

Veja mais sobre Lakehouse nesse artigo – Lakehouse: Um Guia Completo sobre o Futuro da Gestão de Dados