数据处理|通过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]
推荐阅读
- gitlab|gitlab 通过备份还原 admin/runner 500 Internal Server Error
- 爬虫数据处理HTML转义字符
- whlie循环和for循环的应用
- 如何通过锻炼的方法治疗前列腺肥大
- 通过复盘快速成长(附模板)
- Python|Python 基于datetime库的日期时间数据处理
- MyBatis|MyBatis Generator配置
- 运维|如何限制IP 通过 SSH连接服务器
- 运维|Linux 禁止用户或 IP通过 SSH 登录
- 青椒板书--足球