

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usando o EMR Serverless com para controle de acesso refinado AWS Lake Formation
<a name="emr-serverless-lf-enable"></a>

## Visão geral do
<a name="emr-serverless-lf-enable-overview"></a>

Com as versões 7.2.0 e superiores do Amazon EMR, aproveite AWS Lake Formation para aplicar controles de acesso refinados em tabelas do catálogo de dados que são apoiadas pelo S3. Esse recurso permite configurar controles de acesso em nível de tabela, linha, coluna e célula para consultas de read nos trabalhos do Spark no Amazon EMR Sem Servidor. Para configurar um controle de acesso refinado para trabalhos em lote e sessões interativas do Apache Spark, use o EMR Studio. Consulte as seções a seguir para saber mais sobre o Lake Formation e como usá-lo com o EMR Sem Servidor.

O uso do Amazon EMR Serverless incorre em cobranças adicionais. AWS Lake Formation Para obter mais informações, consulte [Preço do Amazon EMR](https://aws.amazon.com/emr/pricing/).

## Como o EMR Serverless funciona com AWS Lake Formation
<a name="emr-serverless-lf-enable-how-it-works"></a>

Usar o EMR Sem Servidor com o Lake Formation permite impor uma camada de permissões em cada trabalho do Spark para aplicar o controle de permissões do Lake Formation quando o EMR Sem Servidor executa trabalhos. O EMR Sem Servidor usa [perfis de recursos do Spark](https://spark.apache.org/docs/latest/api/java/org/apache/spark/resource/ResourceProfile.html) para criar dois perfis que executam trabalhos com eficiência. O perfil do usuário executa o código fornecido pelo usuário, enquanto o perfil do sistema impõe as políticas do Lake Formation. Para obter mais informações, consulte [O que é AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html) e [Considerações e limitações](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/emr-serverless-lf-enable-considerations.html).

Ao usar a capacidade pré-inicializada com o Lake Formation, sugerimos que você tenha no mínimo dois drivers do Spark. Cada trabalho habilitado para o Lake Formation utiliza dois drivers do Spark, um para o perfil do usuário e outro para o perfil do sistema. Para obter a melhor performance, use o dobro do número de drivers para trabalhos habilitados para o Lake Formation em comparação com aqueles que não usam o Lake Formation.

Ao executar trabalhos do Spark no EMR Sem Servidor, considere também o impacto da alocação dinâmica no gerenciamento de recursos e na performance do cluster. A configuração `spark.dynamicAllocation.maxExecutors` do número máximo de executores por perfil de recurso se aplica aos executores do usuário e do sistema. Se você configurar esse número para ser igual ao número máximo permitido de executores, a execução do trabalho poderá ficar paralisada devido a um tipo de executor que usa todos os recursos disponíveis, o que impede o outro executor ao executar trabalhos.

Para que você não fique sem recursos, o EMR Sem Servidor define o número máximo padrão de executores por perfil de recurso como 90% do valor de `spark.dynamicAllocation.maxExecutors`. Você pode substituir essa configuração ao especificar `spark.dynamicAllocation.maxExecutorsRatio` com um valor entre 0 e 1. Além disso, configure as seguintes propriedades para otimizar a alocação de recursos e a performance geral:
+ `spark.dynamicAllocation.cachedExecutorIdleTimeout`
+ `spark.dynamicAllocation.shuffleTracking.timeout`
+ `spark.cleaner.periodicGC.interval`

Confira a seguir uma visão geral de alto nível sobre como o EMR Sem Servidor obtém acesso aos dados protegidos pelas políticas de segurança do Lake Formation.

![Como o Amazon EMR acessa dados protegidos por meio de políticas de segurança do Lake Formation.](http://docs.aws.amazon.com/pt_br/emr/latest/EMR-Serverless-UserGuide/images/lf-emr-s-architecture.png)


1. Um usuário envia uma tarefa do Spark para um aplicativo AWS Lake Formation EMR Serverless habilitado. 

1. O EMR Sem Servidor envia o trabalho para um driver de usuário e executa o trabalho no perfil do usuário. O driver do usuário executa uma versão enxuta do Spark que não tem a capacidade de iniciar tarefas, solicitar executores, acessar o S3 ou o Glue Catalog. Ele cria um plano de trabalho.

1. O EMR Sem Servidor configura um segundo driver chamado driver do sistema e o executa no perfil do sistema (com uma identidade privilegiada). O EMR Sem Servidor configura um canal TLS criptografado entre os dois drivers para comunicação. O driver do usuário usa o canal para enviar os planos de trabalho ao driver do sistema. O driver do sistema não executa o código enviado pelo usuário. Ele executa o Spark completo e se comunica com o S3 e com o Data Catalog para acesso aos dados. Ele solicita executores e compila o plano de trabalho em uma sequência de estágios de execução. 

1. Em seguida, o EMR Sem Servidor executa os estágios nos executores com o driver do usuário ou o driver do sistema. O código do usuário em qualquer estágio é executado exclusivamente nos executores do perfil do usuário.

1. Os estágios que lêem dados das tabelas do Catálogo de Dados protegidas por AWS Lake Formation ou que aplicam filtros de segurança são delegados aos executores do sistema.

## Como habilitar o Lake Formation no Amazon EMR
<a name="emr-serverless-lf-enable-config"></a>

Para habilitar o Lake Formation, defina `spark.emr-serverless.lakeformation.enabled` como `true` na classificação `spark-defaults` do parâmetro de configuração de runtime ao [criar uma aplicação do EMR Sem 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"
```

Você também pode habilitar o Lake Formation ao criar uma aplicação no EMR Studio. Escolha **Usar Lake Formation para um controle de acesso refinado**, disponível em **Configurações adicionais**.

A [criptografia entre trabalhadores](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/interworker-encryption.html) é habilitada por padrão ao usar o Lake Formation com o EMR Sem Servidor, então você não precisa habilitar explicitamente a criptografia entre trabalhadores novamente.

**Como habilitar o Lake Formation para trabalhos no Spark**

Para habilitar o Lake Formation em trabalhos individuais do Spark, defina `spark.emr-serverless.lakeformation.enabled` como verdadeiro ao usar `spark-submit`.

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

## Permissões do IAM do perfil de runtime do trabalho
<a name="emr-serverless-lf-enable-permissions"></a>

As permissões do Lake Formation controlam o acesso aos recursos do AWS Glue Data Catalog, aos locais do Amazon S3 e aos dados subjacentes nesses locais. As permissões do IAM controlam o acesso ao Lake Formation, ao AWS Glue APIs e aos recursos. Embora você possa ter a permissão do Lake Formation para acessar uma tabela no Data Catalog (SELECT), a operação falhará se você não tiver a permissão do IAM na operação de API `glue:Get*`. 

Confira a seguir um exemplo de política de como fornecer permissões do IAM para acesso a um script no S3, upload de logs no S3, permissões da API do AWS Glue e permissão para acessar o 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": [
        "*"
      ]
    }
  ]
}
```

------

## Configuração de permissões do Lake Formation para perfil de runtime do trabalho
<a name="emr-serverless-lf-enable-set-up-grants-for-role"></a>

Primeiro, registre a localização da tabela do Hive no Lake Formation. Em seguida, crie permissões para o perfil de runtime do trabalho na tabela desejada. Para obter mais detalhes sobre Lake Formation, consulte [O que é AWS Lake Formation?](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html) no *Guia do AWS Lake Formation desenvolvedor*.

Depois de configurar as permissões do Lake Formation, envie trabalhos do Spark no Amazon EMR Sem Servidor. Para obter mais informações sobre os trabalhos do Spark, consulte os [Exemplos do Spark](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/jobs-spark.html#spark-examples).

## Envio da execução de um trabalho
<a name="emr-serverless-lf-enable-submit-job"></a>

Depois de concluir a configuração das concessões do Lake Formation, você pode [enviar trabalhos do Spark no EMR Sem Servidor](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/jobs-spark.html#spark-examples). A seção a seguir mostra exemplos de como configurar e enviar propriedades de execução de trabalho.

## Requisitos de permissão
<a name="emr-serverless-lf-enable-otf-permissions"></a>

### Tabelas não registradas em AWS Lake Formation
<a name="emr-s-lf-otf-permissions"></a>

Para tabelas não registradas AWS Lake Formation, a função de tempo de execução do trabalho acessa o AWS Glue Data Catalog e os dados da tabela subjacente no Amazon S3. Isso exige que a função de tempo de execução do trabalho tenha as permissões apropriadas do IAM para as operações do AWS Glue e do Amazon S3. 

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

Para tabelas registradas com AWS Lake Formation, a função de tempo de execução do trabalho acessa os metadados do AWS Glue Data Catalog, enquanto as credenciais temporárias fornecidas pela Lake Formation acessam os dados da tabela subjacente no Amazon S3. As permissões do Lake Formation necessárias para executar uma operação dependem do AWS Glue Data Catalog e das chamadas de API do Amazon S3 iniciadas pelo trabalho do Spark e podem ser resumidas da seguinte forma:
+ A permissão **DESCRIBE** permite que a função de tempo de execução leia os metadados da tabela ou do banco de dados no Catálogo de Dados
+ A permissão **ALTER** permite que a função de tempo de execução modifique os metadados da tabela ou do banco de dados no Catálogo de Dados
+ A permissão **DROP** permite que a função de tempo de execução exclua metadados da tabela ou do banco de dados do Catálogo de Dados
+ A permissão **SELECT** permite que a função de tempo de execução leia dados da tabela do Amazon S3
+ A permissão **INSERT** permite que a função de tempo de execução grave dados de tabela no Amazon S3
+ A permissão **DELETE** permite que a função de tempo de execução exclua dados da tabela do Amazon S3
**nota**  
O Lake Formation avalia as permissões preguiçosamente quando um trabalho do Spark chama o AWS Glue para recuperar os metadados da tabela e o Amazon S3 para recuperar os dados da tabela. Trabalhos que usam uma função de tempo de execução com permissões insuficientes não falharão até que o Spark faça uma chamada ao AWS Glue ou ao Amazon S3 que exija a permissão ausente.

**nota**  
Na seguinte matriz de tabela suportada:   
As operações marcadas como **Suportadas** usam exclusivamente as credenciais do Lake Formation para acessar os dados das tabelas registradas no Lake Formation. Se as permissões do Lake Formation forem insuficientes, a operação não retornará às credenciais da função de tempo de execução. Para tabelas não registradas no Lake Formation, as credenciais da função de tempo de execução do trabalho acessam os dados da tabela.
As operações marcadas como **compatíveis com permissões do IAM na localização do Amazon S3** não usam as credenciais do Lake Formation para acessar os dados da tabela subjacente no Amazon S3. Para executar essas operações, a função de tempo de execução do trabalho deve ter as permissões necessárias do Amazon S3 IAM para acessar os dados da tabela, independentemente de a tabela estar registrada no Lake Formation.

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


| Operation | AWS Lake Formation permissões | Status do suporte | 
| --- | --- | --- | 
| SELECT | SELECT | Compatível | 
| CRIAR TABELA | CRIAR\_TABELA | Compatível | 
| CREATE TABLE LIKE | CRIAR\_TABELA | Compatível com permissões do IAM na localização do Amazon S3 | 
| CRIAR TABELA COMO SELEÇÃO | CRIAR\_TABELA | Compatível com permissões do IAM na localização do Amazon S3 | 
| DESCRIBE TABLE | DESCRIBE | Compatível | 
| SHOW TBLPROPERTIES | DESCRIBE | Compatível | 
| SHOW COLUMNS | DESCRIBE | Compatível | 
| SHOW PARTITIONS | DESCRIBE | Compatível | 
| SHOW CREATE TABLE | DESCRIBE | Compatível | 
| ALTERAR TABELA tablename | SELECIONAR e ALTERAR | Compatível | 
| ALTERAR LOCALIZAÇÃO DO tablename CONJUNTO DE TABELAS | - | Não compatível | 
| ALTERAR TABELA tablename ADICIONAR PARTIÇÃO | SELECIONAR, INSERIR e ALTERAR | Compatível | 
| REPAIR TABLE | SELECIONAR e ALTERAR | Compatível | 
| CARREGAR DADOS |  | Não compatível | 
| INSERT | INSERIR e ALTERAR | Compatível | 
| INSERT OVERWRITE | SELECIONAR, INSERIR, EXCLUIR e ALTERAR | Compatível | 
| DESCARTAR TABELA | SELECIONAR, DESCARTAR, EXCLUIR e ALTERAR | Compatível | 
| TRUNCATE TABLE | SELECIONAR, INSERIR, EXCLUIR e ALTERAR | Compatível | 
| Gravador de quadros de dados V1 | Igual à operação SQL correspondente | Compatível ao anexar dados a uma tabela existente. Consulte [considerações e limitações](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/emr-serverless-lf-enable-considerations.html) para obter mais informações | 
| Gravador de quadros de dados V2 | Igual à operação SQL correspondente | Compatível ao anexar dados a uma tabela existente. Consulte [considerações e limitações](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/emr-serverless-lf-enable-considerations.html) para obter mais informações | 

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


| Operation | AWS Lake Formation permissões | Status do suporte | 
| --- | --- | --- | 
| SELECT | SELECT | Compatível | 
| CRIAR TABELA | CRIAR\_TABELA | Compatível | 
| CREATE TABLE LIKE | CRIAR\_TABELA | Compatível com permissões do IAM na localização do Amazon S3 | 
| CRIAR TABELA COMO SELEÇÃO | CRIAR\_TABELA | Compatível com permissões do IAM na localização do Amazon S3 | 
| SUBSTITUA A TABELA CONFORME SELECIONADO | SELECIONAR, INSERIR e ALTERAR | Compatível | 
| DESCRIBE TABLE | DESCRIBE | Compatível com permissões do IAM na localização do Amazon S3 | 
| SHOW TBLPROPERTIES | DESCRIBE | Compatível com permissões do IAM na localização do Amazon S3 | 
| SHOW CREATE TABLE | DESCRIBE | Compatível com permissões do IAM na localização do Amazon S3 | 
| ALTER TABLE | SELECIONAR, INSERIR e ALTERAR | Compatível  | 
| ALTER TABLE SET LOCATION | SELECIONAR, INSERIR e ALTERAR | Compatível com permissões do IAM na localização do Amazon S3 | 
| ALTERAR A GRAVAÇÃO DA TABELA ORDENADA POR | SELECIONAR, INSERIR e ALTERAR | Compatível com permissões do IAM na localização do Amazon S3 | 
| ALTERE A GRAVAÇÃO DA TABELA DISTRIBUÍDA POR | SELECIONAR, INSERIR e ALTERAR | Compatível com permissões do IAM na localização do Amazon S3 | 
| ALTERAR TABELA RENOMEAR TABELA | CREATE\_TABLE e DROP | Compatível | 
| INSERT INTO | SELECIONAR, INSERIR e ALTERAR | Compatível | 
| INSERT OVERWRITE | SELECIONAR, INSERIR e ALTERAR | Compatível | 
| DELETE | SELECIONAR, INSERIR e ALTERAR | Compatível | 
| UPDATE | SELECIONAR, INSERIR e ALTERAR | Compatível | 
| MERGE INTO | SELECIONAR, INSERIR e ALTERAR | Compatível | 
| DESCARTAR TABELA | SELECIONAR, EXCLUIR e SOLTAR | Compatível | 
| DataFrame Escritor V1 | - | Não compatível | 
| DataFrame Escritor V2 | Igual à operação SQL correspondente | Compatível ao anexar dados a uma tabela existente. Consulte as [considerações e limitações](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/emr-serverless-lf-enable-considerations.html) para obter mais informações. | 
| Tabelas de metadados | SELECT | Compatível. Certas tabelas estão ocultas. Consulte as [considerações e limitações](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/emr-serverless-lf-enable-considerations.html) para obter mais informações. | 
| Procedimentos armazenados | - | Compatível com tabelas que atendam às seguintes condições:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/emr/latest/EMR-Serverless-UserGuide/emr-serverless-lf-enable.html) | 

**Configuração do Spark para o Iceberg:** o exemplo a seguir mostra como configurar o Spark com o Iceberg. Para executar trabalhos do Iceberg, é necessário fornecer as propriedades `spark-submit` a seguir.

```
--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 ]


| Operation | AWS Lake Formation permissões | Status do suporte | 
| --- | --- | --- | 
| SELECT | SELECT | Compatível | 
| CRIAR TABELA | CRIAR\_TABELA | Compatível com permissões do IAM na localização do Amazon S3 | 
| CREATE TABLE LIKE | CRIAR\_TABELA | Compatível com permissões do IAM na localização do Amazon S3 | 
| CRIAR TABELA COMO SELEÇÃO | - | Não compatível | 
| DESCRIBE TABLE | DESCRIBE | Compatível com permissões do IAM na localização do Amazon S3 | 
| SHOW TBLPROPERTIES | DESCRIBE | Compatível com permissões do IAM na localização do Amazon S3 | 
| SHOW COLUMNS | DESCRIBE | Compatível com permissões do IAM na localização do Amazon S3 | 
| SHOW CREATE TABLE | DESCRIBE | Compatível com permissões do IAM na localização do Amazon S3 | 
| ALTER TABLE | SELECT | Compatível com permissões do IAM na localização do Amazon S3 | 
| INSERT INTO | SELECIONAR e ALTERAR | Compatível com permissões do IAM na localização do Amazon S3 | 
| INSERT OVERWRITE | SELECIONAR e ALTERAR | Compatível com permissões do IAM na localização do Amazon S3 | 
| DELETE | - | Não compatível | 
| UPDATE | - | Não compatível | 
| MERGE INTO | - | Não compatível | 
| DESCARTAR TABELA | SELECIONAR e SOLTAR | Compatível com permissões do IAM na localização do Amazon S3 | 
| DataFrame Escritor V1 | - | Não compatível | 
| DataFrame Escritor V2 | Igual à operação SQL correspondente | Compatível com permissões do IAM na localização do Amazon S3 | 
| Tabelas de metadados | - | Não compatível | 
| Manutenção de tabelas e recursos utilitários | - | Não compatível | 

As amostras a seguir configuram o Spark com o Hudi, especificando os locais dos arquivos e outras propriedades necessárias para o uso.

**Configuração do Spark para Hudi:** quando usado em um notebook, esse trecho especifica o caminho para o arquivo JAR do pacote Hudi Spark, que habilita a funcionalidade Hudi no Spark. Ele também configura o Spark para usar o AWS Glue Data Catalog como metastore.

```
%%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"
    }
}
```

**Configuração do Spark para Hudi with AWS Glue:** esse trecho, quando usado em um notebook, habilita o Hudi como um formato de lago de dados compatível e garante que as bibliotecas e dependências do Hudi estejam disponíveis.

```
%%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 ]


| Operation | AWS Lake Formation permissões | Status do suporte | 
| --- | --- | --- | 
| SELECT | SELECT | Compatível | 
| CRIAR TABELA | CRIAR\_TABELA | Compatível | 
| CREATE TABLE LIKE | - | Não compatível | 
| CRIAR TABELA COMO SELEÇÃO | CRIAR\_TABELA | Compatível  | 
| SUBSTITUA A TABELA CONFORME SELECIONADO | SELECIONAR, INSERIR e ALTERAR | Compatível | 
| DESCRIBE TABLE | DESCRIBE | Compatível com permissões do IAM na localização do Amazon S3 | 
| SHOW TBLPROPERTIES | DESCRIBE | Compatível com permissões do IAM na localização do Amazon S3 | 
| SHOW COLUMNS | DESCRIBE | Compatível com permissões do IAM na localização do Amazon S3 | 
| SHOW CREATE TABLE | DESCRIBE | Compatível com permissões do IAM na localização do Amazon S3 | 
| ALTER TABLE | SELECIONAR e INSERIR  | Compatível  | 
| ALTER TABLE SET LOCATION | SELECIONAR e INSERIR  | Compatível com permissões do IAM na localização do Amazon S3 | 
| ALTERAR tablename AGRUPAMENTO DE TABELAS POR | SELECIONAR e INSERIR | Compatível com permissões do IAM na localização do Amazon S3 | 
| ALTERAR TABELA tablename ADICIONAR RESTRIÇÃO | SELECIONAR e INSERIR | Compatível com permissões do IAM na localização do Amazon S3 | 
| ALTERAR RESTRIÇÃO DE tablename ELIMINAÇÃO DE TABELAS | SELECIONAR e INSERIR | Compatível com permissões do IAM na localização do Amazon S3 | 
| INSERT INTO | SELECIONAR e INSERIR | Compatível | 
| INSERT OVERWRITE | SELECIONAR e INSERIR | Compatível | 
| DELETE | SELECIONAR e INSERIR | Compatível | 
| UPDATE | SELECIONAR e INSERIR | Compatível | 
| MERGE INTO | SELECIONAR e INSERIR | Compatível | 
| DESCARTAR TABELA | SELECIONAR, EXCLUIR e SOLTAR | Compatível | 
| DataFrame Escritor V1 | - | Não compatível | 
| DataFrame Escritor V2 | Igual à operação SQL correspondente | Compatível  | 
| Manutenção de tabelas e recursos utilitários | - | Não compatível | 

**EMR Sem Servidor com Delta Lake:** Para usar o Delta Lake com o Lake Formation no EMR Sem Servidor, execute o comando a seguir:

```
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 \
```

------