1 个不稳定版本

0.1.0 2023年12月1日

#565开发工具

MIT/Apache

32KB
571 代码行

Streamgen

Streamgen 是一个 CLI 工具,用于生成数据流以测试使用 Arroyo 或 Apache Flink 等引擎的流处理应用程序。

Crates.io MIT licensed Build Status

功能

接收器

Streamgen 可以通过以下接收器暴露生成数据

  • stdout - 将数据写入 stdout
  • sse - 运行一个 服务器端事件 服务器
  • 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