高性能 Snowpipe Streaming 中的错误处理

本主题概述了高性能版本的 Snowpipe Streaming 中可用的错误处理机制。这种增强的方法提供了详细的错误信息,并改进了整体错误处理流程,从而提供了更强大、内容更丰富的体验。

高性能架构中的主要错误处理功能

  • 增强了通道状态端点:此版本扩展了通道状态端点,以提供更全面的错误信息。

  • 细化错误详情:高性能版本提供了更详细的错误信息,有助于确定错误发生的位置,并找出引入问题的根本原因。

  • 改善了客户端体验:高性能版本简化了客户端的错误处理,降低了错误推理和恢复的复杂性。

  • 新增通道历史记录视图:Snowflake 还推出了 SNOWPIPE_STREAMING_CHANNEL_HISTORY 视图,提供通道活动的历史记录,以便监控和定位错误。此功能使您能够跟踪错误趋势并主动解决潜在问题。

通道状态端点详情

高性能架构推出了新的通道状态端点,以提供更详细的信息。此端点返回有关通道的时间点信息。

除了经典架构的通道状态信息(statusCodepersistedOffsetToken)外,高性能架构还包括以下内容:

  • channel_status_code:表示流式通道的当前运行状态。此代码提供了通道运行状况和引入数据能力的高级指示。

  • last_commited_offset_token:表示 Snowflake 成功提交到目标表的最后行集的偏移量标记。这对于跟踪进度和确保数据交付至关重要。

  • created_on_ms:时间戳(以毫秒为单位),表示最初在 Snowflake 中创建流式通道的时间。

  • database_name:流式通道被配置为引入数据的数据库的名称。

  • schema_name:流式通道目标表所在的指定数据库中架构的名称。

  • pipe_name:Snowpipe 对象的名称,该对象被配置为利用此 Snowpipe Streaming 通道将数据引入到特定目标表中。

  • channel_name:用户为特定 Snowpipe Streaming 通道实例创建的名称。

  • rows_inserted:自该流式通道创建以来,通过该流式通道成功插入到目标表中的数据行总数统计。

  • rows_parsed:Snowpipe Streaming 服务为此通道处理和解析的数据行总数统计。(但不一定要插入,例如,由于错误)。

  • rows_error_count:在处理过程中遇到错误并因此被 Snowpipe Streaming 服务拒绝的该通道的数据行总数统计。

  • last_error_offset_upper_bound:最后一个包含错误的行集的偏移标记范围的上限。这有助于确定数据流中最近错误的大致位置。

  • last_error_message:与最新错误代码对应的可读消息。

  • last_error_timestamp:表示该流式通道中最近一次出现错误的时间戳。

  • snowflake_avg_processing_latency_ms:Snowflake 服务在处理该通道接收到的行集时观察到的平均延迟(以毫秒为单位)。通过该指标可深入了解 Snowflake 中引入管道的性能。

高性能架构中的错误处理流程

  • 客户端发送数据:客户端应用程序使用 Snowpipe Streaming SDK 通过 appendRow(s) API 向 Snowflake 发送数据。

  • 服务器处理:Snowflake 服务处理数据。这涉及:

    • 缓冲数据。

    • 解析和验证数据。

    • 将数据提交到表中。

  • 错误检测:在服务端处理的任何阶段都可能发生错误。

  • 错误记录:Snowflake 记录有关上次发生的错误的详细信息,包括:

    • 最后一个包含错误的行集的偏移标记范围的上限。这有助于确定数据流中最近错误的大致位置。

    • 错误消息。

    • 时间戳。

  • 错误报告:

    • 增强的通道状态端点提供了对记录的错误信息的访问权限。

    • 客户端可以查询此端点以检索上次发生的错误的详细信息。

    • Snowflake 还推出了 SNOWPIPE_STREAMING_CHANNEL_HISTORY 视图,提供通道活动的历史记录,其中包括错误及其偏移量。

  • 客户端操作:客户端应用程序使用错误信息来执行以下操作:

    • 确定错误的原因。

    • 实现适当的错误处理逻辑,例如:

      • 重试失败的操作。

      • 记录错误。

      • 提醒管理员。

      • 将错误的数据移至死信队列。

      • 重新开放通道。

语言: 中文