Python获取帆软报表所有SQL

问题描述:

需要知道帆软报表里有哪些SQL, 用于运维或者分析数据血缘

解决

用python解析帆软模板文件里的SQL
在帆软 [管理系统]-[智能运维]-[资源迁移] 下导出所有模板文件, 解压到/模板目录, 然后用执行
需要python库 PyQueen 支持

pip3 install pyqueen -i https://pypi.tuna.tsinghua.edu.cn/simple/
from pyqueen import DataSource, FineReport

FR_DIR = '/模板目录'

# 提取所有SQL
data = FineReport().extract_sql(FR_DIR)

# [可选] 如果需要把路径改成相对路径, 修改 `根目录` 
for item in data:
    item['fr_path'] = str(str(item['fr_path'])[str(item['fr_path']).find('根目录'):]).replace('\\', '/')

# [可选] 如果需要将结果入库, 假设表名 `devops_fr_sql`
ds= DataSource(conn_type='mysql', host='192.168.1.10', port='', username='root', password='123456', db_name='dbname')

df = pd.DataFrame(data)
ds.exe_sql('truncate table devops_fr_sql')
ds.to_db(df=df, tb_name='devops_fr_sql')

扩展

如果需要进一步分析sql引用到的表, 可以配合PyQueen 解析表, 使用正则解析

对于复杂SQL准确度较低, 仅供参考

from pyqueen import Utils

Utils.sql2table(sql_str="select * from xxxxx")
Done
image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Bookmarks 书签栏 入职 华为新员工小百科(刷新时间202003023) - 人才供应知多少 - 3MS知...
    Btrace阅读 5,285评论 0 0
  • 1、谈谈对http协议的认识流程:1.域名解析域名解析检查顺序为:浏览器自身DNS缓存---》OS自身的DNS缓存...
    Zzmi阅读 4,151评论 0 0
  • 本文可以学习到以下内容: 用Python、pandas获取sqlite3中的数据用Python、pandas获取M...
    帅帅的Python阅读 2,548评论 0 1
  • 本次内容涵盖了Excel、Word、PPT、ODF、PDF、邮件、微信、文件处理等所有能在办公场景实现自动化的库,...
    知信学源阅读 891评论 0 0
  • 基础库与工具日志处理系统工具邮件数据库打印输出命令行参数解析命令行界面库GUI 工具算法与设计模式并行计算、分布式...
    mocobk阅读 3,375评论 0 0