如何在information_schema中区分Snowflake Unistore混合表与普通表
Unistore混合表区分查询方案
information_schema.tables默认确实没有提供专门标识Unistore混合表的字段,可通过以下两种可靠方式完成区分:
- 基于InnoDB系统视图查询(推荐,准确率最高)
所有通过CREATE HYBRID TABLE创建的混合表,在information_schema.innodb_tables视图的table_type字段会固定返回HYBRID值,普通InnoDB基表该字段值为BASE TABLE,直接筛选该字段即可快速区分,示例查询语句:SELECT table_schema AS 库名, table_name AS 表名, table_type AS 表类型 FROM information_schema.innodb_tables WHERE table_schema = '替换为你要查询的数据库名'; - 基于表创建选项过滤
混合表创建后会自动写入专属表选项HYBRID=ON,可以直接通过information_schema.tables的create_options字段模糊匹配筛选,不需要额外查询其他视图,示例查询语句:SELECT table_schema AS 库名, table_name AS 表名 FROM information_schema.tables WHERE table_schema = '替换为你要查询的数据库名' AND create_options LIKE '%HYBRID=ON%';
注意:如果你使用的是Unistore早期预览版本,
create_options字段可能存在未正常回写标识的情况,优先选择第一种查询innodb_tables的方式,不会出现漏判、误判。
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

