StarRocks 目前有哪些不支持的场景?比较中立的说有哪一些缺点呢?
查看论坛目前StarRocks vs Clickhouse vs TiDB 等等,在clickhouse文档中有明确说自己不适用的场景,那么StarRocks 呢?
感谢您的提问, StarRocks 目前还有很多不足之处,涉及场景和问题我们也会进行总结和梳理,后期会不断的去完善,也感谢各位在使用过程中的批评和建议,我们一起携手只为给您带来更优的体验和创造更高的价值,共同努力使 StarRocks 成为全球领先的数据库产品!
目前的话 我们不适合做大规模的批处理,当前版本由于是全内存计算,所以面对大规模数据的复杂ETL容易内存不足,后续的版本正在优化当中。
建议推出类似clickhouse的窗口漏斗函数
收到,我们会根据需求不断进行完善,感谢您的支持与建议!
目前我们业务场景会涉及历史数据修数的问题,希望支持 insert overwrite语句,或者类似CK的分区卸载、装载,跨表分区移动等功能
目前不支持insert overwrite,可以用truncate+insert into代替
truncate和insert into支持partition操作
具体语法如下:
TRUNCATE TABLE tbl PARTITION(p1, p2);
INSERT INTO table_name
[ PARTITION (p1, ...) ]
[ WITH LABEL label]
[ (column [, ...]) ]
[ [ hint [, ...] ] ]
{ VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query }
详情操作可以参考官方文档
另外有原子替换的操作
比如
- 创建一张新表
create table2 like table1
-
使用stream load / broker load /insert into 等方式导入table2
-
然后table1与table2原子替换
ATER TABLE table1 SWAP WITH table2
同样可以用导入临时分区的方式进行替换
- 创建临时分区
ALTER TABLE tbl1 ADD TEMPORARY PARTITION tp1 VALUES LESS THAN(“2020-02-01”);
-
然后向临时分区导入数据
-
进行原子替换
ALTER TABLE tbl1 REPLACE PARTITION (p1) WITH TEMPORARY PARTITION (tp1);
这样可以导入数据后做一定的验证以后再替换
insert overwrite的需求我们也会记录下来,后续补充该功能
面对大规模数据的复杂ETL容易内存不足,这个新版本有解决吗
因为ETL操作需要落盘,所以短期内还没有进行解决容易内存不足的问题,但这方面的需求已经有所记录,是我们之后会进行研发的一个方向, 目前 StarRocks 只能做到简单的ETL。
现在发现时间精度不能支持毫秒呀,请问这个有计划优化吗?
嗯,目前是还不支持,当前请先使用 int 类型处理
目前看string是有长度限制的 ,最多只能支持65533, 请问大概什么时候能支持不限制长度的呀
还不确定,这块长字符串实现上会有些内存问题,还得后面设计设计
请问还支持每隔5分钟 这种的 统计吗? 目前没找到相关函数
decimal类型精度
(
DECIMAL(M[,D])
M的范围是[1,27], D的范围[1, 9], 另外,M必须要大于等于D的取值。默认的D取值为0
)
与mysql精度
(
M的范围是[1,65], D的范围[0, 30],另外,M必须要大于等于D的取值
)
不一致,为何会有如此差异呢?
这个和我们内部实现有关,StarRocks的decimal 性能更好, 我们的decimal v3实现是 0<M<=38, 0<=D<=M,您可以参考下文档
尽管如此,比如帆软通过mysql jdbc 读取表时,该字段精度不一致,会报转换异常
机器配置和适合处理的数据量有参考标准吗