# jianganpy **Repository Path**: yttProjects/jianganpy ## Basic Information - **Project Name**: jianganpy - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-07 - **Last Updated**: 2026-05-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据质量分析工具 这是一个用于分析数据库表数据质量的桌面应用程序,可以检查字段的唯一性、空值率、外键完整性等。 ## 功能特点 - 图形用户界面,易于使用 - 支持多种数据库(Oracle、MySQL、PostgreSQL、SQL Server) - 可配置的分析规则和表 - 支持批量分析多个表 - 详细的日志记录和结果显示 ## 环境准备 ### 使用 Miniforge3 创建 Python 环境 推荐使用 Python 3.10(3.11 及以上版本与 pandas、openpyxl 兼容性不佳): ```bash conda create --name xyzl_io python=3.10 conda activate xyzl_io ``` ### 安装依赖 #### 方式一:使用 conda 安装(推荐) ```bash conda install sqlalchemy pymysql schedule cryptography cx_Oracle pandas requests pycryptodome openpyxl BeautifulSoup4 bcrypt pyodbc fastapi lxml PyYAML conda-pack ``` > 注意:避免使用 `conda install pymssql`,可能会遇到兼容性问题。 #### 方式二:使用 pip 安装 ```bash pip install sqlalchemy pymysql ``` #### 可选:安装 PaddleNLP(如需使用 UIE 功能) ```bash pip install --upgrade paddlenlp pip install paddlepaddle ``` 参考:[PaddleNLP GitHub](https://github.com/PaddlePaddle/PaddleNLP) ## 使用方法 ### 方法一:直接运行 Python 脚本 ```bash # 运行 GUI 界面 python common/data_quality_analyzer.py # 运行命令行模式 python common/data_quality_analyzer.py --cli ``` ### 方法二:运行打包后的 exe 文件 首次使用前,需要先打包 exe 文件(见下文打包说明)。 ## 打包为 exe 文件 ### 安装 PyInstaller ```bash pip install pyinstaller ``` ### 执行打包 ```bash python build_exe.py --build ``` 打包完成后,exe 文件将位于 `dist/DataQualityAnalyzer` 目录下。 ### 清理打包缓存 如需重新打包或清理缓存: ```bash python build_exe.py --clean ``` ## 配置文件 程序需要 YAML 格式的配置文件来指定数据库连接和分析规则。示例配置文件请参考 `sample_config.yaml`。 ### 配置文件结构 配置文件应包含以下部分: - `connection_string`: 数据库连接字符串 - `data_fk_config`: 外键配置,用于验证引用完整性 - `tables_config`: 要分析的表配置列表 ### 配置项说明 - **connection_string**: 数据库连接字符串,支持 Oracle、MySQL、PostgreSQL、SQL Server 等 - **data_fk_config**: - `baseinfo`: 基础信息表配置 - `dept`: 科室信息表配置 - `person`: 人员信息表配置 - **tables_config**: 表配置数组,每个表配置包括: - `name`: 表名 - `date_column`: 日期列名 - `is_date`: 是否为日期类型 - `patientcode`: 患者编码列名(可选) - `deptid`: 科室 ID 列名(可选) - `doctorid`: 医生 ID 列名(可选) - `conn_str`: 此表的特定连接字符串(可选) - `columns`: 要分析的列(可选) - `filter_dates`: 自定义过滤日期(可选) ## 输出结果 程序会生成详细的数据质量分析报告,包括: - 表的总记录数和时间范围 - 各字段的采样数量、不唯一率和空值率 - 外键存在性统计(患者编码、医生 ID、科室 ID) ## 注意事项 1. 确保数据库连接字符串正确 2. 确保配置文件中的表名和列名在数据库中存在 3. 如果使用 Oracle 数据库,需要安装 Oracle 客户端并设置正确的环境变量 4. 分析大量数据可能需要较长时间,请耐心等待 ## 故障排除 - **Oracle 相关错误**:请确认 Oracle 客户端已正确安装 - **模块找不到**:请确认已安装所有依赖项 - **数据库连接失败**:请检查连接字符串和网络连接