O blog da AWS

Arquitetura referência de Análise de Dados sem servidor na AWS

Por Praful Kava, Sr. Arquiteto de soluções, AWS e;

Changbin Gong Sr. Arquiteto de soluções, AWS;

Traduzido e adaptado por Giullia Vital Antunes, Arquiteta de Soluções na AWS e;

Cleber Gomes da Silva, Arquiteto de Soluções na AWS.

 

A criação de novos pipelines em uma arquitetura analítica tradicional, normalmente, exige ampla coordenação entre as equipes de negócios, engenharia de dados, e ciência/análise de dados para negociar requisições, esquemas, necessidades de capacidade de infraestrutura e gerenciamento de carga de trabalho.

No entanto, para um grande número de casos de uso atualmente, os usuários de negócio, cientistas de dados e analistas demandam opções que evitem atritos, fáceis de gerenciar e self-service para construir pipelines de dados ponta-a-ponta, pois é difícil e ineficiente predefinir constantemente as mudanças nos esquemas e demanda tempo negociando a capacidade de slots na infraestrutura compartilhada. A natureza exploratória do aprendizado de máquina (Machine Learning – ML) e muitas outras tarefas de análise de dados necessitam que você realize uma rápida ingestão de novos datasets quando pensar na infraestrutura que executa todo o pipeline de dados.

Uma arquitetura de data lake serverless (sem servidor) permite integração e análise de dados ágeis e self-service para todos os consumidores de dados em uma empresa. Ao usar as tecnologias serverless (sem servidor) da AWS como blocos de construção, você pode facilmente criar data lakes e pipelines de processamento de dados para ingerir, armazenar, transformar e analisar petabytes de dados estruturados e não estruturados de diferentes fontes, sem a necessidade de gerenciar infraestrutura (armazenamento ou compute).

Neste post, discutiremos primeiro uma arquitetura lógica em camadas, orientada a componentes para plataformas analíticas modernas e, em seguida, apresentaremos uma arquitetura de referência para construir uma plataforma de dados serverless que inclui um data lake, pipelines de processamento de dados e uma camada de consumo que permite várias maneiras de analisar os dados no data lake sem movê-los (incluindo painéis de business intelligence (BI), SQL interativo exploratório, processamento de big data, análise preditiva e aprendizado de máquina).

Arquitetura lógica de plataformas modernas de análise centradas em data lakes

O diagrama a seguir ilustra a arquitetura de uma plataforma de análise centrada em data lake.

 

 

Figura 1 – arquitetura de um data lake.

Podemos pensar em uma arquitetura analítica centrada em data lake como uma stack de seis camadas lógicas, em que cada camada é composta por vários componentes. Uma arquitetura orientada a componentes em camadas promove a separação de interesses, separação de tarefas e flexibilidade. Estes, por sua vez, fornecem a agilidade necessária para integrar rapidamente novas fontes de dados, oferecer suporte a novos métodos de análise e adicionar ferramentas necessárias para acompanhar o ritmo acelerado das mudanças no cenário de análise. Nas seções a seguir, examinaremos as principais responsabilidades, recursos e integrações de cada camada lógica.

Camada de ingestão

A camada de ingestão é responsável por trazer os dados para dentro do data lake. Isso permite que ele conecte as fontes internas e externas de dados em uma variedade de protocolos. Ele pode ingerir dados em lotes (batch) e streaming na camada de armazenamento. A camada de ingestão também é responsável por entregar os dados ingeridos a um conjunto diversificado de destinos na camada de armazenamento de dados (incluindo o armazenamento de objetos, bancos de dados e warehouses).

Camada de armazenamento

A camada de armazenamento é responsável por fornecer componentes duráveis, escaláveis, seguros e econômicos para armazenar uma vasta quantidade de dados. Isso suporta o armazenamento de dados não estruturados e datasets de variadas estruturas e formatos. Componentes de outras camadas providenciam a integração fácil e nativa com a camada de armazenamento. Para armazenar dados baseados em sua prontidão de consumo por diferentes usuários na organização, a camada de armazenamento é organizada da seguinte forma:

  • Zona Raw – A área de armazenamento onde os componentes da camada de ingestão repousam os dados. Essa é uma transient area (área transitória) onde os dados ingeridos são armazenados da mesma forma que foram extraídos. Normalmente, engenheiros de dados interagem com dados armazenados nesta zona.
  • Zona Cleaned – Após checagem de qualidade preliminar, os dados da zona raw são movidos para a zona cleaned após checagem de qualidade preliminar para serem permanentemente armazenados. Aqui, os dados são armazenados em seu formato original. Normalmente, engenheiros de dados e cientistas de dados interagem com os dados armazenados nessa zona.
  • Zona Curated – Esta zona hospeda dados que estão, em sua maioria, no estado prontos para consumo e em conformidade com padrões organizacionais e modelagem de dados. Datasets na zona curated são tipicamente particionados, catalogados, e armazenados em formatos que dão suporte ao acesso eficiente e econômico pela camada de consumo. Todas as personas nas organizações usam os dados armazenados nessa zona para orientar as decisões de negócios.

Camada de catalogação e pesquisa

A camada de catalogação e pesquisa é responsável por armazenar metadados de negócio e técnicos sobre conjuntos de dados hospedados na camada de armazenamento. Ele fornece a capacidade de rastrear o esquema e o particionamento granular das informações do dataset no data lake. Ele também oferece suporte a mecanismos para rastrear versões para acompanhar as alterações nos metadados. À medida que o número de conjuntos de dados no data lake aumenta, essa camada torna os conjuntos de dados no data lake detectáveis, fornecendo recursos de pesquisa.

Camada de processamento

A camada de processamento é responsável por transformar os dados para um estado consumível por meio de validação, limpeza, normalização, transformação e enriquecimento de dados. Ela é responsável por avançar os datasets ao longo das zonas landing, raw e curated e registrar metadados para os dados brutos e transformados na camada de catalogação. A camada de processamento é composta por componentes de processamento de dados criados especificamente para corresponder à característica correta do datasets e à tarefa de processamento em mãos. Essa camada pode lidar com grandes volumes de dados. A camada de processamento também fornece a capacidade de criar e orquestrar pipelines de processamento de dados que usam componentes criados especificamente para cada etapa.

Camada de consumo

A camada de consumo é responsável por fornecer ferramentas escaláveis e de alto desempenho para obter insights a partir do grande volume de dados no data lake. A camada de consumo se integra nativamente às camadas de armazenamento, catalogação e segurança do data lake.

Camada de segurança e governança

A camada de segurança e governança é responsável por fornecer recursos que realizarão a proteção dos dados na camada de armazenamento e processar os recursos em todas as outras camadas. Esses mecanismos auxiliam no controle de acesso, criptografia, proteção de rede, monitoramento de uso e auditoria. Na camada de segurança também podemos encontrar o monitoramento das atividades de todos os componentes em outras camadas e gerar uma trilha de auditoria detalhada. Os componentes de todas as outras camadas possuem integração nativa com a camada de segurança e governança.

Arquitetura serverless de análise de dados no data lake

Para compor as camadas descritas na nossa arquitetura lógica, nós introduzimos como referência a arquitetura que a AWS utiliza para serviços gerenciados e serverless. Nessa abordagem, os serviços da AWS assumem os seguintes trabalhos:

  • Instanciar componentes de infraestrutura que sejam escaláveis, resilientes, seguros e econômicos;
  • Assegurar que componentes nativos da infraestrutura se integrem uns aos outros.

Através dessa arquitetura que temos como referência você ganha tempo construindo seus pipelines de dados analíticos mais agilmente. Isso significa uma ingestão de novos dados mais acelerada e que traz insights para seus dados. Os componentes gerenciados e serverless da AWS possibilitam uma abordagem self-service entre os papéis de consumidores de dados, permitindo os seguintes benefícios:

  • Utilização orientada à configuração;
  • Liberdade no gerenciamento de infraestrutura;
  • Modelo de preços pay-per-use (pague pela utilização).

O diagrama a seguir (figura 2) ilustra essa arquitetura.

 

 

Figura 2 – Arquitetura serverless de análise de dados no data lake.

Camada de ingestão

A camada de ingestão em nossa arquitetura serveless é composta por um conjunto de serviços da AWS criados especificamente para permitir a ingestão de dados de múltiplas fontes. Cada um desses serviços permite a ingestão de dados self-service na zona landing do data lake e oferece integração com outros serviços da AWS nas camadas de armazenamento e segurança. Os serviços personalizados da AWS atendem aos requisitos exclusivos quando se tratam de dados: tipo de conectividade, formato dos dados, estrutura e velocidade dos dados vindos das fontes de banco de dados operacionais e fontes de dados de streaming de arquivos.

Fontes de banco de dados operacionais

Normalmente, as organizações armazenam seus dados operacionais em vários bancos de dados relacionais e NoSQL. O AWS Data Migration Service (AWS DMS) pode se conectar a uma variedade de bancos de dados operacionais RDBMS e NoSQL e ingerir seus dados em buckets do Amazon Simple Storage Service (Amazon S3) na zona de landing do data lake. Com o AWS DMS, você pode primeiro realizar uma importação única dos dados de origem para o data lake e replicar as alterações contínuas que ocorrem no banco de dados de origem. O AWS DMS criptografa objetos do S3 usando chaves do AWS Key Management Service (AWS KMS) à medida que os armazena no data lake. O AWS DMS é um serviço totalmente gerenciado e resiliente que oferece uma ampla variedade de tamanhos de instância para hospedar tarefas de replicação de banco de dados.

O AWS Lake Formation oferece uma alternativa escalável e sem servidor, chamada blueprints, para ingerir dados de fontes de banco de dados nativas ou locais da AWS na zona landing no data lake. Um blueprint do Lake Formation é um modelo predefinido que gera um workflow (fluxo de trabalho) de ingestão de dados do AWS Glue com base em parâmetros de entrada, como banco de dados de origem, local do Amazon S3 de destino, formato do conjunto de dados de destino, colunas de particionamento do conjunto de dados de destino e agendamento. Um workflow do AWS Glue gerado por blueprint implementa um pipeline de ingestão de dados otimizado e paralelizado que consiste em crawlers, vários jobs paralelos e triggers (gatilhos) que os conectam baseando-se nas condições. Para obter mais informações, consulte Integrating AWS Lake Formation with Amazon RDS for SQL Server (Integrando o AWS Lake Formation com Amazon RDS para SQL Server).

Streaming de fontes de dados

A camada de ingestão usa o Amazon Kinesis Data Firehose para receber dados de streaming de fontes internas e externas. Com alguns cliques, você pode configurar um endpoint da API Kinesis Data Firehose onde as fontes de dados podem enviar dados de streaming, como clickstreams, logs de aplicativos e infraestrutura, métricas de monitoramento, e dados de IoT, como telemetria de dispositivos e leituras de sensores. O Kinesis Data Firehose faz o seguinte:

  • Buffers de entrada de streams
  • Agrupa, compacta, transforma e criptografa os streams
  • Armazena os fluxos como objetos do S3 na zona landing no data lake

O Kinesis Data Firehose integra-se nativamente às camadas de segurança e armazenamento e pode fornecer dados ao Amazon S3, Amazon Redshift e Amazon OpenSearch Service para casos de uso de análise em tempo real. O Kinesis Data Firehose serverless, não requer administração e tem um modelo de custo em que você paga apenas pelo volume de dados transmitido e processado por meio do serviço. Ele é dimensionado automaticamente para se ajustar ao volume e à taxa de transferência dos dados recebidos.

Fontes de arquivos

Muitos aplicativos armazenam dados estruturados e não estruturados em arquivos hospedados em arrays Network Attached Storage (NAS). As organizações também recebem arquivos de dados de parceiros e fornecedores terceirizados. A análise de dados dessas fontes de arquivos pode fornecer informações comerciais valiosas.

Compartilhamento de arquivos internos

O AWS DataSync pode ingerir centenas de terabytes e milhões de arquivos de dispositivos NAS habilitados para NFS e SMB na zona landing do data lake. O DataSync lida automaticamente com scripts de jobs de cópia, agendamento e monitoramento de transferências, validação da integridade dos dados e otimização da utilização da rede. O DataSync pode realizar transferências de arquivos únicas e monitorar e sincronizar arquivos alterados no data lake. O DataSync é totalmente gerenciado e pode ser configurado em minutos.

Arquivos de dados de parceiros

O FTP é o método mais comum para trocar arquivos de dados com parceiros. A AWS Transfer Family é um serviço sem servidor, altamente disponível e escalável que oferece suporte a endpoints de FTP seguros e integra-se nativamente ao Amazon S3. Parceiros e fornecedores transmitem arquivos usando o protocolo SFTP, e a AWS Transfer Family os armazena como objetos S3 na zona landing no data lake. A AWS Transfer Family oferece suporte à criptografia usando o AWS KMS e métodos de autenticação comuns, incluindo AWS Identity and Access Management (IAM) e Active Directory.

APIs de Dados

Atualmente, as organizações usam SaaS e aplicativos de parceiros, como Salesforce, Marketo e Google Analytics, para dar suporte a suas operações comerciais. A análise de dados de SaaS e parceiros em combinação com dados de aplicativos operacionais internos é fundamental para obter insights de negócios de 360 graus. Aplicativos de parceiros e SaaS geralmente fornecem endpoints de API para compartilhar dados.

APIs SaaS

A camada de ingestão usa o AWS AppFlow para ingerir facilmente dados de aplicativos SaaS no data lake. Com alguns cliques, você pode configurar fluxos de ingestão de dados sem servidor no AppFlow. Seus fluxos podem se conectar a aplicativos SaaS (como SalesForce, Marketo e Google Analytics), ingerir dados e armazená-los no data lake. Você pode agendar fluxos de ingestão de dados do AppFlow ou acioná-los por eventos no aplicativo SaaS. Os dados ingeridos podem ser validados, filtrados, mapeados e mascarados antes de serem armazenados no data lake. O AppFlow integra-se nativamente aos serviços de autenticação, autorização e criptografia na camada de segurança e governança.

APIs de parceiros

Para ingerir dados de APIs de parceiros e de terceiros, as organizações criam ou compram aplicativos personalizados que se conectam a APIs, buscam dados e criam objetos do S3 na zona landing usando SDKs da AWS. Esses aplicativos e suas dependências podem ser empacotados em contêineres e hospedados no AWS Fargate. O Fargate é um mecanismo de computação sem servidor para hospedar contêineres do Docker sem precisar provisionar, gerenciar e dimensionar servidores. O Fargate integra-se nativamente aos serviços de segurança e monitoramento da AWS para fornecer criptografia, autorização, isolamento de rede, registro em log e monitoramento aos contêineres do aplicativo.

Os obs de shell do AWS Glue Python também fornecem uma alternativa sem servidor para criar e agendar trabalhos de ingestão de dados que podem interagir com APIs de parceiros usando bibliotecas Python nativas, de código aberto ou fornecidas por parceiros. O AWS Glue oferece recursos prontos para uso para agendar trabalhos de shell Python independentes ou incluí-los como parte de um fluxo de trabalho de ingestão de dados mais complexo criado no workflow do AWS Glue.

Fontes de dados de terceiros

Os dados internos podem ser enriquecidos com conjuntos de dados de terceiros, como dados demográficos históricos, dados climáticos e dados de comportamento do consumidor. O AWS Data Exchange oferece uma maneira sem servidor de encontrar, assinar e ingerir dados de terceiros diretamente em buckets do S3 na zona landing do data lake. Você pode ingerir um conjunto de dados completo de terceiros e automatizar a detecção e a ingestão de revisões desse conjunto de dados. O AWS Data Exchange serverless e permite que você encontre e ingira conjuntos de dados de terceiros com apenas alguns cliques.

Camada de armazenamento

O Amazon S3 fornece a base para a camada de armazenamento em nossa arquitetura. Ele oferece escalabilidade praticamente ilimitada a um baixo custo para data lakes serverless. Os dados são armazenados como objetos do S3 organizados em buckets e prefixos nas zonas landing, raw e curated. O Amazon S3 criptografa dados usando chaves gerenciadas no AWS KMS. As políticas do IAM controlam o acesso granular em nível de zona e em nível de datasets a vários usuários e funções. O Amazon S3 oferece 99,99% de disponibilidade e 99,999999999% de durabilidade, cobrando apenas pelos dados que armazena. Para reduzir custos significativamente, o Amazon S3 oferece opções de armazenamento de nível mais frio chamadas Amazon S3 Glacier e S3 Glacier Deep Archive. Para automatizar otimizações de custos, o Amazon S3 oferece políticas de ciclo de vida configuráveis e opções inteligentes de camadas para fazer uma movimentação automatizada de dados mais antigos para camadas mais frias. Os serviços da AWS em nossas camadas de ingestão, catalogação, processamento e consumo podem ler e gravar objetos S3 nativamente. Além disso, centenas de fornecedores terceirizados e produtos e serviços de código aberto fornecem a capacidade de ler e gravar objetos do S3.

Dados de qualquer estrutura (incluindo dados não estruturados) e qualquer formato podem ser armazenados como objetos S3 sem a necessidade de predefinir um esquema. Isso permite que os serviços na camada de ingestão coloquem rapidamente uma variedade de dados no data lake em seu formato de origem original. Depois que os dados são ingeridos no data lake, os componentes na camada de processamento podem definir o esquema em cima dos conjuntos de dados do S3 e registrá-los na camada de catalogação. Os serviços nas camadas de processamento e consumo podem usar o esquema na leitura para aplicar a estrutura necessária aos dados lidos de objetos do S3.

Camada de catalogação e pesquisa

Um data lake geralmente hospeda um grande conjuntos de dados, e muitos desses conjuntos de dados têm esquema em evolução e novas partições de dados. Um Catálogo de Dados central que gerencia metadados para todos os conjuntos de dados no data lake é crucial para permitir a descoberta de dados por autosserviço no data lake. Além disso, separar metadados de dados em um esquema central permite a leitura do esquema para os componentes da camada de processamento e consumo.

Em nossa arquitetura, o Lake Formation fornece o catálogo central para armazenar e gerenciar metadados para todos os conjuntos de dados hospedados no data lake. As organizações gerenciam metadados técnicos (como esquemas de tabela com versão, informações de particionamento, localização de dados físicos e carimbos de data/hora de atualização) e atributos de negócios (como proprietário de dados, administrador de dados, definição de regra de negócio e confidencialidade de informações de coluna) de todos os seus conjuntos de dados no Lake Formation. Serviços como AWS Glue, Amazon EMR e Amazon Athena integram-se nativamente ao Lake Formation e automatizam a descoberta e o registro de metadados no catálogo do Lake Formation. Além disso, o Lake Formation fornece APIs para habilitar o registro e o gerenciamento de metadados usando scripts personalizados e produtos de terceiros. Os crawlers do AWS Glue na camada de processamento podem rastrear esquemas em evolução e partições recém-adicionadas de conjuntos de dados no data lake e adicionar novas versões dos metadados correspondentes no catálogo do Lake Formation.

O Lake Formation fornece ao administrador do data lake um local central para configurar permissões granulares em nível de tabela e coluna para bancos de dados e tabelas hospedados no data lake. Depois que as permissões do Lake Formation são configuradas, usuários e grupos podem acessar apenas tabelas e colunas autorizadas usando vários serviços de camada de processamento e consumo, como Athena, Amazon EMR, AWS Glue e Amazon Redshift Spectrum.

Camada de Processamento

A camada de processamento em nossa arquitetura é composta por 2 tipos de componentes:

  • Componentes usados para criar pipelines de processamento de dados em várias etapas
  • Componentes para orquestrar pipelines de processamento de dados dentro do cronograma ou em resposta a gatilhos de eventos (como ingestão de novos dados na zona landing)

O AWS Glue e o AWS Step Functions fornecem componentes sem servidor para criar, orquestrar e executar pipelines que podem ser facilmente dimensionados para processar grandes volumes de dados. Os fluxos de trabalho (workflows) de várias etapas criados usando o AWS Glue e o Step Functions podem catalogar, validar, limpar, transformar e enriquecer conjuntos de dados individuais e avançá-los da zona landing para as zonas raw e de raw para zonas curated na camada de armazenamento.

O AWS Glue é um serviço de ETL serverless, usado para criar e executar jobs em Python ou Spark (escritos em Scala ou Python) sem a necessidade que você implemente ou gerencie clusters. O AWS Glue gera automaticamente o código para acelerar as suas transformações de dados e processos de carregamento. O AWS Glue ETL se baseia no Apache Spark e fornece conectores de fonte de dados prontos para uso, estruturas de dados e transformações de ETL para validar, limpar, transformar e nivelar dados armazenados em vários formatos de código aberto, como CSV , JSON, Parquet e Avro. O AWS Glue ETL também oferece recursos para processar dados particionados de forma incremental.

Além disso, você pode usar o AWS Glue para definir e executar crawlers que podem rastrear pastas no data lake, descobrir datasets e suas partições, inferir esquemas e definir tabelas no catálogo do Lake Formation. O AWS Glue fornece mais de uma dúzia de classificadores integrados que podem analisar uma variedade de estruturas de dados armazenadas em formatos de código aberto (open source). O AWS Glue também fornece gatilhos e recursos de fluxo de trabalho que você pode usar para criar pipelines de processamento de dados completos em várias etapas que incluem as dependências do job e execução de etapas paralelas. Você pode agendar os jobs e workflows do AWS Glue ou executá-los sob demanda. O AWS Glue integra-se nativamente aos serviços da AWS em camadas de armazenamento, catálogo e segurança.

O AWS Step Functions é um mecanismo sem servidor que você pode usar para criar e orquestrar workflows de processamento de dados já agendados ou orientados a eventos. Você pode utilizar o Step Functions para criar pipelines de processamento de dados complexos que envolvam a orquestração de etapas complementares com os vários serviços da AWS, como AWS Glue, AWS Lambda, contêineres do Amazon Elastic Container Service (Amazon ECS) e muito mais. O Step Functions fornece representações visuais de workflows complexos e seu estado de execução para torná-los fáceis de entender. Ele gerencia o estado, os pontos de verificação e as reinicializações do workflow para que você possa garantir que as etapas no pipeline de dados sejam executadas em ordem e conforme o esperado. Os recursos integrados de try/catch, retry e rollback lidam com erros e exceções automaticamente.

Camada de consumo

A camada de consumo em nossa arquitetura é composta por serviços de análise completamente gerenciados e criados especificamente para permitir SQL interativo, painéis de BI, processamento em batch (lotes) e aprendizado de máquina.

SQL Interativo

O Athena é um serviço de consulta interativa que permite executar SQL ANSI complexo em terabytes de dados armazenados no Amazon S3, sem precisar carregá-lo primeiro em um banco de dados. As consultas do Athena podem analisar dados estruturados, semiestruturados e colunares armazenados em formatos de código aberto (open-source), como CSV, JSON, XML Avro, Parquet e ORC. O Athena usa as definições de tabela do Lake Formation para aplicar o esquema na leitura aos dados lidos do Amazon S3.

O serviço Athena é serverless, portanto, não há infraestrutura para configurar ou gerenciar, e você paga apenas pela quantidade de dados lidos pelas consultas executadas. Ele fornece resultados mais rápidos e custos mais baixos, reduzindo a quantidade de dados que verifica usando informações de particionamento de datasets armazenadas no catálogo do Lake Formation. Você pode executar consultas (queries) diretamente no console do Athena enviando-as usando os endpoints Athena JDBC ou ODBC.

A integração dos serviços AWS ocorre nativamente com o Athena na camada de segurança e monitoramento para oferecer suporte à autenticação, autorização, criptografia, logging e monitoramento. O serviço oferece suporte a controles de acesso à nível de tabela e coluna definidos no catálogo do Lake Formation.

Data warehousing e processamento em lote (batch)

O Amazon Redshift é um serviço de data warehouse totalmente gerenciado que pode hospedar e processar petabytes de dados e executar milhares de consultas de alto desempenho em paralelo. Ele utiliza um cluster de nós de computação para executar consultas de baixa latência alimentando dashboards interativos e análises de batch de alto rendimento para orientar as decisões de negócios. Você pode executar consultas do Amazon Redshift diretamente no console do Amazon Redshift ou enviá-las usando os endpoints JDBC/ODBC fornecidos pelo serviço.

O Amazon Redshift oferece o recurso chamado Amazon Redshift Spectrum, para realizar consultas em  datasets estruturados e semiestruturados no Amazon S3 sem a necessidade de carregá-lo no cluster. O Amazon Redshift Spectrum pode ativar milhares de nós temporários específicos de consulta para verificar exabytes de dados e fornecer resultados rápidos. As organizações normalmente carregam dados dimensionados e acessados com mais frequência em um cluster do Amazon Redshift e mantêm até exabytes de dados históricos estruturados, semiestruturados e não estruturados no Amazon S3. O Amazon Redshift Spectrum permite a execução de consultas complexas que combinam dados em um cluster com dados no Amazon S3 na mesma query/consulta.

O serviço Amazon Redshift oferece integração nativa com o Amazon S3 na camada de armazenamento, catálogo do Lake Formation e serviços da AWS na camada de segurança e monitoramento.

Business intelligence

O Amazon QuickSight fornece um recurso de BI sem servidor para criar e publicar facilmente dashboards interativos. Ele enriquece os dashboards com insights de Machine Learning (aprendizado de máquina) prontos para uso e gerados automaticamente, como previsão, detecção de anomalias e destaques narrativos. O QuickSight integra-se nativamente ao Amazon SageMaker para permitir insights adicionais personalizados baseados em modelos de aprendizado de máquina para seus dashboards de BI. Você pode acessar acessá-los no QuickSight através de qualquer dispositivo usando aplicativo QuickSight ou pode incorporar o dashboard em aplicações web, portais e sites.

O QuickSight permite que você se conecte diretamente e importe dados de uma ampla variedade de fontes na nuvem e locais. Isso inclui aplicativos SaaS como Salesforce, Square, ServiceNow, Twitter, GitHub e JIRA; bancos de dados de terceiros, como Teradata, MySQL, Postgres e SQL Server; serviços nativos da AWS, como Amazon Redshift, Athena, Amazon S3, Amazon Relational Database Service (Amazon RDS) e Amazon Aurora; e sub-redes VPC privadas. Você também pode fazer upload de diferentes tipos de arquivo, incluindo XLS, CSV, JSON e Presto.

Para acelerar o desempenho dos dashboards, o QuickSight fornece um mecanismo de cache e cálculo in memory chamado SPICE. O SPICE replica automaticamente os dados para alta disponibilidade e permite que milhares de usuários realizem simultaneamente análises rápidas e interativas enquanto protegem sua infraestrutura de dados. O QuickSight escala automaticamente para dezenas de milhares de usuários e fornece um modelo econômico de pagamento por sessão.

O QuickSight permite que você gerencie com segurança seus usuários e conteúdo por meio de um conjunto abrangente de recursos de segurança, incluindo controle de acesso baseado em função, integração de active directory, auditoria com AWS CloudTrail, single sign-on (IAM ou de terceiros), sub-redes VPC privadas e backup de dados.

Análise preditiva e Aprendizado de Máquina

No re:Invent 2021, a Amazon Web Services anunciou o Amazon SageMaker Universal Notebooks, permitindo que as equipes de ciência de dados combinem facilmente a preparação interativa de dados e machine learning em escala em um único notebook. Veja Create and manage Amazon EMR Clusters from SageMaker Studio to run interactive Spark and ML workloads para obter mais detalhes.

O Amazon SageMaker é um serviço totalmente gerenciado que fornece componentes para criar, treinar e implementar modelos de machine learning (aprendizado de máquina) usando um ambiente de desenvolvimento interativo (IDE) chamado Amazon SageMaker Studio. No Amazon SageMaker Studio, você pode fazer upload de dados, criar novos notebooks, treinar e ajustar modelos, alternar entre etapas para ajustar experimentos, comparar resultados e implementar modelos para produção, tudo em um só lugar usando uma interface visual unificada.

Os modelos de aprendizado de máquina são treinados em instâncias gerenciadas no Amazon SageMaker, incluindo Amazon Elastic Compute Cloud (Amazon EC2) Spot Instances altamente econômicas. Você pode organizar vários jobs de treinamento usando o Amazon SageMaker Experiments. Você pode criar jobs de treinamento usando algoritmos integrados do Amazon SageMaker, seus algoritmos personalizados ou centenas de algoritmos que você pode implementar do AWS Marketplace. O Amazon SageMaker Debugger oferece visibilidade total dos jobs de treinamento de modelo. O Amazon SageMaker também oferece ajuste automático de hiperparâmetros para jobs de treinamento de aprendizado de máquina.

É possível implementar modelos treinados do Amazon SageMaker em produção com apenas alguns cliques e escalá-los facilmente em uma frota de instâncias EC2 totalmente gerenciadas. Você pode escolher entre vários tipos de instância do EC2 e atribuir uma instância GPU-powered inference acceleration econômica. Depois que os modelos são implementados, o Amazon SageMaker pode monitorar as principais métricas do modelo para obter precisão de inferência e detectar qualquer desvio de conceito.

O Amazon SageMaker oferece integrações nativas com serviços da AWS nas camadas de armazenamento e segurança.

Camada de segurança de governança

Componentes em todas as camadas de nossa arquitetura protegem dados, identidades e recursos de processamento usando nativamente os seguintes recursos fornecidos pela camada de segurança e governança.

Autenticação e autorização

O IAM fornece identidade em nível de usuário (user), grupo (group) e função (roles) aos usuários e a capacidade de configurar o controle de acesso granular para recursos gerenciados pelos serviços da AWS em todas as camadas de nossa arquitetura. O IAM oferece suporte à autenticação multifator e single sign-on por meio de integrações com diretórios corporativos e provedores de identidade aberta, como Google, Facebook e Amazon.

O Lake Formation fornece um modelo de controle de acesso simples e centralizado por tabela hospedado no data lake. Depois de implementado no Lake Formation, as políticas de autorização para banco de dados e tabelas são impostas por outros serviços da AWS como o Athena, Amazon EMR, QuickSight, e Amazon Redshift Spectrum. No Lake Formation, você pode conceder ou revogar acessos a nível de banco de dados (database), tabela (table), ou coluna (column) para usuários IAM, grupos, ou funções definidas na mesma conta que está hospedando o catálogo do Lake Formation ou outra conta AWS. O simples modelo de autorização baseado em conceder/revogar do Lake Formation simplifica consideravelmente o modelo de autorização anterior baseado em IAM que dependia da proteção separada dos objetos de dados e metadados do S3 no AWS Glue Data Catalog.

Criptografia

O AWS KMS oferece a capacidade do cliente criar e gerenciar chaves de criptografia simétricas e assimétricas. Os serviços da AWS em todas as camadas da nossa arquitetura integram-se nativamente ao AWS KMS para criptografar dados no data lake. Ele suporta a criação de novas chaves e a importação de chaves de clientes existentes. O acesso às chaves de criptografia é controlado usando o IAM e monitorado por meio de trilhas de auditoria detalhadas no CloudTrail.

Proteção de Rede

Nossa arquitetura usa a Amazon Virtual Private Cloud (Amazon VPC) para provisionar uma seção logicamente isolada da Nuvem AWS (chamada VPC) que é isolada da Internet e de outros clientes da AWS. A AWS VPC oferece a capacidade de escolher seu próprio endereço IP, criar sub-redes e configurar tabelas de rotas e gateways de rede. Os serviços da AWS de outras camadas em nossa arquitetura lançam recursos nessa VPC privada para proteger todo o tráfego de e para esses recursos.

Monitoramento e Logging

Os serviços da AWS em todas as camadas de nossa arquitetura armazenam logs detalhados e métricas de monitoramento no AWS CloudWatch. O CloudWatch oferece a capacidade de analisar logs, visualizar métricas monitoradas, definir limites de monitoramento e enviar alertas quando os limites forem ultrapassados.

Todos os serviços da AWS em nossa arquitetura também armazenam extensas trilhas de auditoria de ações de usuários e serviços no CloudTrail. O CloudTrail fornece histórico de eventos da atividade de sua conta da AWS, incluindo ações realizadas por meio do AWS Management Console, SDKs da AWS, ferramentas de linha de comando e outros serviços da AWS. Esse histórico de eventos simplifica a análise de segurança, o rastreamento de alterações de recursos e a solução de problemas. Além disso, você pode usar o CloudTrail para detectar atividades incomuns em suas contas da AWS. Esses recursos ajudam a simplificar a análise operacional e a solução de problemas.

Considerações adicionais

Neste post, falamos sobre a ingestão de dados de diversas fontes e como armazená-las como objeto no S3 dentro do data lake, em seguida, como utilizar o AWS Glue para processar os datasets ingeridos até que os mesmos estejam prontos para serem consumidos. Essa arquitetura permite casos de uso que precisam de uma latência a nível de source-to-consumption (fonte-consumo) de minutos a horas. Em uma futura postagem, envolveremos nossa arquitetura com serviços analíticos serverless para adicionar uma camada de velocidade que permite que os casos de uso se utilizem de uma latência de segundos, tudo isso enquanto ocorre um alinhamento com as camadas lógicas da arquitetura que introduzimos nessa postagem.

Conclusão

Com os serviços gerenciados e sem servidor da AWS, você pode criar uma arquitetura analítica moderna centralizada em data lake e de baixo custo em poucos dias. Uma arquitetura desacoplada e orientada a componentes permite que você comece pequeno e adicione rapidamente novos componentes específicos a uma das seis camadas de arquitetura para atender a novos requisitos e fontes de dados.

Convidamos você a ler as seguintes postagens que contêm orientações detalhadas e código de exemplo para criar os componentes da arquitetura de análise centrada em data lake sem servidor:

 


Sobre os autores

Praful Kava is a Sr. Specialist Solutions Architect at AWS. He guides customers to design and engineer Cloud scale Analytics pipelines on AWS. Outside work, he enjoys travelling with his family and exploring new hiking trails.

 

 

 

 

 

Changbin Gong is a Senior Solutions Architect at Amazon Web Services (AWS). He engages with customers to create innovative solutions that address customer business problems and accelerate the adoption of AWS services. In his spare time, Changbin enjoys reading, running, and traveling.

 

 

 

 

Giullia Antunes é Arquiteta de Soluções da AWS para clientes de diferentes segmentos. Giullia atua em projetos suportando os times de Public Sector na busca por sistemas resilientes e escaláveis.

 

 

 

 

 

Cleber Gomes é Arquiteto de Soluções da AWS no time de Public Sector. Em 9 anos de Setor Financeiro, atuou em projetos de migração de datacenter, construção de cloud privada e foi líder técnico de open source. Formado em Ciência da Computação pela UFMT, é entusiasta de open source e analytics, infraestrutura e redes.