Antes de ler este artigo, sugiro a leitura destes 2 posts anteriores: Business Intelligence x Data Science e Data Lake, a fonte do Big Data. Neste artigo vamos explorar um pouco o caminho do Data Warehouse para o Data Lake.
O Data Warehouse tem sido a base para aplicações de Business Intelligence nas últimas décadas. Entretanto, está claro o movimento que poderá deixar o Data Warehouse obsoleto em pouco tempo, pois o Big Data está trazendo consigo a necessidade de criação de novos modelos e estratégias de armazenamento de dados. Existe uma diferença básica entre armazenar os dados (databases, logs, arquivos, etc…) e analisar e compreender os dados. E o benefício de analisar os dados está ainda muito abaixo do que pode ser atingido com uma análise mais eficaz e robusta. Ou seja, novos métodos de análise, requerem novos métodos de armazenamento.
O Data Warehouse possui uma limitação clara. Os dados são armazenados a partir de diversas fontes em uma estrutura estática e específica que define o tipo de análise que será feita nos dados já no ponto de entrada. Esta estratégia era suficiente nos primeiros estágios da evolução do Business Intelligence, quando a análise era basicamente feita em bancos de dados internos da empresa e o escopo era restrito a relatórios e dashboards específicos.
Mas esta estratégia não tem se mostrado suficiente no mundo do Big Data, onde é muito mais complicado (para não dizer impossível), definir o tipo de análise que será feita, antes de armazenar os dados. Os dados agora têm como fonte não apenas os bancos de dados internos da empresa, mas as mais variadas fontes como mídias sociais, vídeos, bancos de dados externos, páginas da web, sensores, arquivos, imagens e fotos e até mesmo cliques em um website. Além disso, o volume e velocidade dos dados gerados (características próprias do Big Data), tornam o desafio de análise ainda maior. Outra característica importante do Big Data, é que muitas das questões que serão ponto de partida das análises, não são formuladas antes do armazenamento dos dados. Ou seja, um dos trabalhos do cientista de dados, é fazer análise à medida que os dados vão chegando, detectando tendências e formulando as questões a serem respondidas.
O modelo tradicional de buscar insights em Data Warehouses, que possuem visão limitada dos dados e foram concebidos para responder somente questões específicas, não faz mais sentido no mundo atual de Big Data, onde a descoberta dos dados requer novos modelos e estratégias.
É exatamente aí que os Data Lakes começam a fazer sentido. Os Data Lakes são repositórios para todos os dados aos quais uma empresa quer ter acesso. Os dados são armazenados no seu estado bruto, sem qualquer restrição de esquema ou estrutura. Este modelo, permite uma visão praticamente ilimitada dos dados, possibilitando análise em tempo real.
Há ainda quem acredite que o Data Lake seja apenas um Data Warehouse repaginado. Há ainda quem diga que o nome correto deveria ser Data Swamp (pântano de dados). O fato é: como armazenar o alto volume de dados gerado em alta velocidade? Os modelos tradicionais de DW não suportam esta estrutura. Um Data Lake é um repositório de armazenamento que contém uma grande quantidade de dados brutos em seu formato nativo, incluindo dados estruturados, semi-estruturados e não estruturados. A estrutura e os requisitos de dados não são definidos até que os dados sejam necessários. Ou seja, a primeira preocupação é coletar e armazenar os dados. O tipo de análise a ser feita, é que vai definir quais dados serão usados. Porém o mais importante está garantido: nenhum dado será perdido e estarão sempre a disposição dos analistas e cientistas de dados.
A tabela abaixo apresenta uma comparação simples entre DW e DL:
Data Warehouse | Data Lake | |
Dados | · Estruturados
· Processados
|
· Estruturados / Semi-estruturados / Não estruturados
· Não processados (em estado bruto) |
Processamento | · Esquema de dados gerado no momento da escrita | · Esquema de dados gerado no momento da leitura |
Armazenamento | · Alto custo para alto volume de dados | · Criado para ser de baixo custo, independente do volume de dados |
Agilidade | · Pouco ágil, configuração fixa | · Bastante ágil, pode ser configurado e reconfigurado conforme necessário |
Segurança | · Estratégias de segurança bastante maduras | · Ainda precisa aperfeiçoar o modelo de segurança e acesso aos dados |
Usuários | · Analistas de Negócios | · Cientistas e Analistas de Dados |
Um Data Warehouse só armazena os dados que foram modelados / estruturados, enquanto um Data Lake não requer este tipo de processamento prévio. O DL armazena tudo: estruturado, semi-estruturado e não estruturado. Antes de carregar dados em um Data Warehouse, primeiro precisamos dar-lhe alguma forma e estrutura, ou seja, precisamos fazer a modelagem. Isso é chamado de schema-on-write. Com um Data Lake, basta carregar os dados brutos, tal como estão na fonte e quando você estiver pronto para utilizar os dados, é que se define a forma e a estrutura. Isso é chamado de schema-on-read. Duas abordagens diferentes. Qual das duas você acha que faz mais sentido para o Big Data?
É importante notar que, embora tanto o Data Warehouse quanto o Data Lake sejam repositórios de armazenamento, o Data Lake não é Data Warehouse 2.0. Se o Data Lake será um substituto para o DW? Eu apostaria que sim. Quem trabalha com tecnologia, sabe que elas vêm, cumprem seu papel e se vão. As tecnologias evoluem e isso é absolutamente normal. Já está claro que ainda estamos no começo da explosão dos dados e as empresas precisam de novas estruturas que permitam coletar informação útil do Big Data. E olha que ainda nem estamos considerando o incrível volume de dados gerado pela Internet das Coisas.
Imagino que você possa estar se perguntando: “Ok, mas como crio um Data Lake? “. Isso será assunto para outro post.
David Matos
Olá David, muito bom seu artigo. A sua abordagem sobre uma visão do que é o DL e DW e suas principais funcionalidades ficou bem clara. Concordo plenamente com a tabela de comparativo que você criou entre o DL e DW. Só penso que a essência do DW é algo que por enquanto não será substituído por nenhuma outra tecnologia, pois entendo que tudo o que podemos estruturar, pode ser automatizado. Tudo que se possui um schema pré-definido pode ser “ingerido” pelo DL, processado e disponibilizado para um DW, tudo isso de forma automática. Com isso tiramos um peso gigantesco das costas do cientista de dados, deixando-o se preocupar apenas em gerar insights de dados não-estruturados. Estes por sua vez, não conseguimos automatizar. É necessário que alguém com o conhecimento avançado no negócio e também nos dados faça este trabalho. Vejo que o DW é um complemento do DL. Uma vez que os dados são “ingeridos” no DL, é possível processar tudo o que for dado estruturado. Este dado é carregado para o DW de forma automática para gestão de relatórios e modelos estatísticos pré-definidos, e cabe a equipe de TI se modernizar e acompanhar as constantes evoluções e mudanças dos dados estruturados, disponibilizando no menor tempo as mudanças ocorridas nos dados estruturados, automatizando-as para que esta não seja uma preocupação do cientista de dados.
Veja o diagrama neste blog (http://arnoldit.com/wordpress/2016/02/11/a-data-lake-batch-job-dipping-only/?utm_medium=twitter&utm_source=twitterfeed). Retrata exatamente a minha visão do papel do DL e do DW.
Grande abraço e aguardando o próximo post!
Olá Eduardo.
Muito obrigado por acompanhar o blog.
Seu comentário é excelente e eu concordo (quase) plenamente. Disse quase, porque o projeto Apache Hadoop, está avançando na forma como os dados estruturados e não-estruturados estão sendo armazenados. Projetos como o Apache Hive e Apache HBase, podem mudar consideravelmente a forma como se armazena dados para consulta atualmente. Na prática, o projeto Hadoop já possui soluções para DW e a integração com o HDFS (o sistema de arquivos e grande diferencial do Hadoop), avança rapidamente. Mas aí concordo com você: ainda vai levar um tempo. O Hadoop completou 10 anos e somente agora começa a ser discutido de forma mais ampla. Veja este artigo: Forrester predicts 100% adoption of Hadoop by large enterprises. O próprio conceito de Data Lake é bem recente, mas as principais soluções de Hadoop (Cloudera e MapR) já possuem arquiteturas de Data Lake que preveem o armazenamento de dados estruturados. Ou seja, a revolução já começou. Vai levar um tempo ainda? Sim. Mas repito, a revolução já começou.
Obrigado e não deixe de curtir a página no Facebook, pois compartilho muita coisa por lá. http://facebook.com/cienciaedados.
O próximo post já está a caminho!
Abs
David
Excelentes considerações David.
Grande abraço.
Eduardo, concordo com seu ponto de vista e depois de 2 anos deste post (https://www.cienciaedados.com/do-data-warehouse-para-o-data-lake/) o que mais vemos é o movimento inverso ao Data-lake ser fonte direta de informacao para a camada de análise de dados e também para quem acompanha a evolução de analytics de novo o conceito nao tem nada visto que o Kimball e Inmon ja pregava dentro do EDW uma camada bruta (considerando apenas os dados estruturados) para esse fim.
O caos e o despreparo dos profissionais no ambiente analitico esta proporcionando uma desordem imensurável e custos desnecessários nas corporacões, se não existe volume não existe a necessidade de criar um ambiente Data Lake e implementar um cluster Spark/Hadoop para tal processamento, assim como é desnecessário a implementação de MPP.
Parabéns pelo artigo David!
Estou iniciando em projetos de BI e posteriormente Big Data. Me deparei com a dúvida de construir um ambiente para repositório de dados, que ainda não considerei se será um DW ou DL, ou os dois ao mesmo tempo, e assim ter um ambiente híbrido para dar início ao projeto de BI e dentro de alguns meses ao projeto de Big Data.
Há possibilidade de utilizar DL em projetos de BI ou apenas DW?
Olá Anderson.
Obrigado pelo seu comentário. O objetivo final é que vai definir a melhor arquitetura para os seus dados. Se você pretende trabalhar com Big Data, ou seja, coletar grandes volumes de dados, de diversas fontes e em formatos diferentes, o DL é a melhor solução, sem dúvida. Mas se a sua fonte de dados for um sistema ERP, por exemplo, com dados estruturados, o DW atende sua necessidade. Muitas soluções de BI já são capazes de ler dados em diversos formatos diferentes e sim, os DL podem ser utilizados. Verifique as fontes de dados suportadas pela sua solução de BI.
Abs
David
Ok, mas como crio um Data Lake?
Olá Marcio. Existem diversas formas. Recomendo o curso de AWS da Data Science Academy para aprender a criar um Data Lake em nuvem: https://www.datascienceacademy.com.br/pages/curso-arquiteto-aws. Abs
Olá David, sobre o artigo em questão: “Do Data Warehouse para o Data Lake”, você comenta no final do artigo você comenta: “Ok, mas como crio um Data Lake? e isto estaria disponível futuramente, você chegou a escrever esse artigo? Se sim, qual seria.
Forte abraço
João Luiz
Olá João. Do artigo acabou nascendo um curso inteiro: https://www.datascienceacademy.com.br/course?courseid=data-lake-design-projeto-integracao
Olá David.
Entendo que o DL serve para um propósito e o DW para outro. Tendo em vista o formato de armazenamento do DL, sua facilidade, sua praticidade e velocidade de ingestão de dados, ficam alguns questionamentos:
1 – Considerando que o DL não possui um modelo para armazenamento de dados, que o formato de análise é montado e estruturado na consulta e não na ingestão, como é tratado a questão da qualidade e confiabilidade dos dados analisados a partir do DL?
2 – DL pode ser usado como repositório para apresentar dados Gerenciais diretamente ao usuário final?
Obrigado.
Oi Rodrigo. Boas questões. A Governança de Dados em Data Lakes é um grande desafio e isso acaba sendo feito após a estruturação e organização. E não considero seguro usar dados diretamente do Data Lake para apresentar aos stakeholders, pelo menos não sem o devido tratamento e organização. Abs
Oi David. Obrigado pelas respostas.
Quando tu comenta em tratamento e organização dos Dados no Dala Lake, qual seria a tua sugestão para realizar essa tarefa?
Obrigado.
Um projeto de Governança de Dados com certeza pode ajudar!
Excelente artigo David. Com o passar do tempo e as mais variadas formas de análise de dados, percebe-se a limitação do DW e a importância do conceito do Data Lake na criação de um repositório central de dados no seu estado bruto.