栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Flink的JDBC connection实例(mysql)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Flink的JDBC connection实例(mysql)

flink的官网,提供了JDBC的连接实例,根据编程 

首先就是添加依赖

        
        
            mysql
            mysql-connector-java
            5.1.48
        

        
        
            commons-dbutils
            commons-dbutils
            1.6
        

        
        
            org.apache.flink
            flink-connector-jdbc_2.12
            1.14.0
        

添加完依赖后,根据flink的官网进行编程,前提条件:

        1.本地安装有mysql

        2.在mysql里面有相对应的表,来存储flink生成到的数据 

        3.nc(脑残)开启了数据流的产生,这个可不开启,只是为了演示方便而用的

create table books (
 id int ,
 name varchar(20)
);
-- 在mysql的对应库中创建表格,我是在test库中创建了一个book表
    public static void main(String[] args) throws Exception {
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        DataStreamSource lines = env.socketTextStream("localhost", 8888);
        SingleOutputStreamOperator> mapped = lines.map(new MapFunction>() {
            @Override
            public Tuple2 map(String value) throws Exception {
                String[] split = value.split(",");
                return Tuple2.of(Integer.parseInt(split[0]), split[1]);
            }
        });

        mapped.addSink(JdbcSink.sink(
                        "insert into books values(?,?)",
                        (ps, t) -> {
                            ps.setInt(1, t.f0);    //读取对应的数据,写到sql的books表中
                            ps.setString(2, t.f1);
//                            ps.setString(3, t.f2);
//                            ps.setDouble(4, t.f3);
//                            ps.setInt(5, t.f4);
                        },
                        JdbcExecutionOptions.builder()  //JDBC的执行选项
                        .withBatchSize(1000)
                        .withBatchIntervalMs(200)
                        .withMaxRetries(5)
                        .build(),
                        new JdbcConnectionOptions.JdbcConnectionOptionsBuilder()    //JDBC的连接选项
                                .withUrl("jdbc:mysql://localhost:3306/test?characterEncoding=utf8")
                                .withDriverName("com.mysql.jdbc.Driver") //这个mysql驱动一定要写这个,别用官网写的那个
                                .withUsername("root")
                                .withPassword("root")
//                                .withConnectionCheckTimeoutSeconds(2)
                                .build()));

        env.execute();

运行成功的那一刻,爽到家了.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/349048.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号