在授予监控帐户特权时,有没有一种方法可以使用python查询帐单使用情况?

2024-04-18 11:54:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我想查询雪花帐单信息,并总结在一个笔记本电脑。你知道吗

我目前正在使用Snowflake SQLAlchemy和python Snowflake连接器来连接Snowflake和查询数据库。我想查询帐户上不同用户/仓库的信用使用情况。我已被授予监视帐户权限,因此可以在UI中查看此信息,但是,我看不到如何直接查询此信息。你知道吗

我尝试过下面这样的查询,但是由于我没有AccountAdmin,所以不能直接查询这个模式。你知道吗

from sqlalchemy import create_engine
from snowflake.sqlalchemy import URL
import pandas as pd
import numpy as np
import snowflake.connector

query = """
select start_time::date as usage_date,
       warehouse_name,
       sum(credits_used) as total_credits_used
from warehouse_metering_history
where start_time >= date_trunc(month, current_date)
group by 1,2
order by 2,1;"""

result_df = pd.read_sql_query(query, engine)

预期结果是一个数据框,其中包含与account、billing&usage下的数据类似的数据。这是一个列出用户和信用使用情况的表。目前我无法返回任何这些信息。你知道吗


Tags: 数据用户fromimport信息datesqlalchemyas
1条回答
网友
1楼 · 发布于 2024-04-18 11:54:59

您需要确保使用正确的角色(已授予监视帐户privs的角色)登录。如果在python脚本中没有指定要登录的角色,那么Snowflake将使用您的default_role,而您的default_role可能没有正确的权限。你知道吗

您还可以尝试完全限定warehouse_metering_history表,以便它包含该表的数据库和架构,如下所示:

select start_time::date as usage_date,
       warehouse_name,
       sum(credits_used) as total_credits_used
from snowflake.account_usage.warehouse_metering_history   Here fully qualify the table 
where start_time >= date_trunc(month, current_date)
group by 1,2
order by 2,1;

尝试通过web界面运行相同的查询,看看您得到了什么。你知道吗

相关问题 更多 >