Tratamento de erros no Snowpipe Streaming de alto desempenho¶
Este tópico descreve os mecanismos de tratamento de erros disponíveis na edição de alto desempenho do Snowpipe Streaming. Essa abordagem aprimorada fornece informações detalhadas sobre os erros e melhora o processo geral de tratamento de erros para proporcionar uma experiência mais robusta e informativa.
Principais recursos de tratamento de erros na arquitetura de alto desempenho¶
Ponto de extremidade de status do canal aprimorado: esta edição amplia o ponto de extremidade de status do canal para fornecer informações de erro mais abrangentes.
Detalhes granulares de erros: a edição de alto desempenho fornece informações mais detalhadas sobre os erros para ajudar a identificar onde eles ocorreram e encontrar a raiz das causas dos problemas de ingestão.
Experiência aprimorada do cliente: a edição de alto desempenho simplifica o tratamento de erros para os clientes, reduzindo a complexidade de raciocínio e da recuperação de erros.
Nova exibição do histórico do canal: o Snowflake também apresenta Exibição SNOWPIPE_STREAMING_CHANNEL_HISTORY, que fornece um registro histórico da atividade do canal para monitorar e localizar erros. Esse recurso permite que você acompanhe as tendências de erros e resolva proativamente os possíveis problemas.
Detalhes do ponto de extremidade de status do canal¶
A arquitetura de alto desempenho introduz um novo ponto de extremidade de status do canal para fornecer informações mais detalhadas. Esse ponto de extremidade retorna informações pontuais sobre um canal.
Além das informações de status do canal (statusCode
, persistedOffsetToken
) para a arquitetura clássica, a arquitetura de alto desempenho inclui o seguinte:
channel_status_code
: representa o status operacional atual do canal de streaming. Esse código fornece uma indicação de alto nível da integridade do canal e da capacidade de ingerir dados.last_commited_offset_token
: indica o token de deslocamento do último conjunto de linhas que foi confirmado com êxito na tabela de destino pelo Snowflake. Isso é fundamental para acompanhar o progresso e garantir o fornecimento de dados.created_on_ms
: o carimbo de data/hora, em milissegundos, indicando quando canal de streaming foi inicialmente criado no Snowflake.database_name
: o nome do banco de dados para o qual o canal de streaming está configurado para ingerir dados.schema_name
: o nome do esquema no banco de dados especificado onde reside a tabela de destino do canal de streaming.pipe_name
: o nome do objeto Snowpipe configurado para utilizar esse canal Snowpipe Streaming para ingestão de dados em uma tabela de destino específica.channel_name
: um nome criado pelo usuário para a instância específica do canal Snowpipe Streaming.rows_inserted
: uma contagem do número total de linhas de dados inseridas com êxito na tabela de destino por meio desse canal de streaming desde sua criação.rows_parsed
: uma contagem do número total de linhas de dados que foram processadas e analisadas pelo serviço Snowpipe Streaming para esse canal. (mas não necessariamente inseridas, por exemplo, devido a erros).rows_error_count
: uma contagem do número total de linhas de dados que encontraram erros durante o processamento e, portanto, foram rejeitadas pelo serviço Snowpipe Streaming para esse canal.last_error_offset_upper_bound
: o limite superior do intervalo de tokens de deslocamento do último conjunto de linhas que continha erros. Isso ajuda a identificar o local aproximado dos erros mais recentes no fluxo de dados.last_error_message
: uma mensagem legível para humanos correspondente ao código de erro mais recente.last_error_timestamp
: o carimbo de data/hora que indica quando ocorreu o erro mais recente nesse canal de streaming.snowflake_avg_processing_latency_ms
: a latência média, em milissegundos, observada pelo serviço Snowflake no processamento de conjuntos de linhas recebidos por esse canal. Essa métrica fornece informações sobre o desempenho do pipeline de ingestão no Snowflake.
Fluxo de tratamento de erros na arquitetura de alto desempenho¶
O cliente envia dados: o aplicativo cliente usa o Snowpipe Streaming SDK para enviar dados ao Snowflake por meio da
appendRow(s)
API.Processamento do servidor: o serviço Snowflake processa os dados. Isso envolve:
Armazenamento em buffer dos dados.
Análise e validação dos dados.
Confirmação dos dados na tabela.
Detecção de erros: os erros podem ocorrer durante qualquer um dos estágios de processamento no lado do servidor.
Registro de erros: o Snowflake registra informações detalhadas sobre o último erro ocorrido, incluindo:
O limite superior do intervalo de tokens de deslocamento do último conjunto de linhas que continha erros. Isso ajuda a identificar o local aproximado dos erros mais recentes no fluxo de dados.
Uma mensagem de erro.
Um carimbo de data/hora.
Relatório de erros:
O ponto de extremidade de status de canal aprimorado fornece acesso às informações de erro registradas.
Os clientes podem consultar esse ponto de extremidade para recuperar os detalhes do último erro ocorrido.
O Snowflake também apresenta o Exibição SNOWPIPE_STREAMING_CHANNEL_HISTORY, que fornece um registro histórico da atividade do canal, incluindo erros e seus deslocamentos.
Ação do cliente: o aplicativo cliente usa as informações de erro para:
Identificar a causa do erro.
Implementar a lógica adequada de tratamento de erros, como:
Tentar novamente a operação que falhou.
Registrar o erro.
Alertar um administrador.
Mover os dados errôneos para uma fila de mensagens não entregues.
Reabrir canais.