doris通过hive catalog去联邦查询数据并通过CTAS 插入到doris表中,当select 字段 as 成相同列名时,错误提示不友好

Viewed 41

-- as 成相同的列名
create table if not exists test.test05 as
SELECT t01.channel_code AS col1
,t01.plat_type AS col1
FROM hive2.test.test05 t01
WHERE t01.dt >= '20241229';

--错误提示如下:
SQL 错误 [1105] [HY000]: errCode = 2, detailMessage = get file split failed for table: dws_mkt_fin_cost_i_d, err: java.lang.NullPointerException

3 Answers

需求已记录,有进展会更新回帖。

本地测试,使用重复列名会正确报错:
image.png

请看下fe.log 中,应该有个完整的错误堆栈(搜 NullPointerException),可以看看具体问题是啥

这个是SQL执行错误回退老优化器导致的一个空指针异常。
可以设置session变量:set enable_fallback_to_original_planner=false; 禁止回退到老优化器。再执行一遍该SQL就能知道真正的报错原因。

我怀疑是因为你的CTAS语句没有指定replication num属性。可以将SQL改成下面这样试试

create table if not exists test.test05
PROPERTIES (
  'replication_num' = '1'
)
as
SELECT t01.channel_code AS col1
,t01.plat_type AS col1
FROM hive2.test.test05 t01
WHERE t01.dt >= '20241229';