Categorias:

Funções de métricas de dados

FRESHNESS (função de métricas de dados do sistema)

Retorna quanto tempo em segundos se passou desde a última modificação de uma tabela.

Quando um argumento de coluna é especificado, o período é calculado comparando a execução atual da função com o valor máximo de uma coluna de carimbo de data/hora. Se o horário agendado para executar a função for diferente do horário em que ela realmente foi executada, o horário agendado será usado para a comparação.

Quando nenhuma coluna é especificada, o período é calculado comparando a execução atual da função com a última vez que um comando DML atuou na tabela. Se o horário agendado para executar a função for diferente do horário em que ela realmente foi executada, o horário agendado será usado para a comparação.

Este tópico fornece a sintaxe para chamar a função diretamente. Para saber como associar a função a uma tabela ou visualização para que seja executada em intervalos regulares, consulte Associe uma DMF para automatizar as verificações de qualidade dos dados.

Sintaxe

SNOWFLAKE.CORE.FRESHNESS( [ <query> ] )
Copy

Argumentos

query

Se especificado, a consulta deve projetar uma única coluna de carimbo de data/hora.

Se você não quiser especificar uma coluna, associe a função a uma tabela em vez de chamá-la diretamente.

Tipos de dados permitidos

A coluna projetada pela query deve ter um dos seguintes tipos de dados:

  • DATE

  • TIMESTAMP_LTZ

  • TIMESTAMP_TZ

Retornos

A função retorna um valor escalar com um tipo de dados NUMBER.

Requisitos de controle de acesso

Associar e executar um DMF do sistema requer o privilégio USAGE no DMF do sistema. Você pode conceder a função de banco de dados SNOWFLAKE.DATA_METRIC_USER para fornecer aos usuários o privilégio USAGE em todos os DMFs do sistema. Para obter mais informações, consulte Concessão do privilégio USAGE em DMFs do sistema.

Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.

Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.

Notas de uso

  • Especifique um argumento de coluna se quiser associar essa função a uma exibição ou tabela externa.

  • Essa função poderá ser chamada diretamente somente se você especificar uma consulta que projete uma coluna de carimbo de data/hora. Se você quiser associar a função a uma tabela ou exibição para que ela seja executada em intervalos regulares com ou sem um argumento de coluna, consulte Associe uma DMF para automatizar as verificações de qualidade dos dados.

Exemplo

Associe a função à tabela t1 para determinar quanto tempo se passou desde a última operação DML na tabela:

ALTER TABLE t1
  ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.FRESHNESS on ();
Copy

Chame a função diretamente para determinar a atualização dos dados, 300 segundos ou 5 minutos, na tabela, medindo a coluna TIMESTAMP:

SELECT SNOWFLAKE.CORE.FRESHNESS(
  SELECT
    timestamp
  FROM hr.tables.empl_info
) < 300;
Copy
+---------------------------------------------------------------------+
| SNOWFLAKE.CORE.FRESHNESS(SELECT timestamp FROM hr.tables.empl_info) |
+---------------------------------------------------------------------+
| True                                                                |
+---------------------------------------------------------------------+