如何在Snowflake账户中直接查询并筛选数据共享?
在Snowflake中直接查询并筛选数据共享的方法
Snowflake提供了基于INFORMATION_SCHEMA的原生视图,能直接查询并筛选共享信息,完全不需要依赖RESULT_SCAN这类临时方案,稳定性和规范性都有保障,适合在并行代码中使用。
查询共享特定表的出站共享
结合SHARES和SHARE_OBJECTS两个视图就能实现,前者记录共享的基本信息,后者记录共享包含的具体对象。示例SQL如下:SELECT s.share_name, s.share_type, so.object_name, so.object_type, so.schema_name, so.database_name FROM INFORMATION_SCHEMA.SHARES s INNER JOIN INFORMATION_SCHEMA.SHARE_OBJECTS so ON s.share_name = so.share_name WHERE so.object_name = '目标表名' AND s.share_type = 'OUTBOUND';把
目标表名替换成你要查找的表名称即可,share_type = 'OUTBOUND'确保只筛选你账户对外发起的共享。关键视图说明
INFORMATION_SCHEMA.SHARES:包含共享名称、类型(OUTBOUND/INBOUND)、创建时间、所有者等核心元数据INFORMATION_SCHEMA.SHARE_OBJECTS:记录每个共享关联的具体对象,包括对象名、类型(表/视图等)、所属库和Schema
查询入站共享
如果需要筛选别人共享给你的入站数据,只需把share_type条件改成INBOUND,同样可以通过SHARE_OBJECTS过滤特定对象。
内容的提问来源于stack exchange,提问作者HelloWorld
相关产品推荐
相关产品推荐

