我需要我的flink作业从源函数的本地示例读取数据,并在单元测试代码本身(而不是流)中每次源函数示例的数据更改时进行更新。
伪代码:
StreamExecutionEnvironment env = ...getExecutionEnvironment();
StockSource src = new StockSource(); // the Source Function instance
env.addSource(src);
results = Pipeline(env); // does some calculations and returns the calculated data
env.execute();
// Test 1
When: src.sendData("TWTR", 120.6);
Assert: results.eurRate == 98.87;
// Test 2
When: src.sendData("GOOG", 300);
Assert: results.eurRate == 245.95;
在Flink这样做可能吗?
1条答案
按热度按时间bt1cpqcv1#
您可以做的是编写作业,使源和汇是可插入的,然后实现合适的源和汇进行测试。换言之,是这样的:
然后可以这样测试:
用于测试的Flume如下所示:
这个例子是从https://github.com/knaufk/flink-testing-pyramid,有关详细信息,请参阅。