mysql和flink_Flink从入门到真香(20、使用flink table api 输出到mysql和es)

本文介绍了如何使用Apache Flink的Table API将数据输出到MySQL和Elasticsearch,包括追加模式、撤回模式(Retract)和更新插入模式(upsert)的操作,并提供了详细的代码示例。
摘要由CSDN通过智能技术生成

接着 https://blog.51cto.com/mapengfei/2554700 输出到kafka和文件,这2种都是只支持追加模式,那要实现 撤回模式(Retract)和更新插入模式(upsert),大部分场景是在操作数据库中,像mysql,es,mongo等,这里实现下输入到mysql和es

再贴一下集中模式的区别:

追加模式(Append)--文件系统只支持追加模式

表只做插入操作,和外部连接器只交换插入(insert)消息

撤回模式(Retract)--先删除再插入,实现更新操作

表和外部连接器交换添加(Add)和撤回(Retract)消息

插入操作(insert)编码为add消息;删除(delete)编码为retract消息;更新(update)编码为上一条的retract和下一条的add消息

更新插入模式(upsert)

更新和插入都被编码为upsert消息;删除编码为delete消息

输出到mysql

启动一个mysql服务器,新建数据库test_mafei,里面建一张表用来存储输出数据

DROP TABLE IF EXISTS `sensor_count`;

CREATE TABLE `sensor_count` (

`id` varchar(1000) COLLATE utf8_unicode_ci DEFAULT NULL,

`counts` bigint(20) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

SET FOREIGN_KEY_CHECKS = 1;

2 上代码(关于环境准备可以参考之前的文章)

package com.mafei.apitest.tabletest

import org.apache.flink.streaming.api.scala._

import org.apache.flink.table.api.DataTypes

import org.apache.flink.table.api.scala._

import org.apache.flink.table.descriptors.{Csv, Elasticsearch, FileSystem, Json, Schema}

object MysqlOutputTest {

def main(args: Array[String]): Unit = {

//1 、创建环境

val env = StreamExecutionEnvironment.getExecutionEnvironment

env.setParallelism(1)

val tableEnv = StreamTabl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值