使用 Flink Doris Connector 向 Doris 写入数据时,当表结构包含中文列名时,会出现 Duplicate column 错误,导致数据写入失败。
环境信息
Flink Doris Connector 版本: flink-doris-connector-1.19-24.0.1.jar (对应 1.6.0 版本)
Flink 版本: 1.19.2
Doris 版本: 3.0.4
错误信息
Caused by: org.apache.doris.flink.exception.DorisRuntimeException:
table hdp.hdp_xxx stream load error: [ANALYSIS_ERROR]
TStatus: errCode = 2, detailMessage = Duplicate column: ??, see more in null
复现步骤
创建包含中文列名的 Flink Doris Sink 表:
sqlCREATE TABLE doris_sink_table
(
rowid
VARCHAR(255),
名称
STRING,
年龄
INTEGER,
描述
STRING,
日期
DATE,
日期时间
TIMESTAMP,
PRIMARY KEY (rowid
) NOT ENFORCED
) WITH (
'connector' = 'doris',
'fenodes' = '127.0.0.1:8030',
'table.identifier' = 'test_db.test_table',
'username' = 'root',
'password' = 'password',
'sink.properties.format' = 'json',
'sink.properties.read_json_by_line' = 'true',
'sink.properties.columns' = 'rowid
,名称
,年龄
,描述
,日期
,日期时间
'
)
执行 INSERT 操作向该表写入数据,观察到上述错误.
影响范围
这个问题影响所有需要使用中文列名的 Flink 作业,特别是:
业务系统直接使用中文字段名的场景
需要保持与现有中文数据库表结构一致的迁移场景
面向中文用户的数据分析和报表场景