# data-process **Repository Path**: molonglove/data-process ## Basic Information - **Project Name**: data-process - **Description**: 测试生成数据,多数据源同步,测试数据接口 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: new-dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-07-17 - **Last Updated**: 2022-05-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Data-Process ### 一. 简介: 当我们创建项目之后都需要用来构建一些测试数据,自己编数据太麻烦,`data-process`处于此目的创建的,项目最终实现可以通过`web`界面简单操作就可以生成测试数据和各种数据源之间的同步。 ***当前完成*** ![](https://molongyin.oss-cn-beijing.aliyuncs.com/blog_home_pic/bg.png) ### 二. 整体架构 一个简版的生产者消费者模型。 ### 三. 完成情况 - [x] 直接模型解析 - [x] 支持写数据到文件 - [x] 支持写入Json和SQL格式 - [ ] 支持直接写入数据库 - [ ] 支持多数据源之间的过滤和同步数据 - [ ] 支持web页面操作 ### 四. 模型解析说明 整体配置文件如下: ```json { "storage": { // 存储源配置 "type": "file", // 暂时支持file类型 "file": { "path": "/Users/yuelong/Desktop/test_file", // 文件写入的路径 "name": "student_2.txt" // 写入文件名称,数据格式是通过后缀进行区分的 } }, "produce": { // 生成器配置 "type": "mock", // 暂时支持 mock解析(模型解析) "model": { // 具体模型 "id|@uuid": "1", "price|1-100": 2.45, "age|1-100": 1, "name|@name": "张三", "sex|男女": true, "birth|@time": "2021-01-11", "country|@country(cn)": "中国", "title|@title": "标题", "ip|@ip(A)": "127.0.0.1" } }, "size": 10 // 同步的数据量 } ``` 支持的模型属性:支持的模型类型有,整型、浮点型、字符串和布尔类型。 ``` # 整型 age|1-100: 1 // 属性名age,数据生成的范围是 1 - 100 age: 1 // 属性名age,数据生成使用默认值1 # 字符型 name|1-10: "*" // 属性名name,数据使用随机范围1-10的* name|@name: "name" // 属性名name, 使用name函数进行生成名字 # 浮点型 price|.2: 2.45 // 属性名price,生成带有两位小数位的浮点数据 price|1-100 // 生成1-100的浮点数据,默认小数据点为2位 # 布尔型 sex: true // 默认的sex的值是true sex|男女: true // 通过男女分别知道true和false ``` 先阶段支持的函数: - `@name` : 生成随机的用户名 - `@uuid` :生成uuid - `@ip` :生成ABC三类的ip地址 - `@time` :生成指定格式的时间串 - `@title` : 生成标题 - `@country(cn)`:生成国家 - 正在添加…… ### 扩展 如果需要扩展可以在function上扩展新的函数支持 ```go type FuncBase interface { Build() []interface{} } ``` 需要实现这个接口。