暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

StarRocks 1.19 新版本特性介绍

StarRocks 2021-10-28
2256

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-cn/main/table_design/Data_model#主键模型



    [实验功能]StarRocks外表写入


    StarRocks 支持以外部表的形式接入其他数据源,当前支持的数据源类型有 MySQL、HDFS、ElasticSearch、Hive 以及 StarRocks。

    StarRocks 在1.19版本中支持了将数据通过外表的方式写入另一个 StarRocks 集群的表中,以解决用户的读写分离需求,提供更好的资源隔离。仅需三步用户即可完成外表的周期性写入。

    • 在目标集群上创建一张目标表

    • 在外表集群上创建一个 Schema 信息与目标表一致的外表

    • 在外表属性中指定目标集群和源表的信息 当前仅支持 StarRocks 外表的写入,其他外表将在未来支持。

    参考文档:https://docs.starrocks.com/zh-cn/main/using_starrocks/External_table#starrocks外部表



    其他优化


    • 优化了 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-cn/main/release_notes/release-1.19


    END

    StarRocks Sunmmit 2021 报名开启!快来扫码报名吧!


    【热门文章】
    1. StarRocks 源码开放——携手未来,星辰大海!
    2. 携程 x StarRocks:高效支持高并发查询,大幅降低人力和硬件成本
    3. 滴滴 x StarRocks:极速多维分析创造更大的业务价值
    4. 小红书 x StarRocks:实现数据服务平台统一化,简化数据链路,提升高并发极速查询能力
    5. 贝壳找房 x StarRocks:全新统一的极速OLAP平台实践
    6. 跨越速运 x StarRocks:统一查询引擎,强悍性能带来极速体验
    最后修改时间:2022-05-16 17:13:21
    文章转载自StarRocks,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论