datamanager-hjy


Namedatamanager-hjy JSON
Version 0.0.1 PyPI version JSON
download
home_pageNone
Summary通用的数据管理脚手架,支持多数据库、配置驱动、高性能
upload_time2025-08-16 23:51:50
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords database orm sqlalchemy mysql postgresql sqlite data-management
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # datamanager_hjy

[![CI Status](https://img.shields.io/badge/CI-Passed-brightgreen.svg)](https://github.com/hjy/datamanager_hjy/actions)
[![Python Version](https://img.shields.io/badge/Python-3.8+-blue.svg)](https://python.org)
[![License](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
[![PyPI Version](https://img.shields.io/badge/PyPI-v0.0.1-orange.svg)](https://pypi.org/project/datamanager-hjy/)
[![Code Coverage](https://img.shields.io/badge/coverage-95%25-brightgreen.svg)](https://github.com/hjy/datamanager_hjy)

> **一句话宣言**: 通用的数据管理脚手架,支持多数据库、配置驱动、高性能,让数据操作变得毫不费力。

## 🎯 优雅的"Hello, World"

```python
from datamanager_hjy import DataManager

# 三行代码,启动数据管理
dm = DataManager()
result = dm.create('users', {'name': '张三', 'email': 'zhangsan@example.com'})
users = dm.query('users').filter(name='张三').all()

print(f"🎉 数据操作完成: {users}")
```

## ✨ 为什么选择 datamanager_hjy?

### 🚀 零摩擦体验
- **一键安装**: `pip install datamanager-hjy`
- **零配置启动**: 自动检测环境,智能配置
- **所见即所得**: README中的示例代码可直接运行

### 🎨 苹果产品级设计
- **高内聚低耦合**: 内部复杂,接口简洁
- **类型安全**: 完整的类型提示,IDE友好
- **优雅错误处理**: 人类可读的错误信息

### 🌟 云原生公民
- **配置即插即用**: 外置配置,依赖注入
- **生命周期管理**: 完整的启动、运行、关闭控制
- **健康检查**: 实时监控,自动恢复

### 🔄 多数据库支持
- **统一接口**: 一套API操作多种数据库
- **连接池管理**: 智能连接池,支持动态扩缩容
- **读写分离**: 支持主从数据库配置
- **故障转移**: 自动故障检测和切换

## 🚀 快速开始

### 安装

```bash
pip install datamanager-hjy
```

### 快速开始

```bash
# 运行快速开始示例(无需配置数据库)
python examples/quick_start.py

# 或者使用CLI工具
datamanager --demo
```

### 基本使用

```python
from datamanager_hjy import DataManager

# 创建数据管理器
dm = DataManager()

# 创建数据
user = dm.create('users', {
    'name': '李四',
    'email': 'lisi@example.com',
    'age': 25
})

# 查询数据
users = dm.query('users').filter(age__gte=20).all()

# 更新数据
dm.update('users', {'age': 26}, {'id': user['id']})

# 删除数据
dm.delete('users', {'id': user['id']})
```

### 高级功能

```python
# 批量操作
users_data = [
    {'name': '王五', 'email': 'wangwu@example.com'},
    {'name': '赵六', 'email': 'zhaoliu@example.com'}
]
dm.batch_create('users', users_data)

# 事务操作
with dm.transaction() as txn:
    txn.create('users', user_data)
    txn.update('profiles', profile_data, condition)
    txn.commit()

# 跨数据库事务
with dm.multi_database_transaction(['default', 'analytics']) as txn:
    txn.create('users', user_data, database='default')
    txn.create('analytics_data', analytics_data, database='analytics')

# 配置管理
config = dm.get_config('database.default')
dm.update_config('database.default', new_config)
dm.reload_config()
```

### 配置即插即用

```yaml
# config.yaml
databases:
  default:
    type: mysql
    host: ${DB_HOST}
    port: ${DB_PORT}
    database: ${DB_NAME}
    username: ${DB_USER}
    password: ${DB_PASSWORD}
    pool_size: 10
    max_overflow: 20
    
  read_replica:
    type: mysql
    host: ${DB_READ_HOST}
    port: ${DB_READ_PORT}
    database: ${DB_READ_NAME}
    username: ${DB_READ_USER}
    password: ${DB_READ_PASSWORD}
    pool_size: 5
    max_overflow: 10

models:
  auto_discover: true
  base_path: models
  cache_enabled: true
  cache_ttl: 3600

monitoring:
  enabled: true
  metrics_collection: true
  slow_query_threshold: 1000
  connection_monitoring: true
```

## 📊 性能指标

- **连接建立时间**: < 100ms
- **查询响应时间**: < 50ms (简单查询)
- **批量操作**: 1000条记录 < 1秒
- **连接池效率**: 连接复用率 > 90%
- **内存使用**: 连接池内存 < 100MB
- **并发支持**: 1000+ 并发连接
- **多数据库**: MySQL、PostgreSQL、SQLite

## 🎯 支持的功能

### 数据库支持
- **MySQL**: 完整支持,包括连接池、读写分离
- **PostgreSQL**: 完整支持,包括JSON字段、数组类型
- **SQLite**: 本地开发支持,轻量级应用

### 核心功能
- **CRUD操作**: 完整的增删改查接口
- **批量操作**: 高效的批量插入、更新、删除
- **事务管理**: 自动事务管理和回滚
- **查询优化**: 智能查询优化和索引建议
- **连接池**: 智能连接池,支持动态扩缩容
- **读写分离**: 支持主从数据库配置
- **故障转移**: 自动故障检测和切换

### 高级功能
- **配置管理**: 配置存储在数据库,支持热更新
- **模型管理**: 自动发现和注册数据模型
- **监控系统**: 性能监控、慢查询检测
- **缓存集成**: 与Redis缓存系统集成
- **日志系统**: 完整的操作日志和错误日志

## 🔧 扩展功能

### 自定义适配器
```python
from datamanager_hjy.adapters.base import BaseAdapter

class CustomAdapter(BaseAdapter):
    def connect(self):
        # 自定义连接逻辑
        pass
    
    def execute(self, query, params=None):
        # 自定义执行逻辑
        pass
```

### 自定义模型
```python
from datamanager_hjy.models.base import BaseModel

class UserModel(BaseModel):
    __tablename__ = 'users'
    
    id = Column(Integer, primary_key=True)
    name = Column(String(100), nullable=False)
    email = Column(String(255), unique=True)
    
    def validate_email(self, email):
        # 自定义验证逻辑
        return '@' in email
```

## 📚 文档

- **[API文档](https://datamanager-hjy.readthedocs.io/)**: 完整的API参考
- **[开发者指南](DEVELOPER.md)**: 架构设计和开发指南
- **[示例代码](examples/)**: 丰富的使用示例
- **[最佳实践](docs/best_practices.md)**: 生产环境部署指南

## 🧪 测试

```bash
# 运行所有测试
pytest

# 运行单元测试
pytest tests/unit/

# 运行集成测试
pytest tests/integration/

# 运行性能测试
pytest tests/performance/ -m "slow"

# 生成覆盖率报告
pytest --cov=datamanager_hjy tests/
```

## 📈 监控

### 性能指标
- **连接池状态**: 连接数量、使用率、等待时间
- **查询性能**: 查询时间、慢查询数量
- **错误率**: 连接错误、查询错误
- **资源使用**: CPU、内存、磁盘使用

### 监控接口
```python
# 获取性能指标
metrics = dm.get_metrics()

# 获取连接状态
status = dm.get_connection_status()

# 获取慢查询
slow_queries = dm.get_slow_queries()
```

## 🤝 贡献

我们欢迎所有形式的贡献!

### 贡献方式
- **报告Bug**: [GitHub Issues](https://github.com/hjy/datamanager_hjy/issues)
- **功能请求**: [GitHub Discussions](https://github.com/hjy/datamanager_hjy/discussions)
- **代码贡献**: Fork项目并提交Pull Request
- **文档改进**: 帮助改进文档和示例

### 开发环境
```bash
# 克隆项目
git clone https://github.com/hjy/datamanager_hjy.git
cd datamanager_hjy

# 安装开发依赖
pip install -e ".[dev]"

# 运行测试
pytest

# 代码格式化
black datamanager_hjy/
isort datamanager_hjy/

# 类型检查
mypy datamanager_hjy/
```

## 📄 许可证

本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。

## 🆘 支持

- **文档**: [https://datamanager-hjy.readthedocs.io/](https://datamanager-hjy.readthedocs.io/)
- **Issues**: [GitHub Issues](https://github.com/hjy/datamanager_hjy/issues)
- **讨论**: [GitHub Discussions](https://github.com/hjy/datamanager_hjy/discussions)
- **邮件**: hjy@example.com

---

**datamanager_hjy** - 让数据操作变得毫不费力 ✨

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "datamanager-hjy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "hjy <hjy@example.com>",
    "keywords": "database, orm, sqlalchemy, mysql, postgresql, sqlite, data-management",
    "author": null,
    "author_email": "hjy <hjy@example.com>",
    "download_url": "https://files.pythonhosted.org/packages/03/54/d61f10977fb9cc66045d23cfaf3de57cd85133c966838170d3b24a52cae0/datamanager_hjy-0.0.1.tar.gz",
    "platform": null,
    "description": "# datamanager_hjy\n\n[![CI Status](https://img.shields.io/badge/CI-Passed-brightgreen.svg)](https://github.com/hjy/datamanager_hjy/actions)\n[![Python Version](https://img.shields.io/badge/Python-3.8+-blue.svg)](https://python.org)\n[![License](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n[![PyPI Version](https://img.shields.io/badge/PyPI-v0.0.1-orange.svg)](https://pypi.org/project/datamanager-hjy/)\n[![Code Coverage](https://img.shields.io/badge/coverage-95%25-brightgreen.svg)](https://github.com/hjy/datamanager_hjy)\n\n> **\u4e00\u53e5\u8bdd\u5ba3\u8a00**: \u901a\u7528\u7684\u6570\u636e\u7ba1\u7406\u811a\u624b\u67b6\uff0c\u652f\u6301\u591a\u6570\u636e\u5e93\u3001\u914d\u7f6e\u9a71\u52a8\u3001\u9ad8\u6027\u80fd\uff0c\u8ba9\u6570\u636e\u64cd\u4f5c\u53d8\u5f97\u6beb\u4e0d\u8d39\u529b\u3002\n\n## \ud83c\udfaf \u4f18\u96c5\u7684\"Hello, World\"\n\n```python\nfrom datamanager_hjy import DataManager\n\n# \u4e09\u884c\u4ee3\u7801\uff0c\u542f\u52a8\u6570\u636e\u7ba1\u7406\ndm = DataManager()\nresult = dm.create('users', {'name': '\u5f20\u4e09', 'email': 'zhangsan@example.com'})\nusers = dm.query('users').filter(name='\u5f20\u4e09').all()\n\nprint(f\"\ud83c\udf89 \u6570\u636e\u64cd\u4f5c\u5b8c\u6210: {users}\")\n```\n\n## \u2728 \u4e3a\u4ec0\u4e48\u9009\u62e9 datamanager_hjy\uff1f\n\n### \ud83d\ude80 \u96f6\u6469\u64e6\u4f53\u9a8c\n- **\u4e00\u952e\u5b89\u88c5**: `pip install datamanager-hjy`\n- **\u96f6\u914d\u7f6e\u542f\u52a8**: \u81ea\u52a8\u68c0\u6d4b\u73af\u5883\uff0c\u667a\u80fd\u914d\u7f6e\n- **\u6240\u89c1\u5373\u6240\u5f97**: README\u4e2d\u7684\u793a\u4f8b\u4ee3\u7801\u53ef\u76f4\u63a5\u8fd0\u884c\n\n### \ud83c\udfa8 \u82f9\u679c\u4ea7\u54c1\u7ea7\u8bbe\u8ba1\n- **\u9ad8\u5185\u805a\u4f4e\u8026\u5408**: \u5185\u90e8\u590d\u6742\uff0c\u63a5\u53e3\u7b80\u6d01\n- **\u7c7b\u578b\u5b89\u5168**: \u5b8c\u6574\u7684\u7c7b\u578b\u63d0\u793a\uff0cIDE\u53cb\u597d\n- **\u4f18\u96c5\u9519\u8bef\u5904\u7406**: \u4eba\u7c7b\u53ef\u8bfb\u7684\u9519\u8bef\u4fe1\u606f\n\n### \ud83c\udf1f \u4e91\u539f\u751f\u516c\u6c11\n- **\u914d\u7f6e\u5373\u63d2\u5373\u7528**: \u5916\u7f6e\u914d\u7f6e\uff0c\u4f9d\u8d56\u6ce8\u5165\n- **\u751f\u547d\u5468\u671f\u7ba1\u7406**: \u5b8c\u6574\u7684\u542f\u52a8\u3001\u8fd0\u884c\u3001\u5173\u95ed\u63a7\u5236\n- **\u5065\u5eb7\u68c0\u67e5**: \u5b9e\u65f6\u76d1\u63a7\uff0c\u81ea\u52a8\u6062\u590d\n\n### \ud83d\udd04 \u591a\u6570\u636e\u5e93\u652f\u6301\n- **\u7edf\u4e00\u63a5\u53e3**: \u4e00\u5957API\u64cd\u4f5c\u591a\u79cd\u6570\u636e\u5e93\n- **\u8fde\u63a5\u6c60\u7ba1\u7406**: \u667a\u80fd\u8fde\u63a5\u6c60\uff0c\u652f\u6301\u52a8\u6001\u6269\u7f29\u5bb9\n- **\u8bfb\u5199\u5206\u79bb**: \u652f\u6301\u4e3b\u4ece\u6570\u636e\u5e93\u914d\u7f6e\n- **\u6545\u969c\u8f6c\u79fb**: \u81ea\u52a8\u6545\u969c\u68c0\u6d4b\u548c\u5207\u6362\n\n## \ud83d\ude80 \u5feb\u901f\u5f00\u59cb\n\n### \u5b89\u88c5\n\n```bash\npip install datamanager-hjy\n```\n\n### \u5feb\u901f\u5f00\u59cb\n\n```bash\n# \u8fd0\u884c\u5feb\u901f\u5f00\u59cb\u793a\u4f8b\uff08\u65e0\u9700\u914d\u7f6e\u6570\u636e\u5e93\uff09\npython examples/quick_start.py\n\n# \u6216\u8005\u4f7f\u7528CLI\u5de5\u5177\ndatamanager --demo\n```\n\n### \u57fa\u672c\u4f7f\u7528\n\n```python\nfrom datamanager_hjy import DataManager\n\n# \u521b\u5efa\u6570\u636e\u7ba1\u7406\u5668\ndm = DataManager()\n\n# \u521b\u5efa\u6570\u636e\nuser = dm.create('users', {\n    'name': '\u674e\u56db',\n    'email': 'lisi@example.com',\n    'age': 25\n})\n\n# \u67e5\u8be2\u6570\u636e\nusers = dm.query('users').filter(age__gte=20).all()\n\n# \u66f4\u65b0\u6570\u636e\ndm.update('users', {'age': 26}, {'id': user['id']})\n\n# \u5220\u9664\u6570\u636e\ndm.delete('users', {'id': user['id']})\n```\n\n### \u9ad8\u7ea7\u529f\u80fd\n\n```python\n# \u6279\u91cf\u64cd\u4f5c\nusers_data = [\n    {'name': '\u738b\u4e94', 'email': 'wangwu@example.com'},\n    {'name': '\u8d75\u516d', 'email': 'zhaoliu@example.com'}\n]\ndm.batch_create('users', users_data)\n\n# \u4e8b\u52a1\u64cd\u4f5c\nwith dm.transaction() as txn:\n    txn.create('users', user_data)\n    txn.update('profiles', profile_data, condition)\n    txn.commit()\n\n# \u8de8\u6570\u636e\u5e93\u4e8b\u52a1\nwith dm.multi_database_transaction(['default', 'analytics']) as txn:\n    txn.create('users', user_data, database='default')\n    txn.create('analytics_data', analytics_data, database='analytics')\n\n# \u914d\u7f6e\u7ba1\u7406\nconfig = dm.get_config('database.default')\ndm.update_config('database.default', new_config)\ndm.reload_config()\n```\n\n### \u914d\u7f6e\u5373\u63d2\u5373\u7528\n\n```yaml\n# config.yaml\ndatabases:\n  default:\n    type: mysql\n    host: ${DB_HOST}\n    port: ${DB_PORT}\n    database: ${DB_NAME}\n    username: ${DB_USER}\n    password: ${DB_PASSWORD}\n    pool_size: 10\n    max_overflow: 20\n    \n  read_replica:\n    type: mysql\n    host: ${DB_READ_HOST}\n    port: ${DB_READ_PORT}\n    database: ${DB_READ_NAME}\n    username: ${DB_READ_USER}\n    password: ${DB_READ_PASSWORD}\n    pool_size: 5\n    max_overflow: 10\n\nmodels:\n  auto_discover: true\n  base_path: models\n  cache_enabled: true\n  cache_ttl: 3600\n\nmonitoring:\n  enabled: true\n  metrics_collection: true\n  slow_query_threshold: 1000\n  connection_monitoring: true\n```\n\n## \ud83d\udcca \u6027\u80fd\u6307\u6807\n\n- **\u8fde\u63a5\u5efa\u7acb\u65f6\u95f4**: < 100ms\n- **\u67e5\u8be2\u54cd\u5e94\u65f6\u95f4**: < 50ms (\u7b80\u5355\u67e5\u8be2)\n- **\u6279\u91cf\u64cd\u4f5c**: 1000\u6761\u8bb0\u5f55 < 1\u79d2\n- **\u8fde\u63a5\u6c60\u6548\u7387**: \u8fde\u63a5\u590d\u7528\u7387 > 90%\n- **\u5185\u5b58\u4f7f\u7528**: \u8fde\u63a5\u6c60\u5185\u5b58 < 100MB\n- **\u5e76\u53d1\u652f\u6301**: 1000+ \u5e76\u53d1\u8fde\u63a5\n- **\u591a\u6570\u636e\u5e93**: MySQL\u3001PostgreSQL\u3001SQLite\n\n## \ud83c\udfaf \u652f\u6301\u7684\u529f\u80fd\n\n### \u6570\u636e\u5e93\u652f\u6301\n- **MySQL**: \u5b8c\u6574\u652f\u6301\uff0c\u5305\u62ec\u8fde\u63a5\u6c60\u3001\u8bfb\u5199\u5206\u79bb\n- **PostgreSQL**: \u5b8c\u6574\u652f\u6301\uff0c\u5305\u62ecJSON\u5b57\u6bb5\u3001\u6570\u7ec4\u7c7b\u578b\n- **SQLite**: \u672c\u5730\u5f00\u53d1\u652f\u6301\uff0c\u8f7b\u91cf\u7ea7\u5e94\u7528\n\n### \u6838\u5fc3\u529f\u80fd\n- **CRUD\u64cd\u4f5c**: \u5b8c\u6574\u7684\u589e\u5220\u6539\u67e5\u63a5\u53e3\n- **\u6279\u91cf\u64cd\u4f5c**: \u9ad8\u6548\u7684\u6279\u91cf\u63d2\u5165\u3001\u66f4\u65b0\u3001\u5220\u9664\n- **\u4e8b\u52a1\u7ba1\u7406**: \u81ea\u52a8\u4e8b\u52a1\u7ba1\u7406\u548c\u56de\u6eda\n- **\u67e5\u8be2\u4f18\u5316**: \u667a\u80fd\u67e5\u8be2\u4f18\u5316\u548c\u7d22\u5f15\u5efa\u8bae\n- **\u8fde\u63a5\u6c60**: \u667a\u80fd\u8fde\u63a5\u6c60\uff0c\u652f\u6301\u52a8\u6001\u6269\u7f29\u5bb9\n- **\u8bfb\u5199\u5206\u79bb**: \u652f\u6301\u4e3b\u4ece\u6570\u636e\u5e93\u914d\u7f6e\n- **\u6545\u969c\u8f6c\u79fb**: \u81ea\u52a8\u6545\u969c\u68c0\u6d4b\u548c\u5207\u6362\n\n### \u9ad8\u7ea7\u529f\u80fd\n- **\u914d\u7f6e\u7ba1\u7406**: \u914d\u7f6e\u5b58\u50a8\u5728\u6570\u636e\u5e93\uff0c\u652f\u6301\u70ed\u66f4\u65b0\n- **\u6a21\u578b\u7ba1\u7406**: \u81ea\u52a8\u53d1\u73b0\u548c\u6ce8\u518c\u6570\u636e\u6a21\u578b\n- **\u76d1\u63a7\u7cfb\u7edf**: \u6027\u80fd\u76d1\u63a7\u3001\u6162\u67e5\u8be2\u68c0\u6d4b\n- **\u7f13\u5b58\u96c6\u6210**: \u4e0eRedis\u7f13\u5b58\u7cfb\u7edf\u96c6\u6210\n- **\u65e5\u5fd7\u7cfb\u7edf**: \u5b8c\u6574\u7684\u64cd\u4f5c\u65e5\u5fd7\u548c\u9519\u8bef\u65e5\u5fd7\n\n## \ud83d\udd27 \u6269\u5c55\u529f\u80fd\n\n### \u81ea\u5b9a\u4e49\u9002\u914d\u5668\n```python\nfrom datamanager_hjy.adapters.base import BaseAdapter\n\nclass CustomAdapter(BaseAdapter):\n    def connect(self):\n        # \u81ea\u5b9a\u4e49\u8fde\u63a5\u903b\u8f91\n        pass\n    \n    def execute(self, query, params=None):\n        # \u81ea\u5b9a\u4e49\u6267\u884c\u903b\u8f91\n        pass\n```\n\n### \u81ea\u5b9a\u4e49\u6a21\u578b\n```python\nfrom datamanager_hjy.models.base import BaseModel\n\nclass UserModel(BaseModel):\n    __tablename__ = 'users'\n    \n    id = Column(Integer, primary_key=True)\n    name = Column(String(100), nullable=False)\n    email = Column(String(255), unique=True)\n    \n    def validate_email(self, email):\n        # \u81ea\u5b9a\u4e49\u9a8c\u8bc1\u903b\u8f91\n        return '@' in email\n```\n\n## \ud83d\udcda \u6587\u6863\n\n- **[API\u6587\u6863](https://datamanager-hjy.readthedocs.io/)**: \u5b8c\u6574\u7684API\u53c2\u8003\n- **[\u5f00\u53d1\u8005\u6307\u5357](DEVELOPER.md)**: \u67b6\u6784\u8bbe\u8ba1\u548c\u5f00\u53d1\u6307\u5357\n- **[\u793a\u4f8b\u4ee3\u7801](examples/)**: \u4e30\u5bcc\u7684\u4f7f\u7528\u793a\u4f8b\n- **[\u6700\u4f73\u5b9e\u8df5](docs/best_practices.md)**: \u751f\u4ea7\u73af\u5883\u90e8\u7f72\u6307\u5357\n\n## \ud83e\uddea \u6d4b\u8bd5\n\n```bash\n# \u8fd0\u884c\u6240\u6709\u6d4b\u8bd5\npytest\n\n# \u8fd0\u884c\u5355\u5143\u6d4b\u8bd5\npytest tests/unit/\n\n# \u8fd0\u884c\u96c6\u6210\u6d4b\u8bd5\npytest tests/integration/\n\n# \u8fd0\u884c\u6027\u80fd\u6d4b\u8bd5\npytest tests/performance/ -m \"slow\"\n\n# \u751f\u6210\u8986\u76d6\u7387\u62a5\u544a\npytest --cov=datamanager_hjy tests/\n```\n\n## \ud83d\udcc8 \u76d1\u63a7\n\n### \u6027\u80fd\u6307\u6807\n- **\u8fde\u63a5\u6c60\u72b6\u6001**: \u8fde\u63a5\u6570\u91cf\u3001\u4f7f\u7528\u7387\u3001\u7b49\u5f85\u65f6\u95f4\n- **\u67e5\u8be2\u6027\u80fd**: \u67e5\u8be2\u65f6\u95f4\u3001\u6162\u67e5\u8be2\u6570\u91cf\n- **\u9519\u8bef\u7387**: \u8fde\u63a5\u9519\u8bef\u3001\u67e5\u8be2\u9519\u8bef\n- **\u8d44\u6e90\u4f7f\u7528**: CPU\u3001\u5185\u5b58\u3001\u78c1\u76d8\u4f7f\u7528\n\n### \u76d1\u63a7\u63a5\u53e3\n```python\n# \u83b7\u53d6\u6027\u80fd\u6307\u6807\nmetrics = dm.get_metrics()\n\n# \u83b7\u53d6\u8fde\u63a5\u72b6\u6001\nstatus = dm.get_connection_status()\n\n# \u83b7\u53d6\u6162\u67e5\u8be2\nslow_queries = dm.get_slow_queries()\n```\n\n## \ud83e\udd1d \u8d21\u732e\n\n\u6211\u4eec\u6b22\u8fce\u6240\u6709\u5f62\u5f0f\u7684\u8d21\u732e\uff01\n\n### \u8d21\u732e\u65b9\u5f0f\n- **\u62a5\u544aBug**: [GitHub Issues](https://github.com/hjy/datamanager_hjy/issues)\n- **\u529f\u80fd\u8bf7\u6c42**: [GitHub Discussions](https://github.com/hjy/datamanager_hjy/discussions)\n- **\u4ee3\u7801\u8d21\u732e**: Fork\u9879\u76ee\u5e76\u63d0\u4ea4Pull Request\n- **\u6587\u6863\u6539\u8fdb**: \u5e2e\u52a9\u6539\u8fdb\u6587\u6863\u548c\u793a\u4f8b\n\n### \u5f00\u53d1\u73af\u5883\n```bash\n# \u514b\u9686\u9879\u76ee\ngit clone https://github.com/hjy/datamanager_hjy.git\ncd datamanager_hjy\n\n# \u5b89\u88c5\u5f00\u53d1\u4f9d\u8d56\npip install -e \".[dev]\"\n\n# \u8fd0\u884c\u6d4b\u8bd5\npytest\n\n# \u4ee3\u7801\u683c\u5f0f\u5316\nblack datamanager_hjy/\nisort datamanager_hjy/\n\n# \u7c7b\u578b\u68c0\u67e5\nmypy datamanager_hjy/\n```\n\n## \ud83d\udcc4 \u8bb8\u53ef\u8bc1\n\n\u672c\u9879\u76ee\u91c7\u7528 MIT \u8bb8\u53ef\u8bc1 - \u67e5\u770b [LICENSE](LICENSE) \u6587\u4ef6\u4e86\u89e3\u8be6\u60c5\u3002\n\n## \ud83c\udd98 \u652f\u6301\n\n- **\u6587\u6863**: [https://datamanager-hjy.readthedocs.io/](https://datamanager-hjy.readthedocs.io/)\n- **Issues**: [GitHub Issues](https://github.com/hjy/datamanager_hjy/issues)\n- **\u8ba8\u8bba**: [GitHub Discussions](https://github.com/hjy/datamanager_hjy/discussions)\n- **\u90ae\u4ef6**: hjy@example.com\n\n---\n\n**datamanager_hjy** - \u8ba9\u6570\u636e\u64cd\u4f5c\u53d8\u5f97\u6beb\u4e0d\u8d39\u529b \u2728\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "\u901a\u7528\u7684\u6570\u636e\u7ba1\u7406\u811a\u624b\u67b6\uff0c\u652f\u6301\u591a\u6570\u636e\u5e93\u3001\u914d\u7f6e\u9a71\u52a8\u3001\u9ad8\u6027\u80fd",
    "version": "0.0.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/hjy/datamanager_hjy/issues",
        "Documentation": "https://datamanager-hjy.readthedocs.io/",
        "Download": "https://pypi.org/project/datamanager-hjy/#files",
        "Homepage": "https://github.com/hjy/datamanager-hjy",
        "Repository": "https://github.com/hjy/datamanager-hjy.git",
        "Source Code": "https://github.com/hjy/datamanager_hjy"
    },
    "split_keywords": [
        "database",
        " orm",
        " sqlalchemy",
        " mysql",
        " postgresql",
        " sqlite",
        " data-management"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9d6731096e2e2f24e4af4870f6d6b40af53be28893cba4cab81d4b84f9a8993c",
                "md5": "50f4b952874f5f80ff84d41c8f340520",
                "sha256": "3a4c81502d8018a102dfc440009f70011f0fdf4a84c614c70669be4e1bc687b4"
            },
            "downloads": -1,
            "filename": "datamanager_hjy-0.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "50f4b952874f5f80ff84d41c8f340520",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 51950,
            "upload_time": "2025-08-16T23:51:48",
            "upload_time_iso_8601": "2025-08-16T23:51:48.549710Z",
            "url": "https://files.pythonhosted.org/packages/9d/67/31096e2e2f24e4af4870f6d6b40af53be28893cba4cab81d4b84f9a8993c/datamanager_hjy-0.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0354d61f10977fb9cc66045d23cfaf3de57cd85133c966838170d3b24a52cae0",
                "md5": "adf20ada4dc381c2f024aeff076db2c3",
                "sha256": "ada66529cd2252ca9dbf850a24e8b152ca4d8b3c97326828ba76a1cee226cab3"
            },
            "downloads": -1,
            "filename": "datamanager_hjy-0.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "adf20ada4dc381c2f024aeff076db2c3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 43554,
            "upload_time": "2025-08-16T23:51:50",
            "upload_time_iso_8601": "2025-08-16T23:51:50.415974Z",
            "url": "https://files.pythonhosted.org/packages/03/54/d61f10977fb9cc66045d23cfaf3de57cd85133c966838170d3b24a52cae0/datamanager_hjy-0.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-16 23:51:50",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "hjy",
    "github_project": "datamanager_hjy",
    "github_not_found": true,
    "lcname": "datamanager-hjy"
}
        
Elapsed time: 0.72647s