管理 Streams

本主题描述与管理 Streams 相关的管理任务。

本主题内容:

在视图和基础表上启用变更跟踪

为了让用户查询视图上的变更数据,必须在视图和基础表上启用变更跟踪。

只有给定视图或基础表上的对象所有者(即具有 OWNERSHIP 权限的角色)才能启用变更跟踪。

以下选项可用于启用变更跟踪:

  1. 使用视图所有者角色在视图上创建流。通过此操作可在视图上启用变更跟踪。

    如果同一角色也拥有基础表,则还会在表上启用变更跟踪。否则,表所有者必须对表显式启用变更跟踪。有关这些步骤,请参阅 在基础表上显式启用变更跟踪 (本主题内容)。

  2. 在视图和表上显式启用变更跟踪。有关说明,请参阅本节中的其余说明。

在视图上显式启用变更跟踪

在创建视图(使用 CREATE VIEW)或后续操作(使用 ALTER VIEW)时设置 CHANGE_TRACKING 参数。

请注意,还必须在视图的基础表上显式启用变更跟踪。有关说明,请参阅 在基础表上显式启用变更跟踪 (本主题内容)。

例如,在当前架构中创建一个安全视图,用于从表中选择行的子集:

CREATE SECURE VIEW v CHANGE_TRACKING = TRUE AS SELECT col1, col2 FROM t;
Copy

例如,修改现有视图以启用变更跟踪:

ALTER VIEW v2 SET CHANGE_TRACKING = TRUE;
Copy

在基础表上显式启用变更跟踪

重要

创建或更改视图以指定 CHANGE_TRACKING 时,关联的依赖数据库对象将自动更新以启用变更跟踪。 在操作过程中会锁定底层资源,这可能会导致 DDL/DML 操作延迟。有关更多信息,请参阅 资源锁定

如果执行语句的用户未指定具有足够权限 (OWNERSHIP) 的角色,则该语句将失败,基础数据库对象将不会更新,并会解锁。

在创建表(使用 CREATE TABLE)或后续操作(使用 ALTER TABLE)时设置 CHANGE_TRACKING 参数。

例如,要在当前架构中创建表:

CREATE TABLE t (col1 STRING, col2 NUMBER) CHANGE_TRACKING = TRUE;
Copy

例如,要修改现有表以启用变更跟踪:

ALTER TABLE t1 SET CHANGE_TRACKING = TRUE;
Copy

重要

当创建或更改 TABLE 以指定 CHANGE_TRACKING 时,表在操作期间会锁定,这可能会导致 DML 操作延迟。 有关更多信息,请参阅 资源锁定

避免流过期

为避免流过期,我们强烈建议您定期在其 STALE_AFTER 时间戳之前(即在源对象的延长数据保留期内)使用其变更数据。

要查看流的数据保留期,请执行 DESCRIBE STREAMSHOW STREAMS 命令。STALE_AFTER 列时间戳指示当前预测流在何时会过期(如果此时间戳是过去,则为其过期时间)。此时间戳的计算方式是,将 DATA_RETENTION_TIME_IN_DAYSMAX_DATA_EXTENSION_TIME_IN_DAYS 参数设置中较大的值与当前时间戳相加。请注意,如果时间戳是过去的,则流可能已经过期。STALE 列指示流是否应已过期,尽管该流实际上可能尚未过期。

使用流的变更数据会将 STALE_AFTER 时间戳向前移动。

有关更多信息,请参阅 数据保留期与过期

在 Snowsight 中查看和管理流

要在 Snowsight 中查看和管理流,请执行以下操作:

  1. 登录 Snowsight。

  2. 选择 Data » Databases

  3. 对于特定的数据库和架构,请选择 Streams,然后选择要管理的流。

在 Snowsight 中查看流时,您可以执行以下操作:

  • Details 部分,查看流适用的表名称、流的类型以及流是否过时。

  • 查看用于创建流的 SQL 语句。

  • 管理流权限。请参阅 使用 Snowsight 管理对象权限

语言: 中文