You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Snowflake中关联STAGES与COPY_HISTORY表?

在Snowflake中关联STAGES和COPY_HISTORY视图的方法

Snowflake的STAGES和COPY_HISTORY视图可以通过以下两种方式实现关联:

方法1:利用stage_url直接匹配

SNOWFLAKE.ACCOUNT_USAGE.STAGES视图中的stage_url字段,与COPY_HISTORY的STAGE_LOCATION字段是直接对应的——无论是内部Stage还是外部Stage,两者的取值完全一致。直接用这个字段关联即可:

SELECT
    s.stage_name,
    s.stage_id,
    ch.*
FROM SNOWFLAKE.ACCOUNT_USAGE.STAGES s
JOIN SNOWFLAKE.ACCOUNT_USAGE.COPY_HISTORY ch
    ON s.stage_url = ch.STAGE_LOCATION;

方法2:解析STAGE_LOCATION匹配内部Stage

如果是内部Stage,STAGE_LOCATION的格式通常为@<数据库>.<模式>.<Stage名称>,可以通过字符串函数提取Stage的全名,再与STAGES的stage_name(格式为<数据库>.<模式>.<Stage名称>)匹配:

用正则表达式提取

SELECT
    s.stage_name,
    s.stage_id,
    ch.*
FROM SNOWFLAKE.ACCOUNT_USAGE.STAGES s
JOIN SNOWFLAKE.ACCOUNT_USAGE.COPY_HISTORY ch
    ON s.stage_name = REGEXP_SUBSTR(ch.STAGE_LOCATION, '@(.*)$', 1, 1, 'e');

用拆分函数提取

SELECT
    s.stage_name,
    s.stage_id,
    ch.*
FROM SNOWFLAKE.ACCOUNT_USAGE.STAGES s
JOIN SNOWFLAKE.ACCOUNT_USAGE.COPY_HISTORY ch
    ON s.stage_name = SPLIT_PART(ch.STAGE_LOCATION, '@', 2);

注意事项

  • 外部Stage的STAGE_LOCATION是云存储的完整路径(如S3、Azure Blob的URL),此时直接使用方法1即可关联。
  • 操作前需确保拥有ACCOUNTADMIN角色,或已被授予这两个视图的SELECT权限。

内容的提问来源于stack exchange,提问作者Peachman1997

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 14:45:55