我正在处理使用cassandra数据的flink作业。通过执行大量查询(~10k)生成数据。每个查询返回2k记录。现有的CassandraInputFormat不支持ParallelInput,所以我编写了自己的InputFormat,为每个查询生成一个InputSplit。
Datastax建议为相同的群集配置重用相同的会话。问题是cassandra Cluster和Session对象不可序列化。所以目前我正在为每个InputSplit创建一个新的Session,这意味着我正在创建10k会话,这似乎是一个很大的开销。同样能够共享会话意味着我可以使用准备好的语句。
我很想知道是否有一种方法可以在InputSplit中共享会话(并且还可以在一个flink作业中共享此资源)。
否则有没有办法在InputSplit之间重用会话? InputFormat的生命周期不是很清楚,特别是在:
之间