

# Exclusión de clases de almacenamiento de Amazon S3
<a name="aws-glue-programming-etl-storage-classes"></a>

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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html) en la *Guía para desarrolladores de Amazon S3*.

Los ejemplos de esta sección muestran cómo excluir las clases de almacenamiento `GLACIER` y `DEEP_ARCHIVE`. 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](https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html) 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.

**Topics**
+ [Exclusión de clases de almacenamiento de Amazon S3 al crear un marco dinámico](#aws-glue-programming-etl-storage-classes-dynamic-frame)
+ [Exclusión de clases de almacenamiento de Amazon S3 en una tabla de Data Catalog](#aws-glue-programming-etl-storage-classes-table)

## Exclusión de clases de almacenamiento de Amazon S3 al crear un marco dinámico
<a name="aws-glue-programming-etl-storage-classes-dynamic-frame"></a>

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

```
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
<a name="aws-glue-programming-etl-storage-classes-table"></a>

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 Table](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html#aws-glue-api-catalog-tables-Table) y [CreateTable](https://docs.aws.amazon.com/glue/latest/webapi/API_CreateTable.html). 

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 la Consola de administración de AWS y abra la consola de AWS Glue en [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

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

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

1. En **Table properties (Propiedades de tabla)**, añada **excludeStorageClasses** como una clave y **[\$1"GLACIER\$1",\$1"DEEP\$1ARCHIVE\$1"]** como un valor.

1. Seleccione **Aplicar**.