Categorias:

Information Schema , Funções de tabela

EXTERNAL_FUNCTIONS_HISTORY

Esta função de tabela recupera o histórico das funções externas chamadas pelo Snowflake para toda a sua conta Snowflake.

Nota

Esta função pode retornar resultados somente para atividade nos últimos 14 dias.

Sintaxe

EXTERNAL_FUNCTIONS_HISTORY(
      [ DATE_RANGE_START => <constant_date_expression> ]
      [, DATE_RANGE_END => <constant_date_expression> ]
      [, FUNCTION_SIGNATURE => '<string>' ] )
Copy

Argumentos

Todos os argumentos são opcionais.

DATE_RANGE_START => constant_date_expression , . DATE_RANGE_END => constant_date_expression

A faixa de data/hora, dentro das últimas 2 semanas, para a qual se pode recuperar o histórico:

  • Se uma data final não for especificada, então CURRENT_DATE é usada como o fim do intervalo.

  • Se uma data de início não for especificada, então o intervalo começa 10 minutos antes do início de DATE_RANGE_END (ou seja, o padrão é mostrar os 10 minutos anteriores do histórico). Por exemplo, se DATE_RANGE_END for CURRENT_DATE, então o padrão DATE_RANGE_START é 11:50 PM no dia anterior.

O histórico é exibido em incrementos de 5 minutos, 1 hora ou 24 horas (dependendo da extensão da faixa especificada).

Se o intervalo estiver fora dos últimos 15 dias, um erro é retornado.

FUNCTION_SIGNATURE => string

Uma cadeia de caracteres especificando um nome de função externa e os tipos de dados dos argumentos para a função. (Os tipos de dados distinguem entre nomes de funções sobrecarregadas). Somente as informações sobre essa função são devolvidas.

Coloque a assinatura entre aspas simples, por exemplo:

function_signature => 'mydb.public.myfunction(integer, varchar)'
Copy

Observe que os tipos de dados dos argumentos, mas não os nomes dos argumentos, são especificados.

Se nenhuma assinatura for especificada, então a saída inclui o total para todas as funções externas em uso dentro do intervalo de tempo, e as seguintes colunas na exibição de resultados NULL:

  • FUNCTION_NAME.

  • ARGUMENTS.

  • FUNCTION_ENDPOINT_URL.

  • SOURCE_CLOUD.

  • SOURCE_REGION.

  • TARGET_CLOUD.

  • TARGET_REGION.

Notas de uso

  • Retorna resultados apenas para a função ACCOUNTADMIN ou qualquer função que tenha sido explicitamente concedido o privilégio global MONITOR USAGE.

  • 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 EXTERNAL_FUNCTIONS_HISTORY deve ser totalmente qualificado. Para obter mais detalhes, consulte Snowflake Information Schema.

  • A coluna de saída chamada ARGUMENTS inclui não apenas os tipos de dados de argumento, mas também o tipo de dados de retorno. O parâmetro de entrada chamado FUNCTION_SIGNATURE deve incluir os tipos de dados dos argumentos, mas não o tipo de dados de retorno.

  • Para dicas de solução de problemas, consulte Sintoma: EXTERNAL_FUNCTIONS_HISTORY retorna «…identificador inválido…»..

Saída

A função retorna as seguintes colunas:

Nome da coluna

Tipo de dados

Descrição

START_TIME

TIMESTAMP_LTZ

Início do intervalo de tempo especificado para o qual o histórico deve ser retornado.

END_TIME

TIMESTAMP_LTZ

Fim do intervalo de tempo especificado para o qual o histórico deve ser retornado.

NAME

TEXT

Nome da função para a qual o histórico deve ser retornado.

ARGUMENTS

TEXT

Tipos de dados dos argumentos e do valor de retorno. Os tipos de dados dos argumentos distinguem entre nomes de funções sobrecarregadas.

FUNCTION_ENDPOINT_URL

TEXT

Ponto de extremidade HTTPS que a função chama. Este é normalmente um serviço de proxy.

SOURCE_CLOUD

TEXT

Plataforma de nuvem da qual as linhas foram enviadas (por exemplo, GCP, Azure ou AWS).

SOURCE_REGION

TEXT

Região da qual as linhas foram enviadas (por exemplo, eu-west-1).

TARGET_CLOUD

TEXT

Plataforma de nuvem para a qual as linhas foram enviadas (por exemplo, GCP, Azure ou AWS).

TARGET_REGION

TEXT

Região para a qual as linhas foram enviadas (por exemplo, eu-west-1).

INVOCATIONS

NUMBER

Número de vezes que o serviço remoto foi chamado durante o intervalo START_TIME e END_TIME. Isso inclui novas tentativas (por exemplo, devido a problemas temporários na rede).

SENT_ROWS

NUMBER

Número de linhas enviadas para o ponto de extremidade externo durante o intervalo START_TIME e END_TIME.

RECEIVED_ROWS

NUMBER

Número de linhas recebidas do ponto de extremidade externo durante o intervalo START_TIME e END_TIME.

SENT_BYTES

NUMBER

Número de bytes enviados para o ponto de extremidade externo durante o intervalo START_TIME e END_TIME.

RECEIVED_BYTES

NUMBER

Número de bytes recebidos do ponto de extremidade externo durante o intervalo START_TIME e END_TIME.

Exemplos

Recuperar o histórico por um intervalo de 30 minutos, em períodos de 5 minutos, para sua conta:

select *
  from table(information_schema.external_functions_history(
    date_range_start => to_timestamp_ltz('2020-05-24 12:00:00.000'),
    date_range_end => to_timestamp_ltz('2020-05-24 12:30:00.000')));
Copy

Recuperar o histórico das últimas 12 horas, em períodos de 1 hora, para uma única função externa em sua conta:

select *
  from table(information_schema.external_functions_history(
    date_range_start => dateadd('hour', -12, current_timestamp()),
    function_signature => 'mydb.public.myfunction(integer, varchar)'));
Copy

Recuperar o histórico dos últimos 14 dias, em períodos de 1 dia, para sua conta:

select *
  from table(information_schema.external_functions_history(
    date_range_start => dateadd('day', -14, current_date()),
    date_range_end => current_date()));
Copy

Recupere o histórico dos últimos 14 dias, em períodos de 1 dia, para uma função específica em sua conta:

select *
  from table(information_schema.external_functions_history(
    date_range_start => dateadd('day', -14, current_date()),
    date_range_end => current_date(),
    function_signature => 'mydb.public.myfunction(integer, varchar)'));
Copy

Solução de problemas

Sintoma: EXTERNAL_FUNCTIONS_HISTORY retorna «…identificador inválido…».

Possível causa

Você pode não ter colocado a assinatura da função entre aspas simples. Por exemplo, o seguinte está errado porque não inclui as aspas:

select *
  from table(information_schema.external_functions_history(
    function_signature => mydb.public.myfunction(integer, varchar)));
Copy
Possível solução

Corrija isto colocando a assinatura da função entre aspas:

select *
  from table(information_schema.external_functions_history(
    function_signature => 'mydb.public.myfunction(integer, varchar)'));
Copy

Sintoma: EXTERNAL_FUNCTIONS_HISTORY retorna apenas uma linha de saída, e muitas das colunas são NULL

Possível causa

Você provavelmente não incluiu uma assinatura de função. Se você não especificar uma assinatura de função, então EXTERNAL_FUNCTION_HISTORY() retorna os valores agregados para colunas como INVOCATIONS, SENT ROWS etc., e retorna NULL para colunas como o nome da função, as listas de argumentos etc.

Possível solução

Se você pretendia obter informações para uma função, então inclua uma assinatura de função.

Se você pretendia obter informações para todas as funções, então os valores NULL para algumas colunas estão corretos, e você não precisa corrigir a consulta.