<service_name>!SPCS_GET_LOGS¶
Retorna os logs que o Snowflake coletou de contêineres do serviço especificado. Para obter mais informações, consulte Acessar logs de contêiner.
Nota
A função é compatível apenas com serviços e trabalhos criados na versão 9.20 ou posterior.
- Consulte também:
Sintaxe¶
<service_name>!SPCS_GET_LOGS(
[ START_TIME => <constant_expr> ],
[ END_TIME => <constant_expr> ] )
Argumentos¶
START_TIME => constant_expr
Hora de início (no formato TIMESTAMP_LTZ) para o intervalo de tempo a partir do qual os logs devem ser recuperados. Para as funções disponíveis para construção de dados, hora e carimbo de data/hora, consulte Funções de data e hora.
Se
START_TIME
não for especificado, o padrão será 1 dia atrás.END_TIME => constant_expr
Hora de término (no formato TIMESTAMP_LTZ) para o intervalo de tempo a partir do qual os logs devem ser recuperados.
Se END_TIME não for especificado, o padrão será o carimbo de data/hora atual.
Saída¶
Cada linha na saída corresponde a um evento registrado na tabela de eventos. Cada linha que seu serviço envia para stdout
ou stderr
resulta em uma linha na saída.
A função retorna as seguintes colunas:
Coluna |
Tipo de dados |
Descrição |
---|---|---|
|
TIMESTAMP_NTZ |
Carimbo de data/hora no horário universal coordenado (UTC) em que Snowflake coletou o log do contêiner. Esse valor é mapeado para a coluna TIMESTAMP na tabela de eventos. |
|
NUMBER |
ID da instância do serviço de trabalho. Esse valor é mapeado para o campo |
|
VARCHAR |
Nome do contêiner. Esse valor é mapeado para o campo RESOURCE_ATTRIBUTES na coluna na tabela de eventos. |
|
VARCHAR |
Log que o Snowflake coletou do contêiner do aplicativo. Esse valor é mapeado para a coluna VALUE na tabela de eventos. |
|
OBJECT |
Adição de informações sobre o log. Por exemplo, o fluxo de logs (stderr ou stdout) de onde o log foi coletado. Esse valor é mapeado para a coluna RECORD_ATTRIBUTES na tabela de eventos. |
Requisitos de controle de acesso¶
A função usada para executar essa operação deve ter, no mínimo, os seguintes privilégios:
Privilégio |
Objeto |
Notas |
---|---|---|
OWNERSHIP |
Serviço |
O privilégio USAGE no banco de dados e no esquema pai é necessário para executar operações em qualquer objeto de um esquema.
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¶
Pode levar alguns minutos até que os logs do contêiner sejam exibidos na saída.
Exemplos¶
Recuperar os logs que o Snowflake coletou de contêineres do trabalho my_test_job
no último dia.
SELECT * FROM TABLE(my_test_job!SPCS_GET_LOGS());
Exemplo de saída:
+-------------------------+-------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+
| TIMESTAMP | INSTANCE_ID | CONTAINER_NAME | LOG | RECORD_ATTRIBUTES |
|-------------------------+-------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------|
| 2025-06-26 00:23:40.281 | 0 | main | job-tutorial - INFO - Job finished | { |
| | | | | "log.iostream": "stdout" |
| | | | | } |
| 2025-06-26 00:23:38.787 | 0 | main | job-tutorial - INFO - Executing query [select current_time() as time,'hello'] and writing result to table [results] | { |
| | | | | "log.iostream": "stdout" |
| | | | | } |
| 2025-06-26 00:23:38.787 | 0 | main | job-tutorial - INFO - Connection succeeded. Current session context: database="TUTORIAL_DB", schema="DATA_SCHEMA", warehouse="TUTORIAL_WAREHOUSE", role="TEST_ROLE" | { |
| | | | | "log.iostream": "stdout" |
| | | | | } |
| 2025-06-26 00:23:36.852 | 0 | main | job-tutorial - INFO - Job started | { |
| | | | | "log.iostream": "stdout" |
| | | | | } |
+-------------------------+-------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+
Recuperar os logs que o Snowflake coletou de contêineres do trabalho my_test_job
nos últimos três dias.
SELECT * FROM TABLE(my_test_job!SPCS_GET_LOGS(START_TIME => DATEADD('day', -3, CURRENT_TIMESTAMP())));
Recuperação dos logs da instância 0
do trabalho my_test_job
no contêiner chamado main
. Como mostrado no exemplo a seguir, se você omitir os argumentos START_TIME e END_TIME, a função recupera os logs do último dia:
SELECT * FROM TABLE(my_test_job!SPCS_GET_LOGS())
WHERE instance_id = 0 AND container_name = 'main';