请问老师,这种自定义source读取mysql数据如何做到实时读取呢,每次都是读完表里的存量数据,程序就退出了,那样是没办法做到读取增量吗?

来源:5-7 自定义Source读取MySQL数据

Link_scnu

2021-08-05

请问老师,这种自定义source读取mysql数据如何做到实时读取呢,每次都是读完表里的存量数据,程序就退出了,那样是没办法做到实时读取增量吗?
图片描述
如果在run()方法中,添加一个 private boolean flag = true;如下图,这样只会循环读已经读过的

@Override
    public void run(SourceContext<Student> ctx) throws Exception {
    while (flag){
        ResultSet rs = psmt.executeQuery();
        while (rs.next()) {
            int id = rs.getInt("id");
            String name = rs.getString("name");
            int age = rs.getInt("age");
            ctx.collect(new Student(id, name, age));
            Thread.sleep(2000);
        }
      }
    }
写回答

1回答

Michael_PK

2021-08-08

明白你的意思,你是说如果mysql的数据发生了变化,如何实时抓取到时吧? 后面的课程有,可以是有canal或maxwell之类的框架

1
0

Flink+ClickHouse 玩转企业级实时大数据开发

已经在做大数据,Flink助力轻松提薪;尚未入行,让你弯道超车

1000 学习 · 225 问题

查看课程