压测之数据生成工具之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]  


posted @ 2022-02-17 15:56  Later^^  阅读(438)  评论(0编辑  收藏  举报