头图

(5)FlinkSQL将socket数据写入到mysql方式二

public static void main(String[] args) throws Exception {

    StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
    env.setParallelism(1);
    StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env);
    DataStreamSource<String> streamSource = env.socketTextStream("127.0.0.1", 9999,"\n");
    SingleOutputStreamOperator<WaterSensor> waterDS = streamSource.map(new MapFunction<String, WaterSensor>() {
        @Override
        public WaterSensor map(String s) throws Exception {
            String[] split = s.split(",");
            return new WaterSensor(split[0], Long.parseLong(split[1]), Integer.parseInt(split[2]));
        }
    });

    // 将流转化为表
    Table table = tableEnv.fromDataStream(waterDS,
            $("id"),
            $("ts"),
            $("vc"),
            $("pt").proctime());

    tableEnv.createTemporaryView("EventTable", table);


    tableEnv.executeSql("CREATE TABLE flinksink (" +
            "componentname STRING," +
            "componentcount BIGINT NOT NULL," +
            "componentsum BIGINT" +
            ") WITH (" +
            "'connector.type' = 'jdbc'," +
            "'connector.url' = 'jdbc:mysql://localhost:3306/testdb?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai'," +
            "'connector.table' = 'flinksink'," +
            "'connector.driver' =  'com.mysql.cj.jdbc.Driver'," +
            "'connector.username' = 'root'," +
            "'connector.password' = 'root'," +
            "'connector.write.flush.max-rows'='3'\r\n" +
            ")"
    );
    Table mysql_user = tableEnv.from("flinksink");
    mysql_user.printSchema();

    Table result = tableEnv.sqlQuery(
            "SELECT " +
                    "id as componentname, " +                //window_start, window_end,
                    "COUNT(ts) as componentcount ,SUM(ts) as componentsum " +
                    "FROM TABLE( " +
                    "TUMBLE( TABLE EventTable , " +
                    "DESCRIPTOR(pt), " +
                    "INTERVAL '10' SECOND)) " +
                    "GROUP BY id , window_start, window_end"
    );

    //方式一:写入数据库

// result.executeInsert("flinksink").print(); //;.insertInto("flinksink");

    //方式二:写入数据库
    tableEnv.createTemporaryView("ResultTable", result);
    tableEnv.executeSql("insert into flinksink SELECT * FROM ResultTable").print();

// tableEnv.toAppendStream(result, Row.class).print("toAppendStream"); //追加模式

    env.execute();
}

10年IT行业从业经验,5+年技术型管理经验。

4 声望
3 粉丝
0 条评论
推荐阅读
(4)SparkSQL中如何定义UDF和使用UDF
Spark SQL中用户自定义函数,用法和Spark SQL中的内置函数类似;是saprk SQL中内置函数无法满足要求,用户根据业务需求自定义的函数。首先定义一个UDF函数:

NBI大数据阅读 282

封面图
Flink Forward Asia 2022 主论坛概览
2022 年 11 月 26-27 日,Flink Forward Asia(FFA)峰会成功举行。Flink Forward Asia 是由 Apache 软件基金会官方授权、由阿里云承办的技术峰会,是目前国内最大的 Apache 顶级项目会议之一,也是 Flink 开发者...

MissD阅读 6.1k

第十六届中国大数据技术大会五大分论坛顺利举办!
1 月 8 日下午,由苏州市人民政府指导、中国计算机学会主办、苏州市吴江区人民政府支持,CCF 大数据专家委员会、苏州市吴江区工信局、吴江区东太湖度假区管委会、苏州市吴江区科技局、苏州大学未来科学与工程学院...

MissD阅读 5.7k

企业流程数字化转型研讨会暨《流程优化风暴》新书发布会 即将召开
伴随数字经济的来临,数字化转型已成为社会经济发展的主旋律,国内众多企业将其作为战略核心并深入推进。在数字化转型工作逐渐进入细分领域的过程中,作为企业业务实施的基础支撑,企业业务流程已成为数字化转型...

MissD阅读 4.9k

配置 Hue 访问 AWS S3 中国区(qbit)
Hue: Hadoop User Experience环境 {代码...} qbit 参照这两篇 Hue 官方文档搞了很久都没配好:文档一,文档二文档编写者估计没考虑到独立运营的 AWS 中国区用户的痛搞明白了也简单,就是在官方文档的基础上还得配...

qbit2阅读 2.3k评论 1

高效数据运营赋能数字化转型研讨会暨《DataOps 实践手册》新书发布会 预约通道开启!
隆重预告高效数据运营赋能数字化转型研讨会暨《DataOps 实践手册》新书发布会 主办单位:机械工业出版社举办时间:2023 年 1 月 10 日 8:30-12:00会议背景随着数据呈指数级增长,机器学习(ML)和人工智能(AI)...

MissD阅读 3.6k

Flink 在米哈游的应用实践
米哈游成立于 2011 年,致力于为用户提供高品质、超出预期的产品和服务。公司陆续推出多款人气产品,如崩坏学园 2、崩坏 3、未定事件簿、原神以及社区产品米游社等。

ApacheFlink1阅读 868

封面图

10年IT行业从业经验,5+年技术型管理经验。

4 声望
3 粉丝
宣传栏