Categorias:

Funções do sistema (Informações do sistema)

SYSTEM$EXTERNAL_TABLE_PIPE_STATUS

Obtém uma representação JSON do status atual de atualização para o objeto interno (oculto) de canal associado a uma tabela externa.

A atualização automática dos metadados de uma tabela externa depende internamente do Snowpipe, que recebe notificações de eventos quando ocorrem mudanças no armazenamento monitorado em nuvem. Para obter mais informações, consulte Introdução às tabelas externas.

Sintaxe

SYSTEM$EXTERNAL_TABLE_PIPE_STATUS( '<external_table_name>' )
Copy

Argumentos

external_table_name

Tabela externa para a qual você deseja recuperar o status atual de atualização automática.

Notas de uso

  • Esta função só retorna resultados para o proprietário da tabela externa (ou seja, a função que tem o privilégio OWNERSHIP na tabela externa).

  • external_table_name é uma cadeia de caracteres, portanto, deve ser delimitada por aspas simples:

    • Observe que o nome completo deve ser incluído entre aspas simples, incluindo o banco de dados e o esquema (se o nome for totalmente qualificado), ou seja, '<bd>.<esquema>.<nome_tabela_externa>'.

    • Se o nome da tabela externa diferenciar letras maiúsculas e minúsculas ou incluir quaisquer caracteres ou espaços especiais, as aspas duplas são necessárias para processar o caso/caracteres. As aspas duplas devem ser incluídas dentro das aspas simples, ou seja, '"<nome_canal>"'.

Saída

A função retorna um objeto JSON contendo os seguintes pares nome/valor (se aplicável ao status atual do canal):

{«executionState»:»<valor>»,»oldestPendingFilePath»:»<valor>»,»oldestFileTimestamp»:<valor>,»pendingFileCount»:<valor>,»lastPipeFaultTimestamp»:»<valor>»,»notificationChannelName»:»<valor>»,»numOutstandingMessagesOnChannel»:<valor>,»lastReceivedMessageTimestamp»:»<valor>»,»lastForwardedMessageTimestamp»:»<valor>»,»error»:<valor>,»fault»:<valor>,»lastPulledFromChannelTimestamp»:»<valor>»,»lastForwardedFilePath»:»<valor>»}

Onde:

executionState

Estado atual de execução do canal. O valor pode ser qualquer um dos seguintes:

  • RUNNING (ou seja, tudo está normal; o Snowflake pode ou não estar processando ativamente mensagens de eventos para este canal)

  • STOPPED_CLONED (ou seja, o canal é contido por um banco de dados ou clone de esquema)

  • STOPPED_FEATURE_DISABLED

  • STOPPED_STAGE_DROPPED

  • STOPPED_FILE_FORMAT_DROPPED

  • STOPPED_NOTIFICATION_INTEGRATION_DROPPED

  • STOPPED_MISSING_PIPE

  • STOPPED_MISSING_TABLE (a tabela de destino definida na definição do canal foi descartada)

  • STALLED_COMPILATION_ERROR

  • STALLED_INITIALIZATION_ERROR

  • STALLED_EXECUTION_ERROR

  • STALLED_INTERNAL_ERROR

  • PAUSED

  • PAUSED_BY_SNOWFLAKE_ADMIN

  • PAUSED_BY_ACCOUNT_ADMIN

oldestPendingFilePath

Caminho para o arquivo de dados mais antigo atualmente em fila para uma operação de atualização de metadados. O carimbo de data/hora em que o arquivo foi adicionado à fila é retornado na propriedade oldestFileTimestamp.

oldestFileTimestamp

O primeiro carimbo de data/hora entre os arquivos de dados atualmente em fila para uma operação de atualização de metadados (se aplicável), onde o carimbo de data/hora é definido quando o arquivo é adicionado à fila.

pendingFileCount

Número de arquivos que estão sendo processados atualmente pelo canal. Este valor diminui à medida que os metadados da tabela externa são atualizados. Quando este valor é 0 ou não há atualizações de metadados em fila para este canal.

lastPipeFaultTimestamp

Carimbo de data/hora em que um erro interno no processo Snowflake foi detectado pela última vez.

notificationChannelName

Fila do Amazon SQS ou fila de armazenamento do Microsoft Azure associada ao canal.

numOutstandingMessagesOnChannel

Número de mensagens na fila que foram enfileiradas mas ainda não recebidas.

lastReceivedMessageTimestamp

Carimbo de data/hora da última mensagem recebida da fila.

lastForwardedMessageTimestamp

Carimbo de data/hora da última mensagem de evento aplicável com um caminho/prefixo correspondente que foi encaminhado para o canal.

channelErrorMessage

Mensagem de erro produzida ao tentar ler mensagens da fila de serviços de mensagens em nuvem associada.

lastErrorRecordTimestamp

Carimbo de data/hora da mensagem de erro do último canal (ou seja, mensagem de erro reportada no valor channelErrorMessage).

error

Mensagem de erro produzida quando o canal foi compilado pela última vez para execução (se aplicável); muitas vezes causada por problemas de acesso aos objetos necessários (isto é, tabela, estágio, formato de arquivo) devido a problemas de permissão ou objetos descartados.

fault

Erro interno mais recente do processo do Snowflake (se aplicável). Usado principalmente pelo Snowflake para fins de depuração.

lastPulledFromChannelTimestamp

Carimbo de data/hora de quando o Snowpipe puxou pela última vez as notificações de eventos para o canal da fila de serviço de mensagens em nuvem.

lastForwardedFilePath

Caminho do arquivo de dados identificado na última mensagem de evento aplicável encaminhada para o canal.

Exemplos

Recuperar o status de atualização automática para uma tabela externa com um nome que não diferencia maiúsculas de minúsculas:

SELECT SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('mydb.myschema.exttable');

+---------------------------------------------------------------+
| SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('MYDB.MYSCHEMA.EXTTABLE')   |
|---------------------------------------------------------------|
| {"executionState":"RUNNING","pendingFileCount":0}             |
+---------------------------------------------------------------+
Copy

Recuperar o status de um canal com um nome que diferencia maiúsculas e minúsculas:

SELECT SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('mydb.myschema."extTable"');

+---------------------------------------------------------------+
| SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('MYDB.MYSCHEMA."extTable"') |
|---------------------------------------------------------------|
| {"executionState":"RUNNING","pendingFileCount":0}             |
+---------------------------------------------------------------+
Copy