flink sql 13.2 读取与写入数据库的报错(踩坑)

  • [flink sql sink mysql 没有数据写入或数据写入中文乱码或报useSSL](#flink sql sink mysql 没有数据写入或数据写入中文乱码或报useSSL)
  • [flink sql source mysql 任务执行正常没有任何报错信息(构建 Flink LookUp 表 的踩坑历程)](#flink sql source mysql 任务执行正常没有任何报错信息(构建 Flink LookUp 表 的踩坑历程))

flink sql sink mysql 没有数据写入或数据写入中文乱码或报useSSL

connector 如下:

sql 复制代码
'connector' = 'jdbc',
'url' = 'jdbc:mysql://localhost:3306/dbname?characterEncoding=utf8&useSSL=false',
'table-name' = 'tablename',
// 'driver' = 'com.mysql.cj.jdbc.Driver',
'username' = 'username',
'password' = 'pwd'

1、useSSL=false:解决 ssl 问题

2、characterEncoding=utf8:解决中文乱码问题

3、驱动不一致会导数数据无法写入,注释驱动,让flink自动推断即可

flink sql source mysql 任务执行正常没有任何报错信息(构建 Flink LookUp 表 的踩坑历程)

mysql 建表语句

sql 复制代码
CREATE TABLE `sku_test_upsert` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '库存id(itemID)',
  `price` decimal(10,0) DEFAULT NULL COMMENT '价格',
  `sku_name` varchar(200) DEFAULT NULL COMMENT 'sku名称',
  `category3_id` bigint(20) DEFAULT NULL COMMENT '三级分类id(冗余)',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='库存单元表'

flink sql source jdbc 错误的建表语句

sql 复制代码
CREATE TABLE sku_test_upsert(
id bigint ,
price bigint  ,
sku_name STRING ,
category3_id bigint, 
PRIMARY KEY(id) NOT ENFORCED
) WITH (
'connector' = 'jdbc',
'url' = 'jdbc:mysql://localhost:3306/dbname?useSSL=false',
'table-name' = 'sku_test_upsert',
'username' = 'username',
'password' = 'pwd'
)

错误的地方是price 字段的数据类型是bigint ,要改成decimal(10,2) 类型 才能正常查询数据,最坑的是没有任何的报错信息提示
备注:要非常关注字段的数据类型映射是否正确,这个可能会影响能否查询数据的关键,没提示任何报错,此点非常坑

flink sql source jdbc 正确的建表语句:

sql 复制代码
CREATE TABLE sku_test_upsert(
id bigint ,
price decimal(10,2) ,
sku_name STRING ,
category3_id bigint, 
PRIMARY KEY(id) NOT ENFORCED
) WITH (
'connector' = 'jdbc',
'url' = 'jdbc:mysql://localhost:3306/dbname?useSSL=false',
'table-name' = 'sku_test_upsert',
'username' = 'username',
'password' = 'pwd'
)
相关推荐
qq_392397121 分钟前
Redis常用操作
数据库·redis·wpf
诗旸的技术记录与分享34 分钟前
Flink-1.19.0源码详解-番外补充3-StreamGraph图
大数据·flink
A__tao1 小时前
一键将 SQL 转为 Java 实体类,全面支持 MySQL / PostgreSQL / Oracle!
java·sql·mysql
一只fish2 小时前
MySQL 8.0 OCP 1Z0-908 题目解析(17)
数据库·mysql
花好月圆春祺夏安2 小时前
基于odoo17的设计模式详解---装饰模式
数据库·python·设计模式
A__tao2 小时前
SQL 转 Java 实体类工具
java·数据库·sql
m0_653031362 小时前
腾讯云认证考试报名 - TDSQL数据库交付运维专家(TCCE PostgreSQL版)
运维·数据库·腾讯云
小马哥编程3 小时前
【iSAQB软件架构】架构决策记录-ADR
数据库·架构·系统架构·设计规范
萧鼎4 小时前
深度探索 Py2neo:用 Python 玩转图数据库 Neo4j
数据库·python·neo4j
m0_653031364 小时前
腾讯云认证考试报名 - TDSQL数据库交付运维专家(TCCE MySQL版)
运维·数据库·腾讯云