快速了解 StarRocks v3.3.3

StarRocks
StarRocks 是新一代极速全场景 MPP (Massively Parallel Processing) 数据库。用户无需经过复杂的预处理,就可以用 StarRocks 来支持多种数据分析场景的极速分析。
StarRocks 兼容 MySQL 协议,支持标准 SQL 语法,易于对接使用,全系统无外部依赖,高可用,易于运维管理。StarRocks 还兼容多种主流 BI 产品,包括 Tableau、Power BI、FineBI 和 Smartbi 等。
StarRocks 支持存算一体架构 (每个 BE 节点将其数据存储在本地存储) 和存算分离架构 (所有数据存储在对象存储或 HDFS 中,每个 CN 仅在本地存储缓存)。您可以根据需要决定数据存储的位置。

StarRocks 主要特性:
- MPP 分布式执行框架
- 全面向量化执行引擎
- 存储计算分离
- CBO 优化器
- 可实时更新的列式存储引擎
- 智能的物化视图
- 数据湖分析
StarRocks v3.3
2023.04,StarRocks 3.0 发布,开启了从 OLAP 到 Lakehouse 演进的新篇章。
2024.06,StarRocks 3.3 发布。这发布标志着 Lakehouse 架构在数据分析领域迈向了一个新的高度。
作为下一代 Lakehouse 架构的代表,StarRocks 3.3 在稳定性、计算性能、缓存设计、物化视图、存储优化和 Lakehouse 生态系统等方面进行了全方位的优化和创新。

StarRocks v3.3.3
2024.09.05,StarRocks v3.3.3 发布,以下内容节选自发版说明。
注意
升级至 v3.3 后,请勿直接将集群降级至 v3.2.0、v3.2.1 或 v3.2.2,否则会导致元数据丢失。您必须降级到 v3.2.3 或更高版本以避免出现此问题。
行为变更
- 为了更好的适应向云上对象存储备份的场景,引入新的参数
object_storage_rename_file_request_timeout_ms。系统会优先使用该参数作为备份的超时时间。默认为 30 秒。 #49706 to_json、CAST(AS MAP)以及STRUCT AS JSON时,默认转换失败不报错,返回为NULL。您可以通过设置系统变量sql_mode为ALLOW_THROW_EXCEPTION来使查询允许报错。#50157
新增功能
- 支持设置用户级别变量。#48477
- 支持了 Delta Lake Catalog 的元数据缓存、元数据手动刷新以及周期性刷新策略。#46526 #49069
- 支持导入 Parquet 文件的 JSON 类型。#49385
- JDBC SQL Server Catalog 支持 LIMIT 查询。#48248
- 存算分离集群支持通过 INSERT INTO 执行部分列更新。#49336
功能优化
- 优化导入报错信息:
- 在导入内存超限时返回对应 BE 节点的 IP 以便于定位问题。#49335
- 导入 CSV 数据时,在目标表列长度不足时给出更加明确的信息提示。#49713
- 因 Kerberos 认证失败而导致的 Broker Load 报错,给出具体认证失败的节点信息。#46085
- 优化导入时的分区机制,降低初始阶段的内存占用。#47976
- 优化存算一体集群的内存占用问题。增加元数据内存占用限制,避免在 Tablet、Segment 文件过多时可能引发的问题。#49170
- 优化了
max(partition_column)的查询性能。#49391 - 如果分区列是生成列(即基于表中某个原生列计算所得),且查询的谓词过滤条件包含原生列,则可以使用分区裁剪优化查询性能。 #48692
- 对 Files()、PIPE 相关操作中的敏感信息进行脱敏。#47629
- 提供新的命令
show proc '/global_current_queries',用以查看在所有 FE 节点上运行的查询。而相对应的命令show proc '/current_queries'只能查看当前连接的 FE 节点上运行的查询。#49826
快速启动 SR v3.3.3
可以使用 Docker 部署 StarRocks 存算一体集群。
运行以下命令启动 SR。
podman run -p 9030:9030 -p 8030:8030 -p 8040:8040 -itd \
--name sr starrocks/allin1-ubuntu:3.3.3
连接到 SR。
podman exec -it sr \
mysql -P 9030 -h 127.0.0.1 -u root --prompt="StarRocks > "
查看 SR 版本。
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.0
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
StarRocks > select current_version();
+-------------------+
| current_version() |
+-------------------+
| 3.3.3-312ed45 |
+-------------------+
1 row in set (0.02 sec)
SR v3.3.3 功能验证
查看当前连接的 FE 节点上运行的查询
StarRocks > show proc '/current_queries'\G
*************************** 1. row ***************************
StartTime: 2024-09-06 07:45:10
feIp: 127.0.0.1
QueryId: f1e4e663-6c23-11ef-a4d5-121bd64674dd
ConnectionId: 11
Database:
User: root
ScanBytes: 0.000 B
ScanRows: 0 rows
MemoryUsage: 44.359 KB
DiskSpillSize: 0.000 B
CPUTime: 0.000 s
ExecTime: 2.687 s
Warehouse: default_warehouse
1 row in set (0.00 sec)
系统变量 sql_mode = 'ALLOW_THROW_EXCEPTION'
StarRocks > set sql_mode = '';
Query OK, 0 rows affected (0.00 sec)
StarRocks > select to_json(map{null:null});
+-------------------------+
| to_json(map{NULL:NULL}) |
+-------------------------+
| NULL |
+-------------------------+
1 row in set (0.01 sec)
StarRocks > set sql_mode = 'ALLOW_THROW_EXCEPTION';
Query OK, 0 rows affected (0.01 sec)
StarRocks > select to_json(map{null:null});
ERROR 1064 (HY000): key of Map should not be null
创建 MySQL 外部表
StarRocks 中的 MySQL 客户端通过 JDBC 的方式与 MySQL 中的表建立映射关系,StarRocks 的 MySQL 外部只保留了 JDBC 链接信息,并不维护任何的表数据。
创建外表。
CREATE EXTERNAL TABLE te (id int, name varchar(10))
ENGINE = mysql
PROPERTIES (
"host" = "localhost",
"port" = "3306",
"user" = "mytest",
"password" = "mytest",
"database" = "mytest",
"table" = "t"
);
查看数据。
StarRocks > select * from te;
+------+----------+
| id | name |
+------+----------+
| 1 | ShawnYan |
+------+----------+
1 row in set (0.02 sec)
需要注意:
MySQL 5.7 版本默认的认证方式为 mysql_native_password,如使用 MySQL 8.0 版本默认的认证方式 caching_sha2_password 来进行认证会导致连接报错。
StarRocks > select * from te;
ERROR 1064 (HY000): mysql real connect failed. Err: Plugin caching_sha2_password could not be loaded: /build/thirdparty/installed/lib/mariadb/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
创建用户时,需指定认证方式。
CREATE USER 'mytest' IDENTIFIED WITH mysql_native_password BY 'mytest';
StarRocks 中文社区
目前,StarRocks 是隶属于 Linux Foundtion 的开源项目,采用 Apache License v2.0 许可证。StarRocks 全球开源社区也正飞速成长。目前,StarRocks 的 GitHub star 数已达 8600+,吸引了超过 350 位贡献者和数十家国内外行业头部企业参与共建,用户社区也有过万人的规模。凭借其卓越的表现,StarRocks 荣获了全球著名科技媒体 InfoWorld 颁发的 2023 BOSSIE Award 最佳开源软件奖项。




