我检查了 Hazelcast Jet 以满足我的项目需求,但我发现文档在以下主题方面确实含糊不清:
1)当我对两个列表流执行数据连接时......例如:
BatchStage<Trade> trades = p.drawFrom(list("trades"));
BatchStage<Entry<Integer, Broker>> brokers =
p.drawFrom(list("brokers"));
BatchStage<Tuple2<Trade, Broker>> joined = trades.hashJoin(brokers,
joinMapEntries(Trade::brokerId),
Tuple2::tuple2);
joined.drainTo(Sinks.logger());
那么我能以某种方式告诉 Jet 下面实际会发生什么连接吗?地图侧连接或减少侧连接......?我的意思是想象一下“经纪人”规模很小,而交易规模很大。执行这两组连接的最佳技术是地图侧连接,也就是广播连接......当 Jet 进行连接时,哪些数据将通过网络传输?是否有任何基于大小的优化?
2)我正在测试以下场景:
简单的管道:
private Pipeline createPipeLine() {
Pipeline p = Pipeline.create();
BatchStage stage = p.drawFrom(Sources.<Date>list("master"));
stage.drainTo(Sinks.logger());
return p;
}
list("master")
不断被集群中的另一个节点填充。现在,当我将此管道提交到集群时,只有列表的子集(“master”)被排空到记录器。我可以以某种方式将 Jet 作业设置为不断消耗list("master")
标准输出吗?
提前致谢