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.
Tópicos
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:
-
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.
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 3emGlue version. -
Na API, escolha
5.1no parâmetroGlueVersionna operação da APIUpdateJob.
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)emGlue version. -
No AWS Glue Studio, escolha
Glue 5.1 - Supports Spark 3.5.6, Scala 2, Python 3emGlue version. -
Na API, escolha
5.1no parâmetroGlueVersionna operação da APICreateJob.
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.endpointquantospark.hadoop.fs.s3a.endpoint.regionnã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çãospark.hadoop.fs.s3a.endpoint.regiondo 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
-
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.
-
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.
-
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.
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 |