Files
dababase-etl-python/readme.md
2026-03-04 12:17:52 +08:00

69 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 这是一个数据库接口服务
- 主要功能是将多种类型的数据库集中到一起,提供统一的接口
- 支持的数据库类型包括mysql、oracle、sqlserver、postgresql等
## 主要功能
- 提供的数据库管理功能通过传入数据库类型ip和端口以及用户名和密码来连接数据库
- 可以获取到数据库的信息,包括数据库的名称,数据库中的表,字段类型,数据库的字段备注等
- 提供接口,可以对数据库中的数据进行查操作
- 提供接口,可以对数据库中的表进行查操作
- 提供接口,可以对数据库中的字段进行查操作
- 提供接口,可以修改数据库本身以及字段的备注信息
## 主要接口包括
- 数据库管理接口
- 测试能否连通数据库
- 获取数据库信息
- 获取某个数据库中所有的数据库表和表备注信息
- 获取数据表中字段名和类型以及备注信息
## 项目启动步骤
### 1. 创建并激活conda环境
```bash
# 创建Python 3.11环境
conda create -n database-etl python=3.11
# 激活环境
conda activate database-etl
```
### 2. 安装项目依赖
```bash
# 安装所有依赖包
pip install -r requirements.txt
```
### 3. 启动项目
```bash
# 启动FastAPI服务
python main.py
```
### 4. 访问服务
- 服务地址http://localhost:8000
- API文档http://localhost:8000/docs
- ReDoc文档http://localhost:8000/redoc
- 健康检查http://localhost:8000/health
## 主要技术栈
通过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`