Categorias:

Information Schema , Funções de tabela

DYNAMIC_TABLES

Esta função de tabela retorna metadados sobre tabelas dinâmicas, incluindo métricas de atraso agregadas e o status das atualizações mais recentes, dentro de 7 dias do horário atual.

Sintaxe

DYNAMIC_TABLES (
  [ NAME => '<string>' ]
  [ , REFRESH_DATA_TIMESTAMP_START => <constant_expr> ]
  [ , RESULT_LIMIT => <integer> ]
  [ , INCLUDE_CONNECTED => { TRUE | FALSE } ]
)
Copy

Argumentos

Todos os argumentos são opcionais. Se nenhum argumento for fornecido, serão retornadas 100 atualizações de todas as tabelas dinâmicas da conta.

NAME => 'string'

O nome de uma tabela dinâmica.

Os nomes devem estar entre aspas simples e não diferenciam maiúsculas de minúsculas.

Você pode especificar o nome não qualificado (dynamic_table_name), o nome parcialmente qualificado (schema_name.dynamic_table_name) ou o nome totalmente qualificado (database_name.schema_name.dynamic_table_name).

Para obter mais informações sobre a resolução de nomes de objetos, consulte Resolução de nome de objeto.

A função retorna os metadados para esta tabela.

REFRESH_DATA_TIMESTAMP_START => constant_expr

Hora (em formato TIMESTAMP_LTZ) para calcular métricas relacionadas à meta de atraso da tabela dinâmica. Inclui todas as atualizações com LATEST_DATA_TIMESTAMP maior ou igual a REFRESH_DATA_TIMESTAMP_START.

Padrão: todas as atualizações no histórico de atualizações são mantidas por 7 dias.

RESULT_LIMIT => integer

Um número especificando o número máximo de linhas retornadas pela função.

Por padrão, a função retorna 100 linhas e os resultados são classificados pelo último estado de atualização concluído da tabela dinâmica na seguinte ordem, a menos que especificado de outra forma usando o argumento RESULT_LIMIT.

  1. FAILED

  2. UPSTREAM_FAILED

  3. SKIPPED

  4. SUCCEEDED

  5. CANCELED

Para classificar em uma ordem diferente, você deve fornecer um valor RESULT_LIMIT grande o suficiente (por exemplo, o valor máximo de um número inteiro assinado). Desde que RESULT_LIMIT exceda o número total de tabelas dinâmicas na conta, os resultados podem ser classificados usando uma cláusula ORDER BY.

Para aplicar um filtro nos resultados, especifique também um valor RESULT_LIMIT grande o suficiente para que o filtro seja aplicado em todas as tabelas dinâmicas.

Exemplos:

O exemplo a seguir classifica por uma ordem diferente de name e retorna 100 linhas:

SELECT * FROM TABLE(INFORMATION_SCHEMA.DYNAMIC_TABLES(result_limit => <max_value>)) ORDER BY name ASC LIMIT 100 ;
Copy

O exemplo a seguir classifica por uma ordem diferente de name e retorna todas as linhas:

SELECT * FROM TABLE(INFORMATION_SCHEMA.DYNAMIC_TABLES(result_limit => <max_value>)) ORDER BY name ASC ;
Copy

O exemplo a seguir filtra todas as tabelas dinâmicas com meta de atraso de 1 minuto, usa a classificação padrão e retorna todas as linhas:

SELECT * FROM TABLE(INFORMATION_SCHEMA.DYNAMIC_TABLES(result_limit => <max_value>)) WHERE TARGET_LAG_SEC = 60 ;
Copy

Intervalo: 1 a 10000

Padrão: 100.

INCLUDE_CONNECTED => { TRUE | FALSE }

Quando definido para TRUE, a função retorna metadados para todas as tabelas dinâmicas conectadas à tabela dinâmica especificada pelo argumento NAME.

Você deve especificar o argumento NAME, você não deve especificar o argumento RESULT_LIMIT.

Padrão: FALSE

Saída

A função retorna as seguintes colunas.

Para exibir essas colunas, é necessário usar uma função com o privilégio MONITOR. Caso contrário, a função retorna apenas um valor para NAME, SCHEMA_NAME, DATABASE_NAME e QUALIFIED_NAME. Para obter mais informações sobre privilégios de tabela dinâmica, consulte Privilégios para visualizar os metadados de uma tabela dinâmica.

Nome da coluna

Tipo de dados

Descrição

NAME

TEXT

Nome da tabela dinâmica.

SCHEMA_NAME

TEXT

Nome do esquema que contém a tabela dinâmica.

DATABASE_NAME

TEXT

Nome do banco de dados que contém a tabela dinâmica.

QUALIFIED_NAME

TEXT

Nome totalmente qualificado da tabela dinâmica.

TARGET_LAG_SEC

NUMBER

Tempo de atraso de destino em segundos da tabela dinâmica. Este é o valor especificado no parâmetro TARGET_LAG da tabela dinâmica.

TARGET_LAG_TYPE

TEXT

O tipo de meta de atraso. Isso pode ser o seguinte:

  • USER_DEFINED: determinado pelo parâmetro TARGET_LAG especificado para a tabela dinâmica.

  • DOWNSTREAM: inclui uma tabela dinâmica com uma meta de atraso DOWNSTREAM.

SCHEDULING_STATE

OBJECT

OBJECT consiste em:

  • STATE (TEXT): estado de agendamento (RUNNING ou SUSPENDED).

  • REASON_CODE (TEXT): especifica o código do motivo pelo qual a tabela dinâmica não está em execução.

  • REASON_MESSAGE (TEXT): descrição de texto do motivo pelo qual a tabela dinâmica não está em execução. Aplica-se somente se a tabela dinâmica não estiver no estado RUNNING.

  • SUSPENDED_ON (TIMESTAMP_LTZ): carimbo de data/hora quando a tabela dinâmica foi suspensa. Aplica-se somente se a tabela dinâmica estiver no estado SUSPENDED.

  • RESUMED_ON (TIMESTAMP_LTZ): carimbo de data/hora quando a tabela dinâmica foi retomada pela última vez. Aplica-se somente se a tabela dinâmica estiver no estado RUNNING.

MEAN_LAG_SEC

NUMBER

O tempo médio de atraso (em segundos) das atualizações desta tabela dinâmica.

MAXIMUM_LAG_SEC

NUMBER

O tempo máximo de atraso em segundos de atualizações para esta tabela dinâmica.

TIME_ABOVE_TARGET_LAG_SEC

NUMBER

O tempo em segundos no período de retenção ou desde a última alteração de configuração, quando o atraso real foi maior que o atraso alvo definido.

TIME_WITHIN_TARGET_LAG_RATIO

NUMBER

A proporção de tempo no período de retenção ou desde a última alteração de configuração, quando o atraso real está dentro do atraso alvo.

LATEST_DATA_TIMESTAMP

TIMESTAMP_LTZ

Carimbo de data/hora da última atualização bem-sucedida.

LAST_COMPLETED_REFRESH_STATE

TEXT

Status da última atualização encerrada da tabela dinâmica. Isso pode ser o seguinte:

  • SUCCEEDED: atualização concluída com sucesso.

  • FAILED: atualização falhou durante a execução.

  • UPSTREAM_FAILED: atualização não realizada devido a uma falha na atualização upstream.

  • CANCELLED: atualização foi cancelada antes da execução.

LAST_COMPLETED_REFRESH_STATE_CODE

TEXT

Código que representa o estado atual da atualização.

Se o LAST_COMPLETED_REFRESH_STATE for FAILED, esta coluna mostrará o código de erro associado à falha.

LAST_COMPLETED_REFRESH_STATE_MESSAGE

TEXT

Descrição do estado atual da atualização.

Se o LAST_COMPLETED_REFRESH_STATE for FAILED, esta coluna mostra a mensagem de erro associada à falha.

EXECUTING_REFRESH_QUERY_ID

TEXT

Se presente, isso representa o ID de consulta do trabalho de atualização. Se nulo, não há nenhuma tarefa de atualização em andamento.

Notas de uso

  • Ao chamar uma função de tabela do Information Schema, a sessão deve ter um esquema INFORMATION_SCHEMA em uso ou o nome da função deve ser totalmente qualificado. Para obter mais detalhes, consulte Snowflake Information Schema.

Exemplos

Recupere os nomes, informações de atraso e carimbos de data/hora dos dados da última atualização bem-sucedida para todas as tabelas dinâmicas conectadas à tabela dinâmica especificada.

SELECT
  name,
  target_lag_sec,
  mean_lag_sec,
  latest_data_timestamp
FROM
  TABLE (
    INFORMATION_SCHEMA.DYNAMIC_TABLES (
      NAME => 'mydb.myschema.mydt',
      INCLUDE_CONNECTED => TRUE
    )
  )
ORDER BY
  target_lag_sec
Copy