

# Tutorial: desenvolvimento da sua primeira workload de streaming usando cadernos do AWS Glue Studio
<a name="streaming-tutorial-studio-notebooks"></a>

Neste tutorial, você explorará como aproveitar os cadernos do AWS Glue Studio para desenvolver e otimizar, de forma interativa, os trabalhos de ETL para o processamento de dados quase em tempo real. Quer essa seja sua primeira experiência com o AWS Glue ou você esteja procurando aprimorar seu conjunto de habilidades, este guia orientará você durante o processo, possibilitando o aproveitamento de todo o potencial dos cadernos de sessão interativa do AWS Glue.

Com o AWS Glue Streaming, é possível criar trabalhos de extração, transformação e carregamento (ETL) de streaming que são executados continuamente e consomem dados de fontes de streaming, como o Amazon Kinesis Data Streams, o Apache Kafka e o Amazon Managed Streaming for Apache Kafka (Amazon MSK).

## Pré-requisitos
<a name="streaming-tutorial-studio-notebooks-prereqs"></a>

Para seguir este tutorial, você precisará de um usuário com permissões do Console da AWS para usar o AWS Glue, o Amazon Kinesis, o Amazon S3, o Amazon Athena, o AWS CloudFormation, o AWS Lambda e o Amazon Cognito.

## Consumo de dados de streaming do Amazon Kinesis
<a name="streaming-tutorial-studio-notebooks-kinesis"></a>

**Topics**
+ [Geração de dados de simulação com o Kinesis Data Generator](#streaming-tutorial-studio-notebooks-kinesis-generate-data)
+ [Criação de um trabalho de streaming do AWS Glue com o AWS Glue Studio](#streaming-tutorial-studio-notebooks-kinesis-create-job)
+ [Limpeza](#streaming-tutorial-studio-notebooks-clean)
+ [Conclusão](#streaming-tutorial-studio-notebooks-conclusion)

### Geração de dados de simulação com o Kinesis Data Generator
<a name="streaming-tutorial-studio-notebooks-kinesis-generate-data"></a>

**nota**  
Se você já concluiu a etapa anterior apresentada em [Tutorial: desenvolvimento da sua primeira workload de streaming usando o AWS Glue Studio](streaming-tutorial-studio.md), já tem o Kinesis Data Generator instalado em sua conta e pode pular as etapas de 1 a 8 abaixo e avançar para a seção [Criação de um trabalho de streaming do AWS Glue com o AWS Glue Studio](#streaming-tutorial-studio-notebooks-kinesis-create-job). 

Você pode gerar dados de amostra sinteticamente no formato JSON usando o Kinesis Data Generator (KDG). É possível encontrar instruções completas e detalhes na [documentação da ferramenta](https://awslabs.github.io/amazon-kinesis-data-generator/web/help.html).

1. Para começar, clique em [https://aws-data-analytics-workshops.s3.amazonaws.com/aws_glue/aws_glue_streaming/docs/glue-stream.yaml](https://aws-data-analytics-workshops.s3.amazonaws.com/aws_glue/aws_glue_streaming/docs/glue-stream.yaml) para executar um modelo do AWS CloudFormation em seu ambiente da AWS.
**nota**  
Pode ocorrer uma falha no modelo do CloudFormation porque alguns recursos, como o usuário do Amazon Cognito para o Kinesis Data Generator, já existem em sua conta da AWS. Isso pode acontecer porque você já configurou esses recursos seguindo outro tutorial ou outra publicação de blog. Para resolver isso, é possível experimentar o modelo em uma nova conta da AWS para começar do zero ou explorar uma região da AWS diferente. Essas opções permitem que você execute o tutorial sem entrar em conflito com os recursos existentes.

   O modelo provisiona um fluxo de dados do Kinesis e uma conta do Kinesis Data Generator para você.

1. Digite um **Nome de usuário** e uma **Senha** que o KDG usará para realizar a autenticação. Anote o nome de usuário e a senha para uso posterior.

1. Selecione **Próximo** até a última etapa. Reconheça a criação de recursos do IAM. Verifique se há erros na parte superior da tela, como a senha não atender aos requisitos mínimos, e implante o modelo.

1. Navegue até a guia **Saídas** da pilha. Depois que o modelo for implantado, ele exibirá a propriedade gerada **KinesisDataGeneratorUrl**. Clique nesse URL.

1. Digite o **Nome de usuário** e a **Senha** que você anotou.

1. Selecione a região que você está usando e selecione o fluxo do Kinesis `GlueStreamTest-{AWS::AccountId}`.

1. Insira o seguinte modelo:

   ```
   {
       "ventilatorid": {{random.number(100)}},
       "eventtime": "{{date.now("YYYY-MM-DD HH:mm:ss")}}",
       "serialnumber": "{{random.uuid}}",
       "pressurecontrol": {{random.number(
           {
               "min":5,
               "max":30
           }
       )}},
       "o2stats": {{random.number(
           {
               "min":92,
               "max":98
           }
       )}},
       "minutevolume": {{random.number(
           {
               "min":5,
               "max":8
           }
       )}},
       "manufacturer": "{{random.arrayElement(
           ["3M", "GE","Vyaire", "Getinge"]
       )}}"
   }
   ```

   Agora, é possível visualizar dados de simulação com **Testar modelo** e ingerir os dados de simulação no Kinesis com **Enviar dados**.

1. Clique em **Enviar dados** e gere de cinco a dez mil registros para o Kinesis.

### Criação de um trabalho de streaming do AWS Glue com o AWS Glue Studio
<a name="streaming-tutorial-studio-notebooks-kinesis-create-job"></a>

O AWS Glue Studio corresponde a uma interface visual que simplifica o processo de criação, orquestração e monitoramento de pipelines de integração de dados. Ele possibilita que os usuários desenvolvam pipelines de transformação de dados sem a necessidade de escrever códigos extensos. Além da experiência de criação de trabalhos visuais, o AWS Glue Studio também inclui um caderno Jupyter apoiado por sessões interativas do AWS Glue, que você usará no restante deste tutorial.

#### Configuração do trabalho de sessões interativas do AWS Glue Streaming
<a name="streaming-tutorial-studio-kinesis-create-job-interactive-sessions"></a>

1. Faça download do [arquivo do caderno](https://aws-data-analytics-workshops.s3.amazonaws.com/aws_glue/aws_glue_streaming/docs/glue_streaming_tutorial_notebook.ipynb) fornecido e salve-o em um diretório local.

1. Abra o console do AWS Glue e, no painel esquerdo, clique em **Cadernos** > **Caderno Jupyter** > **Fazer upload e editar um caderno existente**. Faça upload do caderno usando a etapa anterior e clique em **Criar**.  
![A captura de tela mostra a criação de um trabalho do caderno Jupyter.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/streaming-tutorial-2a.png)

1. Forneça um nome e um perfil ao trabalho e selecione o kernel padrão do Spark. Em seguida, clique em **Iniciar caderno**. Para o **Perfil do IAM**, selecione o perfil provisionado pelo modelo do CloudFormation. É possível visualizar isso na guia **Saídas** do CloudFormation.  
![A captura de tela mostra a caixa de diálogo de configuração do caderno.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/streaming-tutorial-2b.png)

O caderno contém todas as instruções necessárias para continuar o tutorial. É possível executar as instruções no caderno ou seguir este tutorial para continuar com o desenvolvimento do trabalho.

#### Execução das células do caderno
<a name="streaming-tutorial-studio-kinesis-create-job-notebook-cells"></a>

1. (Opcional) A primeira célula de código, `%help`, lista todas as mágicas disponíveis para o caderno. É possível pular essa célula por enquanto, mas fique à vontade para explorá-la.

1. Comece com o próximo bloco de código, `%streaming`. Essa mágica define o tipo de trabalho para o streaming, o que permite desenvolver, depurar e implantar um trabalho de ETL de streaming do AWS Glue.

1. Execute a próxima célula para criar uma sessão interativa do AWS Glue. A célula de saída tem uma mensagem que confirma a criação da sessão.  
![A captura de tela mostra o início de uma sessão interativa.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/streaming-tutorial-2c.png)

1. A próxima célula define as variáveis. Substitua os valores pelos valores apropriados para o seu trabalho e execute a célula. Por exemplo:  
![A captura de tela mostra a definição de variáveis em uma sessão interativa.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/streaming-tutorial-2d.png)

1. Como os dados já estão sendo transmitidos para o Kinesis Data Streams, a próxima célula consumirá os resultados do fluxo. Execute a próxima célula. Como não há instruções de impressão, não existe uma saída esperada para essa célula.

1. Na célula apresentada a seguir, você explora o fluxo de entrada ao utilizar um conjunto de amostra e imprimir o esquema e os dados reais dele. Por exemplo:  
![A captura de tela exibe a amostra e a impressão dos registros de entrada em uma sessão interativa.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/streaming-tutorial-2e.png)

1. A seguir, defina a lógica real de transformação de dados. A célula consiste no método `processBatch`, que é acionado durante cada micro lote. Execute a célula. Em um nível superior, fazemos o seguinte com o fluxo de entrada:

   1. Selecione um subconjunto das colunas de entrada.

   1. Renomeie uma coluna (o2stats para oxygen\_stats).

   1. Derive novas colunas (serial\_identifier, ingest\_year, ingest\_month e ingest\_day).

   1. Armazene os resultados em um bucket do Amazon S3 e também crie uma tabela do catálogo particionada do AWS Glue.

1. Na última célula, você aciona o lote do processo a cada dez segundos. Execute a célula e aguarde cerca de 30 segundos para que ela preencha o bucket do Amazon S3 e a tabela de catálogo do AWS Glue.

1. Por fim, navegue pelos dados armazenados usando o editor de consultas do Amazon Athena. É possível visualizar a coluna renomeada e também as novas partições.  
![A captura de tela mostra a navegação nos dados armazenados no editor de consultas do Amazon Athena.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/streaming-tutorial-2f.png)

O caderno contém todas as instruções necessárias para continuar o tutorial. É possível executar as instruções no caderno ou seguir este tutorial para continuar com o desenvolvimento do trabalho.

#### Salvamento e execução do trabalho do AWS Glue
<a name="streaming-tutorial-studio-kinesis-create-job-save"></a>

Com o desenvolvimento e o teste da aplicação concluídos usando o caderno de sessões interativas, clique em **Salvar** na parte superior da interface do caderno. Depois de salva, também é possível executar a aplicação como um trabalho.

![A captura de tela mostra como salvar o caderno como um trabalho do AWS Glue.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/streaming-tutorial-2g.png)


### Limpeza
<a name="streaming-tutorial-studio-notebooks-clean"></a>

Para evitar cobranças adicionais em sua conta, interrompa o trabalho de streaming que você iniciou como parte das instruções. É possível fazer isso ao interromper o caderno, o que encerrará a sessão. Esvazie o bucket do Amazon S3 e exclua a pilha do AWS CloudFormation provisionada anteriormente.

### Conclusão
<a name="streaming-tutorial-studio-notebooks-conclusion"></a>

Neste tutorial, demonstramos como fazer o seguinte usando o caderno do AWS Glue Studio:
+ Criar um trabalho de ETL de streaming usando cadernos;
+ Pré-visualizar os fluxos de dados de entrada;
+ Codificar e corrigir problemas sem a necessidade de publicar trabalhos do AWS Glue;
+ Analisar o código de trabalho de ponta a ponta, remover qualquer depuração e imprimir instruções ou células do caderno;
+ Publicar o código como um trabalho do AWS Glue.

O objetivo deste tutorial é proporcionar a você uma experiência prática de trabalho com o AWS Glue Streaming e com as sessões interativas. Recomendamos que você o use como referência para seus casos de uso individuais do AWS Glue Streaming. Para obter mais informações, consulte [Conceitos básicos das sessões interativas do AWS Glue](interactive-sessions.md).