SHOW STREAMS

列出您有访问权限的流。该命令可用于列出当前/指定数据库或架构的流,或整个账户的流。

输出返回流元数据和属性,按数据库、架构和流名称按字典顺序排序(有关输出列的说明,请参阅本主题中的 输出)。如果您希望使用提供的筛选器筛选结果,请务必注意这一点。

另请参阅:

CREATE STREAMALTER STREAMDROP STREAMDESCRIBE STREAM

语法

SHOW [ TERSE ] STREAMS [ LIKE '<pattern>' ]
                       [ IN { ACCOUNT | DATABASE [ <db_name> ] | [ SCHEMA ] [ <schema_name> ] | APPLICATION <application_name> | APPLICATION PACKAGE <application_package_name> } ]
                       [ STARTS WITH '<name_string>' ]
                       [ LIMIT <rows> [ FROM '<name_string>' ] ]
Copy

参数

TERSE

仅返回输出列的子集:

  • created_on

  • name

  • kind (重命名列全集中的 type 列)

  • database_name

  • schema_name

  • tableOn (重命名列全集中的 table_name 列)

LIKE 'pattern'

(可选)按对象名称筛选命令输出。筛选器使用 不区分大小写 的模式匹配,并支持 SQL 通配符(%_)。

例如,以下模式返回 相同的 结果:

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...

. 默认:无值(不对输出应用筛选)。

IN ACCOUNT | [ DATABASE ] db_name | [ SCHEMA ] schema_name | APPLICATION application_name | APPLICATION PACKAGE application_package_name

指定命令作用域,该作用域决定该命令是仅列出当前/指定数据库或架构的记录,还是列出整个账户的记录。

APPLICATIONAPPLICATION PACKAGE 关键字不是必需的,但它们指定了已命名 Snowflake Native App 的范围。

DATABASESCHEMA 关键字不是必需的;可以通过仅指定数据库或架构名称来设置作用域。同样,如果会话当前正在使用数据库,则不需要数据库或架构名称。

  • 如果指定的 DATABASESCHEMA 没有名称,并且会话当前没有正在使用的数据库,则该参数对输出没有影响。

  • 如果指定了 SCHEMA 且指定了名称,并且会话当前没有正在使用的数据库,则架构名称 必须 完全限定于数据库名称(例如 testdb.testschema)。

默认:取决于会话当前是否正在使用数据库:

  • 数据库:DATABASE 是默认值(即该命令返回您有权在数据库中查看的对象)。

  • 无数据库:ACCOUNT 是默认值(即该命令返回您有权在账户中查看的对象)。

STARTS WITH 'name_string'

(可选)根据对象名称开头显示的字符筛选命令输出。该字符串必须放在单引号内并且 区分大小写

例如,以下字符串会返回 不同的 结果:

... STARTS WITH 'B' ...
... STARTS WITH 'b' ...

. 默认:无值(不对输出应用筛选)

LIMIT rows [ FROM 'name_string' ]

(可选)限制返回的最大行数,同时还对结果启用“分页”功能。返回的实际行数可能小于指定的限制。例如,现有对象的数量小于指定的限制。

可选的 FROM 'name_string' 分子句实际上会充当结果的“游标”。这样就可以提取对象名称与指定字符串匹配的第一行之后的指定行数:

  • 该字符串必须放在单引号内并且 区分大小写

  • 该字符串不必包含完整的对象名称;支持部分名称。

默认:无值(不对输出应用限制)

备注

对于支持 FROM 'name_string'STARTS WITH 'name_string' 的 SHOW 子句,您可以将这两个子句组合在同一语句中。但是,两个条件都必须满足,否则它们相互抵消,不返回任何结果。

此外,对象按名称的字典顺序返回,因此 FROM 'name_string' 仅返回字典值高于 STARTS WITH 'name_string' 所返回行的行。

例如:

  • ... STARTS WITH 'A' LIMIT ... FROM 'B' 不会返回任何结果。

  • ... STARTS WITH 'B' LIMIT ... FROM 'A' 不会返回任何结果。

  • ... STARTS WITH 'A' LIMIT ... FROM 'AB' 将返回结果(如果有任何行与输入字符串匹配)。

输出

命令输出在以下列中提供流属性和元数据:

描述

created_on

创建流的日期和时间。

name

暂存区的名称。

database_name

流的架构的数据库。

schema_name

流的架构。

owner

拥有流的角色。

comment

为流添加的注释。

table_name

流跟踪其 DML 更新的表。

source_type

流的源对象:表、视图、目录表或外部表。

base_tables

视图的基础表。此列仅适用于视图上的流。

type

流的类型;目前仅为 DELTA。

stale

指示流是否在 stale_after 时间之前最后一次读取(见下文)。如果是 TRUE,则流可能已过时。当流已过时,无法读取它。重新创建流以恢复从中读取。若要防止流过时,请在 stale_after 之前使用该流。

mode

若流为仅追加流,则显示 APPEND_ONLY 流。. 如果流仅返回插入行的信息,则显示 INSERT_ONLY;当前仅适用于外部表上的流。. 对于表上的流,该列显示 DEFAULT

stale_after

流变得过时或如果不使用可能会变过时的时间戳。 . . 该值的计算方法是将源表的保留期(即 DATA_RETENTION_TIME_IN_DAYSMAX_DATA_EXTENSION_TIME_IN_DAYS 参数设置中的较大者)与上次读取流的时间相加。如果数据保留期是在模式或数据库级别设置的,则当前角色和账户必须有权访问相关对象(架构、数据库或共享表/视图),才能获得准确的 stale_after 时间戳。. . 在少数情况下,此时间可能不准确:. - 从 允许 流变过时到实际删除基础数据之间可能要经过一段时间。在此期间,stale_after 将成为过去,但从流中读取可能会成功。此期间的持续时间可能会发生变化,因此您不应依赖它。. - 如果增加影响表保留的参数,则已经过时的流将保持过时状态,但 stale_after 时间可能在将来。

invalid_reason

无法成功查询流的原因。此列支持未来的功能。目前,返回的唯一值是 N/A

owner_role_type

拥有对象的角色类型,例如 ROLE. 如果 Snowflake Native App 拥有该对象,则该值为 APPLICATION. 如果您删除该对象,则 Snowflake 会返回 NULL,原因是删除的对象不具有所有者角色。

有关可为流指定的属性的详细信息,请参阅 CREATE STREAM

使用说明

  • 该命令不需要正在运行的仓库即可执行。

  • 该命令仅返回当前用户的当前角色已获授至少一项访问权限的来源对象名称。

  • MANAGE GRANTS 访问权限隐式允许其持有者查看账户中的每个对象。默认情况下,只有账户管理员(具有 ACCOUNTADMIN 角色的用户)和安全管理员(具有 SECURITYADMIN 角色的用户)才具有 MANAGE GRANTS 权限。

  • To post-process the output of this command, you can use the pipe operator (->>) or the RESULT_SCAN function. Both constructs treat the output as a result set that you can query.

    For example, you can use the pipe operator or RESULT_SCAN function to select specific columns from the SHOW command output or filter the rows.

    When you refer to the output columns, use double-quoted identifiers for the column names. For example, to select the output column type, specify SELECT "type".

    You must use double-quoted identifiers because the output column names for SHOW commands are in lowercase. The double quotes ensure that the column names in the SELECT list or WHERE clause match the column names in the SHOW command output that was scanned.

  • LIMIT rows 的值不能超过 10000。如果省略 LIMIT rows,若结果集大于 1 万行,则该命令将导致错误。

    要查看存在超过 1 万条记录的结果,请在 Snowflake Information Schema 中包含 LIMIT rows 或查询相应的视图。

示例

显示其名称以 line (您有权在 tpch.public 架构中查看)开头的所有流:

SHOW STREAMS LIKE 'line%' IN tpch.public;
Copy
语言: 中文