# MockData **Repository Path**: DataITems_admin/mock-data ## Basic Information - **Project Name**: MockData - **Description**: MockData 项目,由JackFeng 发起,DataScience 团队开发完善,主要解决 数据生成,模拟数据,可以用于Demo展示,SQL练习数据 等等。 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2020-08-31 - **Last Updated**: 2022-07-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MockData ### 介绍 MockData 项目,由JackFeng 发起,DataScience 团队开发完善,主要解决 数据生成,模拟数据,可以用于Demo展示,SQL练习数据 等等。 [Github]: https://github.com/A2Data/MockData [ Gitee ]:https://gitee.com/sqlsq_admin/mock-data ### 软件架构 软件架构说明 ### 安装教程 #### 1. 使用前请检查python中是否已安装如下库 ```python sqlalchemy pymysql pandas datetime configparser ``` 可终端使用pip install安装上述库。 #### 2. config_all.conf 文件用于管理所有配置项,详见使用说明 #### 3. xxxx ### 使用说明 #### 1. 关于 config_all.conf 的使用 ##### 1.1 表信息配置 每个section均为一张表的配置信息: ```python [table_1] tb_name = tb1 type = a columns = name,Phone row_number = 10 ``` 字段解释: **section名称**:固定格式为[table_数字],数字需从1开始,每张表递增1。 **tb_name**:表名。 **type**:如需要生成字段可以关联的多张表,需在各表type等号右侧输入相同的字段。等号右侧内容不能为空。 如下示例,tb1和tb2的“type”均为a,则两表中相同的字段内容可以相关联;tb3的“type”为b,则与tb1和tb2无关: ```python [table_1] tb_name = tb1 type = a columns = name,Phone row_number = 10 [table_2] tb_name = tb2 type = a columns = name,Phone,Address row_number = 20 [table_3] tb_name = tb3 type = b columns = Xin,Ming row_number = 30 ``` **columns**:在等号右侧输入表中所需的字段名,多个字段名以英文逗号隔开,无需空格。 目前可以生成的字段名有(区分大小写): ```python name,Xin,Ming,MaleName,FemaleName,Phone,Address,SSN,Email,Ipv4,url,company,job,uuid,card,date_time,ThisDate,Time,pyint,randomMxStr,randomList,profile,profile1,browser,platform,seed,mobile_user ``` **row_number**:在等号右侧输入每张表的行数。 ##### 1.2 文件保存格式配置 mockdata目前支持在本地保存五种格式的文件:csv, txt, json, excel, html。可在[file_format]中配置所需保存至本地的文件格式: ```python [file_format] enable = true csv = true txt = true json = true excel = true html = true ``` 如需在本地保存文件,请先修改enable值为true。仅当enable值为true时,各文件格式为true的配置才会生效。 在所需生成的文件格式等号右边修改值为true,在不需要的格式等号右边修改值为false。 运行程序后,可在main.py文件根目录下获得相应格式的本地文件。表名相同的仅保留当日最后一次生成的文件。 ##### 1.3 数据库连接配置 [sql_config]内输入数据库配置。 ```python [sql_config] 数据库类型 = mysql 数据库驱动选择 = M 用户名 = root 密码 = 123456 服务器 = localhost 端口 = 3306 目标数据库名 = mock ``` 以上参数请根据具体数据库情形修改。 #### 2. 运行程序 完成上述配置后,打开main.py文件运行程序。 #### 3. 运行报错指南: 报错内容: ERROR:cannot connect database. 检查: 是否已安装所需的python库; 配置文件中数据库信息是否填写准确; 报错内容: ERROR:cannot insert into database. 检查: 目标数据库是否存在; 配置文件中的表信息是否已按上述要求填写; ### 关于后续优化的笔记 #### 1 新增样本池 在FakerData.py文件构造新增的类和函数对于需要样本池的随机数,读入相应csv样本池文件,用random.choice返回随机数; 在*FakerData.py*文件中直接构造新增的类和函数; 对于需要样本池的随机数: 在pool文件夹中建立样本池,格式为csv文件,csv文件内列名为对应函数名称,内容按列书写; 在FakerData.py文件中读取样本池csv文件,返回随机数; #### 2 类和函数映射关系配置维护 在*FunctionClassConfig.py*文件中维护类和函数的对应关系,所有*FakerData.py*中的类和函数必须在*FunctionClassConfig.py*添加和维护确保一致; 注意区分大小写; dict1记录格式为: ```python 字段名:函数名 ``` 后续可以扩展为多场景字段名对应同一函数名; dict2记录格式为: ```python 函数名:类名 ``` ### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request ## 欢迎关注公号 ![](https://gitee.com/sqlsq_admin/cdn/raw/master/0d49517cc7f0ea7b452a71f1e26976c.png)