README.md 3.6 KB
Newer Older
aaronchen2k2k's avatar
aaronchen2k2k 已提交
1
# zendata
aaronchen2k2k's avatar
aaronchen2k2k 已提交
2
zendata是一款通用的数据生成工具,您可以使用yaml文件来定义您的数据格式,然后交由zendata生成。
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
3

aaronchen2k2k's avatar
aaronchen2k2k 已提交
4 5
## 参数:
```shell
aaronchen2k2k's avatar
aaronchen2k2k 已提交
6 7 8 9
-d  --default    默认的数据格式配置文件。
-c  --config     当前场景的数据格式配置文件,可以覆盖默认文件里面的设置。
-o  --output     生成的数据的文件名。可通过扩展名指定输出json|xml|sql格式的数据。默认输出原始格式的文本数据。
-n  --lines      要生成的记录条数,默认为10条。
10 11
-r  --recursive  递归模式。如不指定,默认为平行模式。平行模式下各个字段独立循环。
                 递归模式下每个字段的取值依赖于前一字段。可增强数据的随机性。
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
12

aaronchen2k2k's avatar
aaronchen2k2k 已提交
13 14
-F  --field      可通过该参数指定要输出的字段列表,用逗号分隔。 默认是所有的字段。
-t  --table      输出格式为sql时,需通过该参数指定要插入数据的表名。
15
-T  --trim       输出数据时去掉前缀和后缀,可用于输出json、xml或者sql格式时。
aaronchen2k2k's avatar
aaronchen2k2k 已提交
16
-H  --human      输出可读格式,打印字段名,并使用tab键进行分割。
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
17

aaronchen2k2k's avatar
aaronchen2k2k 已提交
18
-b  --bind       监听的ip地址,默认监听所有的ip地址。
aaronchen2k2k's avatar
aaronchen2k2k 已提交
19
-p  --port       在指定端口上运行HTTP服务。可通过http://ip/接口获得JSON格式的数据。服务模式下只支持数据生成。
20
-R  --root       运行HTTP服务时根目录。客户端可调用该根目录下面的配置文件。如果不指定,取zd可执行文件所在目录。
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
21

aaronchen2k2k's avatar
aaronchen2k2k 已提交
22 23 24
-i  --input      指定一个schema文件,输出每个表的yaml配置文件。需通过-o参数指定一个输出的目录。
-s  --server     数据库服务器类型,支持mysql|oracle|sqlite|sqlserver,默认为mysql。可用于解析yaml文件或者生成SQL。
-D  --decode     根据指定的配置文件,将通过-i参数指定的数据文件解析成json格式,可通过-H参数输出可读格式。
aaronchen2k2k's avatar
aaronchen2k2k 已提交
25

aaronchen2k2k's avatar
aaronchen2k2k 已提交
26 27 28 29
-e  --example    打印示例的数据格式配置文件。
-l  --list       列出所有支持的数据格式。
-v  --view       查看某一个数据格式的详细定义。
-h  --help       打印帮助。
aaronchen2k2k's avatar
aaronchen2k2k 已提交
30 31 32 33 34 35 36 37 38 39 40 41
```

## 命令行模式举例:
```shell
$>zd.exe -d demo\default.yaml 根据-d参数指定的配置文件生成10条记录。
$>zd.exe -c demo\default.yaml 根据-c参数指定的配置文件生成10条记录。
$>zd.exe -d demo\default.yaml -c demo\test.yaml -n 100  -c和-d两个文件的配置合并,输出100条记录。

$>zd.exe -d demo\default.yaml -c demo\test.yaml -n 100 -o test.txt   输出原始格式的数据。
$>zd.exe -d demo\default.yaml -c demo\test.yaml -n 100 -o test.json  输出json格式的数据。
$>zd.exe -d demo\default.yaml -c demo\test.yaml -n 100 -o test.xml   输出xml格式的数据。
$>zd.exe -d demo\default.yaml -n 100 -o test.sql -t user -s mysql    输出插入到user表里面的sql。
42
$>zd.exe -d demo\default.yaml -o test.sql -t user -s mysql --trim    输出时去除字段的前缀和后缀。
aaronchen2k2k's avatar
aaronchen2k2k 已提交
43 44 45 46 47 48

$>zd.exe -i db.sql -s mysql -o db  根据db.sql的定义生成每个表的yaml文件,存储到db目录里面。
$>zd.exe -c demo\default.yaml -i test.txt --decode  将-i指定的文件根据-d参数的配置进行解析。
```
## 服务模式举例:
```shell
49
$zd.exe -p 80 -R d:\zd\config  监听80端口,以d:\zd\config为根目录。
aaronchen2k2k's avatar
aaronchen2k2k 已提交
50 51 52 53 54 55 56
```

## 客户端调用:
```shell
$curl http://loclahost/?d=default.yaml&c=config.yaml&n=100&o=test.sql&t=user  通过GET方式指定服务器端配置文件。
$curl http://loclahost/?default=default.yamloutput=test.sql&table=user        参数名可以用全拼。
$curl -d "default=...&config=...&lines=10" http://localhost/                  可以通过POST方式上传配置。
57
```