压测之数据生成工具之dbgen
Github地址:https://github.com/kennytm/dbgen
1.创建模板
注意:下面-- --里的内容,创建模板时要删除
程序通过模板内的语法生成数据,详细语法见第二章、模板语法
[root@hadoop01 ~]# vim template.sql
CREATE TABLE app01.t1 (
id bigint,
--下面这个注释是必须要有的--
/{{ rownum }}/
name varchar(40),
/{{ rand.regex('[a-zA-Z ]{40}') }}/
);
2.模板语法
基本语法参考:
https://github.com/kennytm/dbgen/blob/master/Template.md
高级语法参考:
https://github.com/kennytm/dbgen/blob/master/TemplateAdvanced.md
3.执行脚本
参数介绍
dbgen 0.8.0
dbgen命令行程序的参数
用法:
dbgen [OPTIONS] --out-dir --template
OPTIONS:
--compress-level
压缩级别(gzip和xz为0-9,zstd为1-21)[默认值:6]
-c, --compression
压缩数据输出[可能的值:gzip, gz, xz, zstd, zst]
--escape-backslash
写字符串时转义反斜杠
-k, --files-count
生成的文件数量[默认:1]
-f, --format
输出格式[默认:sql][可能的值:sql, csv]
-h, --help
打印帮助信息
--headers
在输出中包含列名或标题
-D, --initialize ...
用这些全局表达式初始化模板
-n, --inserts-count
每个文件的INSERT语句数[默认值:1]
-j, --jobs
并行运行的作业数,默认为cpu数[default: 0]
--last-file-inserts-count
最后一个文件中INSERT语句的数目
--last-insert-rows-count
最后一个文件的最后一个INSERT语句的行数
--no-schemas
不要生成模式文件(CREATE TABLE *. schema)。 sql文件)
--now
覆盖当前时间戳(总是UTC格式),格式为“YYYY-mm-dd HH:MM:SS.fff”
-o, --out-dir
输出目录
--qualified
在编写SQL语句时保留限定名
-q, --quiet
禁用进度条
--rng
随机数生成器引擎[默认值:hc128][取值范围:chacha、hc128、isaac、isaac64、xorshift、 pcg32、步骤)
-r, --rows-count
每个INSERT语句的行数[默认值:1]
-R, --rows-per-file
每个文件的行数
--schema-name
覆盖架构名称
-s, --seed
随机数生成器种子(应该有64个十六进制数字)
-t, --table-name
覆盖表名
-i, --template
生成模板文件
--time-zone
用于时间戳的时区[默认:UTC]
-N, --total-count
所有生成文件的总行数
-V, --version
打印版本信息
--zoneinfo
包含tz数据库的目录[默认:/usr/share/zoneinfo]