Hazelcast喷射数据加载



我正在尝试将数据库数据加载到hazelcast jet map实例

public void sourceStage(JetInstance jet, Pipeline pipeLine){
SimpleDriverDataSource dataSource = new SimpleDriverDataSource();
dataSource.setDriver(new org.postgresql.Driver());
dataSource.setUrl("jdbc:postgresql://localhost/development");
dataSource.setUsername("postgres");
dataSource.setPassword("root");
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
String sql1 = "SELECT  id1 , id2 FROM public.tbl_data where name='india'";
jdbcTemplate.query(sql1, new RowMapper<Object>() {
@Override
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
jet.getMap("t1").put(rs.getString("id1"), rs.getString("id2"));
return null;
}
});
}

并再次尝试在管道

中使用与源相同的映射
pipeLine.readFrom(Sources.map("t1")).map(map -> {
System.err.println(map.getKey() + "---" + map.getValue());
return map;
}).writeTo(Sinks.logger());

,我看到我不能读取数据作为来源。但如果检查jet.getMap("t1").size()我正在获取size值

要加载数据库数据,请使用带有JDBC源和IMap Sink的管道。将两者混合到一个一级,打破了喷气发动机的并行执行模型。

最新更新