[bug] StarRocks borker load意向之外的bug

意向之外,又清理之中

背景:

StarRocks各方面碾压相同类型的数据库,最近我们要从生成HIVE导历史数据(ORC格式)到StarRocks,前期小测一下,在测试是没问题,上生产先导2个月的数据,大概10T,但是在测试过程中,发现了一个问题。

sql 复制代码
LOAD LABEL test_db.label14
(
    DATA INFILE("hdfs://<hdfs_host>:<hdfs_port>/user/starrocks/data/input/example14.orc")
    INTO TABLE table14
    FORMAT AS "orc"
    (col1, col2, col3)
)
WITH BROKER
(
    "username" = "<hdfs_username>",
    "password" = "<hdfs_password>"
);

问题:

shell 复制代码
type:LOAD_RUN_FAIL; msg:Column: s_customer is not found in file: hdfs://xxx.xx.xx.x:9000/user/starrocks/data/input/example14.orc

很明显的问题,在源数据文件中没找到这个字段,想了想,历史数据以orc格式存在HDFS,orc列式存储,如果表结构修改,块里面的数据schema是不变化的,当StarRocks解析源文件块的时候,是找不到该字段的,自然要报错了;

而我们的业务对表结构是按需增加表字段,所以这个问题不可避免。

如何解决?

当用户有新增字段操作的时候,实际上我们维护了字段和表结构关系一张表,每增加一个或者多个字段都有相应的创建时间,那么我们用broker load导入数据的时候需要查一次数据库,这样的话关系就建立起来了,问题也解决了。

暂时没找到可以通过设置StarRocks参数来避免遇到的这个问题的。如果有请告诉我,谢谢。

相关推荐
鸿乃江边鸟4 天前
StarRocks 怎么让特定的SQL路由到FE master节点的
大数据·starrocks·sql
大鳥14 天前
深入了解 StarRocks 表类型:解锁高效数据分析的密码
数据库·starrocks·sql
京河小蚁1 个月前
StarRocks 生产部署一套集群,存储空间如何规划?
starrocks
一条路上的咸鱼1 个月前
StarRocks元数据无法合并
starrocks
Shyllin1 个月前
StarRocks 排查单副本表
starrocks
小强签名设计1 个月前
SQL语句整理五-StarRocks
数据库·starrocks·sql
m0_375599731 个月前
StarRocks:存算一体模式部署
starrocks
极客先躯1 个月前
rabbitMQ 架构详解
分布式·架构·rabbitmq·exchange·broker·queue·binding