

# Migrar o AWS Glue para trabalhos do Spark para o AWS Glue versão 5.1
<a name="migrating-version-51"></a>

Este tópico descreve as alterações entre as versões 0.9, 1.0, 2.0, 3.0, 4.0 e 5.0 do AWS Glue para permitir que você migre suas aplicações do Spark e trabalhos de ETL para o AWS Glue 5.1. Ele também descreve os recursos do AWS Glue 5.1 e as vantagens de usá-lo. 

Para usar esse recurso com seus trabalhos de ETL do AWS Glue, escolha **5.1** para a `Glue version` ao criar seus trabalhos.

**Topics**
+ [

## Novos atributos
](#migrating-version-51-features)
+ [

## Ações para migrar para o AWS Glue 5.1
](#migrating-version-51-actions)
+ [

## Lista de verificação da migração
](#migrating-version-51-checklist)
+ [

## Migrar do AWS Glue 5.0 para o AWS Glue 5.1
](#migrating-version-51-from-50)
+ [

## Migrar de versões mais antigas do AWS Glue para o AWS Glue 5.1
](#migrating-older-versions-to-51)
+ [

## Migração de conectores e drivers JDBC para AWS Glue 5.1
](#migrating-version-51-connector-driver-migration)

## Novos atributos
<a name="migrating-version-51-features"></a>

Esta seção descreve novos recursos e vantagens do AWS Glue versão 5.1.
+ Atualização do Apache Spark de versão 3.5.4 no AWS Glue 5.0 para versão 3.5.6 no AWS Glue 5.1.
+ Os formatos de tabelas abertas (OTF, na sigla em inglês) foram atualizados para as versões Hudi 1.0.2, Iceberg 1.10.0 e Delta Lake 3.3.2
+ **Visões materializadas do Iceberg**: crie e gerencie visões materializadas do Iceberg (MV). Para ter mais informações, consulte a [publicação do blog](https://aws.amazon.com/blogs/big-data/introducing-apache-iceberg-materialized-views-in-aws-glue-data-catalog/) 
+ **Formato Iceberg versão 3.0**: estende os tipos de dados e as estruturas de metadados existentes para adicionar novos recursos. Para obter mais informações, consulte a [Tabela de especificações do Iceberg](https://iceberg.apache.org/spec/). 
+ **Acesso total à tabela do Hudi**: controle de acesso total à tabela (FTA) para o Apache Hudi no Apache Spark com base em suas políticas definidas no AWS Lake Formation. Esse atributo habilita operações de leitura e gravação de seus trabalhos do AWS Glue ETL em tabelas registradas do AWS Lake Formation quando o perfil de trabalho tiver acesso total à tabela.
+ **Suporte ao controle de acesso refinado (FGAC) nativo do Spark usando AWS Lake Formation**: operações DDL/DML (como CREATE, ALTER, DELETE, DROP) com controle de acesso refinado para tabelas Apache Hive, Apache Iceberg e Delta Lake registradas em AWS Lake Formation.
+ **Contexto de auditoria para trabalhos do Spark**: o contexto de auditoria para trabalhos de ETL do AWS Glue estará disponível para as chamadas de API do AWS Glue e do AWS Lake Formation nos logs do AWS CloudTrail.

**Problemas conhecidos e limitações**  
Atenção para os seguintes problemas e limitações conhecidos:
+ Compatibilidade limitada à cláusula de visualização SQL para criação de visões materializadas, reescrita de consultas e atualização incremental. Mais detalhes podem ser encontrados na [página de documentação do atributo de visões materializadas Iceberg](https://docs.aws.amazon.com/lake-formation/latest/dg/materialized-views.html#materialized-views-considerations-limitations) 
+ As **gravações do Hudi FTA** exigem o uso do HoodieCredentialedHadoopStorage para venda de credenciais durante a execução do trabalho. Defina a seguinte configuração ao executar trabalhos do Hudi:

  `hoodie.storage.class=org.apache.spark.sql.hudi.storage.HoodieCredentialedHadoopStorage` 
+ O suporte de gravação do Hudi FTA funciona somente com as configurações padrão do Hudi. As configurações Hudi personalizadas ou não padrão podem não ser totalmente compatíveis e podem resultar em um comportamento inesperado. O cluster para tabelas Hudi Merge-On-Read (MOR) também não é com pat´ivel com modo de gravação FTA.

**Alterações que podem causar interrupções**  
Observe as seguintes alterações importantes:
+  O sistema de arquivos S3A substituiu o EMRFS como o conector S3 padrão. Para obter informações sobre como migrar, consulte [Migrar do AWS Glue 5.0 para o AWS Glue 5.1](#migrating-version-51-from-50). 

## Ações para migrar para o AWS Glue 5.1
<a name="migrating-version-51-actions"></a>

Para trabalhos existentes, altere a `Glue version` da versão anterior para `Glue 5.1` na configuração do trabalho.
+ No AWS Glue Studio, escolha `Glue 5.1 - Supports Spark 3.5.6, Scala 2, Python 3` em `Glue version`.
+ Na API, escolha **5.1** no parâmetro `GlueVersion` na operação da API [https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-UpdateJob](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-UpdateJob).

Para novos trabalhos, escolha `Glue 5.1` ao criar um trabalho.
+ No console, escolha `Spark 3.5.6, Python 3 (Glue Version 5.1) or Spark 3.5.6, Scala 2 (Glue Version 5.1)` em `Glue version`.
+ No AWS Glue Studio, escolha `Glue 5.1 - Supports Spark 3.5.6, Scala 2, Python 3` em `Glue version`.
+ Na API, escolha **5.1** no parâmetro `GlueVersion` na operação da API [https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-CreateJob](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-CreateJob).

Para visualizar os logs de eventos do Spark no AWS Glue 5.1, partindo do AWS Glue 2.0 ou anterior, [inicie um servidor de histórico do Spark atualizado para o AWS Glue 5.1 usando o CloudFormation ou o Docker](https://docs.aws.amazon.com/glue/latest/dg/monitor-spark-ui-history.html).

## Lista de verificação da migração
<a name="migrating-version-51-checklist"></a>

Revise esta lista de verificação para migração:
+ [Python] Atualização das referências ao boto de 1.34 para 1.40.

## Migrar do AWS Glue 5.0 para o AWS Glue 5.1
<a name="migrating-version-51-from-50"></a>

Todos os parâmetros de trabalho e principais recursos existentes no AWS Glue 5.0 existirão no AWS Glue 5.1. Observe as seguintes alterações ao migrar:
+ No AWS Glue 5.1, o sistema de arquivos S3A substituiu o EMRFS como o conector S3 padrão. Se tanto `spark.hadoop.fs.s3a.endpoint` quanto `spark.hadoop.fs.s3a.endpoint.region` não estiverem definidas, a região padrão usada pelo S3A será `us-east-2`. Isso pode causar problemas, como erros de tempo limite de upload do S3, especialmente para trabalhos da VPC. Para mitigar os problemas causados por essa alteração, defina a configuração `spark.hadoop.fs.s3a.endpoint.region` do Spark ao usar o sistema de arquivos S3A no AWS Glue 5.1.
+ Para continuar usando o EMRFS em vez do S3A, defina as seguintes configurações do Spark:

  ```
      --conf spark.hadoop.fs.s3.impl=com.amazon.ws.emr.hadoop.fs.EmrFileSystem
      --conf spark.hadoop.fs.s3n.impl=com.amazon.ws.emr.hadoop.fs.EmrFileSystem
      --conf spark.hadoop.fs.AbstractFileSystem.s3.impl=org.apache.hadoop.fs.s3.EMRFSDelegate
  ```

Consulte a documentação de migração do Spark:
+ [Guia de migração: Spark Core](https://spark.apache.org/docs/3.5.6/core-migration-guide.html)
+ [Guia de migração: SQL, conjuntos de dados e DataFrame](https://spark.apache.org/docs/3.5.6/sql-migration-guide.html)
+ [Guia de migração: streaming estruturado](https://spark.apache.org/docs/3.5.6/ss-migration-guide.html)
+ [Como atualizar o PySpark](https://spark.apache.org/docs/3.5.6/api/python/migration_guide/pyspark_upgrade.html)

## Migrar de versões mais antigas do AWS Glue para o AWS Glue 5.1
<a name="migrating-older-versions-to-51"></a>
+ Para ver as etapas de migração relacionadas ao AWS Glue 4.0 para AWS Glue 5.0, consulte [Migração do AWS Glue 4.0 para AWS Glue 5.0](https://docs.aws.amazon.com/glue/latest/dg/migrating-version-50.html#migrating-version-50-from-40).
+ Para ver as etapas de migração relacionadas ao AWS Glue 3.0 para AWS Glue 5.0, consulte [Migração do AWS Glue 3.0 para AWS Glue 5.0](https://docs.aws.amazon.com/glue/latest/dg/migrating-version-50.html#migrating-version-50-from-30).
+ Para obter as etapas de migração relacionadas ao AWS Glue 2.0 para o AWS Glue 5.0 e uma lista das diferenças de migração entre as versões 2.0 e 4.0 do AWS Glue, consulte [Migração do AWS Glue 2.0 para AWS Glue 5.0](https://docs.aws.amazon.com/glue/latest/dg/migrating-version-50.html#migrating-version-50-from-20). 

## Migração de conectores e drivers JDBC para AWS Glue 5.1
<a name="migrating-version-51-connector-driver-migration"></a>

Para as versões do JDBC e dos conectores de data lake que foram atualizadas, consulte:
+ [Apêndice B: upgrades do driver JDBC](#migrating-version-51-appendix-jdbc-driver)
+ [Apêndice C: Atualizações de conectores](#migrating-version-51-appendix-connector)
+ [Apêndice D: Atualizações do formato de tabela aberta](#migrating-version-51-appendix-open-table-formats)

As alterações a seguir se aplicam às atualizações da versão OTF identificadas no [Apêndice D: Atualizações do formato de tabela aberta](#migrating-version-51-appendix-open-table-formats) para o AWS Glue 5.1.

**Apache Hudi**  
Observe as seguintes alterações:
+ Compatibilidade com acesso de leitura e gravação do FTA para tabelas registradas do Lake Formation.

**Apache Iceberg**  
Observe as seguintes alterações:
+ Compatibilidade com o formato Iceberg versão 3. Os seguintes atributos são compatíveis:
  + Transformações com vários argumentos para particionamento e classificação.
  + Monitoramento de linhagem de linha.
  + Vetores de exclusão. Saiba mais na [postagem do blog](https://aws.amazon.com/blogs/big-data/unlock-the-power-of-apache-iceberg-v3-deletion-vectors-on-amazon-emr/) 
  + Chaves de criptografia de tabelas.
  + Suporte de valor padrão para colunas.
+ Compatível com gravações FGAC nativas do Spark nas tabelas registradas do AWS Lake Formation.
+ Compatibilidade com o Athena SQL — Não é possível ler as tabelas do Iceberg V3 criadas pelo EMR Spark devido a um erro: `GENERIC_INTERNAL_ERROR: Cannot read unsupported version 3`

**Delta Lake**  
Observe as seguintes alterações:
+ Compatibilidade com acesso de leitura e gravação do FTA para tabelas registradas do Lake Formation.

### Apêndice A: atualizações de dependência notáveis
<a name="migrating-version-51-appendix-dependencies"></a>

Veja a seguir as atualizações de dependência:


| Dependência | Versão no AWS Glue 5.1 | Versão no AWS Glue 5.0 | Versão no AWS Glue 4.0 | Versão no AWS Glue 3.0 | Versão no AWS Glue 2.0 | Versão no AWS Glue 1.0 | 
| --- | --- | --- | --- | --- | --- | --- | 
| Java | 17 | 17 | 8 | 8 | 8 | 8 | 
| Spark | 3.5.6 | 3.5.4 | 3.3.0-amzn-1 | 3.1.1-amzn-0 | 2.4.3 | 2.4.3 | 
| Hadoop | 3.4.1 | 3.4.1 | 3.3.3-amzn-0 | 3.2.1-amzn-3 | 2.8.5-amzn-5 | 2.8.5-amzn-1 | 
| Scala | 2.12.18 | 2.12.18 | 2.12 | 2.12 | 2.11 | 2.11 | 
| Jackson | 2.15.2 | 2.15.2 | 2.12 | 2.12 | 2.11 | 2.11 | 
| Hive | 2.3.9-amzn-4 | 2.3.9-amzn-4 | 2,3.9-amzn-2 | 2.3.7-amzn-4 | 1.2 | 1.2 | 
| EMRFS | 2.73.0 | 2.69.0 | 2.54.0 | 2.46.0 | 2.38.0 | 2.30.0 | 
| Json4s | 3.7.0 M11 | 3.7.0 M11 | 3.7.0 M11 | 3.6.6 | 3.5.x | 3.5.x | 
| Arrow | 12.0.1 | 12.0.1 | 7.0.0 | 2.0.0 | 0.10.0 | 0.10.0 | 
| AWS GlueCliente do Data Catalog | 4.9.0 | 4.5.0 | 3.7.0 | 3.0.0 | 1.10.0 | N/D | 
| AWS SDK para Java | 2.35.5 | 2.29.52 | 1.12 | 1.12 |  |  | 
| Python | 3.11 | 3.11 | 3.10 | 3.7 | 2.7 e 3.6 | 2.7 e 3.6 | 
| Boto | 1.40.61 | 1.34.131 | 1.26 | 1.18 | 1.12 | N/D | 
| Conector EMR DynamoDB | 5.7.0 | 5.6.0 | 4.16.0 |  |  |  | 

### Apêndice B: upgrades do driver JDBC
<a name="migrating-version-51-appendix-jdbc-driver"></a>

A seguir estão as atualizações do driver JDBC:


| Driver | Versão do driver JDBC no AWS Glue 5.1 | Versão do driver JDBC no AWS Glue 5.0 | Versão do driver JDBC no AWS Glue 4.0 | Versão do driver JDBC no AWS Glue 3.0 | Versão do driver JDBC nas versões do AWS Glue anteriores | 
| --- | --- | --- | --- | --- | --- | 
| MySQL | 8.0.33 | 8.0.33 | 8.0.23 | 8.0.23 | 5.1 | 
| Microsoft SQL Server | 10.2.0 | 10.2.0 | 9.4.0 | 7.0.0 | 6.1.0 | 
| Bancos de dados da Oracle | 23.3.0.23.09 | 23.3.0.23.09 | 21.7 | 21.1 | 11.2 | 
| PostgreSQL | 42.7.3 | 42.7.3 | 42.3.6 | 42.2.18 | 42.1.0 | 
| Amazon Redshift |  redshift-jdbc42-2.1.0.29  |  redshift-jdbc42-2.1.0.29  |  redshift-jdbc42-2.1.0.16  |  redshift-jdbc41-1.2.12.1017   |  redshift-jdbc41-1.2.12.1017   | 
| SAP Hana | 2.20.17 | 2.20.17 | 2.17.12 |  |  | 
| Teradata | 20.00.00.33 | 20.00.00.33 | 20.00.00.06 |  |  | 

### Apêndice C: Atualizações de conectores
<a name="migrating-version-51-appendix-connector"></a>

As atualizações do conector são as seguintes:


| Driver | Versão do conector no AWS Glue 5.1 | Versão do conector no AWS Glue 5.0 | Versão do conector no AWS Glue 4.0 | Versão do conector no AWS Glue 3.0 | 
| --- | --- | --- | --- | --- | 
| Conector EMR DynamoDB | 5.7.0 | 5.6.0 | 4.16.0 |  | 
| Amazon Redshift | 6.4.2 | 6.4.0 | 6.1.3 |  | 
| OpenSearch | 1.2.0 | 1.2.0 | 1.0.1 |  | 
| MongoDB | 10.3.0 | 10.3.0 | 10.0.4 | 3.0.0 | 
| Snowflake | 3.1.1 | 3.0.0 | 2.12.0 |  | 
| Google BigQuery | 0.32.2 | 0.32.2 | 0.32.2 |  | 
| AzureCosmos | 4.33.0 | 4.33.0 | 4.22.0 |  | 
| AzureSQL | 1.3.0 | 1.3.0 | 1.3.0 |  | 
| Vertica | 3.3.5 | 3.3.5 | 3.3.5 |  | 

### Apêndice D: Atualizações do formato de tabela aberta
<a name="migrating-version-51-appendix-open-table-formats"></a>

São atualizações do formato de tabela aberta:


| OTF | Versão do conector no AWS Glue 5.1 | Versão do conector no AWS Glue 5.0 | Versão do conector no AWS Glue 4.0 | Versão do conector no AWS Glue 3.0 | 
| --- | --- | --- | --- | --- | 
| Hudi | 1.0.2 | 0.15.0 | 0.12.1 | 0.10.1 | 
| Delta Lake | 3.3.2 | 3.3.0 | 2.1.0 | 1.0.0 | 
| Iceberg | 1.10.0 | 1.7.1 | 1.0.0 | 0.13.1 | 