Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

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

Modo de foco
Migrar trabalhos do AWS Glue para Spark para o AWS Glue versão 5.0 - AWS Glue

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

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

Novos recursos

Esta seção descreve novos recursos e vantagens do AWS Glue versão 5.0.

  • Atualização do Apache Spark de 3.3.0 no AWS Glue 4.0 para 3.5.2 no AWS Glue 5.0. Consulte Principais aprimoramentos do Spark 3.3.0 para o Spark 3.5.2.

  • Controle de acesso refinado (FGAC) nativo do Spark usando o Lake Formation. Para obter mais informações, consulte Usar o AWS Glue com o AWS Lake Formation para controle de acesso refinado.

    Observe as seguintes considerações ou limitações para o FGAC nativo do Spark:

    • No momento, não há suporte a gravação de dados

    • Gravar no Iceberg via GlueContext usando o Lake Formation requer, em vez disso, o uso do controle de acesso IAM

  • Suporte à Concessão de Acesso do Amazon S3 como uma solução de controle de acesso escalável aos dados do Amazon S3 do AWS Glue. Para ter mais informações, consulte Usar Concessão de Acesso do Amazon S3 com o AWS Glue.

  • Formatos de tabela aberta (OTF) atualizados para Hudi 0.15.0, Iceberg 1.6.1 e Delta Lake 3.2.1

  • Suporte ao Amazon SageMaker Unified Studio.

  • Amazon SageMaker Lakehouse e integração de abstração de dados. Para ter mais informações, consulte Consultando catálogos de dados do metastore com base no ETL AWS Glue.

  • Suporte à instalação de bibliotecas Python adicionais usando o arquivo requirements.txt. Para ter mais informações, consulte Instalar bibliotecas Python adicionais no AWS Glue 5.0 usando o arquivo requirements.txt.

  • O AWS Glue 5.0 oferece suporte à linhagem de dados no Amazon DataZone. É possível configurar o AWS Glue para coletar automaticamente informações de linhagem durante a execução de trabalhos do Spark e enviar os eventos de linhagem para serem visualizados no Amazon DataZone. Para obter mais informações, consulte Linhagem de dados no Amazon DataZone.

    Para configurá-la no console do AWS Glue, ative Gerar eventos de linhagem e insira o ID do seu domínio do Amazon DataZone na guia Detalhes do trabalho.

    A captura de tela mostra a ativação da linhagem de datas do Amazon DataZone para AWS Glue.

    Como alternativa, é possível fornecer o parâmetro de trabalho a seguir (forneça ID do seu domínio do DataZone):

    • Chave: --conf

    • Value (Valor):

      extraListeners=io.openlineage.spark.agent.OpenLineageSparkListener —conf spark.openlineage.transport.type=amazon_datazone_api -conf spark.openlineage.transport.domainId=<your-domain-ID>
  • Atualizações do conector e do driver JDBC. Para ter mais informações, consulte Apêndice B: upgrades do driver JDBC e Apêndice C: Atualizações de conectores.

  • Atualização do Java de 8 para 17.

  • Maior armazenamento para operadores do AWS Glue G.1X e G.2X com espaço em disco aumentando para 94 GB e 138 GB, respectivamente. Para ter mais informações, consulte Tarefas.

  • Suporte ao AWS SDK para Java, versão 2: os trabalhos do AWS Glue 5.0 poderão usar o Java versões 1.12.569 ou 2.28.8 se o trabalho for compatível com a v2. O AWS SDK para Java 2.x é uma reescrita principal do código de base da versão 1.x. Ele foi criado com base no Java 8+ e adiciona vários recursos frequentemente solicitados. Entre eles, suporte para E/S sem bloqueio e capacidade de conectar uma implementação HTTP diferente no runtime. Para obter mais informações, incluindo um Guia de migração do SDK para Java v1 a v2, consulte o guia AWS SDK para Java, versão 2.

Alterações significativas

Observe as seguintes alterações importantes:

  • O controle de acesso em nível de tabela baseado no GlueContext com permissões AWS Lake Formation compatíveis com o Glue 4.0 ou anteriores não é compatível com o Glue 5.0. Use o novo controle de acesso refinado (FGAC) nativo do Spark no Glue 5.0.

  • Não há suporte ao Leitor de CSV SIMD vetorizado.

  • Não há suporte ao registro em log contínuo para grupos de logs de saída. Em vez disso, use o grupo de logs error.

  • O job-insights-rule-driver de insights de execução de trabalho do AWS Glue foi descontinuado. O fluxo de logs job-insights-rca-driver agora está localizado no grupo de logs de erros.

  • Não há suporte a conectores de mercado/personalizados baseados em Athena.

  • Não há suporte aos conectores Adobe Marketo Engage, Facebook Ads, Google Analytics 4, Planilhas Google, Hubspot, Instagram Ads, Intercom, Jira Cloud, Oracle NetSuite, Salesforce, Salesforce Marketing Cloud, Salesforce Marketing Cloud Account Engagement, SAP OData, ServiceNow, Slack, Snapchat Ads, Stripe, Zendesk e Zoho CRM.

Principais aprimoramentos do Spark 3.3.0 para o Spark 3.5.2

Observe os seguintes aprimoramentos:

  • Cliente Python para Spark Connect (SPARK-39375).

  • Implementação de suporte a valores DEFAULT para colunas de tabelas (SPARK-38334).

  • Suporte a "Referências a alias de colunas laterais" (SPARK-27561).

  • Fortalecimento do uso do SQLSTATE para classes de erro (SPARK-41994).

  • Habilitação de junções do filtro Bloom por padrão (SPARK-38841).

  • Melhor escalabilidade da interface do usuário do Spark e estabilidade do driver para aplicações grandes (SPARK-41053).

  • Rastreamento de progresso assíncrono em streaming estruturado (SPARK-39591).

  • Processamento stateful arbitrário de Python em streaming estruturado (SPARK-40434).

  • Melhorias na cobertura da API do Pandas (SPARK-42882) e suporte a entradas NumPy no PySpark (SPARK-39405).

  • Fornecimento de um profiler de memória para funções do PySpark definidas pelo usuário (SPARK-40281).

  • Implementação do distribuidor PyTorch (SPARK-41589).

  • Publicação de artefatos SBOM (SPARK-41893).

  • Suporte a ambiente somente IPv6 (SPARK-39457).

  • Programador K8s personalizado (Apache UniKorn e Volcano) GA (SPARK-42802).

  • Suporte a clientes Scala e Go no Spark Connect (SPARK-42554) e (SPARK-43351).

  • Suporte a ML distribuído baseado em PyTorch para Spark Connect (SPARK-42471).

  • Suporte a streaming estruturado para Spark Connect em Python e Scala (SPARK-42938).

  • Suporte à API do Pandas para o Python Spark Connect Client (SPARK-42497).

  • Introdução das UDFs do Arrow Python (SPARK-40307).

  • Suporte a funções de tabela definidas pelo usuário do Python (SPARK-43798).

  • Migração dos erros do PySpark para classes de erro (SPARK-42986).

  • Estrutura de teste do PySpark (SPARK-44042).

  • Adição de suporte a Datasketches HLLSketch (SPARK-16484).

  • Aprimoramento da função SQL integrada (SPARK-41231).

  • Cláusula IDENTIFIER (SPARK-43205).

  • Adição de funções SQL às APIs do Scala, Python e R (SPARK-43907).

  • Adição de suporte a argumentos nomeados para funções SQL (SPARK-43922).

  • Prevenção de re-execução desnecessária de tarefas em um executor descomissionado perdido se os dados do shuffle forem migrados (SPARK-41469).

  • ML distribuído <> spark connect (SPARK-42471).

  • Distribuidor DeepSpeed (SPARK-44264).

  • Implementação do ponto de verificação do changelog para o armazenamento de estados RocksDB (SPARK-43421).

  • Introdução da propagação da marca d'água entre operadores (SPARK-42376).

  • Introdução de dropDuplicatesWithinWatermark (SPARK-42931).

  • Aprimoramentos no gerenciamento de memória do provedor de armazenamento de estados RocksDB (SPARK-43311).

Ações para migrar para o AWS Glue 5.0

Para trabalhos existentes, altere a Glue version da versão anterior para Glue 5.0 na configuração do trabalho.

  • No AWS Glue Studio, escolha Glue 5.0 - Supports Spark 3.5.2, Scala 2, Python 3 em Glue version.

  • Na API, escolha 5.0 no parâmetro GlueVersion na operação da API UpdateJob.

Para novos trabalhos, escolha Glue 5.0 ao criar um trabalho.

  • No console, escolha Spark 3.5.2, Python 3 (Glue Version 5.0) or Spark 3.5.2, Scala 2 (Glue Version 5.0) em Glue version.

  • No AWS Glue Studio, escolha Glue 5.0 - Supports Spark 3.5.2, Scala 2, Python 3 em Glue version.

  • Na API, escolha 5.0 no parâmetro GlueVersion na operação da API CreateJob.

Para visualizar os logs de eventos do Spark no AWS Glue 5.0, partindo do AWS Glue 2.0 ou anterior, inicie um servidor de histórico do Spark atualizado para o AWS Glue 5.0 usando o AWS CloudFormation ou o Docker.

Lista de verificação da migração

Revise esta lista de verificação para migração:

  • Atualizações do Java 17

  • [Scala] Atualização das chamadas do AWS SDK de v1 para v2

  • Migração do Python 3.10 para 3.11

  • [Python] Atualização das referências ao boto de 1.26 para 1.34

Recursos do AWS Glue 5.0

Esta seção descreve os recursos do AWS Glue de forma mais detalhada.

Consultando catálogos de dados do metastore com base no ETL AWS Glue

É possível registrar seu trabalho do AWS Glue para acessar o AWS Glue Data Catalog, o que disponibiliza tabelas e outros recursos do metastore para consumidores diferentes. O Catálogo de Dados oferece suporte a uma hierarquia de vários catálogos, que unifica todos os seus dados nos data lakes do Amazon S3. Ele também fornece uma API de metastore do Hive e uma API de código aberto do Apache Iceberg para acessar os dados. Esses recursos estão disponíveis para oAWS Glue e outros serviços orientados por dados, como Amazon EMR, Amazon Athena e Amazon Redshift.

Ao criar recursos no Catálogo de Dados, será possível acessá-los de qualquer mecanismo SQL que ofereça suporte à API REST do Apache Iceberg. O AWS Lake Formation gerencia as permissões. Após a configuração, é possível utilizar os recursos do AWS Glue para consultar dados diferentes fazendo consultas para esses recursos do metastore com aplicações bem conhecidas. Isso inclui o Apache Spark e o Trino.

Como os recursos de metadados são organizados

Os dados são organizados em uma hierarquia lógica de catálogos, bancos de dados e tabelas, usando o AWS Glue Data Catalog:

  • Catálogo: um contêiner lógico que contém objetos de um armazenamento de dados, como esquemas ou tabelas.

  • Banco de dados: organiza objetos de dados, como tabelas e visualizações, em um catálogo.

  • Tabelas e visualizações: objetos de dados em um banco de dados que fornecem uma camada de abstração com um esquema compreensível. Elas facilitam o acesso aos dados subjacentes, que podem estar em vários formatos e em vários locais.

Migrar do AWS Glue 4.0 para o AWS Glue 5.0

Todos os parâmetros de trabalho e principais recursos existentes no AWS Glue 4.0 existirão no AWS Glue 5.0, com exceção das transformações de machine learning.

Os seguintes parâmetros novos foram adicionados:

  • --enable-lakeformation-fine-grained-access: habilita o recurso de controle de acesso refinado (FGAC) nas tabelas do AWS Lake Formation.

Consulte a documentação de migração do Spark:

Migrar do AWS Glue 3.0 para o AWS Glue 5.0

nota

Para ver as etapas de migração relacionadas ao AWS Glue 4.0, consulte Migrar do AWS Glue 3.0 para o AWS Glue 4.0.

Todos os parâmetros de trabalho e principais recursos existentes no AWS Glue 3.0 existirão no AWS Glue 5.0, com exceção das transformações de machine learning.

Migrar do AWS Glue 2.0 para o AWS Glue 5.0

nota

Para obter as etapas de migração relacionadas ao AWS Glue 4.0 e uma lista das diferenças de migração entre as versões 3.0 e 4.0 do AWS Glue, consulte Migrar do AWS Glue 3.0 para o AWS Glue 4.0.

Observe também as seguintes diferenças de migração entre as versões 3.0 e 2.0 do AWS Glue:

  • Todos os parâmetros de trabalho e principais recursos existentes no AWS Glue 2.0 existirão no AWS Glue 5.0, com exceção das transformações de machine learning.

  • Várias alterações do Spark sozinhas podem exigir a revisão de seus scripts para garantir que os recursos removidos não estejam sendo referenciados. Por exemplo, o Spark 3.1.1 e as versões posteriores não habilitam UDFs sem tipo Scala, mas o Spark 2.4 as permite.

  • Não há suporte ao Python 2.7.

  • Quaisquer jars extras fornecidos em trabalhos do AWS Glue 2.0 existentes podem trazer dependências conflitantes, uma vez que houve atualizações em várias dependências. É possível evitar conflitos de classpath com o parâmetro de trabalho --user-jars-first.

  • Alterações no comportamento de carregar/salvar de timestamps de/para arquivos parquet. Para obter mais detalhes, consulte Atualização do Spark SQL 3.0 para 3.1.

  • Paralelismo de tarefas do Spark diferente para configuração do driver/executor. É possível ajustar o paralelismo de tarefas ao passar o argumento --executor-cores do trabalho.

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

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

As alterações a seguir se aplicam às versões do conector ou do driver identificadas nos apêndices do Glue 5.0.

Amazon Redshift

Observe as seguintes alterações:

  • Adiciona suporte a nomes de tabelas em três partes para permitir que o conector consulte tabelas de compartilhamento de dados do Redshift.

  • Corrige o mapeamento de ShortType do Spark para usar SMALLINT em vez de INTEGER do Redshift para corresponder melhor ao tamanho de dados esperado.

  • Adição de suporte a nomes de cluster personalizados (CNAME) para Amazon Redshift sem servidor.

Apache Hudi

Observe as seguintes alterações:

  • Suporte a índice de nível de registro.

  • Support a geração automática de chaves de registro. Agora você não precisa especificar o campo de chave do registro.

Apache Iceberg

Observe as seguintes alterações:

  • Suporte ao controle de acesso refinado com o AWS Lake Formation.

  • Suporte à ramificação e à marcação, que são referências nomeadas a snapshots com seus próprios ciclos de vida independentes.

  • Adição de um procedimento de visualização do log de alterações que gera uma visualização que contém as alterações feitas em uma tabela durante um período especificado ou entre snapshots específicos.

Delta Lake

Observe as seguintes alterações:

  • Suporte ao Delta Universal Format (UniForm), que permite acesso contínuo por meio do Apache Iceberg e do Apache Hudi.

  • Suporte a vetores de exclusão que implementam um paradigma Merge-on-Read.

AzureCosmos

Observe as seguintes alterações:

  • Adição de suporte a chaves de partição hierárquicas.

  • Adição de opção para usar um esquema personalizado com StringType (json bruto) para uma propriedade aninhada.

  • Adição da opção de configuração spark.cosmos.auth.aad.clientCertPemBase64 para permitir o uso da autenticação SPN (nome do ServicePrincipal) com um certificado em vez do segredo do cliente.

Para obter mais informações, consulte Log de alterações do conector Spark do Azure Cosmos DB.

Microsoft SQL Server

Observe as seguintes alterações:

  • A criptografia TLS é habilitada por padrão.

  • Quando encrypt = false, mas o servidor exige criptografia, o certificado é validado com base na configuração trustServerCertificate da conexão.

  • aadSecurePrincipalId e aadSecurePrincipalSecret obsoletos.

  • Remoção da API getAADSecretPrincipalId.

  • Adição de suporte ao tipo de dados SQL_Variant durante a recuperação de DateTimeOffset.

  • Resolução CNAME adicionada quando o realm é especificado.

MongoDB

Observe as seguintes alterações:

  • Suporte ao modo de micro lotes com o Spark Structured Streaming.

  • Suporte a tipos de dados BSON.

  • Adição de suporte à leitura de várias coleções ao usar os modos de micro lote ou streaming contínuo.

    • Se o nome de uma coleção usada em sua opção de configuração collection contiver uma vírgula, o Spark Connector a tratará como duas coleções diferentes. Para evitar isso, coloque uma barra invertida (\) antes dela.

    • Se o nome de uma coleção usada em sua opção de configuração collection for "*", o Spark Connector a interpretará como uma instrução para verificar todas as coleções. Para evitar isso, coloque uma barra invertida (\) antes dele.

    • Se o nome de uma coleção usada em sua opção de configuração collection contiver uma barra invertida (\), o Spark Connector tratará a barra invertida como um caractere de escape, o que pode mudar a forma como ele interpreta o valor. Para evitar isso, coloque uma outra barra invertida (\) antes dela.

Para obter mais informações, consulte Notas da versão do conector do MongoDB para Spark.

Snowflake

Observe as seguintes alterações:

  • Introdução de um novo parâmetro trim_space que pode ser usado para cortar valores de colunas StringType automaticamente ao salvar em uma tabela do Snowflake. Padrão: false.

  • Desabilitação do parâmetro abort_detached_query no nível da sessão por padrão.

  • Remoção do requisito do parâmetro SFUSER ao usar OAUTH.

  • Remoção do recurso Advanced Query Pushdown. Alternativas ao recurso estão disponíveis. Por exemplo, em vez de carregar dados das tabelas do Snowflake, os usuários podem carregar dados diretamente das consultas SQL do Snowflake.

Para obter mais informações, consulte Notas da versão do conector do Snowflake para Spark.

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.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 8 8 8 8
Spark 3.5.2-amzn-1 3.3.0-amzn-1 3.1.1-amzn-0 2.4.3 2.4.3
Hadoop 3.4.0-amzn-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 2.12 2.11 2.11
Jackson 2.15.2 2.12 2.12 2.11 2.11
Hive 2.3.9-amzn-4 2,3.9-amzn-2 2.3.7-amzn-4 1.2 1.2
EMRFS 2.66.0 2.54.0 2.46.0 2.38.0 2.30.0
Json4s 3.7.0 M11 3.7.0 M11 3.6.6 3.5.x 3.5.x
Arrow 12.0.1 7.0.0 2.0.0 0.10.0 0.10.0
Cliente do AWS Glue Data Catalog 4.2.0 3.7.0 3.0.0 1.10.0 N/D
AWS SDK para Java 2.28.8 1.12 1.12
Python 3.11 3.10 3.7 2.7 e 3.6 2.7 e 3.6
Boto 1.34.131 1.26 1.18 1.12 N/D
Conector EMR DynamoDB 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.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.23 8.0.23 5.1
Microsoft SQL Server 10,2.0 9.4.0 7.0.0 6.1.0
Bancos de dados da Oracle 23.3.0.23.09 21.7 21.1 11.2
PostgreSQL 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.16

redshift-jdbc41-1.2.12.1017

redshift-jdbc41-1.2.12.1017

SAP Hana 2.20.17 2.17.12
Teradata 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.0 Versão do conector no AWS Glue 4.0 Versão do conector no AWS Glue 3.0
Conector EMR DynamoDB 5.6.0 4.16.0
Amazon Redshift 6.3.0 6.1.3
OpenSearch 1.2.0 1.0.1
MongoDB 10.4.0 10.0.4 3.0.0
Snowflake 3.0.0 2.12.0
Google BigQuery 0.32.2 0.32.2
AzureCosmos 4.33.0 4.22.0
AzureSQL 1.3.0 1.3.0
Vertica 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.0 Versão do conector no AWS Glue 4.0 Versão do conector no AWS Glue 3.0
Hudi 0.15.0 0.12.1 0.10.1
Delta Lake 3.2.1 2.1.0 1.0.0
Iceberg 1.6.1 1.0.0 0.13.1
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.