Excluir classes de armazenamento do Amazon S3 - AWS Glue

Excluir classes de armazenamento do Amazon S3

Se você estiver executando trabalhos de ETL do AWS Glue que leiam arquivos ou partições do Amazon Simple Storage Service (Amazon S3), poderá excluir alguns tipos de classe de armazenamento do Amazon S3.

As seguintes classes de armazenamento estão disponíveis no Amazon S3:

  • STANDARD: para armazenamento de uso geral de dados acessados com frequência.

  • INTELLIGENT_TIERING: para dados com padrões de acesso desconhecidos ou inconstantes.

  • STANDARD_IA e ONEZONE_IA: para dados de longa duração, mas acessados com menos frequência.

  • GLACIER, DEEP_ARCHIVE e REDUCED_REDUNDANCY: para arquivamento de longo prazo e preservação digital.

Para obter mais informações, consulte Classes de armazenamento do Amazon S3 no Guia do desenvolvedor do Amazon S3.

Os exemplos nesta seção mostram como excluir as classes de armazenamento GLACIER e DEEP_ARCHIVE. Essas classes permitem que você liste arquivos, mas elas não permitem que você leia os arquivos, a menos que sejam restaurados. (Para obter mais informações, consulte Restaurar objetos arquivados no Guia do desenvolvedor do Amazon S3).

Ao usar exclusões de classe de armazenamento, você pode garantir que seus trabalhos do AWS Glue funcionarão em tabelas com partições entre esses níveis de classe de armazenamento. Sem exclusões, os trabalhos que leem dados desses níveis falham com o seguinte erro: AmazonS3Exception: The operation is not valid for the object's storage class (AmazonS3Exception: a operação não é válida para a classe de armazenamento do objeto).

Há diferentes maneiras de filtrar classes de armazenamento do Amazon S3 no AWS Glue.

Excluir classes de armazenamento do Amazon S3 ao criar um quadro dinâmico

Para excluir classes de armazenamento do Amazon S3 ao criar um quadro dinâmico, use excludeStorageClasses em additionalOptions. O AWS Glue usa automaticamente sua própria implementação do Lister do Amazon S3 para listar e excluir arquivos correspondentes às classes de armazenamento especificadas.

Os exemplos de Python e Scala a seguir mostram como excluir as classes de armazenamento GLACIER e DEEP_ARCHIVE ao criar um quadro dinâmico.

Exemplo do Python:

glueContext.create_dynamic_frame.from_catalog( database = "my_database", tableName = "my_table_name", redshift_tmp_dir = "", transformation_ctx = "my_transformation_context", additional_options = { "excludeStorageClasses" : ["GLACIER", "DEEP_ARCHIVE"] } )

Exemplo do Scala:

val* *df = glueContext.getCatalogSource( nameSpace, tableName, "", "my_transformation_context", additionalOptions = JsonOptions( Map("excludeStorageClasses" -> List("GLACIER", "DEEP_ARCHIVE")) ) ).getDynamicFrame()

Excluir classes de armazenamento do Amazon S3 em uma tabela do Data Catalog

É possível especificar exclusões de classe de armazenamento a serem usadas por um trabalho de ETL do AWS Glue como um parâmetro de tabela no catálogo de dados do Glue da AWS. Você pode incluir esse parâmetro na operação CreateTable usando a AWS Command Line Interface (AWS CLI) ou de forma programática com a API. Para obter mais informações, consulte Estrutura de tabelas e CreateTable.

Você também pode especificar classes de armazenamento excluídas no console do AWS Glue.

Como excluir classes de armazenamento do Amazon S3 (console)
  1. Faça login no AWS Management Console e abra o console do AWS Glue em https://console.aws.amazon.com/glue/.

  2. No painel de navegação à esquerda, escolha Tables (Tabelas).

  3. Escolha o nome da tabela na lista e, depois, escolha Edit table (Editar tabela).

  4. Em Table properties (Propriedades da tabela), adicione excludeStorageClasses como uma chave e [\"GLACIER\",\"DEEP_ARCHIVE\"] como um valor.

  5. Selecione Apply (Aplicar).