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

5.3 KiB
Raw Blame History

示例数据说明

本项目在启动时会自动初始化MySQL和Oracle数据库的示例数据方便用户测试和体验API功能。

配置说明

环境变量配置

  1. 复制 .env.example 文件为 .env
  2. 根据你的数据库环境修改相应的配置
  3. 设置 ENABLE_SAMPLE_DATA=true 启用示例数据初始化

默认配置

如果没有设置环境变量,系统将使用以下默认配置:

  • MySQL: localhost:3306, 用户名: root, 密码: password, 数据库: test_db
  • Oracle: localhost:1521, 用户名: system, 密码: password, 服务名: XE

MySQL 示例数据

1. users 表(用户信息表)

字段名 类型 说明 示例数据
id INT 用户ID主键自增 1, 2, 3...
name VARCHAR(100) 用户姓名 张三, 李四, 王五...
email VARCHAR(150) 邮箱地址(唯一) zhangsan@example.com
age INT 年龄 25, 30, 28...
created_at TIMESTAMP 创建时间 当前时间
updated_at TIMESTAMP 更新时间 当前时间

示例记录:

2. products 表(产品信息表)

字段名 类型 说明 示例数据
id INT 产品ID主键自增 1, 2, 3...
name VARCHAR(200) 产品名称 苹果手机, 笔记本电脑...
price DECIMAL(10,2) 价格 5999.00, 8999.00...
category VARCHAR(100) 分类 电子产品, 生活用品
description TEXT 产品描述 最新款智能手机...
stock_quantity INT 库存数量 50, 30, 100...
created_at TIMESTAMP 创建时间 当前时间

示例记录:

  • 苹果手机, ¥5999.00, 电子产品, 库存50
  • 笔记本电脑, ¥8999.00, 电子产品, 库存30
  • 无线耳机, ¥299.00, 电子产品, 库存100
  • 咖啡杯, ¥39.90, 生活用品, 库存200
  • 书包, ¥129.00, 生活用品, 库存80

Oracle 示例数据

1. departments 表(部门信息表)

字段名 类型 说明 示例数据
department_id NUMBER 部门ID主键 1, 2, 3...
department_name VARCHAR2(100) 部门名称 人力资源部, 技术部...
manager_id NUMBER 经理ID NULL暂未设置
location_id NUMBER 位置ID 1700, 1800, 1900

示例记录:

  • 人力资源部, 位置ID: 1700
  • 技术部, 位置ID: 1800
  • 销售部, 位置ID: 1900

2. employees 表(员工信息表)

字段名 类型 说明 示例数据
employee_id NUMBER 员工ID主键 1, 2, 3...
first_name VARCHAR2(50) 三, 四, 五
last_name VARCHAR2(50) 张, 李, 王
email VARCHAR2(100) 邮箱地址(唯一) zhang.san@company.com
phone_number VARCHAR2(20) 电话号码 13800138001
hire_date DATE 入职日期 当前日期
job_id VARCHAR2(10) 职位ID IT_PROG, SA_REP, HR_REP
salary NUMBER(8,2) 薪资 8000, 6000, 5500
department_id NUMBER 部门ID 1, 2, 3

示例记录:

序列Sequences

  • emp_seq: 员工ID序列从1开始递增
  • dept_seq: 部门ID序列从1开始递增

API 测试建议

1. 连接数据库

# 连接MySQL
POST /api/v1/connections
{
  "db_type": "mysql",
  "host": "localhost",
  "port": 3306,
  "username": "root",
  "password": "password",
  "database": "test_db"
}

# 连接Oracle
POST /api/v1/connections
{
  "db_type": "oracle",
  "host": "localhost",
  "port": 1521,
  "username": "system",
  "password": "password",
  "database": "XE"
}

2. 查询示例数据

# 查询MySQL用户数据
POST /api/v1/query
{
  "connection_id": "your_mysql_connection_id",
  "sql": "SELECT * FROM users LIMIT 10"
}

# 查询Oracle员工数据
POST /api/v1/query
{
  "connection_id": "your_oracle_connection_id",
  "sql": "SELECT * FROM employees WHERE ROWNUM <= 10"
}

3. 获取表信息

# 获取MySQL数据库表列表
GET /api/v1/databases/{connection_id}/tables

# 获取Oracle表结构
GET /api/v1/tables/{connection_id}/employees/columns

注意事项

  1. 数据库权限: 确保配置的数据库用户具有创建表、插入数据的权限
  2. 数据库连接: 确保数据库服务正在运行且可以连接
  3. 重复初始化: 示例数据使用 INSERT IGNOREMySQL避免重复插入
  4. Oracle序列: Oracle示例数据会先删除已存在的表和序列然后重新创建
  5. 禁用示例数据: 设置环境变量 ENABLE_SAMPLE_DATA=false 可以禁用示例数据初始化

故障排除

如果示例数据初始化失败,请检查:

  1. 数据库服务是否正常运行
  2. 连接参数是否正确
  3. 数据库用户是否有足够的权限
  4. 网络连接是否正常
  5. 查看应用日志获取详细错误信息

初始化失败不会影响服务启动,你仍然可以手动创建数据库连接和数据。