2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00
2026-03-04 12:17:52 +08:00

这是一个数据库接口服务

  • 主要功能是将多种类型的数据库集中到一起,提供统一的接口
  • 支持的数据库类型包括mysql、oracle、sqlserver、postgresql等

主要功能

  • 提供的数据库管理功能通过传入数据库类型ip和端口以及用户名和密码来连接数据库
  • 可以获取到数据库的信息,包括数据库的名称,数据库中的表,字段类型,数据库的字段备注等
  • 提供接口,可以对数据库中的数据进行查操作
  • 提供接口,可以对数据库中的表进行查操作
  • 提供接口,可以对数据库中的字段进行查操作
  • 提供接口,可以修改数据库本身以及字段的备注信息

主要接口包括

  • 数据库管理接口
    • 测试能否连通数据库
    • 获取数据库信息
    • 获取某个数据库中所有的数据库表和表备注信息
    • 获取数据表中字段名和类型以及备注信息

项目启动步骤

1. 创建并激活conda环境

# 创建Python 3.11环境
conda create -n database-etl python=3.11

# 激活环境
conda activate database-etl

2. 安装项目依赖

# 安装所有依赖包
pip install -r requirements.txt

3. 启动项目

# 启动FastAPI服务
python main.py

4. 访问服务

主要技术栈

通过fastapi启动api服务使用sqlalchemy来创建连接引擎对不同的数据库使用不同的驱动mysql使用PyMySQLOracle使用oracledbsqlserver使用pymssqlpostgresql使用psycopg2

其他

  • 主要要将一些基础功能进行封装例如创建数据库引擎执行sql语句等
  • 提供的接口要符合restful风格
  • 提供的接口要符合http协议的规范
  • 提供的接口要符合json格式
  • 提供的接口要符合http状态码的规范
  • 提供的接口要符合http头的规范
  • 提供的接口要符合http请求体的规范
  • 提供的接口要符合http响应体的规范
  • main.py作为程序的入口

接口风格调整

  • GET接口参数统一改为使用URL的query传参例如 ?a=123&b=321
  • 所有PUT和DELETE接口统一改为POST方法路径保持不变除GET去除路径参数外
  • 示例:
    • GET /api/v1/databases/info?connection_id=<conn_id>
    • GET /api/v1/databases/tables/info?connection_id=<conn_id>&table_name=<table>
    • POST /api/v1/tables/data/update
    • POST /api/v1/tables/data/delete
Description
No description provided
Readme 119 KiB
Languages
Python 98.6%
Batchfile 1.4%