Flink 中 映射mysql 出现异常数据类型转换

Flink 映射MySQL 出现异常数据转换

flink 映射mysql 表时出现预期之外的数据类型

简述 : 从mysql中映射表到doris中时,报错 java.lang.Long cannot be cast to java.lang.String, 两表中均无 Long类型 但报错中提到了Long , flink版本1.15.2

MySQL中建表语句如下

CREATE TABLE `t_zc_safe_deviceinfo` (
  `deviceID` int(8) unsigned zerofill NOT NULL AUTO_INCREMENT COMMENT '安全设备标识',
  `deviceName` varchar(30) NOT NULL COMMENT '设备名称',
  `deviceIP` varchar(39) NOT NULL COMMENT '设备IP地址',
  `innerLinkID` int NOT NULL COMMENT '内部链路标识',
  `deviceTypeCode` varchar(15) NOT NULL COMMENT '设备类型',
  `devicePosition` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '设备位置(0:内网,1:外网)',
  `brandType` varchar(128) NOT NULL COMMENT '生产厂家名称/型号',
  `linkPhone` varchar(64) NOT NULL COMMENT '技术支持联系电话',
  `otherLink` varchar(64) NOT NULL COMMENT '技术支持其他联系方式',
  `hasManagePage` varchar(15) DEFAULT NULL COMMENT '是否具备管理页面',
  `managePageUrl` varchar(128) DEFAULT NULL COMMENT '管理页面地址',
  `deleteState` int DEFAULT '0' COMMENT '0:正常,1:删除',
  `useState` int DEFAULT '0' COMMENT '使用状态(加入拓扑图)0:未加入,1:已加入',
  `regTime` varchar(19) NOT NULL COMMENT '统计时间',
  `updateTime` varchar(19) DEFAULT NULL COMMENT '更新时间',
  `platDeviceID` varchar(64) DEFAULT NULL COMMENT '平台设备ID',
  `platID` varchar(64) DEFAULT NULL COMMENT '平台ID',
  `platLinkID` varchar(64) DEFAULT NULL COMMENT '平台链路ID',
  `isSub` varchar(2) DEFAULT NULL COMMENT '是否为下级平台:N-否',
  `province_id` int DEFAULT NULL COMMENT '所属省份',
  `city_id` int DEFAULT NULL COMMENT '所属市',
  `district_id` int DEFAULT NULL COMMENT '所属区县',
  `monitor_type` int DEFAULT '0' COMMENT '监控程序类型',
  `systemType` varchar(15) DEFAULT NULL COMMENT '系统类型',
  `is_crux` tinyint(1) NOT NULL COMMENT '是否是关键设备(1是0否)(级联1.1加入)',
  `area_code` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '接入区域代码(级联1.1加入)',
  `status` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'A' COMMENT '上报完成标识(0已完成,1.1加入)',
  PRIMARY KEY (`deviceID`)
) ENGINE=InnoDB AUTO_INCREMENT=10000002 DEFAULT CHARSET=utf8 COMMENT='安全设备';

flink 中建表语句如下


CREATE TABLE `t_zc_safe_deviceinfo` (
`deviceID`       int     COMMENT '安全设备标识',
`deviceName`     varchar(30) COMMENT '设备名称',
`deviceIP`       varchar(39) COMMENT '设备IP地址',
`innerLinkID`    int         COMMENT '内部链路标识',
`deviceTypeCode` varchar(15) COMMENT '设备类型',
`devicePosition` varchar(1)  COMMENT '设备位置(0:内网,1:外网)',
`brandType`      varchar(128)COMMENT '生产厂家名称/型号',
`linkPhone`      varchar(64) COMMENT '技术支持联系电话',
`otherLink`      varchar(64) COMMENT '技术支持其他联系方式',
`hasManagePage`  varchar(15) COMMENT '是否具备管理页面',
`managePageUrl`  varchar(128)COMMENT '管理页面地址',
`deleteState`    int         COMMENT '0:正常,1:删除',
`useState`       int         COMMENT '使用状态(加入拓扑图)0:未加入,1:已加入',
`regTime`        varchar(19) COMMENT '统计时间',
`updateTime`     varchar(19) COMMENT '更新时间',
`platDeviceID`   varchar(64) COMMENT '平台设备ID',
`platID`         varchar(64) COMMENT '平台ID',
`platLinkID`     varchar(64) COMMENT '平台链路ID',
`isSub`          varchar(2)  COMMENT '是否为下级平台:N-否',
`province_id`    int         COMMENT '所属省份',
`city_id`        int         COMMENT '所属市',
`district_id`    int         COMMENT '所属区县',
`monitor_type`   int         COMMENT '监控程序类型',
`systemType`     varchar(15) COMMENT '系统类型',
`is_crux`        int   COMMENT '是否是关键设备(1是0否)(级联1.1加入)',
`area_code`      varchar(2)  COMMENT '接入区域代码(级联1.1加入)',
`status`         char(1)     COMMENT '上报完成标识(0已完成,1.1加入)'
)WITH  (
    'connector' = 'jdbc',
    'url' = 'jdbc:mysql://bizserver:3306/sip?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&tinyInt1isBit=false&transformedBitIsBoolean=false',
    'driver' = 'com.mysql.cj.jdbc.Driver',
    'table-name' = 't_zc_safe_deviceinfo',
    'username' = 'root',
    'password' = '',
    'lookup.cache.max-rows' = '100',
    'lookup.cache.ttl' = '60s'
);

有可能是你的某个int类型被转换为了long类型,具体还要看报错