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 Introducing native Delta Lake table support with AWS Glue crawlers
no Blog do AWS Big Data e Programar um crawler do 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
-
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.
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
TBLPROPERTIESdeve ser'spark.sql.sources.provider' = 'delta', e não'table_type' = 'delta'.Observe que esse mesmo esquema (com uma única coluna chamada
colde 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
pathcom 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" } }'