

# AWS Glue: como funciona
<a name="how-it-works"></a>

O AWS Glue usa outros produtos da AWS para orquestrar seus trabalhos de ETL (extração, transformação e carregamento) para criar data warehouses e data lakes e gerar transmissões de saída. O AWS Glue chama operações de API para transformar seus dados, criar logs de runtime, armazenar a lógica do trabalho e criar notificações para ajudar você a monitorar as execuções de trabalhos. O console do AWS Glue conecta esses serviços em um aplicativo gerenciado, para que você possa se concentrar na criação e no monitoramento do seu trabalho de ETL. O console executa operações de desenvolvimento de trabalhos e administrativas em seu nome. Você fornece credenciais e outras propriedades para que o AWS Glue acesse suas fontes de dados e grave nos destinos de dados.

O AWS Glue provisiona e gerencia os recursos necessários para executar sua workload. Não é necessário criar a infraestrutura para uma ferramenta de ETL porque o AWS Glue faz isso por você. Quando recursos são necessários, o AWS Glue usa uma instância do grupo de instâncias para executar sua workload e reduzir o tempo de inicialização.

Com o AWS Glue, você cria trabalhos usando definições de tabela no Data Catalog. Os trabalhos consistem em scripts com as instruções que executam as tarefas de transformação de dados desejadas. Você usa gatilhos para iniciar trabalhos em uma programação ou como resultado de um evento especificado. Você determina onde seus dados de destino residirão e quais dados de origem que preencherão seu destino. Com base em suas entradas, o AWS Glue transforma os dados do formato de origem para o de destino. Como alternativa, também é possível fornecer scripts personalizados no console do AWS Glue ou na API para processar os dados de acordo com seus requisitos específicos.

**Fontes e destinos de dados**  
O AWS Glue para Sparks permite que você leia e grave dados de vários sistemas e bancos de dados, incluindo:
+ Amazon S3
+ Amazon DynamoDB
+ Amazon Redshift
+ Amazon Relational Database Service (Amazon RDS)
+ Bancos de dados acessíveis a JDBC de terceiros
+ MongoDB e Amazon DocumentDB (compatível com MongoDB)
+ Outros conectores do Marketplace e plug-ins do Apache Spark

**Streams de dados**  
O AWS Glue para Sparks pode transmitir dados dos seguintes sistemas:
+ Amazon Kinesis Data Streams
+ Apache Kafka

O AWS Glue está disponível em diversas regiões da AWS. Para obter mais informações, consulte [Regiões e endpoints do AWS](https://docs.aws.amazon.com/general/latest/gr/rande.html) no Referência geral da Amazon Web Services.

**Topics**
+ [Trabalhos de ETL com tecnologia sem servidor executados em isolamento](#how-it-works-isolation)
+ [Conceitos do AWS Glue](components-key-concepts.md)
+ [Componentes do AWS Glue](components-overview.md)
+ [AWS Glue para Spark e AWS Glue para Ray](how-it-works-engines.md)
+ [Converter esquemas semi-estruturados em esquemas relacionais com o AWS Glue](schema-relationalize.md)
+ [Sistemas de tipos do AWS Glue](glue-types.md)

## Trabalhos de ETL com tecnologia sem servidor executados em isolamento
<a name="how-it-works-isolation"></a>

O AWS Glue executa trabalhos de ETL em um ambiente de tecnologia sem servidor com sua escolha de mecanismo, Spark ou Ray. O AWS Glue executa esses trabalhos em recursos virtuais que ele provisiona e gerencia na sua própria conta de serviço. 

O AWS Glue é projetado para fazer o seguinte:
+ Diferenciar dados de clientes.
+ Proteger os dados do cliente em trânsito e em repouso.
+ Acesse os dados dos clientes apenas quando necessário, em resposta às solicitações deles, usando credenciais temporárias com escopo ou com o consentimento dos clientes para funções do IAM na conta deles.

Durante o provisionamento de um trabalho de ETL, você fornece fontes de dados de entrada e destinos de dados de saída na sua nuvem virtual privada (VPC). Além disso, você fornece a função do IAM, o ID da VPC, o ID da sub-rede e o grupo de segurança necessários para acessar fontes e destinos de dados. Para cada tupla (ID da conta do cliente, perfil do IAM, ID da sub-rede e grupo de segurança), o AWS Glue cria um novo ambiente, que é isolado na rede, e um nível de gerenciamento de todos os outros ambientes dentro da conta de serviço do AWS Glue.

 Você cria e configura recursos do AWS Glue, como catálogos de dados, trabalhos e rastreadores em sua conta AWS. Esses recursos são então associados ao perfil do IAM e às configurações de rede (sub-rede e grupo de segurança) que você especifica durante o processo de criação. 

O AWS Glue cria interfaces de rede elástica na sua sub-rede usando endereços IP privados. Os trabalhos usam essas interfaces de rede elástica para acessar as fontes de dados e os destinos de dados. O tráfego de entrada e saída e dentro do ambiente de execução do trabalho é regido pelas políticas de VPC e de rede com uma exceção: as chamadas feitas para as bibliotecas do AWS Glue podem transmitir tráfego para as operações da API do AWS Glue por meio da VPC do AWS Glue. Todas as chamadas de API do AWS Glue são registradas. Dessa forma, os proprietários de dados podem auditar o acesso da API habilitando o [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/), que fornece logs de auditoria à sua conta.

Os ambientes gerenciados pelo AWS Glue que executam seus trabalhos de ETL são protegidos com as mesmas práticas de segurança seguidas por outros serviços da AWS. Para obter uma visão geral das práticas e responsabilidades de segurança compartilhadas, consulte o whitepaper [Introduction to AWS Security Processes](https://docs.aws.amazon.com/whitepapers/latest/introduction-aws-security/welcome.html).

# Conceitos do AWS Glue
<a name="components-key-concepts"></a>

 O AWS Glue é um serviço ETL (Extrair, transformar, carregar) totalmente gerenciado que permite mover dados com facilidade entre diferentes fontes de dados e destinos. Os principais componentes são: 
+  **Catálogo de dados**: um armazenamento de metadados que contém definições de tabelas, definições de tarefas e outras informações de controle para seus fluxos de trabalho de ETL. 
+  **Crawlers**: programas que se conectam a fontes de dados, inferem esquemas de dados e criam definições de tabelas de metadados no Catálogo de Dados. 
+  **Trabalhos de ETL**: a lógica de negócios para extrair dados de fontes, transformá-los usando scripts do Apache Spark e carregá-los em destinos. 
+  **Acionadores**: mecanismos para iniciar a execução de trabalhos com base em agendas ou eventos. 

 O fluxo de trabalho típico envolve: 

1.  Definir fontes e destinos de dados no Data Catalog. 

1.  Usar crawlers para preencher o catálogo de dados com metadados de tabela de fontes de dados. 

1.  Definir tarefas de ETL com scripts de transformação para mover e processar dados. 

1.  Executar trabalhos sob demanda ou com base em acionadores. 

1.  Monitorar o desempenho de trabalhos usando painéis. 

 O diagrama a seguir mostra a arquitetura de um ambiente do AWS Glue. 

![\[Os conceitos básicos sobre preenchimento do Data Catalog e processamento do fluxo de trabalho de ETL no AWS Glue.\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/HowItWorks-overview.png)


Você define os *trabalhos* no AWS Glue para atender aos requisitos de extração, transformação e carregamento (ETL) de dados de uma fonte de dados para um destino de dados. Você pode realizar as seguintes ações:
+ Para fontes de armazenamento de dados, defina um *crawler* para preencher seu AWS Glue Data Catalog com definições da tabela de metadados. Você aponta seu crawler para um armazenamento de dados e ele cria definições de tabela no Data Catalog. Para fontes de transmissão, defina manualmente as tabelas do Data Catalog e especifique as propriedades de fluxo de dados.

  Além das definições de tabela, o AWS Glue Data Catalog contém outros metadados necessários para definir trabalhos de ETL. Usar esses metadados ao definir um trabalho de transformação dos seus dados.
+ O AWS Glue pode gerar um script para transformar seus dados. Se preferir, você pode fornecer o script no console ou na API do AWS Glue.
+ É possível executar trabalhos sob demanda ou configurá-los para iniciar quando um determinado *gatilho* for acionado. Os gatilhos podem ser programações ou eventos baseados em tempo.

  Quando seu trabalho é executado, um script extrai os dados da sua fonte de dados, transforma esses dados e os carrega no seu destino de dados. O script é executado em um ambiente do Apache Spark no AWS Glue.

**Importante**  
As tabelas e os bancos de dados contidos no AWS Glue são objetos no AWS Glue Data Catalog. Eles contêm metadados;, e não dados de um armazenamento físico.


|  | 
| --- |
|  **Dados baseados em texto, como CSVs, devem ser codificados em `UTF-8` para que o AWS Glue processe-os com êxito. Para obter mais informações, consulte [UTF-8](https://en.wikipedia.org/wiki/UTF-8) na Wikipédia.**   | 

## Terminologia do AWS Glue
<a name="components-major"></a>

O AWS Glue depende da interação de vários componentes para criar e gerenciar o fluxo de trabalho de extração, transformação e carregamento (ETL).

### AWS Glue Data Catalog
<a name="components-data-catalog"></a>

O armazenamento persistente de metadados no AWS Glue. Ele contém definições de tabela, definições de trabalho e outras informações de controle para o gerenciamento do ambiente do AWS Glue. Cada conta da AWS tem um AWS Glue Data Catalog por região. 

### Classificador
<a name="components-classifier"></a>

Determina o esquema dos seus dados. O AWS Glue fornece classificadores para tipos de arquivo comuns, como CSV, JSON, XML, AVRO e outros. Ele também fornece classificadores para sistemas comuns de gerenciamento do banco de dados relacional usando uma conexão JDBC. Você pode escrever seu próprio classificador usando um padrão grok ou especificando uma linha de tag em um documento XML.

### Conexão
<a name="components-connection"></a>

Um objeto do Data Catalog que contém as propriedades necessárias para se conectar a um armazenamento de dados específico.

### Crawler
<a name="components-crawler"></a>

Um programa que se conecta a um armazenamento de dados (origem ou destino), passa por uma lista prioritária de classificadores para determinar o esquema dos dados e cria tabelas de metadados no AWS Glue Data Catalog.

### Banco de dados
<a name="components-database"></a>

Um conjunto de definições da tabela associada do Data Catalog organizadas em um grupo lógico.

### Datastore, fonte de dados, destino de dados
<a name="components-data-store"></a>

Um *datastore* é um repositório para armazenar seus dados persistentemente. Os exemplos incluem buckets do Amazon S3 e bancos de dados relacionais. Uma *fonte de dados* é um datastore que é usado como entrada para um processo ou transformação. Um *destino de dados* é um datastore no qual um processo ou transformação grava.

### Endpoint de desenvolvimento
<a name="components-development-endpoint"></a>

Um ambiente que pode ser usado para desenvolver e testar seus scripts de ETL do AWS Glue.

### Quadro dinâmico
<a name="components-dynamic-frame"></a>

Uma tabela distribuída que oferece suporte a dados aninhados, como estruturas e matrizes. Cada registro é autodescritivo, projetado para flexibilidade de esquema com dados semiestruturados. Cada registro contém os dados e o esquema que descreve esses dados. Você pode usar quadros dinâmicos e DataFrames do Apache Spark em seus scripts de ETL, bem como converter entre eles. Os quadros dinâmicos fornecem um conjunto de transformações avançadas para limpeza de dados e ETL.

### Trabalho
<a name="components-job"></a>

A lógica de negócios que é necessária para executar o trabalho de ETL. Ela é composta por um script de transformação, fonte de dados e destinos de dados. As execuções de trabalho são iniciadas por gatilhos que podem ser programados ou acionados por eventos.

### Painel de performance do trabalho
<a name="features-job-monitoring"></a>

O AWS Glue fornece um painel de execução abrangente para seus trabalhos de ETL. O painel exibe informações sobre execuções de trabalhos a partir de um período de tempo específico. 

### Interface do bloco de anotações
<a name="components-notebook-server"></a>

Uma experiência aprimorada de bloco de anotações com configuração com um clique para facilitar a criação de trabalhos e a exploração de dados. O bloco de anotações e as conexões são configurados automaticamente para você. Você pode usar a interface de caderno baseada na Juypter Notebook para desenvolver, depurar e implantar interativamente scripts e fluxos de trabalho usando a infraestrutura Apache Spark de ETL com tecnologia sem servidor do AWS Glue. Você pode realizar também consultas ad-hoc, análise de dados e visualização (por exemplo, tabelas e gráficos) no ambiente do bloco de anotações.

### Script
<a name="components-script"></a>

Código que extrai dados de origens, transforma esses dados e os carrega em destinos. O AWS Glue gera scripts PySpark ou Scala.

### Tabela
<a name="components-table"></a>

A definição de metadados que representa seus dados. Não importa se os seus dados estão em um arquivo do Amazon Simple Storage Service (Amazon S3), uma tabela do Amazon Relational Database Service (Amazon RDS) ou em outro conjunto de dados, uma tabela definirá o esquema dos seus dados. Uma tabela no AWS Glue Data Catalog consiste em nomes de colunas, definições de tipos de dados, informações de partição e outros metadados relacionados a um conjunto de dados de base. O esquema de dados é representado na sua definição da tabela do AWS Glue. Os dados reais permanecem no seu armazenamento de dados original, em um arquivo ou uma tabela de banco de dados relacional. O AWS Glue cataloga seus arquivos e tabelas de banco de dados relacional no AWS Glue Data Catalog. Eles são usados ​​como fontes e destinos quando você cria um trabalho de ETL.

### Transformação
<a name="components-transform"></a>

A lógica de código que é usada para manipular seus dados em um formato diferente.

### Trigger
<a name="components-trigger"></a>

Inicia um trabalho de ETL. Os gatilhos podem ser definidos com base em um horário/evento programado.

### Editor de trabalho visual
<a name="features-visual-editor"></a>

 O editor visual de tarefas é uma interface gráfica que facilita a criação, a execução e o monitoramento de tarefas de extração, transformação e carregamento (ETL) em AWS Glue. Você pode compor visualmente fluxos de trabalho de transformação de dados e executá-los perfeitamente no mecanismo de ETL com tecnologia sem servidor no Apache Spark do AWS Glue e inspecionar o esquema e os resultados de dados em cada etapa do trabalho. 

### Operador
<a name="components-worker"></a>

Com o AWS Glue, você só paga pelo tempo que seu trabalho de ETL leva para ser executado. Não há recursos para gerenciar, nenhum custo inicial e você não será cobrado pelo tempo de inicialização ou desligamento. É cobrada uma taxa por hora com base no número de **unidades de processamento de dados** (ou DPUs) usadas para executar seu trabalho de ETL. Uma única unidade de processamento de dados (DPU) também é chamada de *operador*. O AWS Glue oferece vários tipos de operador para ajudar você a selecionar uma configuração que atenda aos requisitos de latência do trabalho e custo. Os operadores estão disponíveis nas configurações Padrão, G.1X, G.2X, G.4X, G.8X, G.12X, G.16X, G.025X e nas configurações otimizadas para memória R.1X, R.2X, R.4X, R.8X.

# Componentes do AWS Glue
<a name="components-overview"></a>

O AWS Glue fornece um console e operações de API para configurar e gerenciar sua workload de extração, transformação e carregamento (ETL). Você pode usar operações de API por meio de vários SDKs específicos de linguagem e da AWS Command Line Interface (AWS CLI). Para obter informações sobre como usar a AWS CLI, consulte a [Referência do comando da AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/).

O AWS Glue usa o AWS Glue Data Catalog para armazenar metadados relacionado às fontes de dados, transformações e destinos. O Data Catalog é uma substituição inicial do Apache Hive Metastore. O AWS Glue Jobs system fornece uma infraestrutura gerenciada para definir, programar e executar operações de ETL nos seus dados. Para obter mais informações sobre a API do AWS Glue, consulte [API AWS Glue](aws-glue-api.md).

## Console do AWS Glue
<a name="console-intro"></a>

O console do AWS Glue é usado para definir e orquestrar seu fluxo de trabalho de ETL. O console chama várias operações de API no AWS Glue Data Catalog e no AWS Glue Jobs system para executar as seguintes tarefas:
+ Definir objetos do AWS Glue, como trabalhos, tabelas, crawlers e conexões.
+ Programas quando os crawlers serão executados.
+ Definir eventos ou programações para gatilhos de trabalho.
+ Pesquisar e filtrar listas de objetos do AWS Glue.
+ Editar scripts de transformação.

## AWS Glue Data Catalog
<a name="data-catalog-intro"></a>

 O AWS Glue Data Catalog é o armazenamento de metadados técnicos persistentes na Cloud AWS. 

Cada conta da AWS tem um AWS Glue Data Catalog por região da AWS. Cada Data Catalog é uma coleção altamente escalável de tabelas organizadas em bancos de dados. Uma tabela é uma representação de metadados de uma coleção de dados estruturados ou semiestruturados armazenados em fontes como Amazon RDS, Apache Hadoop Distributed File System, Amazon OpenSearch Service e outros. O AWS Glue Data Catalog fornece um repositório uniforme onde sistemas diferentes podem armazenar e encontrar metadados para acompanhar os dados em silos de dados. Você pode usar os metadados para consultar e transformar esses dados de maneira consistente em uma ampla variedade de aplicativos. 

 Você usa o Catálogo de Dados junto com as políticas AWS Identity and Access Management e o Lake Formation para controlar o acesso às tabelas e bancos de dados. Ao fazer isso, você pode permitir que diferentes grupos em sua empresa publiquem dados com segurança em toda a organização, protegendo informações confidenciais de maneira altamente granular. 

O Data Catalog, juntamente com CloudTrail e Lake Formation, também fornece recursos abrangentes de auditoria e governança, com rastreamento de alterações de esquema e controles de acesso a dados. Isso ajuda a garantir que os dados não sejam modificados inadequadamente ou compartilhados inadvertidamente. 

 Para obter informações sobre como proteger e auditar o AWS Glue Data Catalog, consulte: 
+  **AWS Lake Formation**: para obter mais informações, consulte [O que é o AWS Lake Formation?](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html) no *Guia do desenvolvedor do AWS Lake Formation*. 
+  **CloudTrail** — Para obter mais informações, consulte [O que é CloudTrail?](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) no *Guia do usuário do AWS CloudTrail*. 

A seguir, estão outros produtos da AWS e projetos de código aberto que usam o AWS Glue Data Catalog:
+ **Amazon Athena**: para obter mais informações, consulte [Noções básicas de tabelas, bancos de dados e o Data Catalog](https://docs.aws.amazon.com/athena/latest/ug/understanding-tables-databases-and-the-data-catalog.html) no *Manual do usuário do Amazon Athena*.
+ **Amazon Redshift Spectrum**: para obter mais informações, consulte [Usar o Amazon Redshift Spectrum para consultar dados externos](https://docs.aws.amazon.com/redshift/latest/dg/c-using-spectrum.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*.
+ **Amazon EMR**: para obter mais informações, consulte [Usar políticas com base em recursos para acesso do Amazon EMR ao AWS Glue Data Catalog](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles-glue.html) no *Guia de gerenciamento do Amazon EMR*.
+ **Cliente do AWS Glue Data Catalog para o Apache Hive Metastore**: para obter mais informações sobre esse projeto do GitHub, consulte [Cliente do AWS Glue Data Catalog para o Apache Hive Metastore](https://github.com/awslabs/aws-glue-data-catalog-client-for-apache-hive-metastore).



## Crawlers e classificadores do AWS Glue
<a name="crawling-intro"></a>

Com o AWS Glue, você também pode configurar os crawlers capazes de verificar dados em todos os tipos de repositórios, classificá-los, extrair informações de esquema deles e armazenar os metadados automaticamente no AWS Glue Data Catalog. O AWS Glue Data Catalog pode ser usado para guiar operações de ETL.

Para obter mais informações sobre como configurar crawlers e classificadores, consulte [Usar crawlers para preencher o catálogo de dados](add-crawler.md). Para obter mais informações sobre como programar crawlers e classificadores usando a API do AWS Glue, consulte [API de crawlers e classificadores](aws-glue-api-crawler.md).

## Operações de ETL no AWS Glue
<a name="etl-script-intro"></a>

Ao usar os metadados no Data Catalog, o AWS Glue pode gerar automaticamente os scripts Scala ou PySpark (API do Python para Apache Spark) com extensões do AWS Glue que podem ser usadas e modificadas para executar várias operações de ETL. Por exemplo, você pode extrair, limpar e transformar dados brutos e, em seguida, armazenar o resultado em um repositório diferente onde ele poderá ser consultado e analisado. Esse script pode converter um arquivo CSV em um formulário relacional e salvá-lo no Amazon Redshift.

Para obter mais informações sobre como usar os recursos de ETL do AWS Glue, consulte [Programar scripts do Spark](aws-glue-programming.md).

## ETL de streaming no AWS Glue
<a name="streaming-etl-intro"></a>

O AWS Glue permite executar operações de ETL em dados de transmissão usando trabalhos em execução contínua. O ETL de transmissão do AWS Glue é criado no mecanismo Apache Spark Structured Streaming e pode ingerir transmissões do Amazon Kinesis Data Streams, do Apache Kafka e do Amazon Managed Streaming for Apache Kafka (Amazon MSK). O ETL de transmissão pode limpar e transformar dados de transmissão e carregá-los no Amazon S3 ou em armazenamentos de dados JDBC. Use o ETL de streaming no AWS Glue para processar dados de eventos, como streams de IoT, streams de cliques e logs de rede.

Se você conhecer o esquema da fonte dos dados de transmissão, poderá especificá-lo em uma tabela do Data Catalog. Caso contrário, você pode habilitar a detecção de esquemas no trabalho de ETL de transmissão. Em seguida, o trabalho determina automaticamente o esquema dos dados recebidos.

O trabalho de ETL de transmissão pode usar tanto as transformações nativas do AWS Glue quanto as transformações nativas do Apache Spark Structured Streaming. Para obter mais informações, consulte [Operations on streaming DataFrames/Datasets](https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#operations-on-streaming-dataframesdatasets) (Operações em transmissão de dataframes/conjuntos de dados) no site do Apache Spark. 

Para obter mais informações, consulte [Trabalhos de transmissão de ETL no AWS Glue](add-job-streaming.md).

## O sistema de trabalhos do AWS Glue
<a name="job-orchestration-intro"></a>

O AWS Glue Jobs system fornece infraestrutura gerenciada para orquestrar seu fluxo de trabalho de ETL. Você pode criar trabalhos no AWS Glue que automatizam os scripts usados para extrair, transformar e transferir dados para diferentes locais. Os trabalhos podem ser programados e encadeados, ou podem ser acionados por eventos como a chegada de novos dados.

Para obter mais informações sobre como usar o AWS Glue Jobs system, consulte [Como monitorar o AWS Glue](monitor-glue.md). Para obter informações sobre como programar usando a API do AWS Glue Jobs system, consulte [API de trabalhos](aws-glue-api-jobs.md).

## Componentes do Visual ETL
<a name="glue-studio-ui-components"></a>

 O AWS Glue permite criar tarefas de ETL por meio de uma tela visual que você pode manipular. 

![\[A captura de tela mostra que o painel de recursos está fechado.\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/glue-studio-canvas.png)


### Menu de trabalhos de ETL
<a name="glue-studio-ui-components-menu"></a>

 As opções do menu na parte superior da tela permitem que você acesse as várias visualizações e detalhes de configuração sobre o seu trabalho. 
+  **Visual**: a tela do editor de trabalhos visual. Aqui, você pode adicionar nós para criar um trabalho. 
+  **Script**: a representação do script da sua tarefa de ETL. O AWS Glue gera o script com base na representação visual da sua tarefa. Você também pode editar seu script ou baixá-lo. 
**nota**  
 Se você optar por editar o script, a experiência de criação do trabalho será permanentemente convertida em um modo somente de script. Depois disso, você não poderá mais usar o editor visual para editar o trabalho. Você deve adicionar todas as fontes, transformações e destinos de trabalhos, e fazer todas as alterações necessárias com o editor visual antes de escolher editar o script. 
+  **Detalhes do trabalho**: a guia Detalhes do trabalho permite que você configure seu trabalho definindo as propriedades do trabalho. Há propriedades básicas, como nome e descrição da sua tarefa, perfil do IAM, tipo de tarefa, versão do AWS Glue, idioma, tipo de operador, número de operadores, marcador de tarefa, execução flexível, número de retiradas e tempo limite de tarefa, e há propriedades avançadas, como conexões, bibliotecas, parâmetros da tarefa e tags. 
+  **Execuções**: depois que seu trabalho for executado, essa guia poderá ser acessada para visualizar suas execuções de trabalhos anteriores. 
+  **Qualidade dos dados**: qualidade dos dados avalia e monitora a qualidade dos dados. Você pode aprender mais sobre como usar a qualidade de dados nessa guia e adicionar uma transformação de qualidade de dados ao seu trabalho. 
+  **Agendamentos**: os trabalhos que você agendou aparecem nessa guia. Se não houver agendamentos anexados a esse trabalho, essa guia não estará acessível. 
+  **Controle de versão**: você pode usar o Git com seu trabalho configurando seu trabalho em um repositório Git. 

### Painéis do Visual ETL
<a name="glue-studio-ui-components-panels"></a>

 Quando você trabalha na tela, vários painéis estão disponíveis para ajudá-lo a configurar seus nós ou ajudá-lo a visualizar seus dados e visualizar o esquema de saída. 
+  **Propriedades**: o painel Propriedades aparece quando você escolhe um nó na tela. 
+  **Visualização de dados**: painel Visualização de dados fornece uma visualização prévia da saída de dados para que você possa tomar decisões antes de executar seu trabalho e examinar sua saída. 
+  **Esquema de saída**: a guia Esquema de saída permite que você visualize e edite o esquema dos seus nós de transformação. 

 **Redimensionar painéis** 

 Você pode redimensionar o painel Propriedades no lado direito da tela e o painel inferior, que contém as guias Visualização de dados e Esquema de saída, clicando na borda do painel e arrastando-a para a esquerda e para a direita ou para cima e para baixo. 
+  **Painel de propriedades**: redimensione o painel de propriedades clicando e arrastando a borda da tela no lado direito da tela e arrastando-a para a esquerda para expandir sua largura. Por padrão, o painel é reduzido e, quando um nó é selecionado, o painel de propriedades se abre em seu tamanho padrão. 
+  **Visualização de dados e painel Esquema de saída**: redimensione o painel inferior clicando e arrastando a borda inferior na parte inferior da tela e arraste-a para cima para expandir sua altura. Por padrão, o painel é reduzido e, quando um nó é selecionado, o painel de inferior se abre em seu tamanho padrão. 

### Tela Trabalho
<a name="glue-studio-ui-components-canvas"></a>

 Você pode adicionar, remover e mover/reordenar nós diretamente na tela do Visual ETL. Pense nisso como seu espaço de trabalho para criar um trabalho de ETL totalmente funcional que começa com uma fonte de dados e pode terminar com um destino de dados. 

 Ao trabalhar com nós na tela, você tem uma barra de ferramentas que pode ajudá-lo a ampliar e reduzir, remover nós, criar ou editar conexões entre nós, alterar a orientação do fluxo de trabalho e desfazer ou refazer uma ação. 

![\[A captura de tela mostra que o painel de recursos está fechado.\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/glue-studio-canvas-toolbar.png)


 A barra de ferramentas flutuante está ancorada no canto superior direito da tela e contém várias imagens que realizam ações: 
+  **Ícone de layout**: o primeiro ícone na barra de ferramentas é o ícone de layout. Por padrão, a direção dos trabalhos visuais é de cima para baixo. Ele reorganiza a direção do seu trabalho visual organizando os nós horizontalmente da esquerda para a direita. Clicar novamente no ícone do layout altera a direção de cima para baixo. 
+  **Ícone de recentralização**: o ícone de recentralização altera a visualização da tela ao centralizá-la. Você pode usar isso com trabalhos grandes para voltar à posição central. 
+  **Ícone de ampliação de zoom**: o ícone de ampliação de zoom aumenta o tamanho dos nós na tela. 
+  **Ícone de redução de zoom**: o ícone de redução de zoom reduz o tamanho dos nós na tela. 
+  **Ícone da lixeira**: o ícone de lixeira remove um nó de trabalho visual. Você deve primeiro selecionar um nó. 
+  **Ícone de desfazer**: o ícone de desfazer reverte a última ação realizada no trabalho visual. 
+  **Ícone de refazer**: o ícone de refazer repete a última ação realizada no trabalho visual. 

 **Usar o minimapa** 

![\[A captura de tela mostra um close do minimapa.\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/glue-studio-canvas-minimap.png)


### Painel de recursos
<a name="glue-studio-ui-components-canvas-resource-panel"></a>

 O painel de recursos contém todas as fontes de dados, ações de transformação e conexões disponíveis para você. Abra o painel de recursos na tela clicando no ícone “\$1”. Isso abrirá o painel de recursos. 

 Para fechar o painel de recursos, clique no **X** no canto superior direito do painel de recursos. Isso ocultará o painel até que você esteja pronto para abri-lo novamente. 

![\[A captura de tela mostra que o painel de recursos quando aberto.\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/resource-panel-open.png)


#### Transformações e dados populares
<a name="glue-studio-ui-components-popular-transforms"></a>

 Na parte superior do painel, há uma coleção de **transformações e dados populares**. Esses nós costumam ser usados no AWS Glue. Escolha um para adicioná-lo à tela. Você também pode ocultar as **Transformações e dados populares** clicando no triângulo ao lado do título **Transformações e dados populares**. 

 Abaixo da seção **Transformações e dados populares**, você pode pesquisar transformações e nós de fonte de dados. Os resultados aparecem à medida que você digita. Quanto mais letras você adicionar à sua consulta de pesquisa, menor ficará a lista de resultados. Os resultados da pesquisa são preenchidos a partir do nome e/ou descrição do nó. Escolha o nó para adicioná-lo à sua tela. 

#### Transformações e dados
<a name="glue-studio-ui-components-transforms-and-data"></a>

 Há duas guias que organizam os nós em **Transformações** e **Dados**. 

 **Transformações**: quando você escolhe a guia **Transformações**, todas as transformações disponíveis podem ser selecionadas. Escolha uma transformação para adicioná-la à tela. Você também pode escolher **Adicionar transformação** na parte inferior da lista Transformações, o que abrirá uma nova página na documentação para criar [Transformações visuais personalizadas](https://docs.aws.amazon.com/glue/latest/ug/custom-visual-transform.html). Seguir as etapas permitirá que você crie suas próprias transformações. Suas transformações aparecerão na lista de transformações disponíveis. 

 **Dados**: a guia de dados contém todos os nós de **Fontes** e **Destinos**. Você pode ocultar as Origens e os Destinos clicando no triângulo ao lado do título Origens ou Destinos. Você pode exibir as Origens e os Destinos clicando novamente no triângulo. Escolha um nó de origem ou de destino para adicioná-lo à tela. Você também pode escolher **Gerenciar conexões** para adicionar uma nova conexão. Isso abrirá a página Conectores no console. 

# AWS Glue para Spark e AWS Glue para Ray
<a name="how-it-works-engines"></a>

No AWS Glue on Apache Spark (AWS Glue ETL), você pode usar o PySpark para escrever código do Python para lidar com dados em grande escala. O Spark é uma solução conhecida para esse problema, mas engenheiros de dados com experiência focada em Python podem achar que a transição não é intuitiva. O modelo DataFrame do Spark não é perfeitamente "phytônico", o que reflete a linguagem Scala e o runtime Java em que ele se baseia.

No AWS Glue, você pode usar trabalhos de shell do Python para executar integrações de dados nativos do Python. Esses trabalhos são executados em uma única instância do Amazon EC2 e são limitados pela capacidade dessa instância. Isso restringe o throughput dos dados que você pode processar e sua manutenção se torna cara ao lidar com big data.

O AWS Glue para Ray permite que você aumente verticalmente a escala das workloads do Python sem investimentos substanciais para aprender o Spark. Você pode aproveitar certos cenários nos quais o Ray tem uma performance melhor. Oferecendo a você uma escolha, é possível usar os pontos fortes tanto do Spark quanto do Ray.

O AWS Glue ETL e o AWS Glue para Ray são diferentes internamente, portanto, são compatíveis com atributos diferentes. Verifique documentação para determinas quais são as configurações compatíveis.

## O que é AWS Glue para Ray?
<a name="how-it-works-ray"></a>

O Ray é uma estrutura de computação distribuída de código aberto que você pode usar para aumentar verticalmente a escala das workloads, com foco no Python. Para obter mais informações sobre o Ray, consulte o [site do Ray](https://www.ray.io/). AWS Glue Os trabalhos e as sessões interativas do Ray permitem que você use o Ray no AWS Glue.

Você pode usar o AWS Glue para Ray para escrever scripts do Python para cálculos que serão executados em paralelo em várias máquinas. Em trabalhos e sessões interativas do Ray, você pode usar bibliotecas conhecidas do Python, como a pandas, para facilitar escrita e execução das workloads. Para obter mais informações sobre os conjuntos de dados do Ray, consulte [Conjuntos de dados do Ray](https://docs.ray.io/en/latest/data/dataset.html) na documentação do Ray. Para obter mais informações sobre o pandas, consulte o [site do pandas](https://pandas.pydata.org/).

Ao usar o AWS Glue para Ray, você pode executar os fluxos de trabalho de pandas em big data em escala corporativa, com apenas algumas linhas de código. Você pode criar um trabalho do Ray no console do AWS Glue ou no AWS SDK. Você também pode abrir uma sessão interativa do AWS Glue para executar o código em um ambiente sem servidor do Ray. Trabalhos visuais no AWS Glue Studio ainda não são compatíveis.

Os trabalhos do AWS Glue para Ray permitem que você execute um script de acordo com uma agenda ou em resposta a um evento do Amazon EventBridge. As trabalhos armazenam informações de log e estatísticas de monitoramento no CloudWatch, as quais permitem que você entenda a integridade e a confiabilidade do seu script. Para obter mais informações sobre como usar o sistema de trabalhos do AWS Glue, consulte [Trabalhar com trabalhos do Ray no AWS Glue](ray-jobs-section.md).

O Ray automatiza o trabalho de escalação de código do Python distribuindo o processamento por um cluster de máquinas que ele reconfigura em tempo real, com base na carga. Isso pode resultar em uma melhor performance, em termos financeiros, para determinadas workloads. Com os trabalhos do Ray, incorporamos nativamente auto scaling ao modelo de trabalho do AWS Glue, para que você possa aproveitar totalmente esse recurso. Os trabalhos do Ray são executados no AWS Graviton, resultando em uma performance geral superior em termos de preço.

Além da economia de custos, você pode usar o auto scaling nativo para executar workloads do Ray sem investir tempo em manutenção, ajuste e administração de clusters. Você pode usar bibliotecas conhecidas de código aberto, prontas para uso, como pandas e AWS SDK for pandas. Isso melhora a velocidade de iteração enquanto você está desenvolvendo no AWS Glue para Ray. Ao usar o AWS Glue para Ray, você poderá desenvolver e executar rapidamente workloads de integração de dados com eficiência de custos.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/OJ3ZngYTyNE/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/OJ3ZngYTyNE)


# Converter esquemas semi-estruturados em esquemas relacionais com o AWS Glue
<a name="schema-relationalize"></a>

É comum querer converter dados semiestruturados em tabelas relacionais. Conceitualmente, você está nivelando um esquema hierárquico para um esquema relacional. O AWS Glue pode realizar essa conversão para você rapidamente.

Os dados semiestruturados normalmente contêm marcação para identificar entidades nos dados. Ele pode ter estruturas de dados aninhadas sem um esquema fixo. Para obter mais informações sobre dados semiestruturados, consulte [Dados semiestruturados](https://en.wikipedia.org/wiki/Semi-structured_data) na Wikipédia. 

Os dados relacionais são representados por tabelas que consistem em linhas e colunas. As relações entre tabelas podem ser representadas por uma relação de chave primária (PK) para chave externa (FK). Para obter mais informações, consulte [Banco de dados relacional](https://en.wikipedia.org/wiki/Relational_database) na Wikipédia. 

AWS GlueO usa crawlers para inferir esquemas para dados semiestruturados. Em seguida, ele transforma os dados em um esquema relacional usando um trabalho de ETL (extração, transformação e carregamento). Por exemplo, você pode desejar analisar dados JSON desde os arquivos de origem do Amazon Simple Storage Service (Amazon S3) até as tabelas do Amazon Relational Database Service (Amazon RDS). Saber como o AWS Glue lida com as diferenças entre esquemas pode ajudar você a entender o processo de transformação. 

Este diagrama mostra como o AWS Glue transforma um esquema semiestruturado em um esquema relacional.

![\[Fluxo mostrando a conversão de um esquema semiestruturado em um esquema relacional.\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/HowItWorks-schemaconversion.png)


O diagrama ilustra o seguinte:
+ O valor único `A` converte-se diretamente em uma coluna relacional.
+ O par de valores `B1` e `B2` se convertem em duas colunas relacionais.
+ A estrutura `C`, com `X` e `Y` filhos, converte-se em duas colunas relacionais.
+ A matriz `D[]` se converte em uma coluna relacional com uma chave externa (FK) que aponta para outra tabela relacional. Junto com uma chave primária (PK), a segunda tabela relacional apresenta colunas que contêm o deslocamento e o valor dos itens na matriz.

# Sistemas de tipos do AWS Glue
<a name="glue-types"></a>

 O AWS Glue usa sistemas de vários tipos para fornecer uma interface versátil em sistemas de dados que armazenam dados de maneiras muito diferentes. Este documento fornece esclarecimentos sobre sistemas do tipo AWS Glue e padrões de dados.

## Tipos de AWS Glue Data Catalog
<a name="glue-types-catalog"></a>

O Data Catalog é um registro de tabelas e campos armazenados em vários sistemas de dados, um metastore. Quando componentes do AWS Glue, como crawlers do AWS Glue e trabalhos do AWS Glue com Spark, gravam no Data Catalog, eles fazem isso com um sistema de tipos interno para rastrear os tipos de campos. Esses valores são mostrados na coluna **Tipo de dados** do esquema de tabela no console do AWS Glue. Esse sistema de tipos é baseado no sistema de tipos do Apache Hive. Para obter mais informações sobre o sistema de tipos do Apache Hive, consulte [Tipos](https://cwiki.apache.org/confluence/display/hive/languagemanual+types) na wiki do Apache Hive. Para obter mais informações sobre tipos específicos e suporte, exemplos são fornecidos no console do AWS Glue, como parte do Schema Builder.

### Validação, compatibilidade e outros usos
<a name="w2aac11c31b5b5"></a>

O Data Catalog não valida tipos gravados em campos de tipo. Quando os componentes do AWS Glue leem e gravam no Data Catalog, eles são compatíveis entre si. AWS Os componentes de Glue também visam preservar um alto grau de compatibilidade com os tipos do Hive. Porém, os componentes do AWS Glue não garantem a compatibilidade com todos os tipos do Hive. Isso permite a interoperabilidade com ferramentas como o Athena DDL ao trabalhar com tabelas no Data Catalog.

Como o Data Catalog não valida tipos, outros serviços podem usar o Data Catalog para rastrear tipos usando sistemas estritamente conformes com o sistema do tipos do Hive ou qualquer outro sistema. 

## Tipos em scripts do AWS Glue com Spark
<a name="glue-types-spark"></a>

Quando um script do AWS Glue with Spark interpreta ou transforma um conjunto de dados, fornecemos o `DynamicFrame`, uma representação na memória do conjunto de dados conforme ele é usado em seu script. O objetivo de um `DynamicFrame` é semelhante ao do `DataFrame` do Spark: ele modela o conjunto de dados para que o Spark possa agendar e executar transformações nos dados. Garantimos que a representação de tipo do `DynamicFrame` seja intercompatível com o `DataFrame`, fornecendo os métodos `toDF` e `fromDF`.

Se as informações de tipo puderem ser inferidas ou fornecidas a um `DataFrame`, elas poderão ser inferidas ou fornecidas a um `DynamicFrame`, a menos documentado o contrário. Quando fornecemos leitores ou gravadores otimizados para formatos de dados específicos, se o Spark puder ler ou gravar seus dados, nossos leitores e gravadores fornecidos poderão fazê-lo, sujeito às limitações documentadas. Para obter mais informações sobre leitores e gravadores, consulte [Opções de formato de dados para entradas e saídas no AWS Glue para Spark](aws-glue-programming-etl-format.md).

### O tipo Escolha
<a name="w2aac11c31b7b7"></a>

Os `DynamicFrames` fornecem um mecanismo para modelar campos em um conjunto de dados cujo valor pode ter tipos inconsistentes em disco entre as linhas. Por exemplo, um campo pode conter um número armazenado como uma string em determinadas linhas e um número inteiro em outras. Esse mecanismo é um tipo de memória denominado `Choice`. Fornecemos transformações, como o método `ResolveChoice`, para resolver as colunas de Escolha em um tipo concreto. O ETL do AWS GLue não gravará o tipo Escolha no Data Catalog durante o curso normal da operação; os tipos Escolha só existem no contexto dos modelos de memória DynamicFrame de conjuntos de dados. Para obter um exemplo do uso do tipo Escolha, consulte [Exemplo de código: preparo de dados usando ResolveChoice, Lambda e ApplyMapping](aws-glue-programming-python-samples-medicaid.md).

## Tipos de crawler do AWS Glue
<a name="glue-types-crawler"></a>

Os crawlers visam produzir um esquema consistente e utilizável para seu conjunto de dados e, em seguida, armazená-lo no Data Catalog para uso em outros componentes do AWS Glue e do Athena. Os crawlers lidam com os tipos conforme descrito na seção anterior sobre o Data Catalog, [Tipos de AWS Glue Data Catalog](#glue-types-catalog). Para produzir cenários utilizáveis do tipo "Escolha", em que uma coluna contém valores de dois ou mais tipos, os crawlers criam um tipo de `struct` que modela os tipos possíveis.