乐趣区

关于数据库:StarRocks-119-新版本特性介绍

StarRocks 近期公布了 1.19 版本,上面介绍一下新版本的外围性能:

Global Runtime Filter

关系型数据库中,表的关联查问是非常常见的操作。StarRocks 在 1.19 版本中实现了 Global Runtime Filter,通过动静过滤那些不会命中 join 的输出数据来大幅缩小数据的传输和计算,从而晋升 join 的执行性能。

在应用过程中,布局器会依据右表的数据量主动抉择是否构建 Global Runtime Filter,不须要用户进行额定的参数调整。上面以 TPCH 100G Query 17 为例,其中 lineitem 表数量是 600M,orders 表数量是 150M。运行并行度设置为 8。

# TPCH Query 17

select sum(l_extendedprice) / 7.0 as avg_yearly 
from lineitem, part 
where p_partkey = l_partkey 
    and p_brand = 'Brand#23'  
    and p_container = 'MED BOX'   
    and l_quantity < (select  0.2 * avg(l_quantity) from  lineitem  where l_partkey = p_partkey );

测试后果如下,通过开启 Global Runtime Filter,性能晋升了 6 倍。

BE 节点内的磁盘平衡

随着数据量逐步增大,当用户有加盘需要时,须要 StarRocks 主动进行数据平衡。StarRocks 在 1.19 版本中优化了磁盘平衡算法,在保证数据在各个 BE 之间平衡的根底上,新增了单个 BE 外部磁盘之间的 tablet 平衡,从而更好地利用新加的盘。

平衡步骤如下:

  1. 进行所有 BE 之间的磁盘平衡。
  2. 当集群达到平衡之后,进行每个 BE 外部磁盘之间的平衡。包含每个 BE 外部磁盘之间磁盘使用率的平衡和磁盘之间 tablet 散布的平衡。

[试验性能]Primary Key

为更好地反对实时 / 频繁更新性能,StarRocks 在 1.19 版本中新增了一种表的类型: 主键模型(Primary Key)。相较 Unique Key,该类型的表更好地解决了行级别的更新和删除操作,同时也极大地撑持了 MySQL 或其余数据库同步到 StarRocks 的场景。

原有的表类型整体上采纳了读时合并(Merge-On-Read)的策略,写入时解决简略高效,然而读取 (查问) 时须要在线合并多版本,重大影响了查问性能。Primary Key 应用内存索引打消了这一问题,取得读性能的晋升,其性能根本能够和 Duplicate Key 相近,是 Unique Key 的 3 -15 倍(取决于版本的数量)。测试数据成果如下:

另外,在 TPCH 测试中,有导入的查问相较没有导入的查问,性能降落仅在 10% 左右。

以后,Primary Key 反对 Stream Load、Broker Load 和 Routine Load。同时配合 Flink-connector 能够实现 MySQL 数据的秒级同步。

StarRocks-migrate-tools 能够依据 MySQL 和 StarRocks 的集群信息和表构造主动生成 source table 和 sink table 的建表语句。通过 Flink-cdc-connector 生产 MySQL 的 binlog,而后通过 Flink-connector-starrocks 写入 StarRocks。

参考文档:https://docs.starrocks.com/zh… 主键模型

[试验性能]StarRocks 表面写入

StarRocks 反对以内部表的模式接入其余数据源,以后反对的数据源类型有 MySQL、HDFS、ElasticSearch、Hive 以及 StarRocks。

StarRocks 在 1.19 版本中反对了将数据通过表面的形式写入另一个 StarRocks 集群的表中,以解决用户的读写拆散需要,提供更好的资源隔离。仅需三步用户即可实现表面的周期性写入。

  • 在指标集群上创立一张指标表
  • 在表面集群上创立一个 Schema 信息与指标表统一的表面
  • 在表面属性中指定指标集群和源表的信息 以后仅反对 StarRocks 表面的写入,其余表面将在将来反对。

参考文档:https://docs.starrocks.com/zh… 内部表

其余优化

  • 优化了 CPU Cache 的应用,从而晋升了 count distinct int/group by int 语句的性能
  • 优化了算法,从而晋升了 or 语句的性能
  • Export 反对局部列导出
  • 优化 show processlist,显示具体 SQL
  • SET_VAR 反对多个变量设置
  • StarRocks-DataX Writer 反对设置 interval flush

v1.19.0 残缺 Release Notes:https://docs.starrocks.com/zh…

退出移动版