Sincronizar metadados do Delta Lake - Amazon Athena

Sincronizar metadados do Delta Lake

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:

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

  • Visõ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.

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/.

  2. 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')
  3. Abra o console do AWS Glue em https://console.aws.amazon.com/glue/.

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

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

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

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

  8. Escolha Salvar.

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" } }'