阿里妹导读:如何选择适合自己业务的流计算引擎?除了比较各自的功能矩阵外,基准测试(benchmark)便是用来评估系统性能的一个重要和常见的方法。然而在流计算领域,目前还没有一个行业标准的基准测试。本文将探讨流计算基准测试设计上的难点,分享如何设计流计算基准测试框架——Nexmark,以及将来的规划。
一 背景
二 现有流计算基准测试的问题
三 Nexmark 基准测试框架的设计
1 移除外部 source、sink 依赖
2 Metrics
3 Query 与 Schema
用户(Person):代表一个提交拍卖,或参与竞标的用户。
拍卖(Auction):代表一个拍卖品。
竞标(Bid):代表一个对拍卖品的出价。
4 作业负载的配置化
四 实验结果
五 总结
推动流计算 benchmark 的发展和标准化。 作为 Flink 引擎版本迭代之间的性能测试工具,甚至是日常回归工具,及时发现性能回退的问题。 在开发 Flink 性能优化的功能时,可以用来验证性能优化的效果。 部分公司可能会有 Flink 的内部版本,可以用作内部版本与开源版本之间的性能对比工具。
参考及引用 [1]Pete Tucker and Kristin Tufte. "NEXMark – A Benchmark for Queries over Data Streams". June 2010. [2]Jeyhun Karimov and Tilmann Rabl. "Benchmarking Distributed Stream Data Processing Systems". arXiv:1802.08496v2 [cs.DB] Jun 2019 [3]Yangjun Wang. "Stream Processing Systems Benchmark: StreamBench". May 2016. [4]https://github.com/yahoo/streaming-benchmarks [5]https://www.ververica.com/blog/extending-the-yahoo-streaming-benchmark [6]https://beam.apache.org/documentation/sdks/java/testing/nexmark/