我需要删除一些列和大写的雪花表中的数据。为此,我需要遍历所有目录/数据库、其各自的模式,然后是表。我需要在python中列出目录模式,然后列出表,然后退出sql查询来执行操作。如何进行?1.列出所有目录名称2.列出所有模式名称3.列出所有表名我已经用python雪花连接器建立了一个连接
6ojccjat1#
你最好的信息来源是 SNOWFLAKE.ACCOUNT_USAGE 分享雪花提供的一切。您需要将特权授予用于连接python的任何角色。不过,从这里可以看到以下观点: DATABASES , SCHEMATA , TABLES ,等等。
SNOWFLAKE.ACCOUNT_USAGE
DATABASES
SCHEMATA
TABLES
ve7v8dk22#
最简单的方法是遵循以下流程
show databases; select "name" from table(result_scan(last_query_id()));
这将为您提供数据库列表。把他们列在一张单子上。遍历此列表并对每个项目执行以下操作:
use <DBNAME>; show schemas; select "name" from table(result_scan(last_query_id()));
获取架构列表
use schema <SchemaName>; show tables; select "name" from table(result_scan(last_query_id()));
获取表列表,然后运行查询。
agxfikkp3#
您可能不需要扫描结果。最近,我创建了一个python程序来列出snowflake中所有表的所有列。我的要求是验证每个列并计算列的一些数字统计。我只能用“显示列”来做。我已经在这里公开了一些常见的雪花操作https://github.com/infosys/snowflake-python-development-framework您可以克隆此代码,然后使用此框架创建python程序以列出列,如下所示,然后您可以对列详细信息执行任何操作
## 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)
3条答案
按热度按时间6ojccjat1#
你最好的信息来源是
SNOWFLAKE.ACCOUNT_USAGE
分享雪花提供的一切。您需要将特权授予用于连接python的任何角色。不过,从这里可以看到以下观点:DATABASES
,SCHEMATA
,TABLES
,等等。ve7v8dk22#
最简单的方法是遵循以下流程
这将为您提供数据库列表。把他们列在一张单子上。遍历此列表并对每个项目执行以下操作:
获取架构列表
获取表列表,然后运行查询。
agxfikkp3#
您可能不需要扫描结果。最近,我创建了一个python程序来列出snowflake中所有表的所有列。我的要求是验证每个列并计算列的一些数字统计。我只能用“显示列”来做。我已经在这里公开了一些常见的雪花操作
https://github.com/infosys/snowflake-python-development-framework
您可以克隆此代码,然后使用此框架创建python程序以列出列,如下所示,然后您可以对列详细信息执行任何操作