Qual a Melhor Estrutura para Seu projeto de Dados?
Com o crescimento de Ferramentas de Business Intelligence com Gerenciamento Proprio de Dados, como PowerBI, Qlikview, Tableau, SpotFire, etc, cada vez mais os data warehouses tem sido questionados.
Acreditamos que não exista uma resposta única para todos os clientes, cada empresa tem sua necessidade própria de dados que deve ser avaliada. Além também de avaliar um modelo que seja On Premisses, Cloud ou mesmo Híbrido, onde parte dos dados seja local e parte esteja em uma Nuvem.
Não vamos entrar na questão das Nuvens disponíveis nesse artigo, vamos deixar isso para um próximo texto, mas tenha em mente que além de Google, Amazon e Azure, outros players tem apostado muito no Cloud Computing como um segmento de negócios : IBM, Oracle, etc. Também querem seus clientes depositando suas informações nas Nuvens.
Data Warehouse (DW) ou Armazém de Dados
Os Data Warehouses tem sido usados mais comumente para armazenamento de dados, a criação do Data Warehouse remonta o final dos anos 80 e inicio dos anos 90 onde foram defendidas estruturas focadas no armazenamento de Dados = Warehouse ( Armazem ) e estruturas para entrega dos dados = Mart ( Loja ), criando assim uma estrutura de Data Warehouse e Data Marts para fazer Armazenamento e Entrega dos Dados.
Uma parte importante do Data Warehouse ou mesmo de outros sistemas de dados é o processo de Extração (E), Transformação (T) e Carga/Load (L) dos dados, o famoso processo de ETL que iremos tratar em outros textos também.
Normalmente nos Data Warehouses e Data Marts encontramos dados estruturados, que ficam armazenados em bancos de dados relacionais, como : Oracle, SqlServer, DB2 ou mesmo os OpenSources MySql e PostgreSQL. Por um outro lado, quem tem alto volume de dados tem investido em soluções de Appliance ou MPPs como Oracle Exadata, IBM Netezza, Teradata, Microsoft PDW,etc. Essas soluções tem uma capacidade enorme de processamento e armazenamento de dados, porém seu custo deve ser cuidadosamente avaliado.
Data Lake (DL) ou Lago de Dados (pessoalmente prefiro Reservatório)
O Data Lake foi um termo criado pelo James Dixon da Pentaho, onde ele disse que a nova versão do Data Warehouse seria como um lago de dados, onde de acordo com o consumo a ser feito, a água ( ou informação ) seria tratada e embalada, as garrafas poderiam ser pequenas como 300ml ou 500ml, poderiam ser em larga escala como um caminhão de água, entre outros.
A Analogia se dá para característica que tem se aplicado aos Data Lakes, são estruturas de dados não relacionais, com liberdade para armazenamento de dados, sejam eles :
· Estruturados
· Semi-Estruturados
· Não Estruturados
Os dados Semi-Estruturados ( JSON, XML, etc ) ou Não Estruturados ( Áudio, Vídeo, Imagens, etc) são mais complexos de serem tratados em estruturas relacionais, apesar que todo banco de dados relacional tem alguma tecnologia interna para isso. Porém demandam um pouco mais de trabalho de tratamento dos dados para armazenamento e recuperação da Informação.
Nos DLs ( Data Lakes ) temos encontrado muitas vezes a plataforma hadoop como sua base principal, seja qual for o sabor de hadoop ( Hortonworks, Cloudera, Oracle, IBM, AWS EMR ) e seus componentes tem sido usados para todas as demandas sejam de Queues, Armazenamento de Arquivos, Estruturas de Dados como Hive ou Hbase, além de processadores como MapReduce ( ad mortem ) e Spark.
Uma das grandes vantagens do Hadoop e mesmo de estruturas NoSQL ( Not Only SQL ) como MongoDB, Cassandra, etc, é sua escalabilidade. Os cluster com essas tecnologias podem saltar de poucas unidades de processamento para literalmente milhares de servidores espalhados por Data Centers diferentes.
Atualmente vemos algumas estruturas e tecnologias utilizadas nos Data Lakes engolindo as funcionalidades dos Data Warehouses principalmente no que se diz respeito ao acesso SQL, tecnologias como Hive ( sempre acelerada com Tez, Impala ou Spark ), SparkSQL ou Phoenix com HBASE tem sido uma resposta eficiente para acesso a dados estruturados que são buscados com Queries ou ferramentas de BI.
Uma outra tendência bem forte tem sido os Data Lakes sendo montados como resposta para as iniciativas de Ciência de Dados, criando uma estrutura robusta e ao mesmo tempo flexível para os Cientistas de Dados montarem suas análises, desde as mais simples com consultas e queries, até mesmo o processamento complexo de dados normalmente com modelagem estatísticas feitas em Python, R ou Scala.
Acreditamos no crescimento irreversível dos Data Lakes
NDWNDL ( No DW No Data Lake ) – Inventei Agora !
Uma possibilidade de estrutura de dados é não ter nenhuma estrutura! Não escolher entre Data Warehoues ou Data Lakes para armazenamento centralizado de Dados.
Nesse caso específico, as empresas não utilizam nenhum gerenciador específico de dados e deixam com que as informações sejam tratadas e armazenadas diretamente pelas ferramentas de BI como QlikView, Tableau, SpotFire e PowerBI.
Com certeza essa também é uma opção válida, mas deve ser muito bem avaliada em critérios como :
· Padronização de dados,
· Qualidade de dados,
· Performance e
· principalmente Vendor Lock In ( Travado com o Fornecedor ).
O LockIn significa na maioria das vezes que o projeto construído na Ferramenta X nunca será reutilizado pela Ferramenta Y, sendo necessária a sua reconstrução. Se isso for um risco, construa uma base para os dados seja Data Warehouse ou Data Lake
Em Resumo
Portanto temos 3 opções distintas, cada uma com seus pontos a favor e contra, avalie o que mais se aplica a sua realidade de dados e também financeira, projetos de Data Warehouse e Data Lake podem engolir alguns Milhões de Reais e senão tiverem uma arquitetura e desenho correto podem não ajudar em nada a jornada de dados da sua empresa.
Talvez uma grande vantagem nos dias de hoje é a possibilidade de utilizar os serviços de Cloud como maneira de testar e avaliar todas as 3 possibilidades acima antes de tomar uma decisão definitiva e aplicar o investimento necessário para concretizar.
Não defendemos a nuvem para 100% dos casos, tudo deve ser estudado caso a caso de acordo com a realidade do cliente, mas para efeitos de POC e Testes a nuvem é a melhor solução.
Conte com o nosso Data Lab para auxiliar, prototipar e ajudar nessa escolha !