O blog da AWS

Como extrair valor dos seus dados com Data Lakes e análises na AWS

É cada vez mais comum ver empresas com processos de tomada de decisões orientadas a dados, motivadas por modelos de negócio cada vez mais digitais, distribuídos, focados na experiência e fidelização de usuários e consumidores em geral.

A definição de uma estratégia de dados eficiente é fundamental para trabalhar neste modelo, e permitir acesso a informação proveniente do uso dos serviços que sua empresa oferece é crucial para que decisões sejam tomadas em tempo hábil como resposta às mudanças de mercado.

Uma prática cada vez mais difundida no mercado é a utilização de data lakes para armazenar, processar e servir informação, de maneira segura, performática e de baixo custo.

Por que Data Lakes?

Data Lake é um padrão de design que tem como objetivo (entre outros) padronizar o armazenamento de dados originados em sistemas, geralmente, transacionais, de maneira a permitir o acesso aos mesmos de forma controlada. A ideia é ter um repositório único para qualquer que seja o dado ou fonte de dados em uma organização.

Data lakes são repositórios de dados estruturados e não-estruturados, ou seja, não é necessário fazer qualquer tipo de definição de formato do dado para que o mesmo seja armazenado, porém existem tipos de arquivos que são recomendados e que auxiliam no acesso e compactação, como Parquet e ORC entre outros.

Esta abordagem flexibiliza o processo de captura de dados, desonera as fontes de dados quanto à concorrência de acesso para tarefas analíticas, uma vez que o dado já reside no data lake, e facilita o processo de leitura/acesso aos mesmos. Sendo assim, o data lake em si se torna a “fonte da verdade” sobre qualquer dado capturado, não sendo mais necessário acesso as bases de dados dos sistemas responsáveis pelos mesmos.

Do ponto de segurança e controle de acesso aos dados, aplicar políticas de segurança e auditoria de acesso a qualquer dado se torna uma tarefa menos complexa e centralizada.

Por muitos anos convivemos com empresas tomando decisões baseadas em ambientes de Business Intelligence, consumindo dados de um Data Warehouse que geralmente se baseia em bases de dados estruturadas e se alimenta, basicamente, de extrações de bases de dados relacionais e/ou de arquivos originados em sistemas. E essa estratégia deu certo e ainda é uma realidade, porém o volume, a velocidade e variedade dos dados coletados nos dias de hoje faz com que esta prática necessite ser complementada por algo que consiga abranger novos tipos de dados complementando a visão para tomada de decisões.

A ideia por trás dos Data Lakes é que as empresas armazenem e utilizem dados importantes de qualquer fonte que tenham (CRMs, ERPS, Sites, Aplicativos móveis, dispositivos móveis, sensores, etc.) no volume que necessitarem, na velocidade que os dados sejam gerados, e que esses dados sejam acessíveis para realizar análises exploratórias importantes para o negócio.

Imagine uma empresa que tenha um aplicativo móvel e um website para interação com os clientes, o Data Lake deve permitir que dados de navegação Web no site ou no aplicativo possam ser relacionados com o histórico de produtos já adquiridos por um cliente, bem como com as interações que esta pessoa teve com algum tipo de canal de comunicação da empresa. Com esta abordagem, é possível identificar interesses, desejos, e eventuais frustrações no relacionamento do cliente com a empresa, para potencialmente ofertar algo que vai ao encontro do que o cliente está procurando, ou até reparar uma situação indesejada.

Visão AWS da integração dos dados do Data Warehouse com o Data Lake.

A realidade atual é que dados de aplicativos, dados de dispositivos de Internet of Things (IOT), como câmeras e sensores dos mais diversos fins, logs de aplicações, imagens, interações em media social, vídeos, áudios de várias origens e formatos diferentes são hoje fontes importantes de informação.

É necessário então ter acesso aos dados transacionais que vieram até o Data Warehouse bem como aos novos dados que surgiram, permitindo essas correlações.

Um exemplo interessante é o caso das lojas inteligentes, como Amazon Go onde todas essas técnicas são aplicadas para treinamento de modelos de inteligência artificial que reconhecem produtos, clientes e suas ações de compras. Depois de aplicados os modelos em produção, eles fazem que não haja necessidade de passar no caixa para cobrar pelos produtos comprados, automaticamente eles são lançados e cobrados no aplicativo na sua saída da loja.

Embora possa parecer simples, milhares de amostras de imagens são utilizadas no treinamento desses modelos, o que dá cada vez mais confiabilidade aos modelos treinados e para isto uma grande área de armazenamento e análise de dados é necessária, usando assim o Data Lake.

Como montar um Data Lake

Alguns pontos fundamentais para um Data Lake são:

  • Um lugar único aonde armazenar dados com alta capacidade de escalabilidade e custo efetivo;
  • Armazenamento seguro e que suporte diversos formatos;
  • Capacidade de processamento/analise individual e/ou em conjunto de cada fonte de dados;
  • Capacidade de ingestão continua conforme os dados são gerados;
  • Controles de acessos e informações centralizadas sobre os dados (metadados);

Data Lake é um ambiente vivo, ele tem que ser capaz de futuramente receber fontes novas, entregar dados a uma nova ferramenta de análise, armazenar e processar novos formatos de arquivos que podem surgir, como aconteceu com JSON, Avro, ORC, Parquet, jpg, mp4, e assim por diante.

Como a AWS te ajuda na construção de um Data Lake

Tentativas de montar Data Lakes em ambiente local com máquinas próprias mostraram ao longo dos anos que esta é uma estratégia de alto custo e risco de execução. Com a ligação forte entre capacidade de armazenamento e processamento, e imprevisibilidade de crescimento, além os altos custos e processos de compra e preparação de hardware algumas vezes burocráticos, muitos projetos caíram em desuso e perda de credibilidade por áreas não técnicas.

A computação em nuvem com abordagem de capacidade flexível do uso de recursos sob demanda, ganho de escala, e valores de armazenamento de um décimo a um centésimo de um armazenamento local, trouxe uma nova realidade e possibilitou a construção de Data Lakes, fazendo com que as empresas extraiam valor para o negócio através do relacionamento destes dados em um time-to-market mais interessante que abordagens baseadas em infraestrutura local.

Hoje, mais de 10.000 (dez mil) empresas construíram e mantém seus Data Lakes na AWS.

Diversos clientes construíram seu data lake na AWS utilizando na sua maioria serviços gerenciados e arquiteturas orientadas a eventos com recursos de processamento desacoplados do armazenamento.

Data Lake: ingestão, armazenamento, análise e disponibilização de dados

Lake Formation

O AWS Lake Formation é o serviço da AWS que centraliza e facilita a configuração de um Data Lake seguro em dias e que ajuda a coletar e catalogar os dados de bancos de dados e de armazenamento de objetos, mover os dados para o novo Data Lake do Amazon S3, limpar e classificar os dados usando algoritmos de Machine Learning e proteger o acesso aos dados confidenciais

Os usuários podem acessar um catálogo de dados centralizado que descreve os conjuntos de dados disponíveis e o respectivo uso apropriado. Assim, os usuários usam esses conjuntos de dados com seus serviços analíticos e de machine learning preferidos, como o Amazon Redshift, Amazon Athena (em beta até o momento deste artigo) e Amazon EMR for Apache Spark. O AWS Lake Formation aproveita os recursos disponíveis no AWS Glue.

Desde a ingestão, preparação e uso dos dados, o Lake Formation adiciona controles e gestão de acesso granular, a nível de coluna e monitoramento de operações para troubleshooting e auditoria.

Visão geral dos estágios e abrangência na console Lake Formation

Catálogo centralizado e único

O AWS Glue Data Catalog é o catálogo centralizado de todos os metadados do Data Lake. Utilizando uma estrutura centralizada de metastore ele armazena informações sobre os bancos de dados e tabelas que estão no Data Lake, residindo no Amazon S3 ou fontes de dados de bancos de dados relacionais.

Ter um catálogo centralizado permite com que todas as ferramentas analíticas tenham a mesma visão sobre o dado, por exemplo, alguém adicionou uma nova coluna ou adicionou um comentário novo descrevendo um campo, todas as ferramentas tem esta visão das alterações.

Armazenamento desacoplado, seguro e ilimitado

O Amazon S3 é a peça fundamental na arquitetura de Data Lake na AWS. O Amazon S3  é um storage de objetos que suporta qualquer formato de arquivo e tamanhos de Bytes até Terabytes em um único arquivo. É um serviço escalável para Exabytes sem necessidade de alocação prévia, ou seja, paga-se o quanto utiliza e utiliza o quanto realmente necessita.

Características do Amazon S3  ideais para um Data Lake:

  • Durável: 99,99999999999% de durabilidade, cada arquivo é replicado pelo menos seis vezes dentro da região aonde está criado;
  • O serviço está em conformidade com os seguintes programas, certificado por externas:
    • System and Organization Controls (SOC)
    • Payment Card Industry Data Security Standard (PCI DSS)
    • Federal Risk and Authorization Management Program (FedRAMP)
    • Health Insurance Portability and Accountability Act (HIPAA)
  • O dado pode ser criptografado nativamente utilizando a solução do Amazon KMS, com chaves geradas na sua conta, ou trazidas por você sem penalidade de desempenho;
  • Auditoria nativa e facilitada;
  • Controle fino de acesso por objeto, pasta ou área (bucket);
  • Alta performance de escrita e leituras pelas ferramentas de ingestão e análise;
  • Totalmente desacoplado da computação, a área de armazenamento pode crescer de forma independente reduzindo os custos de crescimento de ambiente;

No modelo de segurança compartilhada a AWS fornece a segurança até a disponibilização de uso do serviço, e todo o ferramental para que você implemente as políticas de segurança sobre os serviços que está utilizando, como criptografia em trânsito e em repouso, regras e políticas de permissionamento, e gestão de acessos.

Ingestão de dados no Data Lake AWS

Fontes de dados como banco de dados relacionais de forma incremental ou com CDC (Change Data Capture), bancos de dados NoSQL, logs de servidores de aplicação, dados de sensores podem ser ingeridos continuamente de acordo com as características.

A seguir uma série de serviços gerenciados AWS para facilitar o envio ou captura de dados para ingestão no Data Lake.

Serviços gerenciados para ingestão contínua, streaming ou CDC:

  • O Amazon Kinesis Data Streams e o Amazon Kinesis Data Firehose são totalmente gerenciados pela AWS e utilizados em casos de streaming de dados como dados de navegações web ou por aplicativos. O Firehose entrega o dado diretamente particionado no Amazon S3 e respeitando as definições feitas em seu catálogo.  Além da ingestão o Amazon Kinesis Data Streams é bastante utilizado para análises em tempo real;
  • AWS Data Migration Service (DMS) é usado para replicação contínua de alterações no banco de dados em operações de “insert”, “delete” e “update”, replicando para o Amazon S3, para o Amazon Kinesis, ou para o Amazon Redshift, em um cenário de Data Lake;
  • O Amazon Managed Streaming for Apache Kafka é também utilizado para streaming e análises em tempo real, que trabalha em um modelo de tópicos de “publish” e “subscribe”;
  • AWS IoT Core é um serviço gerenciado para conectar e receber mensagens de bilhões de dispositivos conectados. O AWS IoT Core também facilita o uso de serviços da AWS como AWS Lambda, Amazon Kinesis, Amazon S3, Amazon SageMaker, Amazon DynamoDB, Amazon CloudWatch, AWS CloudTrail e Amazon QuickSight.

Opções para ingestão em “microbatch” com intervalos de minutos a horas ou carga total:

  • O Amazon Glue ETL possui templates automatizados para fazer cargas iniciais e incrementais, geralmente utilizando em ambientes de porte médio, entregando o dado no Amazon S3;
  • Amazon EMR (Elastic Map Reduce) possui ferramentas como Sqoop para carga de grandes volumes de dados em paralelo à partir de uma conexão com os bancos de dados de Origem;
  • AWS Data Migration Service (DMS) também pode ser utilizado para cargas iniciais completas com várias tabelas em paralelo entregando o dado direto no Amazon S3;

Opções para ingestão de arquivos:

  • O AWS Transfer for SFTP é um serviço de SFTP gerenciado que tem como destino final ou origem, o Amazon S3, facilitando a entrada de dados de aplicações que trabalham já no modelo de serviços de SFTP;
  • O AWS Data Sync é um serviço para automatizar e acelerar o envio de dados para o Amazon S3, trabalhando com aceleradores de WAN e criptografia, o Data Sync aumenta em até 10 vezes a velocidade de transferência;
  • O AWS Snowball é um serviço de transferência de dados baseado em um dispositivo físico com discos que é enviado ao cliente e retornado para AWS para volumes de Terabytes;

Ferramentas para transformação de dados do Data Lake

A AWS tem um conjunto de ferramentas poderosas para escolher baseado nos distintos volumes de dados e necessidade de processamento.

Opção para microbatches ou processamento de streaming de dados:

  • O AWS Lambda permite que você crie arquiteturas de dados baseada em eventos. Uma função Lambda reage a um evento de chegada de arquivos, registros chegando em um streaming, mensagem em uma fila, dados de sensores na plataforma de IoT e assim por diante.

Opções para batches de Gigabytes à Terabytes:

  • O Amazon Glue ETL fornece duas modalidades diferentes para processamento:
    • SparkScala ou PySpark, os Jobs de ETL do Apache Spark contém a lógica de negócios que executa jobs ETL no AWS Glue. Você pode monitorar jobs para entender as métricas de tempo de execução, como sucesso, duração e hora de início. A saída de um job são seus dados transformados, gravados em um local que você especifica.
    • O Python shell executa scripts do Python como um shell. Com uma tarefa de shell do Python, é possível executar scripts compatíveis com Python 2.7 ou Python 3.6. É possível usar esses jobs para programar e executar tarefas que não exigem jobs de ETL do Spark.

Opções para batches com altos volumes de dados, Terabytes a Petabytes:

O Amazon EMR  é um serviço gerenciado que permite a utilização de um amplo conjunto de linguagens e frameworks para Big Data na AWS. É possível utilizar os seguintes componentes na Release 5 do EMR para batches: Hadoop, Hive, Livy,  Pig, Presto, Spark, Sqoop e Tez.

Os preços do Amazon EMR dependem do tipo de instância e do número de instâncias do EC2 que você implanta, bem como da região em que o seu cluster é executado. A definição de preço sob demanda oferece tarifas baixas, mas você pode reduzir os custos ainda mais comprando instâncias reservadas ou instâncias spot. Instâncias spot podem oferecer economias significativas — de até um décimo dos preços sob demanda em alguns casos com uma aplicabilidade boa para batches.

Análises em tempo real

Análises em tempo real acontecem conforme o dado entra na plataforma e antes mesmo de ser depositado no Data Lake. O dado que entra é processado por uma ferramenta de análise em tempo real, como Amazon Kinesis Data Analytics, outra ferramenta lê o mesmo dado e o deposita no Data Lake, como o Amazon Kinesis Data Firehose.

Ferramentas para análise em tempo real:

  • O Amazon Kinesis Data Analytics é a forma mais fácil de analisar dados de streaming, obter insights práticos e responder em tempo real às necessidades da empresa e dos clientes. O Amazon Kinesis Data Analytics reduz a complexidade de criar, gerenciar e integrar aplicativos de streaming com outros serviços da AWS.
    • Os usuários de SQL podem consultar facilmente dados de streaming ou criar aplicativos inteiros de streaming usando modelos e um editor interativo de SQL.
    • Os desenvolvedores de Java podem criar rapidamente aplicativos de streaming sofisticados usando Apache Flink, bibliotecas Java de código aberto e integrações com a AWS para transformar e analisar dados em tempo real.
  • Com Amazon EMR, processe dados em tempo real à partir do Amazon Kinesis, do Apache Kafka ou de outros streams de dados com o Spark Streaming. Execute a análise de streaming de modo tolerante a falhas e grave os resultados no Amazon S3 ou no HDFS armazenado no cluster.
  • No contexto de tempo real os modelos de Machine Learning treinados podem ser aplicados à partir de “endpoints” do Amazon Sagemaker consumidos com à partir das ferramentas acima ou utilizando funções AWS Lambda. Mais informações neste blog: https://aws.amazon.com/pt/blogs/machine-learning/call-an-amazon-sagemaker-model-endpoint-using-amazon-api-gateway-and-aws-lambda/

Ferramentas analíticas interativas

Ferramentas com engine SQL nativa:

O Amazon Athena é um serviço de consulta interativo, sem servidores, que facilita a análise de dados diretamente no Amazon S3 usando SQL padrão. Com algumas ações no Console de Gerenciamento da AWS, você pode apontar o Athena para os dados armazenados no Amazon S3 e começar a usar o SQL padrão para executar consultas ad-hoc e receber resultados em segundos.

O Amazon Redshift é um serviço de armazenamento de dados em escala de petabytes totalmente gerenciado na nuvem. Você pode começar com apenas algumas centenas de gigabytes de dados e escalar para um petabyte ou mais. Isso permite que você use seus dados para adquirir novos insights para seus negócios e clientes.

Usando o Amazon Redshift Spectrum é possível executar consultas e recuperar com eficiência os dados estruturados e semiestruturados dos arquivos no Amazon S3 através do catalogo de metadados do Glue sem que seja necessário carregar os dados em tabelas do Amazon Redshift. As consultas do Redshift Spectrum aplicam o paralelismo maciço para executar com muita rapidez grandes conjuntos de dados.

Notebooks para cientistas de dados:

O Amazon SageMaker fornece a cada desenvolvedor e cientista de dados a habilidade de criar, treinar e implantar rapidamente modelos de machine learning com Notebooks, utilizando bibliotecas Open Source como Tensorflow, Scikit learning, MXNET e qualquer outra que escolha. O Amazon SageMaker é um serviço totalmente gerenciado que abrange todo o fluxo de trabalho de machine learning para rotular e preparar seus dados, escolher um algoritmo, treinar, ajustar e otimizar o modelo para implantação, fazer previsões e tomar ação. Seus modelos entram em produção mais rapidamente com muito menos esforço e menos custo.

Notebooks do EMR são ambientes Jupyter integrados ao console do Amazon EMR que permitem criar rapidamente blocos de anotações Jupyter, anexá-los a clusters Spark e abrir o editor de blocos de anotações Jupyter no console para executar consultas e código remotamente. Um Notebook do EMR fica salvo no Amazon S3 independentemente do cluster para armazenamento durável, acesso rápido e flexibilidade. Você pode ter vários notebooks abertos, anexar vários blocos de anotações em um único cluster e usar novamente um bloco de anotações em clusters diferentes.

Visualização de dados:

O Amazon Quicksight é uma ferramenta de visualização totalmente integrada com os serviços analíticos Amazon Athena e Amazon Redshift, bem como dados diretos no S3 ou de bancos de dados gerenciados no Amazon RDS, entre outros.

Como um serviço gerenciado, o QuickSight permite que você crie e publique facilmente painéis interativos que incluem o Insights de ML. Os painéis podem ser acessados de qualquer dispositivo e incorporados a aplicativos, portais e sites.

Resumo

Neste post nós descrevemos características e componentes de um Data Lake e como a AWS facilita a criação, governança e segurança de um Data Lake, com os serviços do AWS Lake Formation, e todos os serviços que interagem com ele como Amazon Kinesis, AWS Glue, Amazon Athena, Amazon Redshift, Amazon EMR e Amazon Quicksight.

Da ingestão ao consumo de dados, você encontra neste post diversas ferramentas para cada tipo de necessidade e volume de dados.

Faça mais com Data Lakes na AWS:

Siga nossa série de blog posts sobre Data Lake para saber como criar e extrair valor do seu data lake AWS.


Autores

Hugo Rozestraten

Specialist SA, Amazon Web Services

 

 

 

Felipe dos Santos

Solutions Architect, Amazon Web Services

 

 

 


Webinars 2019

Para mais informações, assista ao Webinar sobre Data Lakes & Analytics na AWS.

Clique aqui e confira todos os Webinars da AWS de 2019.