

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

Neste tutorial, você aprenderá como criar um trabalho de streaming usando o AWS Glue Studio. O AWS Glue Studio corresponde a uma interface visual para a criação de trabalhos do AWS Glue.

É 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 no Amazon Kinesis Data Streams, no Apache Kafka e no Amazon Managed Streaming for Apache Kafka (Amazon MSK).

## Pré-requisitos
<a name="streaming-tutorial-studio-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-kinesis"></a>

**Topics**
+ [Geração de dados de simulação com o Kinesis Data Generator](#streaming-tutorial-studio-kinesis-generate-data)
+ [Criação de um trabalho de streaming do AWS Glue com o AWS Glue Studio](#streaming-tutorial-studio-kinesis-create-job)
+ [Execução de uma transformação e armazenamento do resultado transformado no Amazon S3](#streaming-tutorial-studio-kinesis-transformation)

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

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://console.aws.amazon.com/cloudformation/home?region=us-east-2#/stacks/new?templateURL=https%3A%2F%2Faws-data-analytics-workshops.s3.amazonaws.com/aws_glue/aws_glue_streaming/docs/glue-stream.yaml&stackName=glue-stream](https://console.aws.amazon.com/cloudformation/home?region=us-east-2#/stacks/new?templateURL=https%3A%2F%2Faws-data-analytics-workshops.s3.amazonaws.com/aws_glue/aws_glue_streaming/docs/glue-stream.yaml&stackName=glue-stream) 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ê. Além disso, ele cria um bucket do Amazon S3 para armazenar os dados e um perfil de serviço do Glue com a permissão necessária para a execução deste tutorial.

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-kinesis-create-job"></a>

1. Navegue até AWS Glue no console da mesma região.

1. Selecione **Trabalhos de ETL** na barra de navegação do lado esquerdo em **Integração de dados e ETL**.

1. Crie um trabalho do AWS Glue usando **Elemento visual com uma tela em branco**.  
![A captura de tela mostra a caixa de diálogo de criação de trabalho.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/streaming-tutorial-1a.png)

1. Navegue até a guia **Detalhes do trabalho**.

1. Para o nome do trabalho do AWS Glue, insira `DemoStreamingJob`.

1. Para o **Perfil do IAM**, selecione o perfil provisionado pelo modelo do CloudFormation, `glue-tutorial-role-${AWS::AccountId}`.

1. Para a **Versão do Glue**, selecione **Glue 3.0**. Deixe todas as outras opções conforme o padrão.  
![A captura de tela mostra a guia de detalhes do trabalho.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/streaming-tutorial-1b.png)

1. Navegue até a **guia Elemento visual**.

1. Clique no ícone de adição. Digite **Kinesis** na barra de pesquisa. Selecione a fonte de dados do **Amazon Kinesis**.  
![A captura de tela mostra a caixa de diálogo Adicionar nós.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/streaming-tutorial-1c.png)

1. Selecione **Detalhes do fluxo** para a **Fonte do Amazon Kinesis** na guia **Propriedades da fonte de dados: fluxo do Kinesis**.

1. Selecione **O fluxo está localizado em minha conta** para **Localização do fluxo de dados**.

1. Selecione a região que você está usando.

1. Selecione o fluxo `GlueStreamTest-{AWS::AccountId}`.

1. Mantenha todas as outras configurações conforme o padrão.  
![A captura de tela mostra a guia Propriedades da fonte de dados.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/streaming-tutorial-1d.png)

1. Navegue até a guia **Pré-visualização de dados**.

1. Clique em **Iniciar sessão de pré-visualização de dados**, que visualiza previamente os dados de simulação gerados pelo KDG. Escolha o perfil de serviço do Glue que você criou anteriormente para o trabalho do AWS Glue Streaming.

   Demora de 30 a 60 segundos para que os dados de pré-visualização sejam mostrados. Se aparecer **Não há dados a serem exibidos**, clique no ícone de engrenagem e altere o **Número de linhas para amostra** para `100`.

   Você pode visualizar os dados de amostra, como apresentado abaixo:  
![A captura de tela mostra a guia Pré-visualização de dados.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/streaming-tutorial-1e.png)

   Além disso, é possível visualizar o esquema inferido na guia **Esquema de saída**.  
![A captura de tela mostra a guia Esquema de saída.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/streaming-tutorial-1f.png)

### Execução de uma transformação e armazenamento do resultado transformado no Amazon S3
<a name="streaming-tutorial-studio-kinesis-transformation"></a>

1. Com o nó de origem selecionado, clique no ícone de adição no canto superior esquerdo para adicionar uma etapa de **Transformação**.

1. Selecione a etapa **Alterar esquema**.  
![A captura de tela mostra a caixa de diálogo Adicionar nós.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/streaming-tutorial-1g.png)

1. É possível renomear campos e converter o tipo de dados dos campos nesta etapa. Renomeie a coluna `o2stats` para `OxygenSaturation` e converta todos os tipos de dados `long` para `int`.  
![A captura de tela mostra a guia Transformação.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/streaming-tutorial-1h.png)

1. Clique no ícone de adição para adicionar um destino do **Amazon S3**. Insira S3 na caixa de pesquisa e selecione a etapa de transformação **Amazon S3: destino**.  
![A captura de tela mostra a guia Adicionar nós.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/streaming-tutorial-1i.png)

1. Selecione **Parquet** como o formato do arquivo de destino.

1. Selecione **Snappy** como o tipo de compactação.

1. Insira um **Local de destino do S3** criado pelo modelo do CloudFormation, `streaming-tutorial-s3-target-{AWS::AccountId}`. 

1. Selecione **Criar uma tabela no Catálogo de Dados e, em execuções subsequentes, atualizar o esquema e adicionar novas partições**.

1. Insira o nome do **Banco de dados** e da **Tabela** de destino para armazenar o esquema da tabela de destino do Amazon S3.  
![A captura de tela mostra a página de configuração do destino do Amazon S3.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/streaming-tutorial-1j.png)

1. Clique na guia **Script** para visualizar o código gerado.

1. Clique em **Salvar** no canto superior direito para salvar o código de ETL e, em seguida, clique em **Executar** para iniciar o trabalho de streaming do AWS Glue.

   É possível encontrar o **Status de execução** na guia **Execuções**. Deixe o trabalho ser executado entre três e cinco minutos e, em seguida, interrompa-o.  
![A captura de tela mostra a guia Execuções.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/streaming-tutorial-1k.png)

1. Verifique a nova tabela criada no Amazon Athena.  
![A captura de tela mostra a tabela no Amazon Athena.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/streaming-tutorial-1l.png)