1024 程序员节快乐!值此大日子,StarRocks 社区来上道硬菜!StarRocks 近期发布了 2.4 版本,核心功能有:多表物化视图,无状态的 Compute Node(CN)以及 StarRocks Kubernetes (K8s) Operator,catalog 支持 Apache Hudi(以下简称 Hudi) 和 Apache Iceberg(以下简称 Iceberg),Impersonate,FQDN 支持等。
欢迎体验新版本功能,若喜欢我们的项目,大家可以在 GitHub 上 Star 一下✨ 体验地址:https://github.com/StarRocks/starrocks
以下是具体介绍,欢迎您升级使用、多多反馈!
—
StarRocks 是新一代极速全场景 MPP 数据库,致力于让用户无需经过复杂的预处理,就可以支持多种数据分析场景的极速分析。
在 2.4 版本中,StarRocks 补齐了不少功能:添加了 Hudi 和 Iceberg 的 catalog 支持,让您可以在不创建外表的情况下直接访问查询 Hudi 和 Iceberg 里的数据;专门为实时 OLAP 分析而生的主键索引模型(primary key model)也得到了补强,主键索引磁盘持久化(persistent primary key index)模式新增 VARCHAR 数据类型支持,和常驻内存模式支持数据类型达成一致;支持了多表物化视图,为您多表 JOIN 的查询进一步加速。
同时,StarRocks 也在这个版本中做了大胆的尝试:为了在数据湖查询峰谷的情况下节约资源,发布了无状态的计算节点(CN)和StarRocks K8s Operator,您可以在 K8s 集群里部署和管理无状态的 StarRocks CN 并实现 CN 的自动横向扩缩容;为了高并发等多表高负载查询场景下简化数据建模,发布了异步更新的多表物化视图。
为了进一步提升多表查询性能,用户经常需要在 StarRocks 上游或者内部做 JOIN 预计算并落盘,为数据管道(data pipeline)带来更多依赖(dependencies)的同时,中间表的维护也带来额外的调度运维压力。
在 2.4 版本中,StarRocks 支持了异步刷新的多表物化视图,在无需外部调度的情况下,StarRocks 内部基于 insert overwrite 语义自动维护异步物化视图表:由此摆脱提前打宽的数据建模方式,提升数据建模和查询的灵活性的同时,简化数据预处理管道(data preprocessing pipeline)的复杂性。
最有效的节约发生在系统闲置的时候:在即席查询(ad-hoc query)主导的场景下(例如数据湖分析),时常有计算资源被占用但是没有负载的情况发生,导致计算资源的浪费。这时候,我们需要一种可以随着负载一起快速弹性伸缩的架构。2.4 版本是 StarRocks 首次在无状态弹性伸缩上的尝试。
StarRocks 计算节点 (Compute Node)
在 2.4 版本,StarRocks 在 FE 、BE 基础上,提供了 Compute Node(CN)。CN 是一种支持基于 K8s 的可容器化部署的无状态计算服务,自身不维护数据,避免扩缩容过程中数据重分布的代价,实现无状态弹性伸缩。CN 在整个 SQL 生命周期当中承担了数据 shuffle 后的计算以及湖上数据的 Scan 等计算过程,高效支撑湖上查询负载。
StarRocks Operator
支持通过 INSERT OVERWRITE 语句批量写入并覆盖数据。
Outer Join 支持通过 `<`、`<=`、`>`、`>=`、`<>` 等比较操作符对多表进行非等值关联。
支持查询 CSV 格式 Apache Hive™ 表中的 ARRAY 列。
支持通过 DESC 语句查看外部数据的表结构。
支持通过 GRANT 或 REVOKE 语句授予或撤销用户特定角色或 IMPERSONATE 权限,并支持通过 EXECUTE AS 语句使用 IMPERSONATE 权限执行当前会话。
flink-connector-starrocks 支持主键模型 Partial Update。
主键模型支持持久化 VARCHAR 类型主键索引。
自 2.4.0 版本起,主键模型的主键索引磁盘持久化模式和常驻内存模式支持相同的数据类型。
优化外表查询性能。
支持查询 Parquet 格式文件时延迟物化,提升小范围过滤场景下的数据湖查询性能。
查询数据湖时,支持通过合并小型 I/O 以降低存储系统的访问延迟,进而提升外表查询性能。
优化窗口函数性能。
Cross Join 支持谓词下推,性能提升。
统计信息支持直方图,并进一步完善全量统计信息采集。
支持 Tablet 自适应多线程 Scan,降低 Scan 性能对同磁盘 Tablet 数量的依赖,从而可以简化对分桶数量的设定。
去除数据导入主键模型时的 final_merge 操作,主键模型大数据量单批次导入性能提升至两倍。
函数相关:
新增 array_contains_all 函数,用于判断特定数组是否为另一数组的子集。
新增 percentile_cont 函数,用于通过线性插值法计算百分位数。
count distinct 支持多个字段,可计算多字段组合去重后的结果数目。
窗口函数 max 和 min 支持滑动窗口。
优化函数 window_funnel 性能。
行为变更
默认开启 Page Cache,Cache Size 为系统内存大小的 20% 。
其他
现已正式支持资源隔离功能。
现已正式支持 JSON 数据类型及相关函数。
关于 StarRocks
面世两年多来,StarRocks 一直专注打造世界顶级的新一代极速全场景 MPP 数据库,帮助企业建立“极速统一”的数据分析新范式,助力企业全面数字化经营。
2021 年 9 月,StarRocks 源代码开放,在 GitHub 上的星数已超过 3400 个。StarRocks 的全球社区飞速成长,至今已有超百位贡献者,社群用户突破 7000 人,吸引几十家国内外行业头部企业参与共建。


StarRocks 技术内幕:
👇 阅读原文了解 StarRocks 产品详细信息




