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'
)
相关推荐
初听于你41 分钟前
高频面试题解析:算法到数据库全攻略
数据库·算法
BTU_YC7 小时前
Neo4j查询计划完全指南:读懂数据库的“执行蓝图“
数据库·neo4j
非极限码农7 小时前
Neo4j图数据库上手指南
大数据·数据库·数据分析·neo4j
mit6.8247 小时前
[C# starter-kit] 命令/查询职责分离CQRS | MediatR |
java·数据库·c#
苏打水com8 小时前
数据库进阶实战:从性能优化到分布式架构的核心突破
数据库·后端
莫叫石榴姐8 小时前
SQL百题斩:从入门到精通,一站式解锁数据世界
大数据·数据仓库·sql·面试·职场和发展
Hello.Reader8 小时前
Flink 状态后端(State Backends)实战原理、选型、配置与调优
大数据·flink
shan~~9 小时前
linux达梦数据库操作
linux·数据库·chrome
武文斌779 小时前
项目学习总结:LVGL图形参数动态变化、开发板的GDB调试、sqlite3移植、MQTT协议、心跳包
linux·开发语言·网络·arm开发·数据库·嵌入式硬件·学习
CoderIsArt9 小时前
SQLite架构
数据库·sqlite