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

将Snowflake实例1的account_usage数据共享至实例2的方案咨询

关于Snowflake跨实例共享ACCOUNT_USAGE数据的方案解答

一、物化视图+数据共享的可行性

Snowflake内置的snowflake.account_usage是只读的共享数据库,无法直接在其上创建物化视图,但可以通过以下步骤实现类似需求:

  1. 先将account_usage.table1的目标数据复制到你自己的数据库表中:
    CREATE OR REPLACE TABLE MY_DB.MY_SCHEMA.MY_TABLE
    AS SELECT * FROM snowflake.account_usage.table1
    WHERE <你的过滤条件>; -- 筛选需要的部分数据
    
  2. 在这个自定义表上创建物化视图:
    CREATE OR REPLACE MATERIALIZED VIEW MY_DB.MY_SCHEMA.MY_MV
    AS SELECT <指定列> FROM MY_DB.MY_SCHEMA.MY_TABLE
    WHERE <额外过滤规则>;
    
  3. 将该物化视图加入数据共享对象,共享给Snowflake实例2。数据共享支持共享自定义物化视图,实例2可直接查询共享对象,无需复制数据副本。

二、除Copy命令外的可行方案

  • 原生数据共享(Secure Data Sharing):这是Snowflake推荐的跨账户数据共享方案。只需将ACCOUNT_USAGE数据同步到自定义表/物化视图,即可创建共享对象并授权给实例2。实例2无需存储数据,直接访问实例1的对象,性能高效且实时性强。
  • 任务(Task)+ 流(Stream):针对增量同步场景,用流监控ACCOUNT_USAGE.table1的新增/变更数据,通过任务定期将增量同步到自定义表,再共享该表给实例2,适合持续同步更新数据的场景:
    -- 创建流监控表变化
    CREATE OR REPLACE STREAM MY_DB.MY_SCHEMA.MY_STREAM
    ON TABLE snowflake.account_usage.table1
    APPEND_ONLY = TRUE;
    
    -- 创建定时任务同步增量数据
    CREATE OR REPLACE TASK MY_DB.MY_SCHEMA.MY_TASK
    WAREHOUSE = MY_WH
    SCHEDULE = 'USING CRON 0 * * * * UTC' -- 每小时执行一次
    AS
    INSERT INTO MY_DB.MY_SCHEMA.MY_TABLE
    SELECT * FROM MY_DB.MY_SCHEMA.MY_STREAM;
    
    -- 启动任务
    ALTER TASK MY_DB.MY_SCHEMA.MY_TASK RESUME;
    
  • Snowpipe + 云存储:将ACCOUNT_USAGE数据导出到云存储(如AWS S3、Azure Blob),在实例2中配置Snowpipe自动将云存储中的数据加载到内部表,实现近实时同步。
  • 外部表:在实例2中创建外部表,指向实例1导出到云存储的ACCOUNT_USAGE数据文件。实例2可直接查询外部表数据,无需将数据加载到Snowflake内部表,适合按需查询场景。
  • 联邦查询(Federated Query):配置实例2对实例1的跨账户访问权限,在实例2中直接查询实例1的snowflake.account_usage数据。该方案需额外权限配置,查询性能略逊于数据共享。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:35:06