思路

在 Flink 中创建一张表有两种方法:

从一个文件中导入表结构(Structure)(常用于批计算)(静态)

从 DataStream 或者 DataSet 转换成 Table (动态)

package com.kaikeba.mysql.demo

import org.apache.flink.api.common.typeinfo.BasicTypeInfo

import org.apache.flink.api.java.io.jdbc.JDBCInputFormat

import org.apache.flink.api.java.typeutils.RowTypeInfo

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

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

import org.apache.flink.types.Row

object Flink2Mysql {

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

//设定执行环境

val env = ExecutionEnvironment.getExecutionEnvironment

val tEnv = BatchTableEnvironment.create(env)

//通过创建JDBCInputFormat读取JDBC数据源

val jdbcDataSet: DataSet[Row] =

env.createInput(JDBCInputFormat.buildJDBCInputFormat()

.setDrivername("com.mysql.cj.jdbc.Driver")

.setDBUrl("jdbc:mysql://127.0.0.1:3306/flink-mysql?serverTimezone=GMT%2B8&characterEncoding=UTF-8&useSSL=false")

.setUsername("root")

.setPassword("Chen1227+")

.setQuery("select * from filter")

.setRowTypeInfo(new RowTypeInfo(BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO))

.finish()

)

//将DataSet注册为表

tEnv.registerDataSet("tb", jdbcDataSet)

//执行查询操作

val table = tEnv.sqlQuery("select * from tb")

//把table转为DataSet

tEnv.toDataSet[Row](table).print()

}

}

参考

Flink 读写 Mysql

Flink流处理访问MySQL

Flink实例

flink读mysql速度怎么样_[DB] Flink 读 MySQL相关推荐

  1. mysql hash函数_运维日记| MySQL/Oracle深度解析之一:逻辑读

    前言 THE FIRST 比较数据库优劣.异同的文章有很多了,使用压测工具,进行不同压力下的测试,就能大致上比较出来哪种数据库是"最快"的数据库.但从有经验的数据架构.DBA等专业 ...

  2. doctor mysql数据导入_线上环境mysql主从同步的搭建过程

    之前搭建过一套主从同步的mysql集群,但是是基于新数据库,而这次线上环境要升级成主从同步的集群,记录一下升级过程和中间遇到的各种问题. 由于是直接对线上数据库进行修改,因此要保证对线上环境造成尽量小 ...

  3. python mysql in语句_基于Python的mysql语句入门学习笔记

    MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用 ...

  4. php mysql安装配置_转载:PHP,MySQL的安装与配置

    一.安装配置PHP 把php.ini-production另存为php.ini.修改其内容: 1)extension_dir = "D:/php-5.4.45/ext"设置指定的扩 ...

  5. mysql级联删除_近百道MySQL面试题和答案(2020收藏版)(完结篇)

    7. 什么是死锁?怎么解决? 死锁是指两个或多个事务在同一资源上相互占用,并请求锁定对方的资源,从而导致恶性循环的现象. 常见的解决死锁的方法 1.如果不同程序会并发存取多个表,尽量约定以相同的顺序访 ...

  6. linux mysql内网_在Linux中mysql的一些基本操作

    在Linux中mysql的一些基本操作 下面介绍一下 一.关于在Linux中mysql的一些基本操作 1.进入mysql "mysql -uroot -p",会提示输入密码,输入密 ...

  7. mysql查看版本号_十分钟了解MySQL事务机制

    读书百遍其义自现. MySQL数据库在我们平时工作学习中的使用频率是相当之高,彻底掌握MySQL的事务机制对我们平时工作会有非常大的帮助,仔细回忆一下,你是否对MySQL事务相关的知识是否完全掌握?是 ...

  8. mysql架构组成_第 2 章 MySQL 架构组成

    麻雀虽小,五脏俱全.MySQL 虽然以简单著称,但其内部结构并不简单.本章从MySQL物理组成.逻辑组成,以及相关工具几个角度来介绍 MySQL 的整体架构组成,希望能够让读者对 MySQL 有一个更 ...

  9. mysql 指定路径_如何为单个MySQL数据库设置特定的目录位置?

    是否可以将MySQL中的每个数据库设置为使用单独的datadir? 我正在运行userdir开发(沙盒)服务器,并希望将该用户的数据库的MySQL数据文件放在/ home /< user> ...

最新文章

  1. 给娃写个游戏,庆祝嫦娥五号登月
  2. linux 负数_linux内核提权系列教程(2):任意地址读写到提权的4种方法
  3. java 递归原理_Java中递归原理实例分析
  4. Canvas实现文字粒子化,并且绕轴旋转(完善)
  5. 页面间的跳转,打开,关闭小技巧.
  6. navicat如何连接腾讯mysql_使用Navicat连接腾讯云Mysql数据库
  7. 机器学习算法应用30篇(十)-通俗理解支持向量机SVM及代码实践
  8. iconv的用法,'GBK'转'utf-8'
  9. 深圳最最最牛逼的 IT 公司全在这了!
  10. android媒体--stagefright概述【一】
  11. 微信商户平台(商户号)申请流程(仅供参考)
  12. QQ空间批量删除留言
  13. iOS学习之系统历史版本概览
  14. 唯美、清晰的代码长什么样
  15. WinSock网络编程基础(2)客户端
  16. Oracle Golden Gate
  17. windows10怎么用cmd编译C语言,win10怎么样使用cmd来运行程序
  18. celery:File /home/hadoop/.virtualenvs/Django01/lib/python3.7/site-packages/fdfs_client/utils.py
  19. 前端逼死强迫症之DOM
  20. Linux下开启openmp编译,OpenMP程序的编译和运行

热门文章

  1. C# 中类对象与JSON字符串互相转换的几种方法
  2. OpenGL-坐标系概念
  3. MFC+opencv 显示mat图像
  4. Xcode12.5最新快捷键的使用(学会事半功倍)
  5. 计算机的三个基本功能,操作系统的三个作用是什么
  6. java包引入顺序_多个相同jar存在时的引用顺序
  7. Android图片加载框架之(Glide和Picasso的区别,Glide的简单使用)
  8. java 远程修改linux服务器文件_linux服务器之间复制文件
  9. 切换activity的动画效果
  10. Xcode6中如何对scrollview进行自动布局(autolayout)