O Snowflake Intelligence chegou.

Insights corporativos ao alcance de todos os colaboradores.

O que é um data lake? Arquitetura e casos de uso

Os data lakes surgiram como uma base fundamental da infraestrutura de dados moderna, desenvolvida para lidar com o volume, a variedade e a velocidade dos dados atuais.

  • Visão geral
  • O que é um data lake?
  • Data Lake vs. Data Warehouse
  • Benefícios dos data lakes
  • O que é a arquitetura de data lake?
  • Tipos de dados compatíveis
  • Ciclo de vida dos dados
  • Por que data lakes são importantes
  • Desafios e casos de uso de data lakes
  • Perguntas frequentes sobre data lakes
  • Clientes que usam o Snowflake para data lakes
  • Recursos

Visão geral

À medida que as organizações navegam em um mundo cada vez mais baseado em dados, a necessidade de soluções de armazenamento e análise de dados flexíveis, dimensionáveis e econômicas nunca foi tão grande. Os data lakes surgiram como uma base fundamental da infraestrutura de dados moderna, desenvolvida para lidar com o volume, a variedade e a velocidade dos dados atuais.

Este artigo explica o que é um data lake e detalha a arquitetura subjacente que permite o seu funcionamento de forma eficaz e em escala.

O que é um data lake?

Um data lake é um repositório centralizado capaz de permitir que as organizações armazenem todos os tipos de dados (estruturados, semiestruturados e não estruturados) em formato bruto. Diferente dos bancos de dados ou dos data warehouses tradicionais, os data lakes não precisam de esquemas ou formatações predefinidos antes do armazenamento, tornando-os altamente flexíveis e ágeis.

Principais características:

  • Schema-on-read: os dados são interpretados no momento do acesso, não da ingestão.
  • Suporte a diversos tipos de dados: de arquivos CSV e logs JSON a imagens e vídeos.
  • Oferece suporte a várias linguagens: como SQL, Spark e outras.
  • Dimensionável em escala e com boa relação custo/benefício: criado com base em armazenamento de objetos de baixo custo, geralmente na nuvem.
  • Desenvolvido para uma ampla variedade de usuários: desde analistas de dados a cientistas e engenheiros de dados.
  • Voltado para atender a todo o ciclo de vida dos dados: desde a ingestão e o armazenamento, processamento e transformação até análises de dados avançadas e IA.

Data Lake vs. Data Warehouse

Um data lake e um data warehouse são utilizados para armazenar e analisar dados, mas existem diferenças importantes.
 

  • Estrutura de dados: um data lake armazena dados brutos e não processados sem uma estrutura predefinida. Ele usa um processo chamado "schema-on-read", onde os dados são organizados somente quando são acessados para análise. Um data warehouse requer que os dados sejam limpos e transformados para atender a um esquema predefinido antes do armazenamento, um processo chamado "schema-on-write".

  • Tipos de dados: um data lake pode acomodar todos os tipos de dados, incluindo dados não estruturados, semiestruturados e estruturados. Data warehouses tradicionais armazenam dados estruturados e prontos para análise.

  • Usuários e finalidade: os data warehouses são muitas vezes otimizados para inteligência de mercado (business intelligence, BI) e relatórios, sendo usados por analistas de negócios. Os data lakes são muitas vezes usados por cientistas e engenheiros de dados para análises avançadas de dados e aprendizado de máquina em uma maior variedade de tipos de dados.

  • Estratégia híbrida: muitas organizações combinam os dois sistemas em uma arquitetura "lakehouse" para obter a flexibilidade de um data lake com o desempenho de um data warehouse.

Benefícios dos data lakes

Um data lake oferece muitas vantagens para as organizações que buscam gerenciar e analisar dados modernos em escala.
 

  • Armazenamento econômico: os data lakes são criados com base em armazenamentos de objetos de baixo custo, muitas vezes na nuvem, resultando em custos menores de armazenamento em comparação a sistemas tradicionais. Isso faz com que seja mais econômico armazenar grandes volumes de dados sem uma estrutura predefinida.

  • Escalabilidade para big data: os data lakes foram desenvolvidos para lidar com o volume e a diversidade de dados atuais. Com facilidade, eles conseguem oferecer suporte a petabytes de dados. Os data lakes são altamente dimensionáveis e sua escala pode ser ajustada de acordo com as necessidades de negócios.

  • Flexibilidade para vários tipos de dados: um data lake pode ingerir qualquer tipo de dados, de qualquer fonte, a qualquer velocidade, sejam eles estruturados, semiestruturados ou não estruturados. Esse método "schema-on-read" permite o máximo de flexibilidade para a descoberta de dados.

  • Análise de dados avançada e prontidão para a IA: um data lake serve como uma base flexível para uma ampla variedade de cargas de trabalho analíticas. Ele oferece suporte a análise de dados avançada, aprendizado de máquina e análise de dados em tempo real. A capacidade de fornecer dados brutos em grandes volumes é essencial para o treinamento de modelos de IA e de aprendizado de máquina.

O que é a arquitetura de data lake?

Enquanto o data lake refere-se ao conceito, a arquitetura do data lake refere-se à estrutura e aos componentes subjacentes que permitem o seu funcionamento com eficiência. É um sistema estruturado desenvolvido para gerenciar a ingestão, o armazenamento, o processamento, a descoberta, a governança e o consumo de conjuntos de dados em grande escala.

Principais componentes da arquitetura do data lake:

Camada

Funcionalidade

Camada de ingestão

Obtém dados de várias fontes (streaming, lote, internet das Coisas e APIs).

Camada de armazenamento

Conserva dados brutos em um armazenamento de objetos dimensionável.

Metadados e camada de catalogação

Indexa, marca e organiza dados para descoberta.

Camada de processamento

Lida com a transformação de dados por meio de ferramentas de processamento em lote/em tempo real.

Camada de acesso

Possibilita consultas, descoberta e análise de dados.

Camada de segurança e governança

Gerencia a privacidade de dados, os controles de acesso, a auditoria e a conformidade.

Tipos de dados compatíveis

Data lakes foram criados para armazenar grandes quantidades de dados em seu formato nativo e bruto. Por isso, eles oferecem suporte a diversos tipos de dados, que de modo geral podem ser categorizados em três tipos principais:

Dados estruturados

É um tipo de dados é altamente organizado que se encaixa perfeitamente em linhas e colunas, bem como em um banco de dados relacional ou em uma planilha. Esses dados possuem um esquema predefinido, que facilita a pesquisa, a análise e o gerenciamento. Exemplos de tipos de dados estruturados incluem:

  • Tabelas de banco de dados relacionais: dados organizados com colunas e linhas fixas.
  • Planilhas (por exemplo, arquivos CSV): dados tabulares com colunas definidas.
  • Dados numéricos: números inteiros, números de ponto flutuante e decimais.
  • Dados categóricos: rótulos ou categorias com um número limitado de valores.
  • Dados de data e hora: carimbos de data/hora, datas e valores de tempo.

Dados semiestruturados

São dados que não seguem uma estrutura tabular rígida, mas possuem algumas propriedades organizacionais, tornando-os mais fáceis de analisar do que dados não estruturados. Muitas vezes esses dados contêm tags ou marcadores que separam elementos semânticos e aplicam hierarquias. Exemplos incluem:

  • JSON (JavaScript Object Notation): um formato leve que utiliza pares de chave-valor e objetos aninhados.
  • XML (extensible markup language): uma linguagem de marcação que define um conjunto de regras para codificar documentos em um formato legível tanto por pessoas e por máquinas.
  • CSV (valores separados por vírgula) com estruturas complexas: enquanto o CSV básico é estruturado, ele pode se tornar semiestruturado com quantidades variáveis de colunas ou dados aninhados dentro de campos.
  • Arquivos de log: muitas vezes contêm datas, tipos de eventos e mensagens que podem ser analisados.
  • Bancos de dados NoSQL: documentos ou armazenamentos de chave-valor onde o esquema pode variar de uma entrada para outra.
  • HTML (hypertext markup language): embora seja usada principalmente para páginas da web, contém elementos e dados estruturados.
  • YAML (YAML Ain't Markup Language™): um padrão de serialização de dados fácil de ser lido para todas as linguagens de programação.

Dados não estruturados

Esse tipo de dados não possui formato ou organização predefinidos, fazendo com que eles sejam difíceis de analisar usando os métodos tradicionais. Para obter insights a partir desse tipo de dados, muitas vezes é necessário empregar ferramentas e técnicas especializadas, como processamento de linguagem natural ou aprendizado de máquina. Exemplos de tipos de dados não estruturados incluem:

  • Arquivos de texto: documentos (.txt, .doc, .pdf), emails e publicações em mídias sociais.
  • Arquivos de imagens: JPEG, PNG, GIF.
  • Arquivos de áudio: MP3, WAV.
  • Arquivos de vídeo: MP4, AVI, MOV.
  • Dados de sensores: fluxos de dados de dispositivos da Internet das Coisas que podem não ter uma estrutura consistente.
  • Arquivos binários: arquivos executáveis e formatos de dados proprietários.

A capacidade de armazenar e processar toda essa variedade de tipos de dados em seu formato nativo é uma característica e vantagem fundamental de um data lake. Esse método "schema-on-read" oferece flexibilidade e permite que cientistas e analistas de dados pesquisem e analisem dados de várias maneiras, sem as restrições de uma estrutura predefinida.

Ciclo de vida dos dados

Dentro de um data lake, o ciclo de vida dos dados descreve as etapas pelas quais eles passam, desde sua criação ou aquisição inicial até seu arquivamento ou exclusão final. É um processo contínuo que ajuda a garantir que os dados sejam gerenciados, utilizados e governados de forma eficaz durante toda a sua existência dentro do data lake. Veja a seguir uma visão geral do ciclo de vida dos dados em um data lake, tendo em mente que implementações específicas podem variar:

1. Ingestão de dados: esse é o estágio inicial em que dados de vários sistemas de origem são trazidos para o data lake. Essas fontes podem ser diversas, incluindo bancos de dados estruturados, logs semiestruturados, documentos não estruturados, streaming de dados de dispositivos de Internet das Coisas, feeds de mídias sociais e muito mais. A principal característica da ingestão em um data lake é com frequência o "ingest as-is", o que significa que os dados geralmente são carregados em seu formato original sem processamento, sem grandes transformações iniciais ou definições de esquema. Isto permite o máximo de flexibilidade para análises futuras. As ferramentas e os processos usados nesta etapa incluem upload em lote, ingestão de streaming em tempo real e conectores de dados.

2. Armazenamento e persistência de dados: após a ingestão, os dados brutos são armazenados dentro do data lake. A arquitetura muitas vezes utiliza sistemas de armazenamento distribuído, como o Hadoop Distributed File System (HDFS) ou o armazenamento de objetos baseado na nuvem (por exemplo, Amazon S3, Azure Data Lake Storage e Google Cloud Storage). Os dados permanecem no formato original, permitindo diversos tipos de análises de dados posteriormente. A escalabilidade e o custo-benefício da camada de armazenamento são fundamentais para lidar com os volumes potencialmente grandes de dados presentes em um data lake. Diferentes níveis de armazenamento podem ser empregados com base na frequência de acesso e nas políticas de retenção de dados.

3. Processamento e transformação de dados: essa etapa envolve a preparação dos dados brutos para análise e consumo. Dependendo do caso de uso analítico específico, os dados podem passar por várias transformações, incluindo limpeza, filtragem, unificação, agregação e enriquecimento. Neste ponto o "schema-on-read" entra em jogo. O esquema é aplicado quando os dados estão sendo processados para uma finalidade específica, e não no momento da ingestão. Diferentes mecanismos e estruturas de processamento são usados neste estágio, como Spark, Hadoop MapReduce, ferramentas de armazenamento de dados conectadas ao data lake e serviços de processamento sem servidor.

4. Descoberta e análise de dados: é nessa etapa que cientistas de dados, analistas e usuários empresariais exploram os dados processados para descobrir padrões, obter insights e responder a perguntas dos negócios. Eles podem usar várias ferramentas e técnicas, incluindo consultas do tipo SQL, ferramentas de visualização de dados, pacotes de análise estatística e algoritmos de aprendizado de máquina. A flexibilidade do data lake permite vários tipos de estratégias de análise com os mesmos dados, dependendo das necessidades específicas.

5. Consumo de dados e ação: os insights e os dados processados são consumidos por várias aplicações e usuários posteriores. Isso pode envolver a geração de relatórios e dashboards, o fornecimento de dados para sistemas operacionais, o suporte a aplicações em tempo real ou a orientação de decisões de negócios. Os dados consumidos podem estar em diversos formatos e serem acessados por meio de diferentes interfaces, dependendo da aplicação que os utiliza.

6. Governança e segurança de dados: durante todo o ciclo de vida, tanto a segurança quanto a governança de dados são fundamentais. Isso inclui a definição e a aplicação de políticas relacionadas à qualidade dos dados, gerenciamento de metadados, linhagem de dados, controle de acesso, mascaramento de dados e conformidade com as regulamentações em vigor. Uma governança efetiva ajuda a garantir que os dados dentro do data lake sejam confiáveis, seguros e devidamente gerenciados.

7. Arquivamento e eliminação de dados: à medida que os dados envelhecem e seu valor comercial diminui, eles podem precisar ser arquivados por razões de conformidade ou para otimizar os custos de armazenamento. Eventualmente, os dados que não forem mais necessários podem ser eliminados de acordo com políticas de retenção definidas. Essa etapa final mantém o data lake eficiente e em conformidade ao longo do tempo.

Em essência, o ciclo de vida dos dados em um data lake é projetado para ser flexível e adaptável, permitindo que as organizações ingiram grandes volumes de dados diversificados, processem-nos conforme necessário para casos de uso analítico específicos e extraiam insights valiosos, mantendo a governança e a segurança adequadas. O princípio do "schema-on-read" e a separação entre armazenamento e processamento são características-chave que o diferencia dos métodos tradicionais de armazenamento de dados.

Por que data lakes são importantes

Seja analisado conceitualmente ou sob a perspectiva da arquitetura, o valor dos data lakes está em sua capacidade de atender às necessidades modernas de dados. Estes são os principais benefícios dos data lakes: 
 

  • Escalabilidade: suporte a petabytes de dados sem esforço.
  • Flexibilidade: ingestão de qualquer tipo de dados, de qualquer fonte, a qualquer velocidade.
  • Economia de custos: redução dos custos de armazenamento comparado aos sistemas tradicionais.
  • Análise de dados avançada: a base para as tecnologias de IA, aprendizado de máquina e análises de dados em tempo real.
  • Democratização de dados: amplo acesso aos dados das equipes técnicas e não técnicas.

Evoluindo para o data lake moderno

Os data lakes tradicionais estão evoluindo para arquiteturas modernas de data lake, muitas vezes chamadas de "lakehouses", ou sistemas híbridos que combinam o armazenamento flexível de data lakes com a consulta estruturada e o desempenho dos data warehouses.

Tendências na arquitetura moderna de data lake:
 

  • Implementação nativa da nuvem
  • Mecanismos de processamento integrados
  • Estruturas de governança integrada
  • Plataformas unificadas que reduzem a distância entre data lakes e data warehouses.

Desafios e casos de uso de data lakes

Desafios dos data lakes

  • Capacidade de descoberta de dados: a falta de catalogação e de gerenciamento de metadados adequados torna difícil para os usuários localizar e compreender os dados de que precisam.
  • Segurança e governança: garantir a conformidade e proteger informações confidenciais em um data lake exige medidas sólidas de segurança e governança, o que pode ser desafiador por causa da dimensão do data lake e da diversidade das fontes de dados.
  • Complexidade de integração: a natureza diversificada e, muitas vezes, não estruturada das fontes de dados, aliada à escala do data lake, requer ferramentas sofisticadas e modernas para evitar a criação de um "pântano de dados" não gerenciável e inacessível.

Casos de uso

  • Pipelines de aprendizado de máquina e treinamento de IA
  • Processamento e análise de dados em tempo real
  • Armazenamento e arquivamento de dados de longo prazo
  • Consolidação de dados corporativos
  • Inteligência de mercado e relatórios
  • Análise de dados avançada e IA
  • Análise de dados preditiva
  • Descoberta de dados e análise de tendências
  • Experiências do cliente e marketing: visão 360° do cliente

Perguntas frequentes sobre data lakes

Um data lake é um repositório centralizado voltado para o armazenamento de todos os tipos de dados brutos. Um data lakehouse é uma evolução de um data lake tradicional. Ele é um sistema híbrido que combina o armazenamento flexível de um data lake com o desempenho e a capacidade de realizar consultas estruturadas de um data warehouse.

Não, o SQL não é um data lake. Um data lake é um repositório de armazenamento de dados. SQL (Structured Query Language) é uma linguagem usada para consultar e analisar dados armazenados em um data lake, em conjunto com outras linguagens, como Spark.

Em um data lake, ELT (extract, load, transform) refere-se ao modo de trazer e preparar os dados para análise. Primeiro, os dados são extraídos de várias fontes e carregados no data lake no formato bruto. Transformações, como limpeza, estruturação ou enriquecimento dos dados, ocorrem dentro do data lake para que as informações possam ser usadas para geração de relatórios, aprendizado de máquina ou outras análises de dados.