43 lines
1.5 KiB
Markdown
43 lines
1.5 KiB
Markdown
# 表结构生成工具
|
||
|
||
该工具用于连接 MySQL 数据库,自动获取表结构元数据,并生成适用于 MySQL 和 Doris 的 `CREATE TABLE` 语句。
|
||
|
||
## 功能特点
|
||
1. **元数据提取**:从 `information_schema` 获取字段名、类型、长度、是否为空、默认值及注释。
|
||
2. **MySQL DDL 生成**:生成标准的 MySQL 建表语句。
|
||
3. **Doris DDL 生成**:
|
||
- 自动映射 MySQL 类型到 Doris 类型(如 `text` -> `string`)。
|
||
- 使用 **Unique Key** 模型(支持幂等写入/覆盖更新)。
|
||
- 默认配置为单副本(`replication_num = 1`),适用于单机部署。
|
||
- 默认设置 1 个分桶(`BUCKETS 1`)。
|
||
|
||
## 使用方法
|
||
|
||
### 1. 配置数据库
|
||
编辑 `generate_schema.py` 文件开头的 `DB_CONFIG` 变量:
|
||
```python
|
||
DB_CONFIG = {
|
||
"host": "your_host",
|
||
"port": 3306,
|
||
"user": "your_user",
|
||
"password": "your_password",
|
||
"database": "your_db",
|
||
"charset": "utf8mb4"
|
||
}
|
||
```
|
||
|
||
### 2. 运行脚本
|
||
- **自动处理**:如果不传参数,脚本将自动读取 `../json/` 目录下的所有 `.json` 文件名作为表名进行批量处理。
|
||
```bash
|
||
python generate_schema.py
|
||
```
|
||
- **指定表名**:也可以手动传入需要生成结构的表名(支持多个):
|
||
```bash
|
||
python generate_schema.py 表名1 [表名2] ...
|
||
```
|
||
|
||
### 3. 查看输出
|
||
生成的 SQL 文件将存放在 `output/` 目录下:
|
||
- `表名_mysql.sql`: MySQL 建表语句
|
||
- `表名_doris.sql`: Doris 建表语句
|