Skip to content

[Bug][Tis]任务描述:执行Hive2Doris导入,传递SelectedTab的cols结构体中type: null,导致校验不通过,无法创建同步管道任务。 #391

Open
@alldatafounder

Description

任务描述:执行Hive2Doris导入,由于hive表的字段为null,传递SelectedTab的cols结构体中type: null,导致校验不通过,无法创建同步管道任务。
相关版本: Doris2.0.7, hive客户端是2.1.1-cdh , hive 服务端:2.3.2
image

目前我做了以下尝试:
image

hive表:
image
image
image
image
image
image

解决思路判断:

判断理由:mysql,oracle都执行了这部分代码进行type赋值。从xml临时文件读取selectedTab的结构,然后对其type进行JDBCTypes赋值DataType。

猜测:hive这块没有完成这一步导致此问题

    public static void fillSelectedTabMeta(ISelectedTab tab,
                                           Function<ISelectedTab, Map<String, ColumnMetaData>> tableColsMetaGetter) {
        Map<String, ColumnMetaData> colsMeta = tableColsMetaGetter.apply(tab);
        ColumnMetaData colMeta = null;
        if (colsMeta.size() < 1) {
            throw new IllegalStateException("table:" + tab.getName() + " relevant cols meta can not be null");
        }
        for (CMeta col : tab.getCols()) {
            colMeta = colsMeta.get(col.getName());
            if (colMeta == null) {
                throw new IllegalStateException("col:" + col.getName() + " can not find relevant 'col' on " + tab.getName() + ",exist Keys:[" + colsMeta.keySet().stream().collect(Collectors.joining(",")) + "]");
            }
            col.setPk(colMeta.isPk());
            col.setType(colMeta.getType());
            col.setComment(colMeta.getComment());
            col.setNullable(colMeta.isNullable());
        }
    }

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions