1 个不稳定版本
0.1.0 | 2023年12月1日 |
---|
#565 在 开发工具
32KB
571 代码行
Streamgen
Streamgen 是一个 CLI 工具,用于生成数据流以测试使用 Arroyo 或 Apache Flink 等引擎的流处理应用程序。
功能
接收器
Streamgen 可以通过以下接收器暴露生成数据
stdout
- 将数据写入 stdoutsse
- 运行一个 服务器端事件 服务器kafka
- 将数据写入 Kafka 主题
格式
字符串
JSON
生成器
common-log
- 通用日志格式 记录impulse
- 增量整数的流order
- 模拟网页订单事件stock-trade
- 模拟股票交易
使用
$ streamgen --help
A tool for generating streams of data for testing and benchmarking.
Usage: streamgen [OPTIONS] <SPEC> [COMMAND]
Commands:
stdout Write outputs to stdout
sse Run a Server-Sent Events server
kafka Write outputs to Kafka
help Print this message or the help of the given subcommand(s)
Arguments:
<SPEC> Type of data to generator [possible values: common-log, impulse, order, stock-trade]
Options:
-f, --format <FORMAT> Format of the generated data [possible values: string, json]
-r, --rate <RATE> Rate of generation in records per second
-l, --limit <LIMIT> Max number of records to generate
-h, --help Print help
-V, --version Print version
写入 stdout
$ streamgen --rate 10 --format string common-log stdout
66.70.249.106 - travis_quo [01/Dec/2023:14:52:26 -0800] "GET /company.doc" 405 4521 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"
43.89.162.120 - vesta_itaque [01/Dec/2023:14:52:26 -0800] "GET /tmp/first/same.doc" 400 4767 "-" "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; nb-no) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148a Safari/6533.18.5"
206.157.23.40 - lulu_molestias [01/Dec/2023:14:52:27 -0800] "GET /sbin/charlotte.rar" 401 1519 "-" "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
63.37.55.188 - roscoe_nemo [01/Dec/2023:14:52:27 -0800] "POST /var/problem/government.xls" 400 7044 "-" "Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko ) Version/5.1 Mobile/9B176 Safari/7534.48.3"
129.215.157.150 - angie_dolorum [01/Dec/2023:14:52:27 -0800] "GET /usr.txt" 405 2768 "-" "Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko ) Version/5.1 Mobile/9B176 Safari/7534.48.3"
213.73.92.8 - roscoe_omnis [01/Dec/2023:14:52:27 -0800] "GET /etc/case/life.ppt" 404 4371 "-" "Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14"
写入 Kafka
$ streamgen --format json order kafka --topic orders --boostrap-servers localhost:9092
安装
从二进制文件
预构建的二进制文件可在 发布页面 上用于 Linux 和 macOS。
从源代码
Streamgen 可以通过 Cargo 从源代码构建
$ cargo install streamgen
如果您想使用 Kafka 支持,您需要将 --features kafka
标志传递给 Cargo
$ cargo install streamgen --features kafka
这依赖于 rust-rdkafka 库;要使用此库,您需要在系统上安装必要的依赖项。有关更多详细信息,请参阅 rust-rdkafka README。
依赖项
~13–24MB
~328K SLoC