在提供商账户中设置和管理事件表¶
本主题介绍提供商如何为应用程序设置事件表和管理事件共享。
在每个区域的提供商组织中设置事件表¶
要收集使用者共享的日志消息和跟踪事件,提供商必须通过执行以下操作来设置事件表:
重要
如果在使用者安装应用程序之前,提供商在安装应用程序的区域内没有事件账户和活动事件表,则跟踪事件和日志消息将被丢弃。
将账户设置为事件账户¶
要存储共享日志和事件,提供商必须选择一个账户来保存事件表。这可以是提供商可访问的任何账户。但是,如果组织有多个提供商发布应用程序包,请考虑使用专用于存储来自使用者的共享事件的 Snowflake 账户。
以下限制适用于存储共享事件的账户:
您必须使用 ORGADMIN 角色将账户设置为用于存储事件的账户。
该账户必须拥活动事件表。
指定的账户不能是以下任一账户:
被锁定或暂停的账户。
读者账户。
试用账户。
Snowflake 管理账户。
备注
提供商只能在使用者安装应用程序的同一区域中收集日志和共享事件。提供商必须在使用者为应用程序配置事件共享的每个区域设置一个事件账户来存储共享事件。
要将某个账户设置为某个区域的事件账户,请调用 SYSTEM$SET_EVENT_SHARING_ACCOUNT_FOR_REGION 系统函数,如以下示例所示:
SELECT SYSTEM$SET_EVENT_SHARING_ACCOUNT_FOR_REGION('<snowflake_region>', '<region_group>', '<account_name>')
其中:
snowflake_region
指定账户所在的区域,例如:
AWS_US_WEST_2, AWS_US_EAST_1
。region_group
指定区域组,例如:
PUBLIC
。有关详细信息,请参阅 区域组。account_name
指定账户名称。如果在指定区域中已将其他账户设置为事件账户,则运行此命令会将事件账户更改为此处指定的账户。
在事件账户中创建事件表¶
要创建事件表,请运行 CREATE EVENT TABLE 命令,如以下示例所示:
CREATE EVENT TABLE event_db.event_schema.my_event_table;
此命令指定包含事件表的数据库和架构。
将事件表设置为活动事件表¶
一个账户可以有多个事件表,但一次只能将一个表设置为 Snowflake 账户中的活动事件表。如果没有活动事件表,则使用者共享的日志消息和跟踪事件将被丢弃。
创建事件表后,使用 ALTER ACCOUNT ...SET EVENT_TABLE 指定事件表为账户的活动表:
ALTER ACCOUNT SET EVENT_TABLE=event_db.event_schema.my_event_table;
取消将账户设置为事件账户¶
要取消将某个账户设置为某个区域的事件账户,请调用 SYSTEM$UNSET_EVENT_SHARING_ACCOUNT_FOR_REGION 系统函数:
SELECT SYSTEM$UNSET_EVENT_SHARING_ACCOUNT_FOR_REGION('<snowflake_region>', '<region_group>', '<account_name>')
其中:
snowflake_region
指定账户所在的区域,例如:
AWS_US_WEST_2
。region_group
指定区域组,例如:
PUBLIC
。account_name
指定账户名称。
查看组织中的事件账户¶
要显示提供商组织中的事件账户,请调用 SYSTEM$SHOW_EVENT_SHARING_ACCOUNTS 系统函数:
SELECT SYSTEM$SHOW_EVENT_SHARING_ACCOUNTS()
备注
您必须使用该 ORGADMIN 角色来调用此函数。
此系统函数返回一个 JSON 格式的字符串,它包含组织内的事件账户列表。由于元数据需要一些时间才能传播到所有区域,因此在用户为组织设置或取消设置事件账户后,此函数在显示最新的事件账户之前可能会有短暂的延迟。
查看应用程序包中定义的日志记录和跟踪事件级别¶
使用 SHOW VERSIONS 命令查看应用程序包中定义的应用程序版本的日志记录级别,如以下示例所示:
SHOW VERSIONS
IN APPLICATION PACKAGE HelloSnowflake;
查看事件表中的日志和事件¶
要查看事件表中存储的日志和事件,请使用 SELECT 命令,如下例所示:
SELECT * FROM EVENT_DB.EVENT_SCHEMA.MY_EVENT_TABLE
有关查询事件表的更多信息,请参阅以下内容:
有关事件表中列的信息,请参阅 事件表列。