

# Sincronizar metadados do Delta Lake
<a name="delta-lake-tables-syncing-metadata"></a>

O Athena sincroniza os metadados da tabela, incluindo o esquema, as colunas com partições e as propriedades da tabela, para o AWS Glue se você usar o Athena para criar a tabela Delta Lake. Com o passar do tempo, esses metadados podem perder a sincronização com os metadados da tabela subjacente no log de transações. Para manter a tabela atualizada, escolha uma das seguintes opções:
+ Use o crawler do AWS Glue para tabelas Delta Lake. Para obter mais informações, consulte [Introducing native Delta Lake table support with AWS Glue crawlers](https://aws.amazon.com/blogs/big-data/introducing-native-delta-lake-table-support-with-aws-glue-crawlers/) no *Blog do AWS Big Data* e [Programar um crawler do AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/schedule-crawler.html) no Guia do desenvolvedor do AWS Glue.
+ Solte e recrie a tabela no Athena.
+ Use o SDK, a CLI ou o console do AWS Glue para atualizar manualmente o esquema no AWS Glue.

Observe que os recursos a seguir exigem que seu esquema do AWS Glue sempre tenha o mesmo esquema do log de transações:
+ Lake Formation
+ Visualizações
+ Filtros de linha e coluna

Se o seu fluxo de trabalho não exigir nenhuma dessas funcionalidades e você preferir não manter essa compatibilidade, pode usar o DDL `CREATE TABLE` no Athena e depois adicionar o caminho do Amazon S3 como um parâmetro SerDe no AWS Glue.

## Criar uma tabela do Delta Lake usando os consoles do Athena e do AWS Glue
<a name="delta-lake-tables-syncing-metadata-console"></a>

Você pode usar o procedimento a seguir para criar uma tabela do Delta Lake com os consoles do Athena e do AWS Glue.

**Para criar uma tabela Delta Lake usando o Athena e consoles do AWS Glue**

1. Abra o console do Athena em [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. No editor de consultas do Athena, use o seguinte DDL para criar sua tabela Delta Lake. Observe que, ao usar esse método, o valor de `TBLPROPERTIES` deve ser `'spark.sql.sources.provider' = 'delta'`, e não`'table_type' = 'delta'`.

   Observe que esse mesmo esquema (com uma única coluna chamada `col` de tipo `array<string>`) é inserido quando você usa o Apache Spark (Athena para Apache Spark) ou a maioria dos outros mecanismos para criar sua tabela.

   ```
   CREATE EXTERNAL TABLE
      [db_name.]table_name(col array<string>)
      LOCATION 's3://amzn-s3-demo-bucket/your-folder/'
      TBLPROPERTIES ('spark.sql.sources.provider' = 'delta')
   ```

1. Abra o console do AWS Glue em [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. No painel de navegação, escolha **Catálogo de dados**, **Tabelas**.

1. Na lista de tabelas, escolha o link da sua tabela.

1. Na página da tabela, escolha **Ações**, **Editar tabela**.

1. Na seção **Parâmetros do Serde**, adicione a chave **path** com o valor **s3://amzn-s3-demo-bucket/*your-folder*/**.

1. Escolha **Salvar**.

## Criar uma tabela do Delta Lake usando a AWS CLI
<a name="delta-lake-tables-syncing-metadata-cli"></a>

Para criar uma tabela do Delta Lake usando a AWS CLI, insira um comando como o que se segue.

```
aws glue create-table --database-name dbname \
    --table-input '{"Name" : "tablename", "StorageDescriptor":{
            "Columns" : [
                {
                    "Name": "col",
                    "Type": "array<string>"
                }
            ],
            "Location" : "s3://amzn-s3-demo-bucket/<prefix>/",
            "SerdeInfo" : {
                "Parameters" : {
                    "serialization.format" : "1",
                    "path" : "s3://amzn-s3-demo-bucket/<prefix>/"
                }
            }
        },
        "PartitionKeys": [],
        "TableType": "EXTERNAL_TABLE",
        "Parameters": {
            "EXTERNAL": "TRUE",
            "spark.sql.sources.provider": "delta"
        }
    }'
```