Construindo Data Warehouse e Data Lake na AWS

Armazém de dados. Lago de dados. Casa do Lago. Se nenhuma dessas palavras ressoar com você pelo menos um pouco, então seu trabalho claramente não está relacionado a dados.

No entanto, isso seria uma premissa bastante irreal, já que hoje tudo está relacionado a dados, parece. Ou como os líderes corporativos gostam de descrevê-lo:

  • Negócios centrados em dados e orientados a dados.
  • Dados em qualquer lugar, a qualquer hora, de qualquer maneira.

O ativo mais importante

Parece que os dados se tornaram o ativo mais valioso de cada vez mais empresas. Lembro que grandes corporações sempre geraram muitos dados, pense em terabytes de novos dados a cada mês. Isso ainda era 10-15 anos atrás. Mas agora você pode gerar facilmente essa quantidade de dados em poucos dias. Alguém poderia perguntar se é realmente necessário, mesmo que seja algum conteúdo que qualquer um vai usar. E sim, definitivamente não é 😃.

Nem todo o conteúdo será útil, e algumas partes nem uma única vez. Muitas vezes, testemunhei na linha de frente como as empresas geraram uma enorme quantidade de dados apenas para se tornarem inúteis após uma carga bem-sucedida.

Mas isso não é mais relevante. O armazenamento de dados – agora na nuvem – é barato, as fontes de dados crescem exponencialmente e hoje ninguém pode prever o que precisará um ano depois, quando novos serviços forem integrados ao sistema. Nesse ponto, até mesmo os dados antigos podem se tornar valiosos.

Portanto, a estratégia é armazenar o máximo de dados possível. Mas também da forma mais eficaz possível. Para que os dados possam ser não apenas salvos de forma eficaz, mas também consultados, reutilizados ou transformados e distribuídos posteriormente.

Vamos dar uma olhada em três maneiras nativas de fazer isso dentro da AWS:

  • Athena Database – maneira barata e eficaz, embora simples de criar um data lake na nuvem.
  • Redshift Database – uma versão em nuvem séria de um data warehouse que tem o potencial de substituir a maioria das soluções locais atuais, incapaz de acompanhar o crescimento exponencial dos dados.
  • Databricks – uma combinação de data lake e data warehouse em uma única solução, com alguns bônus além de tudo.

Data Lake por AWS Athena

Fonte: aws.amazon.com

O data lake é um local onde você pode armazenar dados recebidos de forma não estruturada, semiestruturada ou estruturada de maneira rápida. Ao mesmo tempo, você não espera que esses dados sejam modificados depois de armazenados. Em vez disso, você deseja que eles sejam o mais atômicos e imutáveis ​​possível. Só isso garantirá o maior potencial de reutilização em etapas posteriores. Se você perder essa propriedade atômica dos dados logo após o primeiro carregamento em um data lake, não há como recuperar essas informações perdidas.

O AWS Athena é um banco de dados com armazenamento direto em buckets S3 e sem clusters de servidores rodando em segundo plano. Isso significa que é um serviço de data lake realmente barato. Formatos de arquivo estruturado, como parquet ou arquivos de valores separados por vírgula (CSV), mantêm a organização dos dados. O bucket do S3 contém os arquivos e o Athena se refere a eles sempre que os processos selecionam os dados do banco de dados.

O Athena não oferece suporte a várias funcionalidades consideradas padrão, como declarações de atualização. É por isso que você precisa olhar para o Athena como uma opção muito simples. Por outro lado, ajuda a evitar a modificação do seu data lake atômico simplesmente porque você não pode 😐.

Ele oferece suporte à indexação e ao particionamento, o que o torna útil para a execução eficaz de instruções select e para a criação de blocos de dados logicamente separados (por exemplo, separados por data ou colunas de chave). Ele também pode escalar horizontalmente com muita facilidade, pois isso é tão complexo quanto adicionar novos baldes à infraestrutura.

  13 melhores rastreadores de animais de estimação para monitorar a localização do seu animal de estimação

Prós e contras

Os benefícios a considerar:

  • O fato de o Athena ser barato (consistindo apenas em baldes S3 e custos de uso de SQL por uso) representa a vantagem mais significativa. Se você deseja criar um data lake acessível na AWS, é isso.
  • Como um serviço nativo, o Athena pode se integrar facilmente a outros serviços úteis da AWS, como o Amazon QuickSight para visualização de dados ou o AWS Glue Data Catalog para criar metadados estruturados persistentes.
  • Melhor para executar consultas ad hoc em uma grande quantidade de dados estruturados ou não estruturados sem manter toda uma infraestrutura em torno deles.

As desvantagens a considerar:

  • O Athena não é particularmente eficaz em retornar rapidamente consultas de seleção complexas, especialmente se as consultas não seguirem as suposições do modelo de dados de como você projetou para solicitar os dados do data lake.
  • Isso também o torna menos flexível em relação a possíveis mudanças futuras no modelo de dados.
  • O Athena não oferece suporte a nenhuma funcionalidade avançada adicional pronta para uso e, se você quiser que algo específico faça parte do serviço, precisará implementá-lo no topo.
  • Se você espera o uso de dados do data lake em alguma camada de apresentação mais avançada, muitas vezes a única opção é combiná-lo com outro serviço de banco de dados mais adequado para essa finalidade, como AWS Aurora ou AWS Dynamo DB.

Finalidade e caso de uso do mundo real

Escolha o Athena se o objetivo for a criação de um data lake simples sem nenhuma funcionalidade avançada semelhante a um data warehouse. Então, por exemplo, se você não espera que consultas analíticas sérias de alto desempenho sejam executadas regularmente no data lake. Em vez disso, ter um pool de dados imutáveis ​​com fácil extensão de armazenamento de dados é a prioridade.

Você não precisa mais se preocupar tanto com a falta de espaço. Até mesmo o custo do armazenamento de bucket do S3 pode ser reduzido ainda mais com a implementação de uma política de ciclo de vida dos dados. Isso basicamente significa mover os dados entre diferentes tipos de depósitos S3, direcionados mais para fins de arquivamento com tempos de retorno de ingestão mais lentos, mas custos mais baixos.

Uma grande característica do Athena é que ele cria automaticamente um arquivo que consiste em dados que fazem parte de um resultado de sua consulta SQL. Você pode pegar esse arquivo e usá-lo para qualquer finalidade. Portanto, é uma boa opção se você tiver muitos serviços lambda processando os dados em várias etapas. Cada resultado lambda será automaticamente o resultado em um formato de arquivo estruturado como entrada pronta para o processamento subsequente.

O Athena é uma boa opção em situações em que uma grande quantidade de dados brutos chega à sua infraestrutura de nuvem e você não precisa processá-los no momento do carregamento. Isso significa que tudo o que você precisa é de armazenamento rápido na nuvem em uma estrutura fácil de entender.

Outro caso de uso seria criar um espaço dedicado para fins de arquivamento de dados para outro serviço. Nesse caso, o Athena DB se tornaria um local de backup barato para todos os dados que você não precisa no momento, mas pode mudar no futuro. Neste ponto, você apenas ingerirá os dados e os enviará ainda mais.

Data Warehouse por AWS Redshift

Fonte: aws.amazon.com

Um data warehouse é um local onde os dados são armazenados de forma muito estruturada. Fácil de carregar e extrair. A intenção é executar um grande número de consultas muito complexas, juntando muitas tabelas por meio de junções complexas. Várias funções analíticas estão disponíveis para calcular várias estatísticas sobre os dados existentes. O objetivo final é extrair previsões e fatos futuros a serem aproveitados nos negócios daqui para frente, usando dados existentes.

O Redshift é um sistema de data warehouse completo. Com servidores de cluster para ajustar e dimensionar – horizontal e verticalmente e um sistema de armazenamento de banco de dados otimizado para retornos rápidos de consultas complexas. Embora hoje você também possa executar o Redshift no modo serverless. Não há arquivos no S3 ou algo semelhante. Este é um servidor de cluster de banco de dados padrão com seu próprio formato de armazenamento.

  Corrigir o Gerenciador de Janelas da Área de Trabalho parou de funcionar

Ele possui ferramentas de monitoramento de desempenho prontas para uso, juntamente com métricas de painel personalizáveis ​​que você pode usar e observar para ajustar o desempenho para o seu caso de uso. A administração também é acessível através de painéis separados. É preciso algum esforço para entender todos os recursos e configurações possíveis e como eles afetam o cluster. Mas, ainda assim, não é tão complexo quanto costumava ser a administração de servidores Oracle no caso das soluções locais.

Embora existam vários limites da AWS no Redshift que definam alguns limites de como usá-lo no dia a dia (por exemplo, limites rígidos na quantidade de usuários ativos simultâneos ou sessões em um cluster de banco de dados), o fato de que as operações são executado muito rápido ajuda a contornar esses limites até certo ponto.

Prós e contras

Os benefícios a considerar:

  • Serviço de armazenamento de dados na nuvem AWS nativo que é fácil de integrar com outros serviços.
  • Um local central para armazenar, monitorar e ingerir vários tipos de fontes de dados de sistemas de origem muito diferentes.
  • Se você sempre quis ter um data warehouse sem servidor sem a infraestrutura para mantê-lo, agora você pode.
  • Otimizado para análises e relatórios de alto desempenho. Ao contrário de uma solução de data lake, há um forte modelo de dados relacional para armazenar todos os dados recebidos.
  • O mecanismo de banco de dados Redshift se origina no PostgreSQL, o que garante alta compatibilidade com outros sistemas de banco de dados.
  • Instruções COPY e UNLOAD muito úteis para carregar e descarregar os dados de e para os buckets do S3.

As desvantagens a considerar:

  • O Redshift não suporta uma grande quantidade de sessões ativas simultâneas. As sessões serão colocadas em espera e processadas sequencialmente. Embora possa não ser um problema na maioria dos casos, já que as operações são muito rápidas, é um fator limitante em sistemas com muitos usuários ativos.
  • Mesmo que o Redshift suporte muitas funcionalidades previamente conhecidas de sistemas Oracle maduros, ainda não está no mesmo nível. Alguns dos recursos esperados podem não estar lá (como gatilhos de banco de dados). Ou o Redshift os suporta de forma bastante limitada (como visualizações materializadas).
  • Sempre que você precisar de um trabalho de processamento de dados personalizado mais avançado, deverá criá-lo do zero. Na maioria das vezes, use a linguagem de código Python ou Javascript. Não é tão natural quanto o PL/SQL no caso do sistema Oracle, onde até as funções e procedimentos utilizam uma linguagem muito parecida com as consultas SQL.

Finalidade e caso de uso do mundo real

O Redshift pode ser seu armazenamento central para todas as várias fontes de dados que viviam anteriormente fora da nuvem. É um substituto válido para as soluções anteriores de data warehouse da Oracle. Como também é um banco de dados relacional, a migração do Oracle é até uma operação bastante simples.

Se você tiver soluções de data warehouse existentes em muitos lugares que não são realmente unificados em termos de abordagem, estrutura ou um conjunto predefinido de processos comuns para executar acima dos dados, o Redshift é uma ótima opção.

Isso apenas fornecerá a você a oportunidade de mesclar todos os vários sistemas de armazenamento de dados de diferentes lugares e países sob o mesmo teto. Você ainda pode separá-los por país para que os dados fiquem seguros e acessíveis apenas para quem precisa. Mas, ao mesmo tempo, permitirá que você crie uma solução de warehouse unificada que cubra todos os dados corporativos.

Outro caso pode ser se o objetivo for construir uma plataforma de data warehouse com amplo suporte de autoatendimento. Você pode entendê-lo como um conjunto de processamento que os usuários individuais do sistema podem construir. Mas, ao mesmo tempo, eles nunca fazem parte da solução de plataforma comum. Isso significa que tais serviços permanecerão acessíveis apenas ao criador ou grupo de pessoas definido pelo criado. Eles não afetarão o resto dos usuários de forma alguma.

  Como corrigir erros de conexão do servidor entre nós

Confira nossa comparação entre Datalake e Datawarehouse.

Lakehouse por Databricks na AWS

Fonte: databricks.com

Lakehouse é um termo realmente vinculado ao serviço Databricks. Mesmo que não seja um serviço nativo da AWS, ele vive e opera dentro do ecossistema da AWS muito bem e oferece várias opções de como se conectar e integrar com outros serviços da AWS.

Databricks visam conectar (anteriormente) áreas muito distintas:

  • Uma solução para armazenamento de data lake de dados não estruturados, semiestruturados e estruturados.
  • Uma solução para armazenamento de dados estruturados e dados de consulta rapidamente acessíveis (também chamado de Delta Lake).
  • Uma solução que suporta análise e computação de aprendizado de máquina no data lake.
  • Governança de dados para todas as áreas acima com administração centralizada e ferramentas prontas para uso para dar suporte à produtividade de diferentes tipos de desenvolvedores e usuários.

É uma plataforma comum que engenheiros de dados, desenvolvedores SQL e cientistas de dados de aprendizado de máquina podem usar simultaneamente. Cada um dos grupos também tem um conjunto de ferramentas que podem usar para realizar suas tarefas.

Portanto, o Databricks visa uma solução completa, tentando combinar os benefícios do data lake e do data warehouse em uma única solução. Além disso, ele fornece as ferramentas para testar e executar modelos de aprendizado de máquina diretamente em armazenamentos de dados já criados.

Prós e contras

Os benefícios a considerar:

  • Databricks é uma plataforma de dados altamente escalável. Ele escala dependendo do tamanho da carga de trabalho e faz isso automaticamente.
  • É um ambiente colaborativo para cientistas de dados, engenheiros de dados e analistas de negócios. Ter a possibilidade de fazer tudo isso no mesmo espaço e em conjunto é um grande benefício. Não apenas de uma perspectiva organizacional, mas também ajuda a economizar outro custo necessário para ambientes separados.
  • O AWS Databricks se integra perfeitamente a outros serviços da AWS, como Amazon S3, Amazon Redshift e Amazon EMR. Isso permite que os usuários transfiram facilmente dados entre serviços e aproveitem toda a gama de serviços de nuvem da AWS.

As desvantagens a considerar:

  • Databricks podem ser complexos de configurar e gerenciar, especialmente para usuários que são novos no processamento de big data. Requer um nível significativo de conhecimento técnico para aproveitar ao máximo a plataforma.
  • Embora o Databricks seja econômico em termos de seu modelo de preços de pagamento conforme o uso, ele ainda pode ser caro para projetos de processamento de dados em larga escala. O custo de uso da plataforma pode aumentar rapidamente, especialmente se os usuários precisarem aumentar seus recursos.
  • Databricks fornece uma variedade de ferramentas e modelos pré-criados, mas isso também pode ser uma limitação para usuários que precisam de mais opções de personalização. A plataforma pode não ser adequada para usuários que precisam de mais flexibilidade e controle sobre seus fluxos de trabalho de processamento de big data.

Finalidade e caso de uso do mundo real

O AWS Databricks é mais adequado para grandes corporações com uma quantidade muito grande de dados. Aqui pode cobrir o requisito de carregar e contextualizar várias fontes de dados de diferentes sistemas externos.

Muitas vezes, o requisito é fornecer dados em tempo real. Isso significa que, a partir do momento em que os dados aparecem no sistema de origem, os processos devem coletar imediatamente, processar e armazenar os dados no Databricks instantaneamente ou com um atraso mínimo. Se o atraso for superior a um minuto, é considerado processamento quase em tempo real. De qualquer forma, ambos os cenários geralmente são alcançáveis ​​com a plataforma Databricks. Isso se deve principalmente à grande quantidade de adaptadores e interfaces em tempo real que se conectam a vários outros serviços nativos da AWS.

O Databricks também se integra facilmente aos sistemas Informatica ETL. Sempre que o sistema da organização já usa o ecossistema Informatica extensivamente, o Databricks parece uma boa adição compatível à plataforma.

Palavras Finais

Como o volume de dados continua a crescer exponencialmente, é bom saber que existem soluções que podem lidar com isso de forma eficaz. O que antes era um pesadelo para administrar e manter agora requer muito pouco trabalho administrativo. A equipe pode se concentrar em criar valor a partir dos dados.

Dependendo de suas necessidades, basta escolher o serviço que pode atendê-lo. Embora o AWS Databricks seja algo que você provavelmente precisará seguir depois que a decisão for tomada, as outras alternativas são bem mais flexíveis, mesmo que menos capazes, especialmente seus modos serverless. É muito fácil migrar para outra solução posteriormente.