# xiaolan-os **Repository Path**: zlx-seed/xiaolan-os ## Basic Information - **Project Name**: xiaolan-os - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-19 - **Last Updated**: 2026-04-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: xiaolan ## README # BIDT SQL血缘分析系统 > 为BIDT测试系统构建的SQL血缘分析工具,解决测试数据生成和验证困难的问题。 ## 项目概述 ### 核心功能 1. **表级血缘分析** - 识别源表→中间表→目标表的数据流向 2. **PL日志解析** - 自动提取SQL变量赋值和连接条件 3. **测试数据生成** - 基于血缘关系自动生成测试数据 ### 技术栈 - Python 3.10+ - pglast v7.11 (PostgreSQL AST解析) - SQLite (数据存储) - pytest (测试框架) ## 项目结构 ``` bidt-sql-lineage/ ├── src/ # 源代码 │ ├── extractors/ # 提取器模块 │ │ └── table_lineage.py # 表血缘提取 │ ├── models/ # 数据模型 │ │ └── lineage.py # 血缘关系模型 │ ├── generators/ # 生成器模块 │ │ └── test_data.py # 测试数据生成 │ └── utils/ # 工具函数 │ └── helpers.py # 通用辅助函数 ├── tests/ # 测试代码 │ ├── test_extractors/ # 提取器测试 │ └── test_generators/ # 生成器测试 ├── data/ # 数据文件 │ ├── input/ # 输入数据(PL脚本、日志) │ └── output/ # 输出数据(血缘图、测试数据) ├── requirements.txt # 依赖配置 ├── setup.py # 包配置 └── README.md # 本文件 ``` ## 快速开始 ### 安装依赖 ```bash pip install -r requirements.txt ``` ### 开发模式安装 ```bash pip install -e . ``` ### 运行测试 ```bash pytest tests/ -v --cov=src ``` ## 使用示例 ```python from src.extractors import TableLineageExtractor # 创建提取器 extractor = TableLineageExtractor() # 分析SQL血缘 sql = """ INSERT INTO target_table SELECT a.id, b.name FROM source_table_a a JOIN source_table_b b ON a.id = b.id """ result = extractor.extract(sql) print(f"源表: {result.source_tables}") print(f"目标表: {result.target_table}") ``` ## 开发指南 ### 代码规范 - 遵循PEP 8规范 - 使用black进行代码格式化 - 使用mypy进行类型检查 - 测试覆盖率>80% ### 提交前检查 ```bash black src/ tests/ flake8 src/ tests/ mypy src/ pytest tests/ --cov=src --cov-report=term-missing ``` ## 路线图 ### P0 - 核心功能 (Week 1) - [x] 项目初始化 - [ ] 实现TableExtractor基础框架 - [ ] 支持SELECT语句表血缘提取 - [ ] 支持INSERT语句表血缘提取 - [ ] 支持CREATE TABLE AS语句 ### P1 - 增强功能 (Week 2) - [ ] 支持JOIN条件提取 - [ ] 处理隐式连接(WHERE条件) - [ ] 处理GROUP BY数字 - [ ] 支持子查询 - [ ] 实现测试数据生成器 ### P2 - 优化功能 (Week 3) - [ ] StreamLit Web界面 - [ ] 血缘关系可视化 - [ ] 批量处理多个PL脚本 - [ ] 性能优化 ## 许可证 MIT License