阿里妹導讀:如何選擇適合自己業務的流計算引擎?除了比較各自的功能矩陣外,基準測試(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/