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:
-
Use o crawler do AWS Glue para tabelas Delta Lake. Para obter mais informações, consulte Introdução de compatibilidade com tabelas nativas do Delta Lake com crawlers doAWS Glue
no blog sobre AWS Big Data e Agendar um crawler no AWS Glue 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
-
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
Abra o console do Athena em https://console.aws.amazon.com/athena/
. -
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 tipoarray<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') Abra o console do AWS Glue em https://console.aws.amazon.com/glue/
. -
No painel de navegação, escolha Catálogo de dados, Tabelas.
-
Na lista de tabelas, escolha o link da sua tabela.
-
Na página da tabela, escolha Ações, Editar tabela.
-
Na seção Parâmetros do Serde, adicione a chave
path
com o valors3://amzn-s3-demo-bucket/
.your-folder
/ -
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" } }'