140亿数据导入数据出现重复,查询时be内存溢出宕机

【详述】
如题所示,我们有一批iot的数据,数据的格式比较简单,但数据量很大,有140多亿:
mysql> select * from stdv2_abas_old_data limit 10;
±-----±--------------±-------+
| name | times | values |
±-----±--------------±-------+
| 17#W | 1525331400000 | 547.42 |
| 17#W | 1525331400000 | 547.42 |
| 17#W | 1525332000000 | 547.42 |
| 17#W | 1525332000000 | 547.42 |
| 17#W | 1525332300000 | 547.42 |
| 17#W | 1525332300000 | 547.42 |
| 17#W | 1525332600000 | 547.42 |
| 17#W | 1525332600000 | 547.42 |
| 17#W | 1525333200000 | 547.42 |
| 17#W | 1525333200000 | 547.42 |
±-----±--------------±-------+
在导出后发现有2个问题:
1.数据导入重复,140亿数据导入,结果有170多亿
2.SQL查询一个大表,内存溢出,后端be挂掉了

【导入/导出方式】
broker load

LOAD LABEL label_tablename
(
    DATA INFILE("hdfs://hadoop_hdfs:8020/apps/hive/warehouse/dbname/tablename/*/*")
    INTO TABLE tablename
    COLUMNS TERMINATED BY "\\x01"
    (name, times,`values`)
)
WITH BROKER 'broker1'
(
    "username" = "hdfs",
    "password" = "hdfs"
)
PROPERTIES
(
    "timeout" = "99999"
);

【背景】做过哪些操作?

  • 问题1
    第一次导入1个小时左右导出失败,此时查询表数据为0;
    第二次导入成功,查询数据有很多重复。

  • 问题2
    基于此表的sql查询语句失败,即使查询limit1也是失败

select  name,
        DATE_FORMAT(dt,'%Y-%m') month,
        LAST_VALUE(`VALUES`) over(partition by name,DATE_FORMAT(dt,'%Y-%m') order by dt desc) last_value
from 
(
        select name,from_unixtime(times/1000) as dt,`VALUES` from tablename
) a limit 1

【业务影响】
暂时没有
【StarRocks版本】例如:1.19.0
【集群规模】例如:3fe(1 follower+2observer)+5be(fe与be混部)
【机器信息】CPU虚拟核/内存/网卡,例如:32C/128G/千兆
【附件】

大数据量下, 窗口函数需要全排序,占用大量内存, 这是一个已知问题, 正在优化, 这个当前版本还没解决

数据导入重复, 这个不符合预期. 你的意思是在hdfs里面, 是有140亿行吗? 然后导入到StarRocks里面, 变成了170亿行?

数据导入后, 没有执行查询前, 内存的使用量是多少?
还有就是,建议是分批导入, 当前一次导入大数据量, 当前的机制下吃内存比较多. 可以加我微信, 详细沟通下
(lxhhust350)

是的,数据量变大了

嗯, 其实也想过分批导入, 但是hdfs源只有1个分区。

能看到是哪些数据重复了吗?