Broker Load 导入常见问题
1. Broker Load 是否支持再次执行已经执行成功、处于 FINISHED 状态的导入作业?
Broker Load 不支持再次执行已经执行成功、处于 FINISHED 状态的导入作业。而且,为了保证数据不丢不重,每个执行成功的导入作业的标签 (Label) 均不可复用。可以使用 SHOW LOAD 语句查看历史的导入记录,找到想要再次执行的导入作业,复制作业信息,并修改作业标签后,重新创建一个导入作业并执行。
2. 通过 Broker Load 导入 HDFS 数据时,为什么数据的导入日期字段会出现异常,比正确的日期时间多加了 8 小时?这种情况应该怎么处理?
StarRocks 表在建表时设置的 timezone
为中国时区,创建 Broker Load 导入作业时设置的 timezone
也是中国时区,而服务器设置的是 UTC 时区。因此,日期字段在导入时,比正确的日期时间多加了 8 小时。为避免该问题,需要在建表时去掉 timezone
参数。
3. 通过 Broker Load 导入 ORC 格式的数据时,发生 ErrorMsg: type:ETL_RUN_FAIL; msg:Cannot cast '<slot 6>' from VARCHAR to ARRAY<VARCHAR(30)>
错误应该如何处理?
源数据文件和 Starrocks 表两侧的列名不一致,执行 SET
子句的时候系统内部会有一个类型推断,但是在调用 cast 函数执行数据类型转换的时候失败了。解决办法是确保两侧的列名一致,这样就不需要 SET
子句,也就不会调用 cast 函数执行数据类型转换,导入就可以成功了。