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

快速了解 StarRocks v3.3.3

原创 严少安 2024-09-06
887

快速了解 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_jsonCAST(AS MAP) 以及 STRUCT AS JSON 时,默认转换失败不报错,返回为 NULL。您可以通过设置系统变量 sql_modeALLOW_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 最佳开源软件奖项。


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论