压测之数据生成工具之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 <out-dir> --template <template>
OPTIONS:
--compress-level <compress-level>
压缩级别(gzip和xz为0-9,zstd为1-21)[默认值:6]
-c, --compression <compression>
压缩数据输出[可能的值:gzip, gz, xz, zstd, zst]
--escape-backslash
写字符串时转义反斜杠
-k, --files-count <files-count>
生成的文件数量[默认:1]
-f, --format <format>
输出格式[默认:sql][可能的值:sql, csv]
-h, --help
打印帮助信息
--headers
在输出中包含列名或标题
-D, --initialize <initialize>...
用这些全局表达式初始化模板
-n, --inserts-count <inserts-count>
每个文件的INSERT语句数[默认值:1]
-j, --jobs <jobs>
并行运行的作业数,默认为cpu数[default: 0]
--last-file-inserts-count <last-file-inserts-count>
最后一个文件中INSERT语句的数目
--last-insert-rows-count <last-insert-rows-count>
最后一个文件的最后一个INSERT语句的行数
--no-schemas
不要生成模式文件(CREATE TABLE *. schema)。 sql文件)
--now <now>
覆盖当前时间戳(总是UTC格式),格式为“YYYY-mm-dd HH:MM:SS.fff”
-o, --out-dir <out-dir>
输出目录
--qualified
在编写SQL语句时保留限定名
-q, --quiet
禁用进度条
--rng <rng>
随机数生成器引擎[默认值:hc128][取值范围:chacha、hc128、isaac、isaac64、xorshift、 pcg32、步骤)
-r, --rows-count <rows-count>
每个INSERT语句的行数[默认值:1]
-R, --rows-per-file <rows-per-file>
每个文件的行数
--schema-name <schema-name>
覆盖架构名称
-s, --seed <seed>
随机数生成器种子(应该有64个十六进制数字)
-t, --table-name <table-name>
覆盖表名
-i, --template <template>
生成模板文件
--time-zone <time-zone>
用于时间戳的时区[默认:UTC]
-N, --total-count <total-count>
所有生成文件的总行数
-V, --version
打印版本信息
--zoneinfo <zoneinfo>
包含tz数据库的目录[默认:/usr/share/zoneinfo]