A realização desse tutorial pode gerar custos consideráveis. Antes de executar, consulte a tabela de preç os do AWS Glue e execute-o de forma consciente para evitar possíveis cobranças não planejadas:
- Criar um Bucket no
S3
que será utilizado como output - Criar um
IAM Role
que da premissão ao AWS Glue de escrever no seu bucket no S3 e acesso ao Amazon Comprehend.
Para testar o código que realizará o Job no AWS Glue utilizaremos o Jupyter Notebook do próprio AWS Glue.
Para criar o Notebook é necessário primeiro criar um Dev endpoint
. Para isso:
- Entre na página no AWS Glue
- No menu da esquerda clique em
Dev endpoints
- Na tela de Dev endpoints, clique no botão azul 'Add endpoint'
- Insira um nome no endopoit e associe a IAM role criada nos pré-requisitos.
- Abra a guia de
Security configuration, script libraries, and job parameters (optional)
e altere osData processing units (DPUs)
de 5 para 6. Esse problema não executa corretamente com menos de12 DPUs
- Mantenha as demais opções com o padrão e vá dando
Next
até criar o endpoint - Espere cerca de 5 minutos para a criação do endpoint (até o Provisioning status do endpoint mudar para READY)
Com o endpoint criado, já podemos criar o Notebook.
- No menu da esquerda do AWS Glue clique em
Notebooks
- Na tela do Notebook, seleciona 'SageMaker notebooks' e clique no botão azul 'Create notebook'
- Insira um nome para o notebook
- Associe o endpoint criado anteriormente
- Selecione
Create an IAM role
- Coloque um nome para a nova role
- A role completa ficará como AWSGlueServiceSageMakerNotebookRole-<NOME_DA_ROLE>
- Mantenha as demais opções com o padrão e clique em
Create notebook
- Espere cerca de 5 minutos para a criação do notebook
- Com o notebook criado, selecione-o e clique em
Open notebook
- Já com o notebook aberto, selecione
new > Sparkmagic (PySpark)
para criar um novo notebook com kernel de PySpark - Agora você pode copiar o código do arquivo
glue_compreend_amazon_reviews_job.py
e executá-lo em blocos nas células do notebook.A ideia aqui é executar o código aos poucos, parte por parte, para entender o funcionamento e executar degub. Então separe tudo em pequenas células.
- Lembre de alterar a linha 22 do arquivo, inserindo o nome do Bucket criado nos pré-requisitos
S3_BUCKET = '<<BUCKET_NAME>>' # Insert your Bucket Name
- Ao terminar o programa criará uma pasta chamada
notebook
dentro do seu Bucket, contendo o resultado a execução feita pelo SageMaker Notebook
Com o programa devidamente validado, podemos iniciar o Job do Glue.
- Entre na página no AWS Glue
- No menu da esquerda clique em
Jobs
- Na tela de Jobs, clique no botão azul 'Add Job'
- Insira o nome do Job
- Selecione a IAM role criada nos pré-requisitos
- Em
Type
, selecione Spark - Em
Glue version
selecione Spark 2.4, Python 3 (glue version 1.0) - Em
This job runs
, selecione a opção A new script to be authored by you - Insira o nome do script
- Abra a guia de
Monitoring options
e troque a opçãoContinuous logging
para **Enable - Abra a guia de
Security configuration, script libraries, and job parameters (optional)
e altereMaximum capacity
para 12 e clique emNext
- Na Parte de connections, simplesmente clique em
Save job and edit script
- O AWS Glue abrirá uma página onde poderemos inserir o script. Copie e cole o conteúdo do script
glue_compreend_amazon_reviews_job.py
na parte de edição do Job - Salve e Clique em
Run job
- Aguarda alguns minutos para a execução do Job. Demora em média 10 minutos com 6 DPUs
- Ao terminar o programa criará uma pasta chamada
glue
dentro do seu Bucket, contendo o resultado a execução feita pelo job do glue
Lembre-se de deletar os recursos criados para não ter gastos inesperados na sua conta. Delete:
- Dev endpoint
- notebook
- job
- buckets s3
DPU
menor que 12 usando o notebookMaximum capacity
manor que 12 usando o jobComprehend ThrottlingException
- isso é uma limitação da AWS, então ou você tem que rodar em outra conta/região ou abrir um ticket pedindo para aumentar a capacidade da API do Comprehend.
O link the referência mostra como configurar o Amazon Athena
para realizar Queries em cima do resultado gerado pelo job e usa o Amazon QuickSight
para gerar dashboards (visualização de dados).