

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.

# Uso de EMR Serverless con un control de acceso AWS Lake Formation detallado
<a name="emr-serverless-lf-enable"></a>

## Descripción general de
<a name="emr-serverless-lf-enable-overview"></a>

Con Amazon EMR, versión 7.2.0 y versiones posteriores, aproveche AWS Lake Formation para aplicar controles de acceso detallados en las tablas del catálogo de datos respaldadas por S3. Esta capacidad le permite configurar controles de acceso a nivel de tabla, fila, columna y celda para consultas deread dentro de sus trabajos de Spark de Amazon EMR sin servidor. Para configurar un control de acceso detallado para los trabajos por lotes y las sesiones interactivas de Apache Spark, utilice EMR Studio. Consulte las siguientes secciones para obtener más información sobre Lake Formation y cómo usarlo con EMR sin servidor.

El uso de Amazon EMR Serverless AWS Lake Formation conlleva cargos adicionales. Para obtener más información, consulte [Precios de Amazon EMR](https://aws.amazon.com/emr/pricing/).

## Cómo funciona EMR Serverless con AWS Lake Formation
<a name="emr-serverless-lf-enable-how-it-works"></a>

El uso de EMR sin servidor con Lake Formation le permite implementar una capa de permisos en cada trabajo de Spark para aplicar el control de permisos de Lake Formation cuando EMR sin servidor ejecuta trabajos. EMR sin servidor utiliza [ los perfiles de recursos de Spark](https://spark.apache.org/docs/latest/api/java/org/apache/spark/resource/ResourceProfile.html) para crear dos perfiles para ejecutar los trabajos de forma eficaz. El perfil de usuario ejecuta el código proporcionado por el usuario, mientras que el perfil del sistema implementa las políticas de Lake Formation. Para obtener más información, consulte [Qué es AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html) y [Consideraciones y limitaciones](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/emr-serverless-lf-enable-considerations.html).

Cuando utilice la capacidad preinicializada con Lake Formation, le sugerimos que tenga un mínimo de dos controladores de Spark. Cada trabajo habilitado para Lake Formation utiliza dos controladores Spark, uno para el perfil de usuario y otro para el perfil del sistema. Para obtener el mejor rendimiento, utilice el doble de controladores para los trabajos habilitados para Lake Formation en comparación con los que utilizaría si no usara Lake Formation.

Cuando ejecute trabajos de Spark en EMR sin servidor, también debe tener en cuenta el impacto de la asignación dinámica en la administración de recursos y el rendimiento del clúster. La configuración de `spark.dynamicAllocation.maxExecutors` del número máximo de ejecutores por perfil de recursos se aplica a los ejecutores de usuario y a los ejecutores del sistema. Si configura ese número para que sea igual al número máximo permitido de ejecutores, es posible que la ejecución del trabajo se bloquee debido a que un tipo de ejecutor utiliza todos los recursos disponibles, lo que impide que el otro ejecutor ejecute los trabajos.

Para no quedarse sin recursos, EMR sin servidor establece el número máximo predeterminado de ejecutores por perfil de recursos en el 90 % del valor `spark.dynamicAllocation.maxExecutors`. Puede anular esta configuración al especificar `spark.dynamicAllocation.maxExecutorsRatio` con un valor entre 0 y 1. Además, también puede configurar las siguientes propiedades para optimizar la asignación de recursos y el rendimiento general:
+ `spark.dynamicAllocation.cachedExecutorIdleTimeout`
+ `spark.dynamicAllocation.shuffleTracking.timeout`
+ `spark.cleaner.periodicGC.interval`

A continuación, se ofrece una descripción general de alto nivel sobre cómo EMR sin servidor obtiene acceso a los datos protegidos por las políticas de seguridad de Lake Formation.

![Cómo accede Amazon EMR a los datos protegidos por las políticas de seguridad de Lake Formation.](http://docs.aws.amazon.com/es_es/emr/latest/EMR-Serverless-UserGuide/images/lf-emr-s-architecture.png)


1. Un usuario envía un trabajo de Spark a una aplicación AWS Lake Formation EMR Serverless habilitada. 

1. EMR sin servidor envía el trabajo a un controlador de usuario y lo ejecuta en el perfil de usuario. El controlador de usuario ejecuta una versión sencilla de Spark que no permite lanzar tareas, solicitar ejecutores ni acceder a S3 ni al catálogo de Glue. Crea un plan de trabajo.

1. EMR sin servidor configura un segundo controlador denominado controlador del sistema y lo ejecuta en el perfil del sistema (con una identidad privilegiada). EMR sin servidor configura un canal TLS cifrado entre los dos controladores para la comunicación. El controlador de usuario utiliza el canal para enviar los planes de trabajo al controlador del sistema. El controlador del sistema no ejecuta el código enviado por el usuario. Ejecuta Spark a pleno rendimiento y se comunica con S3 y con el catálogo de datos para acceder a los datos. Solicita ejecutores y compila el plan de trabajo en una secuencia de etapas de ejecución. 

1. Luego, EMR sin servidor ejecuta las etapas en los ejecutores con el controlador de usuario o el controlador del sistema. En cualquier etapa, el código de usuario se ejecuta exclusivamente en los ejecutores de perfiles de usuario.

1. Las etapas que leen los datos de las tablas del catálogo de datos protegidas por filtros de seguridad AWS Lake Formation o las que los aplican se delegan a los ejecutores del sistema.

## Habilitación de Lake Formation en Amazon EMR
<a name="emr-serverless-lf-enable-config"></a>

Para habilitar Lake Formation, debe establecer `spark.emr-serverless.lakeformation.enabled` en `true` según la clasificación de `spark-defaults` para el parámetro de configuración de tiempo de ejecución al [crear una aplicación EMR sin servidor](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/getting-started.html#gs-application-console).

```
aws emr-serverless create-application \
    --release-label emr-7.13.0 \
    --runtime-configuration '{
     "classification": "spark-defaults", 
     "properties": {
      "spark.emr-serverless.lakeformation.enabled": "true"
      }
    }' \
    --type "SPARK"
```

También puede habilitar Lake Formation al crear una nueva aplicación en EMR Studio. Elija **Uso de Lake Formation para un control de acceso detallado**, disponible en **Configuraciones adicionales**.

El [cifrado entre trabajadores](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/interworker-encryption.html) está habilitado de forma predeterminada cuando usa Lake Formation con EMR sin servidor, por lo que no necesita volver a habilitar explícitamente el cifrado entre trabajadores.

**Habilitación de Lake Formation para trabajos de Spark**

Para habilitar Lake Formation para trabajos individuales de Spark, establezca `spark.emr-serverless.lakeformation.enabled` en “verdadero” cuando utilice `spark-submit`.

```
--conf spark.emr-serverless.lakeformation.enabled=true
```

## Permisos de IAM del rol de tiempo de ejecución de trabajos
<a name="emr-serverless-lf-enable-permissions"></a>

Los permisos de Lake Formation controlan el acceso a los recursos del catálogo de datos de AWS Glue, las ubicaciones de Amazon S3 y los datos subyacentes en esas ubicaciones. Los permisos de la IAM controlan el acceso a Lake Formation and AWS Glue APIs y a los recursos. Aunque es posible que tenga el permiso de Lake Formation para acceder a una tabla del catálogo de datos (SELECT), la operación fallará si no tiene el permiso de IAM en la operativa de la API `glue:Get*`. 

El siguiente es un ejemplo de política sobre cómo proporcionar permisos de IAM para acceder a un script en S3, cargar registros en S3, permisos de la API de Glue de AWS y permiso para acceder a Lake Formation.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ScriptAccess",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::*.amzn-s3-demo-bucket/scripts",
        "arn:aws:s3:::*.amzn-s3-demo-bucket/*"
      ]
    },
    {
      "Sid": "LoggingAccess",
      "Effect": "Allow",
      "Action": [
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/logs/*"
      ]
    },
    {
      "Sid": "GlueCatalogAccess",
      "Effect": "Allow",
      "Action": [
        "glue:Get*",
        "glue:Create*",
        "glue:Update*"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "LakeFormationAccess",
      "Effect": "Allow",
      "Action": [
        "lakeformation:GetDataAccess"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------

## Configuración de permisos de Lake Formation para roles de tiempo de ejecución de trabajos
<a name="emr-serverless-lf-enable-set-up-grants-for-role"></a>

Primero, registre la ubicación de su tabla de Hive con Lake Formation. A continuación, cree los permisos para el rol de tiempo de ejecución de su trabajo en la tabla que desee. Para obtener más información sobre Lake Formation, consulte [¿Qué es AWS Lake Formation?](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html) en la *Guía para AWS Lake Formation desarrolladores*.

Después de configurar los permisos de Lake Formation, envíe trabajos de Spark en Amazon EMR sin servidor. Para obtener más información acerca de trabajos de Spark, consulte [ejemplos de Spark](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/jobs-spark.html#spark-examples).

## Envío de la ejecución de un trabajo
<a name="emr-serverless-lf-enable-submit-job"></a>

Cuando termine de configurar los permisos de Lake Formation, podrá [enviar trabajos a Spark en EMR sin servidor](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/jobs-spark.html#spark-examples). En la siguiente sección, se muestran ejemplos de cómo configurar y enviar las propiedades de la ejecución del trabajo.

## Requisitos del permiso
<a name="emr-serverless-lf-enable-otf-permissions"></a>

### Tablas no registradas en AWS Lake Formation
<a name="emr-s-lf-otf-permissions"></a>

En el caso de las tablas no registradas AWS Lake Formation, el rol de tiempo de ejecución del trabajo accede tanto al catálogo de datos de AWS Glue como a los datos de la tabla subyacente en Amazon S3. Esto requiere que el rol de ejecución del trabajo tenga los permisos de IAM adecuados para las operaciones de AWS Glue y Amazon S3. 

### Tablas registradas en AWS Lake Formation
<a name="emr-s-lf-otf-permissions-tables-lf-registered"></a>

En el caso de las tablas registradas con AWS Lake Formation, el rol de ejecución del trabajo accede a los metadatos del catálogo de datos de AWS Glue, mientras que las credenciales temporales que vende Lake Formation acceden a los datos de la tabla subyacente en Amazon S3. Los permisos de Lake Formation necesarios para ejecutar una operación dependen del catálogo de datos de AWS Glue y de las llamadas a la API de Amazon S3 que inicie el trabajo de Spark y se pueden resumir de la siguiente manera:
+ El permiso **DESCRIBE** permite al rol de ejecución leer los metadatos de una tabla o base de datos en el catálogo de datos
+ El permiso **ALTER** permite al rol de ejecución modificar los metadatos de una tabla o base de datos en el catálogo de datos
+ El permiso **DROP** permite al rol de ejecución eliminar metadatos de tablas o bases de datos del catálogo de datos
+ El permiso **SELECT** permite al rol de ejecución leer datos de tablas de Amazon S3
+ El permiso **INSERT** permite al rol de ejecución escribir datos de tablas en Amazon S3
+ El permiso **DELETE** permite al rol de ejecución eliminar datos de tablas de Amazon S3.
**nota**  
Lake Formation evalúa los permisos de forma perezosa cuando un trabajo de Spark llama a AWS Glue para recuperar los metadatos de la tabla y a Amazon S3 para recuperar los datos de la tabla. Los trabajos que utilizan un rol en tiempo de ejecución con permisos insuficientes no fallarán hasta que Spark realice una llamada a AWS Glue o Amazon S3 que requiera el permiso faltante.

**nota**  
En la siguiente matriz de tablas compatibles:   
Las operaciones marcadas como **compatibles** utilizan exclusivamente las credenciales de Lake Formation para acceder a los datos de las tablas registradas en Lake Formation. Si los permisos de Lake Formation son insuficientes, la operación no recurrirá a las credenciales del rol en tiempo de ejecución. En el caso de las tablas no registradas en Lake Formation, las credenciales del rol de ejecución del trabajo acceden a los datos de la tabla.
Las operaciones marcadas como **compatibles con los permisos de IAM en la ubicación de Amazon S3** no utilizan las credenciales de Lake Formation para acceder a los datos de las tablas subyacentes en Amazon S3. Para ejecutar estas operaciones, el rol de ejecución del trabajo debe tener los permisos de IAM de Amazon S3 necesarios para acceder a los datos de la tabla, independientemente de si la tabla está registrada en Lake Formation.

------
#### [ Hive ]


| Operación | AWS Lake Formation permisos | Estado de Support | 
| --- | --- | --- | 
| SELECT | SELECT |  compatible | 
| CREATE TABLE | CREATE\_TABLE |  compatible | 
| CREATE TABLE LIKE | CREATE\_TABLA | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| CREATE TABLE AS SELECT | CREATE\_TABLE | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| DESCRIBE TABLE | DESCRIBE |  compatible | 
| SHOW TBLPROPERTIES | DESCRIBE |  compatible | 
| SHOW COLUMNS | DESCRIBE |  compatible | 
| SHOW PARTITIONS | DESCRIBE |  compatible | 
| SHOW CREATE TABLE | DESCRIBE |  compatible | 
| MODIFICAR TABLA tablename | SELECCIONAR y ALTERAR |  compatible | 
| ALTERAR LA UBICACIÓN DEL tablename CONJUNTO DE TABLAS | - | No compatible | 
| ALTERAR LA TABLA Y tablename AGREGAR LA PARTICIÓN | SELECCIONAR, INSERTAR y ALTERAR |  compatible | 
| REPARAR TABLA | SELECCIONAR y ALTERAR |  compatible | 
| CARGAR DATOS |  | No compatible | 
| INSERT | INSERTAR y ALTERAR |  compatible | 
| INSERT OVERWRITE | SELECCIONAR, INSERTAR, ELIMINAR y ALTERAR |  compatible | 
| DROP TABLE | SELECCIONAR, SOLTAR, ELIMINAR Y ALTERAR |  compatible | 
| TRUNCATE TABLE | SELECCIONAR, INSERTAR, ELIMINAR y ALTERAR |  compatible | 
| Dataframe Writer V1 | Igual que la operación SQL correspondiente | Se admite cuando se añaden datos a una tabla existente. Consulte las [consideraciones y limitaciones](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/emr-serverless-lf-enable-considerations.html) para obtener más información | 
| Dataframe Writer V2 | Igual que la operación SQL correspondiente | Se admite cuando se añaden datos a una tabla existente. Consulte las [consideraciones y limitaciones](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/emr-serverless-lf-enable-considerations.html) para obtener más información | 

------
#### [ Iceberg ]


| Operación | AWS Lake Formation permisos | Estado de Support | 
| --- | --- | --- | 
| SELECT | SELECT |  compatible | 
| CREATE TABLE | CREATE\_TABLE |  compatible | 
| CREATE TABLE LIKE | CREATE\_TABLA | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| CREATE TABLE AS SELECT | CREATE\_TABLE | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| REEMPLACE LA TABLA POR SELECCIONADA | SELECCIONAR, INSERTAR y ALTERAR |  compatible | 
| DESCRIBE TABLE | DESCRIBE | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| SHOW TBLPROPERTIES | DESCRIBE | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| SHOW CREATE TABLE | DESCRIBE | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| ALTER TABLE | SELECCIONE, INSERTE y MODIFIQUE |  compatible  | 
| ALTER TABLE SET LOCATION | SELECCIONAR, INSERTAR y ALTERAR | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| MODIFICAR LA ESCRITURA DE LA TABLA ORDENADA POR | SELECCIONAR, INSERTAR y ALTERAR | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| MODIFICAR LA ESCRITURA DE LA TABLA DISTRIBUIDA POR | SELECT, INSERT y ALTER | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| MODIFICAR LA TABLA, CAMBIAR EL NOMBRE DE LA TABLA | CREATE\_TABLE y DROP |  compatible | 
| INSERT INTO | SELECCIONAR, INSERTAR y ALTERAR |  compatible | 
| INSERT OVERWRITE | SELECCIONAR, INSERTAR y ALTERAR |  compatible | 
| DELETE | SELECCIONAR, INSERTAR y ALTERAR |  compatible | 
| UPDATE | SELECCIONAR, INSERTAR y ALTERAR |  compatible | 
| MERGE INTO | SELECCIONAR, INSERTAR y ALTERAR |  compatible | 
| DROP TABLE | SELECCIONAR, BORRAR y SOLTAR |  compatible | 
| DataFrame Escritor V1 | - | No compatible | 
| DataFrame Escritor V2 | Igual que la operación SQL correspondiente | Se admite cuando se añaden datos a una tabla existente. Consulte [consideraciones y limitaciones](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/emr-serverless-lf-enable-considerations.html) para obtener más información. | 
| Tabla de metadatos | SELECT | Soportado. Algunas tablas están ocultas. Consulte [consideraciones y limitaciones](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/emr-serverless-lf-enable-considerations.html) para obtener más información. | 
| Procedimientos almacenados | - | Se admite para tablas que cumplen las siguientes condiciones:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/emr/latest/EMR-Serverless-UserGuide/emr-serverless-lf-enable.html) | 

**Configuración de Spark para Iceberg:** en el siguiente ejemplo, se muestra cómo configurar Spark con Iceberg. Para ejecutar trabajos de Iceberg, debe proporcionar las siguientes propiedades `spark-submit`.

```
--conf spark.sql.catalog.spark_catalog=org.apache.iceberg.spark.SparkSessionCatalog
--conf spark.sql.catalog.spark_catalog.warehouse=<{{S3_DATA_LOCATION}}>
--conf spark.sql.catalog.spark_catalog.glue.account-id=<{{ACCOUNT_ID}}>
--conf spark.sql.catalog.spark_catalog.client.region=<{{REGION}}>
--conf spark.sql.catalog.spark_catalog.glue.endpoint=https://glue.<{{REGION}}>.amazonaws.com
```

------
#### [ Hudi ]


| Operación | AWS Lake Formation permisos | Estado de Support | 
| --- | --- | --- | 
| SELECT | SELECT |  compatible | 
| CREATE TABLE | CREATE\_TABLE | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| CREATE TABLE LIKE | CREATE\_TABLE | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| CREATE TABLE AS SELECT | - | No compatible | 
| DESCRIBE TABLE | DESCRIBE | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| SHOW TBLPROPERTIES | DESCRIBE | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| SHOW COLUMNS | DESCRIBE | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| SHOW CREATE TABLE | DESCRIBE | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| ALTER TABLE | SELECT | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| INSERT INTO | SELECCIONE y ALTERE | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| INSERT OVERWRITE | SELECCIONE y ALTERE | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| DELETE | - | No compatible | 
| UPDATE | - | No compatible | 
| MERGE INTO | - | No compatible | 
| DROP TABLE | SELECCIONE y DESCARTE | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| DataFrame Escritor V1 | - | No compatible | 
| DataFrame Escritor V2 | Igual que la operación SQL correspondiente | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| Tabla de metadatos | - | No compatible | 
| Características de mantenimiento y utilidad de la tabla | - | No compatible | 

En los siguientes ejemplos, se configura Spark con Hudi y se especifican las ubicaciones de los archivos y otras propiedades necesarias para su uso.

**Configuración de Spark para Hudi:** cuando se usa en un cuaderno, este fragmento especifica la ruta al archivo JAR de la agrupación de Hudi Spark que habilita la funcionalidad de Hudi en Spark. También configura Spark para que utilice el catálogo de datos de AWS Glue como metaalmacén.

```
%%configure -f
{
    "conf": {
        "spark.jars": "/usr/lib/hudi/hudi-spark-bundle.jar",
        "spark.hadoop.hive.metastore.client.factory.class": "com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory",
        "spark.serializer": "org.apache.spark.serializer.JavaSerializer",
        "spark.sql.catalog.spark_catalog": "org.apache.spark.sql.hudi.catalog.HoodieCatalog",
        "spark.sql.extensions": "org.apache.spark.sql.hudi.HoodieSparkSessionExtension"
    }
}
```

**Configuración de Spark para Hudi con AWS Glue:** este fragmento, cuando se usa en un cuaderno, habilita a Hudi como un formato de lago de datos compatible y garantiza que las bibliotecas y dependencias de Hudi estén disponibles.

```
%%configure
{
    "--conf": "spark.serializer=org.apache.spark.serializer.JavaSerializer --conf 
spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog --conf 
spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension",
    "--datalake-formats": "hudi",
    "--enable-glue-datacatalog": True,
    "--enable-lakeformation-fine-grained-access": "true"
}
```

------
#### [ Delta Lake ]


| Operación | AWS Lake Formation permisos | Estado de Support | 
| --- | --- | --- | 
| SELECT | SELECT |  compatible | 
| CREATE TABLE | CREATE\_TABLE |  compatible | 
| CREATE TABLE LIKE | - | No compatible | 
| CREATE TABLE AS SELECT | CREATE\_TABLA |  compatible  | 
| REEMPLAZAR LA TABLA COMO SELECCIONADA | SELECCIONAR, INSERTAR y ALTERAR |  compatible | 
| DESCRIBE TABLE | DESCRIBE | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| SHOW TBLPROPERTIES | DESCRIBE | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| SHOW COLUMNS | DESCRIBE | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| SHOW CREATE TABLE | DESCRIBE | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| ALTER TABLE | SELECCIONE e INSERTE  |  compatible  | 
| ALTER TABLE SET LOCATION | SELECCIONAR e INSERTAR  | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| ALTERE EL tablename CLÚSTER DE TABLAS MEDIANTE | SELECCIONAR e INSERTAR | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| ALTERAR LA TABLA Y tablename AÑADIR UNA RESTRICCIÓN | SELECCIONAR e INSERTAR | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| ALTERE LA RESTRICCIÓN DE ELIMINACIÓN DE tablename TABLAS | SELECCIONAR e INSERTAR | Compatible con los permisos de IAM en la ubicación de Amazon S3 | 
| INSERT INTO | SELECCIONE e INSERTE |  compatible | 
| INSERT OVERWRITE | SELECCIONAR e INSERTAR |  compatible | 
| DELETE | SELECCIONAR e INSERTAR |  compatible | 
| UPDATE | SELECCIONAR e INSERTAR |  compatible | 
| MERGE INTO | SELECCIONAR e INSERTAR |  compatible | 
| DROP TABLE | SELECCIONAR, BORRAR y SOLTAR |  compatible | 
| DataFrame Escritor V1 | - | No compatible | 
| DataFrame Escritor V2 | Igual que la operación SQL correspondiente |  compatible  | 
| Características de mantenimiento y utilidad de la tabla | - | No compatible | 

**EMR sin servidor con Delta Lake:** para utilizar Delta Lake con Lake Formation en EMR sin servidor, ejecute el siguiente comando:

```
spark-sql \
  --conf spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension,com.amazonaws.emr.recordserver.connector.spark.sql.RecordServerSQLExtension \
  --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog \
```

------