- StarRocks
- 产品简介
- 快速开始
- 部署 StarRocks
- 表设计
- 导入数据
- 导出数据
- 查询数据湖
- 查询加速
- 管理手册
- 参考手册
- SQL参考
- 用户账户管理
- 集群管理
- ADD SQLBLACKLIST
- ADMIN CANCEL REPAIR TABLE
- ADMIN CHECK TABLET
- ADMIN REPAIR TABLE
- ADMIN SET CONFIG
- ADMIN SET REPLICA STATUS
- ADMIN SHOW CONFIG
- ADMIN SHOW REPLICA DISTRIBUTION
- ADMIN SHOW REPLICA STATUS
- ALTER RESOURCE GROUP
- ALTER STORAGE VOLUME
- ALTER SYSTEM
- CANCEL DECOMMISSION
- CREATE RESOURCE GROUP
- CREATE STORAGE VOLUME
- CREATE FILE
- DELETE SQLBLACKLIST
- DESC STORAGE VOLUME
- DROP FILE
- DROP RESOURCE GROUP
- DROP STORAGE VOLUME
- EXPLAIN
- INSTALL PLUGIN
- KILL
- SET
- SET DEFAULT STORAGE VOLUME
- SHOW BACKENDS
- SHOW BROKER
- SHOW COMPUTE NODES
- SHOW FILE
- SHOW FRONTENDS
- SHOW FULL COLUMNS
- SHOW INDEX
- SHOW PLUGINS
- SHOW PROC
- SHOW PROCESSLIST
- SHOW RESOURCE GROUP
- SHOW SQLBLACKLIST
- SHOW STORAGE VOLUMES
- SHOW TABLE STATUS
- SHOW VARIABLES
- UNINSTALL PLUGIN
- DDL
- ALTER DATABASE
- ALTER MATERIALIZED VIEW
- ALTER TABLE
- ALTER VIEW
- ALTER RESOURCE
- ANALYZE TABLE
- BACKUP
- CANCEL ALTER TABLE
- CANCEL BACKUP
- CANCEL RESTORE
- CREATE ANALYZE
- CREATE DATABASE
- CREATE EXTERNAL CATALOG
- CREATE FUNCTION
- CREATE INDEX
- CREATE MATERIALIZED VIEW
- CREATE REPOSITORY
- CREATE RESOURCE
- CREATE TABLE
- CREATE TABLE AS SELECT
- CREATE TABLE LIKE
- CREATE VIEW
- DROP ANALYZE
- DROP CATALOG
- DROP DATABASE
- DROP FUNCTION
- DROP INDEX
- DROP MATERIALIZED VIEW
- DROP REPOSITORY
- DROP RESOURCE
- DROP STATS
- DROP TABLE
- DROP VIEW
- HLL
- KILL ANALYZE
- RECOVER
- REFRESH EXTERNAL TABLE
- RESTORE
- SET CATALOG
- SHOW ANALYZE JOB
- SHOW ANALYZE STATUS
- SHOW FUNCTION
- SHOW META
- SHOW RESOURCES
- TRUNCATE TABLE
- USE
- DML
- ALTER LOAD
- ALTER ROUTINE LOAD
- BROKER LOAD
- CANCEL LOAD
- CANCEL REFRESH MATERIALIZED VIEW
- CANCEL EXPORT
- CREATE ROUTINE LOAD
- DELETE
- DROP TASK
- EXPORT
- GROUP BY
- INSERT
- PAUSE ROUTINE LOAD
- REFRESH MATERIALIZED VIEW
- RESUME ROUTINE LOAD
- SELECT
- SHOW ALTER TABLE
- SHOW ALTER MATERIALIZED VIEW
- SHOW BACKUP
- SHOW CATALOGS
- SHOW CREATE CATALOG
- SHOW CREATE DATABASE
- SHOW CREATE MATERIALIZED VIEW
- SHOW CREATE TABLE
- SHOW CREATE VIEW
- SHOW DATA
- SHOW DATABASES
- SHOW DELETE
- SHOW DYNAMIC PARTITION TABLES
- SHOW EXPORT
- SHOW LOAD
- SHOW MATERIALIZED VIEWS
- SHOW PARTITIONS
- SHOW PROPERTY
- SHOW REPOSITORIES
- SHOW RESTORE
- SHOW ROUTINE LOAD
- SHOW ROUTINE LOAD TASK
- SHOW SNAPSHOT
- SHOW TABLES
- SHOW TABLET
- SHOW TRANSACTION
- SPARK LOAD
- STOP ROUTINE LOAD
- STREAM LOAD
- SUBMIT TASK
- UPDATE
- 辅助命令
- 数据类型
- 关键字
- 函数参考
- 函数列表
- Java UDF
- 窗口函数
- Lambda 表达式
- 日期函数
- add_months
- adddate
- convert_tz
- current_date
- current_time
- current_timestamp
- date
- date_add
- date_diff
- date_format
- date_slice
- date_sub, subdate
- date_trunc
- datediff
- day
- dayname
- dayofmonth
- dayofweek
- dayofyear
- days_add
- days_diff
- days_sub
- from_days
- from_unixtime
- hour
- hours_add
- hours_diff
- hours_sub
- makedate
- last_day
- microseconds_add
- microseconds_sub
- minute
- minutes_add
- minutes_diff
- minutes_sub
- month
- monthname
- months_add
- months_diff
- months_sub
- next_day
- now
- previous_day
- quarter
- second
- seconds_add
- seconds_diff
- seconds_sub
- str_to_date
- str2date
- time_slice
- time_to_sec
- timediff
- timestamp
- timestampadd
- timestampdiff
- to_days
- to_date
- unix_timestamp
- utc_timestamp
- week
- weekofyear
- weeks_add
- weeks_diff
- weeks_sub
- year
- years_add
- years_diff
- years_sub
- 字符串函数
- append_trailing_char_if_absent
- ascii
- char
- char_length
- character_length
- concat
- concat_ws
- ends_with
- find_in_set
- group_concat
- hex_decode_binary
- hex_decode_string
- hex
- instr
- lcase
- left
- length
- locate
- lower
- lpad
- ltrim
- money_format
- null_or_empty
- parse_url
- repeat
- replace
- reverse
- right
- rpad
- rtrim
- space
- split
- split_part
- starts_with
- str_to_map
- strleft
- strright
- substring
- trim
- ucase
- unhex
- upper
- 聚合函数
- any_value
- approx_count_distinct
- array_agg
- avg
- bitmap
- bitmap_agg
- count
- corr
- covar_pop
- covar_samp
- group_concat
- grouping
- grouping_id
- hll_empty
- hll_hash
- hll_raw_agg
- hll_union
- hll_union_agg
- max
- max_by
- min
- min_by
- multi_distinct_count
- multi_distinct_sum
- percentile_approx
- percentile_cont
- percentile_disc
- retention
- sum
- std
- stddev
- stddev_samp
- variance, variance_pop, var_pop
- var_samp
- window_funnel
- Array 函数
- all_match
- any_match
- array_agg
- array_append
- array_avg
- array_concat
- array_contains
- array_contains_all
- array_cum_sum
- array_difference
- array_distinct
- array_filter
- array_generate
- array_intersect
- array_join
- array_length
- array_map
- array_max
- array_min
- arrays_overlap
- array_position
- array_remove
- array_slice
- array_sort
- array_sortby
- array_sum
- array_to_bitmap
- cardinality
- element_at
- reverse
- unnest
- Bitmap 函数
- bitmap_agg
- bitmap_and
- bitmap_andnot
- bitmap_contains
- bitmap_count
- bitmap_empty
- bitmap_from_string
- bitmap_hash
- bitmap_has_any
- bitmap_intersect
- bitmap_max
- bitmap_min
- bitmap_or
- bitmap_remove
- bitmap_subset_in_range
- bitmap_subset_limit
- bitmap_to_array
- bitmap_to_base64
- base64_to_bitmap
- bitmap_to_string
- bitmap_union
- bitmap_union_count
- bitmap_union_int
- bitmap_xor
- intersect_count
- sub_bitmap
- to_bitmap
- JSON 函数
- Map 函数
- Struct 函数
- 表函数
- Bit 函数
- Binary 函数
- 加密函数
- 模糊/正则匹配函数
- 条件函数
- 百分位函数
- 标量函数
- 工具函数
- 地理位置函数
- cast 函数
- hash 函数
- 数学函数
- AUTO_INCREMENT
- 生成列
- 系统变量
- 用户自定义变量
- 错误码
- 系统限制
- AWS IAM 策略
- SQL参考
- 常见问题解答
- 性能测试
编辑
StarRocks version 3.0
3.0.6
发布日期:2023 年 9 月 12 日
新增特性
- 聚合函数 group_concat 支持使用 DISTINCT 关键词和 ORDER BY 子句。#28778
- 分区中数据可以随着时间推移自动进行降冷操作。#29335 #29393
功能优化
- 对所有复合谓词以及 WHERE 子句中的表达式支持隐式转换,可通过会话变量
enable_strict_type
控制是否打开隐式转换(默认取值为false
)。#21870 - 统一 FE 和 BE 中 STRING 转换成 INT 的处理逻辑。#29969
问题修复
修复了如下问题:
- 如果
enable_orc_late_materialization
设置为true
,使用 Hive Catalog 查询 ORC 文件中 STRUCT 类型的数据时结果异常。#27971 - Hive Catalog 查询时,如果 WHERE 子句中使用分区列且包含 OR 条件,查询结果不正确。 #28876
- RESTful API
show_data
对于云原生表的返回信息不正确。#29473 - 如果集群为存算分离架构,数据存储在 Azure Blob Storage 上,并且已经建表,则回滚到 3.0 时 FE 无法启动。 #29433
- 向用户赋予 Iceberg Catalog 下某表权限后,该用户查询该表时显示没有权限。#29173
- BITMAP 和 HLL 类型的列在 SHOW FULL COLUMNS 查询结果中返回的
Default
字段值不正确。#29510 - 在线修改 FE 动态参数
max_broker_load_job_concurrency
不生效。#29964 #29720 - Refresh 物化视图,同时并发地修改物化视图的刷新策略,有概率会导致 FE 无法启动。#29691
- 执行
select count(distinct(int+double)) from table_name
会报错unknown error
。 #30054 - 主键模型表 Restore 之后,BE 重启后元数据发生错误,导致元数据不一致。#30135
3.0.5
发布日期:2023 年 8 月 16 日
新增特性
- 支持聚合函数 COVAR_SAMP、COVAR_POP、CORR。
- 支持窗口函数 COVAR_SAMP、COVAR_POP、CORR、VARIANCE、VAR_SAMP、STD、STDDEV_SAMP。
功能优化
- 在报错信息
xxx too many versions xxx
中增加了如何处理的建议说明。#28397 - 动态分区新增支持分区粒度为年。#28386
- INSERT OVERWRITE 中使用表达式分区时,分区字段大小写不敏感。#28309
问题修复
修复了如下问题:
- FE 中表级别 scan 统计信息错误,导致表查询和导入的 metrics 信息不正确。 #27779
- 分区表中修改 sort key 列后查询结果不稳定。#27850
- Restore 后同一个 tablet 在 BE 和 FE 上的 version 不一致。#26518
- 建 Colocation 表时如果不指定 buckets 数量,则 bucket 数量自动推断为 0,后续添加分区会失败。#27086
- 当 INSERT INTO SELECT 的 SELECT 结果集为空时,SHOW LOAD 显示导入任务状态为
CANCELED
。#26913 - 当 sub_bitmap 函数的输入值不是 BITMAP 类型时,会导致 BE crash。#27982
- 更新 AUTO_INCREMENT 列时会导致 BE crash。#27199
- 物化视图 Outer join 和 Anti join 改写错误。 #28028
- 主键模型部分列更新时平均 row size 预估不准导致内存占用过多。 #27485
- 激活失效物化视图时可能导致 FE crash。#27959
- 查询无法改写至基于 Hudi Catalog 外部表创建的物化视图。#28023
- 删除 Hive 表后,即使手动更新元数据缓存,仍然可以查询到 Hive 表数据。#28223
- 当异步物化视图的刷新策略为手动刷新且同步调用刷新任务(SYNC MODE)时,手动刷新后
information_schema.task_runs
表中有多条 INSERT OVERWRITE 的记录。#28060 - LabelCleaner 线程卡死导致 FE 内存泄漏。 #28311 #28636
3.0.4
发布日期:2023 年 7 月 18 日
新增特性
- 查询和物化视图的 Join 类型不同时,也支持对查询进行改写。#25099
功能优化
- 优化异步物化视图的手动刷新策略。支持通过 REFRESH MATERIALIZED VIEW WITH SYNC MODE 同步调用物化视图刷新任务。#25904
- 如果查询的字段不包含在物化视图的 output 列但是包含在其谓词条件中,仍可使用该物化视图进行查询改写。#23028
- 切换至 Trino 语法
set sql_dialect = 'trino';
,查询时表别名大小写不敏感。#26094 #25282 Information_schema.tables_config
表中增加了table_id
字段。您可以基于table_id
字段关联数据库Information_schema
中的表tables_config
和be_tablets
,来查询 tablet 所属数据库和表名称。#24061
问题修复
修复了如下问题:
- sum 聚合函数的查询改写至单表物化视图时,会因为类型推导问题导致 sum 的查询结果出错。#25512
- 存算分离模式下,使用 SHOW PROC 查看 tablet 信息时报错。
- 插入数据长度超出 STRUCT 定义的 CHAR 长度时,插入无响应。 #25942
- 当 INSERT INTO SELECT 存在 FULL JOIN 时,返回结果有遗漏。#26603
- 使用 ALTER TABLE 命令修改表的
default.storage_medium
属性时报错ERROR xxx: Unknown table property xxx
。#25870 - Broker Load 导入空文件时报错。#26212
- BE 下线偶尔会卡住。#26509
3.0.3
发布日期:2023 年 6 月 28 日
功能优化
- StarRocks 外表元数据的同步改为数据加载时进行。 #24739
- 对于使用表达式分区的表,INSERT OVERWRITE 支持指定分区。 #25005
- 优化了非分区表增加分区时的报错信息。 #25266
问题修复
修复了如下问题:
- Parquet 文件中如果包括复杂类型,最大最小过滤时会获取列错误。 #23976
- 库或者表已经被 Drop,但是写入任务仍然在队列中。 #24801
- FE 重启时会小概率导致 BE crash。 #25037
- "enable_profile = true" 时导入和查询偶尔会卡住。 #25060
- 集群不满足 3 个 Alive BE 时,INSERT OVERWRITE 报错信息不准确。 #25314
3.0.2
发布日期:2023 年 6 月 13 日
功能优化
- Union 查询在被物化视图改写后,谓词也可以下推。 #23312
- 优化表的自动分桶策略。 #24543
- 解除 NetworkTime 对系统时钟的依赖,以解决系统时钟误差导致 Exchange 网络耗时估算异常的问题。 #24858
问题修复
修复了如下问题:
- Schema change 和数据导入同时进行时 Schema change 偶尔会卡住。 #23456
pipeline_profile_level = 0
时查询出错。 #23873cloud_native_storage_type
配置为 S3 时建表报错。- LDAP 账号没有密码也能登录。 #24862
- CANCEL LOAD 在表不存在时会失败。 #24922
升级注意事项
- 如果您系统中有名为
starrocks
的数据库,请先通过 ALTER DATABASE RENAME 改名后再进行升级。
3.0.1
发布日期:2023 年 6 月 1 日
新增特性
- [公测中] 支持大查询算子落盘 (Spill to disk),通过将中间结果落盘来降低大查询的内存消耗。
- Routine Load 支持导入 Avro 格式的数据。
- 支持 Microsoft Azure Storage (包括 Azure Blob Storage 和 Azure Data Lake Storage)。
功能优化
- 存算分离集群 (shared-data) 支持通过 StarRocks 外表来同步其他 StarRocks 集群的数据。
- Information Schema 增加
load_tracking_logs
来记录最近的导入错误信息。 - 忽略建表语句中的中文空格。#23885
问题修复
修复了如下问题:
- SHOW CREATE TABLE 返回的主键模型表建表信息错误。#24237
- Routine Load 过程中 BE crash。#20677
- 创建分区表时指定不支持的 Properties 导致 NPE。#21374
- SHOW TABLE STATUS 结果展示不全。#24279
升级注意事项
- 如果您系统中有名为
starrocks
的数据库,请先通过 ALTER DATABASE RENAME 改名后再进行升级。
3.0.0
发布日期:2023 年 4 月 28 日
新增特性
系统架构
- 支持存算分离架构。可以在 FE 配置文件中开启,开启后数据会持久化到远程对象存储/HDFS 中,本地盘作为缓存使用,可以更灵活的增删节点,支持表级别的缓存生命周期管理。在本地缓存命中的情况下性能可以对齐非存算分离版本。更多信息,参见部署使用 StarRocks 存算分离集群。
存储和导入
- 支持自增列属性 AUTO_INCREMENT,提供表内全局唯一 ID,简化数据管理。
- 支持导入时自动创建分区和使用分区表达式定义分区规则,提高了分区创建的易用性和灵活性。
- Primary Key 模型表支持更丰富的 UPDATE 和 DELETE 语法,包括使用 CTE 和对多表的引用。
- Broker Load 和 INSERT INTO 增加 Load Profile,支持通过 profile 查看并分析导入作业详情。使用方法与 查看分析Query Profile 相同。
数据湖分析
- [Preview] 支持 Presto/Trino 兼容模式,可以自动改写 Presto/Trino 的 SQL。参见系统变量 中的
sql_dialect
。 - [Preview] 支持 JDBC Catalog。
- 支持使用 SET CATALOG 命令来手动选择 Catalog。
权限与安全
查询
- 支持 Global UDF。
- 动态自适应并行度,可以根据查询并发度自适应调节
pipeline_dop
。
SQL 语句和函数
- 新增如下权限相关 SQL 语句:SET DEFAULT ROLE、SET ROLE、SHOW ROLES、SHOW USERS。
- 新增半结构化数据分析相关函数:map_from_arrays、map_apply。
- array_agg 支持 ORDER BY。
- 窗口函数 lead、lag 支持 IGNORE NULLS。
- 新增 BINARY/VARBINARY 数据类型,新增 to_binary,from_binary 函数。
- 新增字符串函数 replace、hex_decode_binary、hex_decode_string。
- 新增加密函数 base64_decode_binary、base64_decode_string。
- 新增数学函数 sinh、cosh、tanh。
- 新增工具函数 current_role。
功能优化
部署
存储与导入
- 数据导入提供了更丰富的 CSV 格式参数,包括
skip_header
、trim_space
、enclose
和escape
。参见 STREAM LOAD、BROKER LOAD 和 ROUTINE LOAD。 - Primary Key 模型表解耦了主键和排序键,支持通过
ORDER BY
单独指定排序键。 - 优化 Primary Key 模型表在大数据导入、部分列更新、以及开启持久化索引等场景的内存占用。 #12068 #14187 #15729
- 提供异步 ETL 命令接口,支持创建异步 INSERT 任务。更多信息,参考INSERT 和 SUBMIT TASK。 (#20609)
物化视图
- 优化 物化视图 的改写能力:
- 支持 view delta join, 可以改写。
- 支持对 Outer Join 和 Cross Join 的改写。
- 优化带分区时 UNION 的 SQL rewrite。
- 完善物化视图的构建能力:支持 CTE、SELECT * 、UNION。
- 优化 SHOW MATERIALIZED VIEWS 命令的返回信息。
- 提升物化视图构建时的分区创建效率。(#21167)
查询
- 完善算子对 Pipeline 的支持,所有算子都支持 Pipeline。
- 完善大查询定位。SHOW PROCESSLIST 支持查看 CPU 内存信息,增加大查询日志。
- 优化 Outer Join Reorder 能力。
- 优化 SQL 解析阶段的报错信息,查询的报错位置更明确,信息更清晰。
数据湖分析