为 Amazon SNS 启用 Snowpipe 错误通知功能¶
本主题介绍了如何将 Snowpipe 错误通知推送至 Amazon Simple Notification Service (https://docs.aws.amazon.com/sns/) (SNS) 服务。SNS 是一种发布/订阅消息传递服务。
该功能可为以下负载类型推送错误通知:
自动引入 Snowpipe。
对 Snowpipe
insertFilesREST API 端点的调用。仅使用 Snowflake Connector for Kafka 和 Snowpipe 引入方法,从 Apache Kafka 进行的加载。
云平台支持¶
目前,该功能仅限于 Amazon Web Services (AWS) 上托管的 Snowflake 账户。Snowpipe 可通过支持的云存储服务中的文件加载数据;但是,只有托管在 AWS 上的 Snowflake 账户才支持向 SNS 推送通知。
备注¶
使用通知集成对象可实现该功能。通知集成是一个 Snowflake 对象,它在 Snowflake 和第三方云消息队列服务之间提供一个接口。一个通知集成可支持多个管道。
Snowflake 保证至少实现一次错误通知的消息传送(即多次尝试传送消息以确保至少一次尝试成功,这可能会导致重复消息)。
启用错误通知¶
创建通知集成¶
在管道中启用错误通知¶
单个通知集成可由多个管道共享。错误消息的正文会标明管道、外部暂存区和路径,以及产生错误的文件等详细信息。
要为管道启用错误通知,请指定 ERROR_INTEGRATION 参数值。
备注
要创建或修改用于引用通知集成的管道,需要具有通知集成 USAGE 权限的角色。此外,该角色必须分别拥有架构的 CREATE PIPE 权限或管道的 OWNERSHIP 权限。
Operating on an object in a schema requires at least one privilege on the parent database and at least one privilege on the parent schema.
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述。
新建管道¶
Create a new pipe using CREATE PIPE. Note that configuring automated data loads (i.e. auto-ingest Snowpipe) requires additional pipe parameters. For instructions, see Automate continuous data loading with cloud messaging.
其中:
ERROR_INTEGRATION = <integration_name>您在 创建通知集成 中创建的通知集成的名称。
以下示例显示了支持错误通知和自动数据加载的 CREATE PIPE 语句:
现有管道¶
使用 ALTER PIPE 修改现有管道:
其中,<integration_name> 是您在 创建通知集成 中创建的通知集成的名称。
例如:
错误通知消息有效负载¶
错误消息的正文会标明管道和加载过程中遇到的错误。
以下是描述 Snowpipe 错误的消息有效负载示例。有效负载可包括一条或多条错误消息。
请注意,必须将字符串解析为 JSON 对象,才能处理有效负载中的值。