Categorias:

Funções do sistema (Informações do sistema)

SYSTEM$GET_ICEBERG_TABLE_INFORMATION

Retorna o local do arquivo de metadados raiz e o status do instantâneo mais recente para uma tabela Apache Iceberg™.

A função SYSTEM$GET_ICEBERG_TABLE_INFORMATION funciona de forma diferente de acordo com o tipo de tabela:

  • Para uma tabela Iceberg que usa Snowflake como catálogo, chamar a função gera metadados para operações de linguagem de manipulação de dados (DML) ou outras atualizações de tabela que ocorreram desde a última vez que o Snowflake gerou metadados para a tabela.

    Se não houver atualizações, a função retornará a localização do arquivo de metadados mais recente, mas não gerará novos metadados.

  • Para uma tabela Iceberg que não é gerenciada pelo Snowflake, a função retorna informações sobre o instantâneo atualizado mais recente.

Sintaxe

SYSTEM$GET_ICEBERG_TABLE_INFORMATION('<iceberg_table_name>')
Copy

Argumentos

'iceberg_table_name'

O nome da tabela Iceberg para a qual você deseja recuperar informações. O nome da tabela é uma cadeia de caracteres, portanto, deve ser delimitada por aspas simples.

  • Se o nome da tabela Iceberg for totalmente qualificado, como '<db>.<schema>.<iceberg_table_name>', o nome inteiro deverá ser colocado entre aspas simples, incluindo o banco de dados e o esquema.

  • Se o nome da tabela Iceberg diferenciar letras maiúsculas e minúsculas ou incluir quaisquer caracteres ou espaços especiais, as aspas duplas são necessárias para processar o caso/caracteres. As aspas duplas devem ser incluídas dentro das aspas simples, por exemplo, '"<case_sensitive_iceberg_table_name>"'.

Retornos

A função retorna um objeto JSON contendo os seguintes pares nome/valor:

{«metadataLocation»:»<valor>»,»status»:»<valor>»}

Onde:

metadataLocation

Local do arquivo de metadados raiz atualizado ou recuperado pela função.

status

Status da operação. Este campo retorna uma mensagem de sucesso ou falha.

Notas de uso

  • Chamar esta função requer uma função que tenha o privilégio OWNERSHIP na tabela Iceberg.

  • A chamada desta função não é compatível com tabelas Iceberg que usam armazenamento compatível com S3.

Exemplos

Gere um instantâneo para a tabela Iceberg it1 no esquema db1.schema1:

SELECT SYSTEM$GET_ICEBERG_TABLE_INFORMATION('db1.schema1.it1');
Copy

Saída:

+-----------------------------------------------------------------------------------------------------------+
| SYSTEM$GET_ICEBERG_TABLE_INFORMATION('DB1.SCHEMA1.IT1')                                                   |
|-----------------------------------------------------------------------------------------------------------|
| {"metadataLocation":"s3://mybucket/metadata/v1.metadata.json","status":"success"}                         |
+-----------------------------------------------------------------------------------------------------------+