Skip to content

Latest commit

 

History

History
111 lines (78 loc) · 7.09 KB

datareader.md

File metadata and controls

111 lines (78 loc) · 7.09 KB

Data Reader

DataReader 插件是专门提供用于开发和测试环境中,生产满足一定规则要求的数据的插件。

在实际开发和测试中,我们需要按照一定的业务规则来生产测试数据,而不仅仅是随机内容,比如身份证号码,银行账号,股票代码等。

为什么要重复发明轮子

诚然,网络上有相当多的专门的数据生产工具,其中不乏功能强大、性能也强悍。 但这些工具大部分是考虑到了数据生成这一段,而忽略了数据写入到目标端的问题,或者说有些考虑到了,但仅仅只考虑了一种或有限的几种数据库。

恰好 Addax 工具能够提供足够多的目标端写入能力,加上之前的已有的 streamReader 已经算是一个简单版的数据生成工具,因此在此功能上 增加一些特定规则,再利用写入端多样性的能力,自然就成为了一个较好的数据生成工具。

配置示例

这里我把目前插件支持的规则全部列举到下面的例子中

=== "datareader2stream.json"

--8<-- "jobs/datareader.json"

保存上述内容到 job/datareader2stream.json

然后执行该任务,其输出结果类似如下:

--8<-- "output/datareader.txt"

配置说明

column 的配置和其他插件的配置稍有不同,一个字段由以下配置项组成

配置项 是否必须 默认值 示例 说明
value Addax 数据值,在某些情况下为必选项
rule constant idCard 数据生产规则,详细下面的描述
type string double 数据值类型
dateFormat yyyy-MM-dd HH:mm:ss yyyy/MM/dd HH:mm:ss 日期格式,仅在 typedate 时有效

rule 说明

该插件的字段配置核心是 rule 字段,它用来指示应该生成什么样的数据,并依据不同规则,配合其他配置选项来生产满足期望的数据。 当前 rule 的配置均为内置支持的规则,暂不支持自定义,以下详细说明

constant

constantrule 的默认配置,该规则意味着要生成的数据值由 value 配置项决定,其不做任何变更。比如

{
  "value": "Addax",
  "type": "string",
  "rule": "constant"
}

表示该字段生产的数据值均为 Addax

incr

incr 配置项的含义和 streamreader 插件中的 incr 含义一致,表示这是一个递增的数据生产规则,比如

{
  "value": "1,2",
  "rule": "incr",
  "type": "long"
}

表示该字段的数据是一个长整形,数值从 1 开始,每次递增 2,也就是形成 1 开始,步长为 2 的递增数列。

该字段更详细的配置规则和注意事项,可以参考 streamreader 中的 incr 说明。

random

random 配置项的含义和 streamreader 插件中的 random 含义一致,表示这是一个递增的数据生产规则,比如

{
  "value": "1,10",
  "rule": "random",
  "type": "string"
}

表示该字段的数据是一个长度为 1 到 10 (1 和 10 都包括)随机字符串。

该字段更详细的配置规则和注意事项,可以参考 streamreader 中的 random 说明。

规则名称 含义 示例 数据类型 说明
address 随机生成一条基本满足国内实际情况的地址信息 辽宁省兰州市徐汇区东山街176号 string
bank 随机生成一个国内银行名称 华夏银行 string
company 随机生成一个公司的名称 万迅电脑科技有限公司 string
creditCard 随机生成一个信用卡卡号 430405198908214042 string 16 位
debitCard 随机生成一个储蓄卡卡号 6227894836568607 string 19 位
email 随机生成一个电子邮件地址 | ok2a@gmail.com string
idCard 随机生成一个国内身份证号码 350600198508222018 string 18 位,负责校验规则,头 6 位编码满足行政区划要求
lat 随机生成维度数据 48.6648764 double 固定 7 位小数 ,也可以用latitude 表示
lng 随机生成经度数据 120.6018163 double 固定 7 位小数,也可以使用longitude 表示
name 随机生成一个国内名字 池浩 string 暂没考虑姓氏在国内的占比度
job 随机生成一个国内岗位名称 系统工程师 string 数据来源于招聘网站
phone 随机生成一个国内手机号码 15292600492 string 暂不考虑虚拟手机号
stockCode 随机生成一个 6 位的股票代码 687461 string 前两位满足国内股票代码编号规范
stockAccount 随机生成一个 10 位的股票交易账户 0692522928 string 完全随机,不满足账户规范
uuid 随机生成一个 UUID 字符串 bc1cf125-929b-43b7-b324-d7c4cc5a75d2 string 完全随机,不满足账户规范
zipCode 随机生产一个国内邮政编号 411105 long 不完全满足国内邮政编号规范

注意:上述表格中的规则返回的数据类型是固定的,且不支持修改,因此 type 无需配置,配置的类型也会被忽略,因为数据生成来自内部规则,所以 value 也无需配置,配置的内容也会被忽略。