Data Warehouse, Modern Data Warehouse, Data Lake e Lakehouse - CDB Data Solutions
Hoje vamos comentar um pouco sobre as principais arquiteturas que são utilizadas amplamente no mercado para armazenamento e análise de dados.
Quando falamos de um banco de dados DW comum, geralmente podemos imaginar um banco com tamanho entre GB e TB, que é armazenado em um único local. Esse banco pode ser dividido em data marts e centraliza as informações de todo o negócio, unindo diferentes fontes de dados.
O banco de dados DW é costruído com tabelas dimension e fact, que armazenam as informações descritivas e quantitativas do negócio.
Esses dados são extraídos das fontes utilizando processos de ETL (extração, transformação e carregamento), e geralmente atualizados em batchs, que ocorrem uma vez ao dia ou em alguns casos, com períodos menores, a cada uma hora ou 15 minutos, por exemplo.
DW (Modern Data Warehouse)
O Modern Data Warehouse surgiu com a ideia de incrementar e melhorar a estrutura de DW convencional, ele veio para comportar o aumento na demanda nos bancos DW, esses bancos possuem a estrutura MPP (massively parallel processing), onde o processamento é divido entre diferentes nós.
Com ele é possível escalar o processamento e o armazenamento, como no DW, aqui os dados também são atualizados e incrementados no formato batch.
Essa estrutura de banco de dados pode ser contratada nos principais de players do mercado que oferecem PasS, onde, o processamento e armazenamento é adquirido conforme a demanda, podemos citar o Dedicated SQL Pool do Azure, por exemplo.
DL (Data Lake)
Podemos definir que o Data Lake é um storage ou disco, que não possui limite tamanho. Esse storage é utilizado para centralizar as diferentes fontes e tipos de dados. Os dados são extraídos de diversas fontes ou salvos diretamente no data lake através de microsserviços, dispositivos de IoT, etc.
Quando falamos de Data Lake, utilizamos o conceito de ELT (extração, carregamento e transformação), significa que os dados são primeiro extraídos na forma original, salvos no data lake, para posteriormente fazer as análises.
LH (Lakehouse)
O Lakehouse, consegue unir as melhores características do DW e do Data Lake. O Lakehouse pode ser definido como um storage layer que roda em cima de data lake, esse conceito surgiu após o adevento de algumas ferramentas como o Delta Lake, Apache Iceberg, etc. que são utilizadas justamente como storage layers.
Com essas ferramentas é possível aplicar controles de trasação (ACID), time travel (possibilidade de voltar no tempo, considerando uma tabela do data lake), structured streaming, schema evolution, entre outros.
Outro ponto que não podemos esquecer de mencionar é o Apache Spark, podemos dizer que o lakehouse está diretamente ligado com o Spark, porque ele é utilizado para extrair, processar e armazenar as informações no lakehouse para que possam ser posteriormente consumidos por ferramentas de visualização.