天天看点

分享一个开源的批量生成数据的工具-generatedata

作者:思想猿
分享一个开源的批量生成数据的工具-generatedata

提出问题

在软件设计过程中,数据库设计是必不可少的环节(大多数情况),当设计完数据库,为了方便开发调试以及开发自测,往往需要向数据库中添加一些既不破坏数据库完整性,又没有实际意义的但又符合软件设计时抽象出来的业务逻辑的数据,要构造这样的数据显然不是那么的轻松。

在非软件行业,也对这种工具有一定的需求,但基本上都是为了达到同一目的:验证。

终于,我通过不断搜索找到了一款开源易用的数据批量生成工具。它支持输出多种类型的假数据,比如人名、日期、固定的一些常量、随机数量的单词等等,但唯一不好的地方就是生成的数据偏西方(用来生成假数据,在乎这么多干啥) 。

成品展示

废话不多说,直接展示成品。在本节,你也可以直接看出是否适用于你,然后再决定是否看部署过程(部署是docker方式,非常简单)

登陆页

分享一个开源的批量生成数据的工具-generatedata

通过本页,可以看出generatedata的如下特性:

  1. 支持多用户
  2. 数据能够保存起来

首页

分享一个开源的批量生成数据的工具-generatedata

如上图:

1. 为本次数据生成规则设置一个名称

2. 为生成的数据设置国家特征,即生成具有某个国家特征的数据,比如人名、街道地址等

3. 为每个自动生成的数据项设置数据生成类型,不同类型,有不同的规则设置

4. 导出类型,可以导出HTML、SQL、CSV(excel)等等,常用的一般就是sql、csv、json、Excel吧。

5. 生成的数据行数,生成的数据的展示形式:如在本页展示、新建一个浏览器tab页展示、弹出下载框等。

6. 规则列表,点击它可以看到已保存的生成规则数据。

首页-setting

分享一个开源的批量生成数据的工具-generatedata

就是在generate页面可以使用的数据类型、导出类型以及国家 。具体如上图:

1. 支持插件,插件我没详细研究,估计可以支持自己设置时间、导出类型和国家。

2. 数据类型选项

3. 导出类型

4. 国家

设置一个规则

分享一个开源的批量生成数据的工具-generatedata

介绍:

1. 规则:Constant(常数),该数据类型可以设置多个字符串(可以是中文),用"|"分隔,按照Loop count循环选择values中的值。

2. 规则:Random Number of Words (随机数两个单词),该类型支持指定单词个数的随机生成规则,但是不能自定义“候选库”,只能是自带的纯英文段落。

3. 规则:Number Range (数字范围),支持输出指定范围的数字。

4. 规则:Auto-increment(自增),按照指定规则生成一串自增特点的数据。

5. 自增规则

上图只是列举了该工具支持的部分数据类型,也是常用的数据类型,大部分情况,这些已经足够满足需求了。

相信大家看到这里,对于这个工具能否满足工作需要已经有了自己的认识,感兴趣的欢迎继续阅读了解部署过程,自己建一个。

或者你有更牛x的工具,欢迎分享出来,如果好用,我会毫不犹豫的放弃这个工具。哈哈

安装部署

先放上这个工具的github地址:https://github.com/benkeen/generatedata

当前官方最新版本是4.0.14,本文部署的是3版本。较最新版本有很大区别,安装时注意分辨。

generatedata需要mysql数据库,用于保存规则以及用户信息。所以部署本程序首先需要有mysql数据库,如果已经安装了,则可以直接使用,否则可以用docker方式安装一个。

安装mysql/mariadb数据库

本文使用mariadb数据库(和mysql区别不大,大部分可以直接替换),本文假设你已经安装好了mariadb,如不清楚,访问:[mariadb docker安装](https://kdphoto.cn/articles/56)。

docker run -p 3306:3306 --name mariadb -v [本地mariadb数据卷,用于存储数据]:/var/lib/mysql -v [mariadb自自定义配置文件目录]:/etc/mysql/mariadb.conf.d -d mariadb:bionic           

如:

sudo docker run -p 3306:3306 --name mariadb -v /opt/dockerstorage/mariadb:/var/lib/mysql -v /opt/dockerstorage/mariadb_conf:/etc/mysql/mariadb.conf.d -d mariadb:bionic           

mariadb_conf目录下的my.cnf内容(非必须):

[mysqld]
innodb_log_file_size = 512M
innodb_strict_mode = 0           

安装generatedata

docker run -it --rm -p 8080:8080 \
-e GD_DB_HOSTNAME=[mariadb数据库地址,注意不要写127.0.0.1] \
-e GD_DB_NAME=[用于保存数据的数据库名称(需要自己提前创建好)] \
-e GD_DB_USERNAME=[连接数据库的用户名] \
-e GD_DB_PASSWORD=[连接数据库的密码] \
ghcr.io/mvisonneau/generatedata:latest           

运行上面命令后,

分享一个开源的批量生成数据的工具-generatedata

第一次安装,浏览器访问http://localhost:8080,会进入安装向导页面,根据提示输入即可。如果点击保存,总是无法进入登陆页,而是无限循环在安装向导页是因为连不上数据库导致,此时可检查数据库连接信息是否正确、数据库是否启动、数据库是否存在、数据库用户是否允许远程访问等。

继续阅读