Exclusión de clases de almacenamiento de Amazon S3 - AWS Glue

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Exclusión de clases de almacenamiento de Amazon S3

Si ejecuta trabajos de ETL de AWS Glue que leen archivos o particiones desde Amazon Simple Storage Service (Amazon S3), puede excluir algunos tipos de clases de almacenamiento de Amazon S3.

Las siguientes clases de almacenamiento están disponibles en Amazon S3:

  • STANDARD: para el almacenamiento de uso general de los datos a los que se accede con frecuencia.

  • INTELLIGENT_TIERING: para datos de larga duración con patrones de acceso cambiantes o desconocidos.

  • STANDARD_IA y ONEZONE_IA: para datos de larga duración, pero a los que se accede con menor frecuencia.

  • GLACIER, DEEP_ARCHIVE y REDUCED_REDUNDANCY: para archivado a largo plazo y conservación digital.

Para obtener más información, consulte Clases de almacenamiento de Amazon S3 en la Guía para desarrolladores de Amazon S3.

Los ejemplos de esta sección muestran cómo excluir las clases de almacenamiento DEEP_ARCHIVE y GLACIER. Estas clases le permiten enumerar archivos, pero no le permiten leer los archivos a menos que se restauren. (Para obtener más información, consulte Restaurar objetos archivados en la Guía para desarrolladores de Amazon S3).

Mediante el uso de exclusiones de clase de almacenamiento, puede asegurarse de que sus trabajos de AWS Glue funcionarán en tablas que tengan particiones en estas capas de clase de almacenamiento. Sin exclusiones, los trabajos que leen datos de estas capas generan el siguiente error: AmazonS3Exception: The operation is not valid for the object's storage class (La operación no es válida para la clase de almacenamiento del objeto).

Existen diferentes formas de filtrar las clases de almacenamiento de Amazon S3 en AWS Glue.

Exclusión de clases de almacenamiento de Amazon S3 al crear un marco dinámico

Para excluir las clases de almacenamiento de Amazon S3 al crear un marco dinámico, utilice excludeStorageClasses en additionalOptions. AWS Glue utiliza automáticamente su propia implementación Lister de Amazon S3 para enumerar y excluir los archivos correspondientes a las clases de almacenamiento especificadas.

Los siguientes ejemplos de Python y Scala muestran cómo excluir las clases de almacenamiento GLACIER y DEEP_ARCHIVE al crear un marco dinámico.

Ejemplo de 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"] } )

Ejemplo de Scala:

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

Exclusión de clases de almacenamiento de Amazon S3 en una tabla de Data Catalog

Puede especificar exclusiones de clase de almacenamiento que utilizará un trabajo de ETL de AWS Glue como parámetro de tabla en el Data Catalog de AWS Glue. Puede incluir este parámetro en la operación CreateTable mediante la AWS Command Line Interface (AWS CLI) o mediante programación con la API. Para obtener más información, consulte Estructura de tablas y CreateTable.

También puede especificar clases de almacenamiento excluidas en la consola de AWS Glue.

Para excluir clases de almacenamiento de Amazon S3 (consola)
  1. Inicie sesión en AWS Management Console y abra la consola de AWS Glue en https://console.aws.amazon.com/glue/.

  2. En el panel de navegación de la izquierda, elija Tables (Tablas).

  3. Elija el nombre de la tabla en la lista y, a continuación, elija Edit table (Editar tabla).

  4. En Table properties (Propiedades de tabla), añada excludeStorageClasses como una clave y [\"GLACIER\",\"DEEP_ARCHIVE\"] como un valor.

  5. Seleccione Apply (Aplicar).