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