- Categorias:
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>' ] )
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, seDATE_RANGE_END
for CURRENT_DATE, então o padrãoDATE_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)'
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, |
SOURCE_REGION |
TEXT |
Região da qual as linhas foram enviadas (por exemplo, |
TARGET_CLOUD |
TEXT |
Plataforma de nuvem para a qual as linhas foram enviadas (por exemplo, |
TARGET_REGION |
TEXT |
Região para a qual as linhas foram enviadas (por exemplo, |
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')));
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)'));
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()));
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)'));
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)));
- 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)'));
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.