首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检索雪花等数据库中的所有目录名、模式名和表名?

问如何检索雪花等数据库中的所有目录名、模式名和表名?
EN

Stack Overflow用户
提问于 2020-08-04 15:41:41
回答 3查看 1K关注 0票数 1

我需要删除一些列,并将雪花表中的数据大写。为此,我需要遍历所有的catalogs/ dbs,它各自的模式,然后是表。我需要它在python中列出目录模式,然后列出表格,之后我将启动SQL查询来进行操作。

如何处理这件事?

1.列出所有目录名称

2.列出所有模式名称

3.列出所有表名

我已经使用python雪花连接器建立了一个连接。

EN

回答 3

Stack Overflow用户

发布于 2020-08-04 20:47:33

此信息的最佳来源是Snowflake提供的SNOWFLAKE.ACCOUNT_USAGE共享。您需要将特权授予与Python连接所使用的任何角色。不过,从那里可以看到以下视图:DATABASES、SCHEMATA、TABLES等。

票数 0
EN

Stack Overflow用户

发布于 2020-08-04 21:36:16

最简单的方法是遵循以下过程

代码语言:javascript
复制
show databases;
select "name" from table(result_scan(last_query_id()));

这将为您提供数据库列表。把它们放在一个列表中。遍历此列表,并在每个项目上执行以下操作:

代码语言:javascript
复制
use <DBNAME>;
show schemas;
select "name" from table(result_scan(last_query_id()));

获取模式列表

代码语言:javascript
复制
use schema <SchemaName>;
show tables;
select "name" from table(result_scan(last_query_id()));

获取表列表,然后运行查询。

票数 0
EN

Stack Overflow用户

发布于 2020-08-05 00:13:32

您可能不需要result_scan。最近,我创建了一个python程序来列出Snowflake中所有表的所有列。我的要求是验证每个列并计算列的一些数字统计信息。我只用了“Show Columns”就能做到。我已经开源了一些常见的雪花操作,可以在这里找到。

https://github.com/Infosys/Snowflake-Python-Development-Framework

您可以克隆此代码,然后使用此框架创建python程序来列出列,如下所示,然后您可以对列详细信息执行任意操作

代码语言:javascript
复制
##
from utilities.sf_operations import Snowflakeconnection

connection = Snowflakeconnection(profilename ='snowflake_host')
sfconnectionresults = connection.get_snowflake_connection()

sfconnection = sfconnectionresults.get('connection')
statuscode = sfconnectionresults.get('statuscode')
statusmessage = sfconnectionresults.get('statusmessage')

print(sfconnection,statuscode,statusmessage)

snow_sql = 'SHOW COLUMNS;'
queryresult = connection.execute_snowquery(sfconnection,snow_sql);
print(queryresult['result'])
print('column_name|table_name|column_attribute')
print('---------------------------------------------')
for rows in queryresult['result']:
    table_name = rows[0]
    schema_name = rows[1]
    column_name = rows[2]
    column_attribute = rows[3]
    is_Null = rows[4]
    default_Value = rows[5]
    kind = rows[6]
    expression = rows[7]
    comment = rows[8]
    database_name = rows[9]
    autoincrement = rows[10]

    print(column_name+'|'+table_name+'|'+column_attribute)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63242243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档