数据处理|通过sqlalchemy获取数据库名列表、表名列表、表字段名列表

【数据处理|通过sqlalchemy获取数据库名列表、表名列表、表字段名列表】前些天有个小项目,每天自动将数据库的信息汇总上报,上报的信息有每个表的:名字、所在数据库、数据量、字段数量。其中获取数据量较为容易,通过select count(*) 即可,而数据库名、表名、字段数量则难以获取,经过一番搜索,解决方案如下:

>>> import sqlalchemy >>> from impala.dbapi import connect# 创建impala连接 >>> def conn(): return connect(host='xx.xx.xx.xx', port=xxxx, database='xxxx', user='xxxx', password='xxx!', auth_mechanism='PLAIN') >>> engine = sqlalchemy.create_engine('impala://', creator=conn)# 获取数据库名列表 >>> insp = sqlalchemy.inspect(engine) >>> insp.get_schema_names() ['database_name1', 'database_name2', 'database_name3', 'database_name4', ...]# 获取表名列表 >>> engine.table_names() ['table_name1', 'table_name2', 'table_name3', 'table_name4', ...]# 获取表字段列表 >>> md = sqlalchemy.MetaData() >>> table = sqlalchemy.Table('table_name', md, autoload=True, autoload_with=engine) >>> columns = table.c >>> [c.name for c in columns]

    推荐阅读