【问题标题】:In Snowflake can I list all databases and their sizes?在雪花中,我可以列出所有数据库及其大小吗?
【发布时间】:2021-11-11 16:41:32
【问题描述】:

如何在 Snowflake 中列出所有数据库以及大小。

我能看到的最接近的是这个 Snowflake 文档 DATABASE_STORAGE_USAGE_HISTORY

select *
from table(information_schema.database_storage_usage_history(dateadd('days',-10,current_date()),current_date()));

我想要的只是一个这样的列表

数据库名称大小(GB)

MyDB1 10.5

HisDB2 21.3

HerDB3 17.8

谢谢,

皮特

【问题讨论】:

    标签: snowflake-cloud-data-platform snowflake-schema snowflake-sql


    【解决方案1】:

    使用DATABASE_STORAGE_USAGE_HISTORY:

    此帐户使用情况视图可用于查询过去 365 天(1 年)帐户中的数据库的平均每日存储使用量(以字节为单位)。数据包括:

    SELECT *
    FROM snowflake.account_usage.DATABASE_STORAGE_USAGE_HISTORY;
    

    相关:Differences Between Account Usage and Information Schema

    【讨论】:

      【解决方案2】:

      这将最多延迟 3 小时,因为它是作为数据共享从 Snowflake 共享回来的。还有其他获取信息的方法,但对于当前状态,TABLE_STORAGE_METRICS 提供有关时间旅行、故障保护等的更多信息。

      select      DATABASE_NAME
                 ,sum(ACTIVE_BYTES / 1000000000) ACTIVE_GB
                 ,sum(TIME_TRAVEL_BYTES / 1000000000) TIME_TRAVEL_GB
                 ,sum(FAILSAFE_BYTES / 1000000000) FAILSAFE_GB
                 ,sum(RETAINED_FOR_CLONE_BYTES / 1000000000) RETAINED_FOR_CLONE_GB
                 ,ACTIVE_GB+TIME_TRAVEL_GB+FAILSAFE_GB+RETAINED_FOR_CLONE_GB TOTAL_GB
      from SNOWFLAKE.ACCOUNT_USAGE.DATABASES D
          left join SNOWFLAKE.ACCOUNT_USAGE.TABLE_STORAGE_METRICS T
              on D.DATABASE_ID  = T.TABLE_CATALOG_ID
      where   D.DELETED is null
      group by DATABASE_NAME
      order by DATABASE_NAME 
      ;
      

      【讨论】:

        猜你喜欢
        • 2019-07-28
        • 1970-01-01
        • 2022-01-06
        • 1970-01-01
        • 2021-12-25
        • 1970-01-01
        • 2021-09-11
        • 1970-01-01
        • 2020-03-22
        相关资源
        最近更新 更多