SHOW HYBRID TABLES¶
列出您具有访问权限的 混合表。
该命令可用于列出当前/指定数据库或架构的混合表,或整个账户的混合表。
此命令返回与 SHOW TABLES 不同的输出列。
输出返回混合表元数据和属性,按数据库、架构和混合表名称按字典顺序排序(有关输出列的说明,请参阅本主题中的 输出)。如果您希望使用提供的筛选器筛选结果,请务必注意这一点。
请注意,本主题将混合表简称为“表”,除非指定 混合表 以避免混淆。
语法¶
SHOW [ TERSE ] [ HYBRID ] TABLES [ LIKE '<pattern>' ]
[ IN { ACCOUNT | DATABASE [ <db_name> ] | SCHEMA [ <schema_name> ] } ]
[ STARTS WITH '<name_string>' ]
[ LIMIT <rows> [ FROM '<name_string>' ] ]
参数¶
TERSE
(可选)仅返回输出列的子集:
created_on
name
kind
kind
列值始终为 HYBRID TABLE。database_name
schema_name
默认:无值(所有列都包含在输出中)
HYBRID
仅返回混合表。
LIKE 'pattern'
(可选)按对象名称筛选命令输出。筛选器使用 不区分大小写 的模式匹配,并支持 SQL 通配符(
%
和_
)。例如,以下模式返回 相同的 结果:
... LIKE '%testing%' ...
... LIKE '%TESTING%' ...
. 默认:无值(不对输出应用筛选)。
IN ACCOUNT | DATABASE [ db_name ] | SCHEMA [ schema_name ]
(可选)指定命令范围,该范围决定该命令是仅列出当前/指定数据库或架构的记录,还是列出整个账户的记录。
如果您指定关键字
ACCOUNT
,则该命令将检索当前账户的所有数据库中所有架构的记录。如果您指定关键字
DATABASE
,那么:如果指定
db_name
,则该命令将检索指定数据库的所有架构的记录。If you don't specify a
db_name
, then:如果存在当前数据库,则该命令将检索当前数据库中所有架构的记录。
如果当前没有数据库,则该命令将检索账户中所有数据库和架构的记录。
如果您指定关键字
SCHEMA
,那么:If you specify a qualified schema name (for example,
my_database.my_schema
), then the command retrieves records for the specified database and schema.如果您指定了未限定的
schema_name
,那么:如果存在当前数据库,则该命令将检索当前数据库中指定架构的记录。
如果当前没有数据库,则该命令会显示错误
SQL compilation error: Object does not exist, or operation cannot be performed
。
If you don't specify a
schema_name
, then:如果当前有数据库,那么:
如果当前存在架构,则该命令将检索当前数据库中当前架构的记录。
如果不存在当前架构,则该命令将检索当前数据库中所有架构的记录。
如果当前没有数据库,则该命令将检索账户中所有数据库和所有架构的记录。
默认:取决于会话当前是否正在使用数据库:
数据库:
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'
将返回结果(如果有任何行与输入字符串匹配)。
使用说明¶
如果一个账户(或数据库或架构)有大量混合表,则搜索整个账户(或数据库或架构)可能会消耗大量的计算资源。
该命令不需要正在运行的仓库即可执行。
该命令仅返回当前用户的当前角色已获授至少一项访问权限的对象。
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.The output column names for this command are generated in lowercase. If you consume a result set from this command with the pipe operator or the RESULT_SCAN function, use double-quoted identifiers for the column names in the query to ensure that they match the column names in the output that was scanned. For example, if the name of an output column is
type
, then specify"type"
for the identifier.
LIMIT rows
的值不能超过10000
。如果省略LIMIT rows
,若结果集大于 1 万行,则该命令将导致错误。要查看存在超过 1 万条记录的结果,请在 Snowflake Information Schema 中包含
LIMIT rows
或查询相应的视图。
输出¶
备注
以下输出架构适用于 SHOW HYBRID TABLES 命令。有关 SHOW TABLES 的输出的信息,请参阅 使用 SHOW TABLES 识别混合表 (本主题内容)。
命令输出在以下列中提供表属性和元数据:
列 |
描述 |
---|---|
|
创建表的日期和时间。 |
|
表的名称。 |
|
存储表的数据库。 |
|
存储表的架构。 |
|
拥有表的角色。 |
|
表中的行数。 |
|
在查询中扫描整个表时将要扫描的字节数。请注意,此数字可能与表的实际物理字节数(即存储在磁盘上的字节数)不同。 |
|
为表添加注释。 |
|
拥有对象的角色类型,例如 |
备注
如果数据不断变化(例如,如果新数据不断插入混合表),则 rows
和 bytes
列中的数字可能不准确。
在最初创建和加载表后,您可能会在这些列中看到 NULL 值;后台压缩操作会定期运行并更新这些统计信息。对于大型负载,初始压缩本身可能需要很长时间。与此同时,您可以对表运行 SELECT COUNT(*)
查询,以获取准确的行数。
使用 SHOW TABLES 识别混合表¶
SHOW TABLES 命令输出具有一列,可用于识别表是否为混合表。
除了常规 SHOW TABLES 输出列 之外,还会显示此列。
该列具有以下名称和可能的值:
列名称 |
值 |
---|---|
is_hybrid |
如果该表是混合表,则为 |
示例¶
显示名称以 product_
开头并且您有权在 mydb.myschema
架构中查看的所有混合表:
SHOW HYBRID TABLES LIKE 'product_%' IN mydb.myschema;