Migrar o AWS Glue para trabalhos do Spark para o AWS Glue versão 5.1 - AWS Glue

Migrar o AWS Glue para trabalhos do Spark para o AWS Glue versão 5.1

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.

Novos atributos

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

  • 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.

  • 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. Esse atributo habilita operações de leitura e gravação de seus trabalhos do AWS Glue ETL em tabelas registradas quando o perfil de trabalho tiver acesso total à tabela.

  • Suporte ao controle de acesso refinado (FGAC) nativo do Spark usando : 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.

  • Contexto de auditoria para trabalhos do Spark: o contexto de auditoria para trabalhos AWS Glue ETL com trabalhos habilitados estará disponível para o AWS Glue e as chamadas de API AWS Lake Formation no log

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

  • 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:

Ações para migrar para o AWS Glue 5.1

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 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 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.

Lista de verificação da migração

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

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:

Migrar de versões mais antigas do AWS Glue para o AWS Glue 5.1

Migração de conectores e drivers JDBC para AWS Glue 5.1

Para as versões do JDBC e dos conectores de data lake que foram atualizadas, consulte:

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 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

    • Chaves de criptografia de tabelas.

  • Compatível com gravações FGAC nativas do Spark em tabelas registradas.

  • 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

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 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

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

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