设置事件表¶
在开始日志记录或跟踪之前,必须设置一个事件表,该表将收集处理程序代码生成的消息和事件数据。使用一组预定义的列,事件表旨在记录从函数和过程处理程序代码记录的事件、事件日志和跟踪事件。
事件表具有以下特征,使其有别于您创建的其他表:
该表包含一组预定义的列,用于获取日志条目和跟踪事件。该表的结构包括列和键/值属性对象定义,用于保存预定义数据和您设计的数据。
您可以将事件表与您的账户关联,以便将日志条目和跟踪事件获取到该表中。您一次只能将一个账户与一个事件表关联。关联的事件表称为 活动事件表。
您可以指定日志消息的严重性级别和要获取的跟踪事件的详细程度。
由存储过程、UDFs 和 UDTFs 的处理程序代码生成的日志消息和跟踪事件存储在活动事件表中。
要设置用于日志记录的事件表,必须执行以下操作(如本主题中所述):
创建事件表¶
要创建用于存储日志和跟踪事件数据的事件表,请执行 CREATE EVENT TABLE 命令并指定事件表的名称。稍后将使用事件表名称,使该表能够获取账户中的存储过程、UDFs 和 UDTFs 生成的日志。
请注意,创建事件表时,不要指定表中的列。事件表已具有一组预定义列,如 事件表列 中所述。
备注
当前不支持复制事件表。对包含事件表的主数据库进行的刷新操作失败。
应在未启用复制的数据库中创建事件表。或者,您可以在您的账户中启用 2024_03 行为变更捆绑包。启用捆绑包后,在复制期间将跳过主数据库中包含的任何事件表,并且刷新操作将成功。
例如,要创建名为 my_events
的事件表,请执行以下语句:
CREATE EVENT TABLE my_database.my_schema.my_events;
将事件表与账户关联¶
要为账户存储来自函数和过程的日志和跟踪事件数据,必须指定创建的事件表是该账户的活动事件表。
要为账户指定活动事件表,请执行 ALTER ACCOUNT 命令,并将 EVENT_TABLE 参数设置为事件表的名称。
备注
要执行此命令,必须使用 ACCOUNTADMIN 角色。
此外,您还必须拥有以下 两项 权限:
账户的 OWNERSHIP 权限。
有关执行 ALTER ACCOUNT 所需权限的更多信息,请参阅 有关 ALTER ACCOUNT 命令的文档。
例如,要将数据库 my_database
中的架构 my_schema
中名为 my_events
的事件表设置为账户的活动事件表,请执行以下语句:
ALTER ACCOUNT SET EVENT_TABLE = my_database.my_schema.my_events;
如上所示,必须指定事件表的 完全限定名称。
要取消事件表与账户的关联,请执行 ALTER ACCOUNT 命令并取消设置 EVENT_TABLE 参数。例如:
ALTER ACCOUNT UNSET EVENT_TABLE;
您可以使用以下 SHOW PARAMETERS 命令确认 EVENT_TABLE 值:
SHOW PARAMETERS LIKE 'event_table' IN ACCOUNT;
设置日志和跟踪事件的级别¶
您可以通过设置日志或跟踪级别来管理存储在事件表中的日志和跟踪事件数据的级别。在记录或跟踪之前,请使用这些设置来确保获取所需数量和类型的数据。