StarRocks 易用性全面提升:数据导入可以如此简单

本文介绍了新一代分析型数据库 StarRocks 的易用性提升。从 V3.0 起,其在分区分桶、导入导出等方面操作简便。还涵盖了使用方法,如分区分桶用 date_trunc() 函数,数据导入用 INSERT from FILES 等,且有后续易用性提升计划。

作为新一代分析型数据库,StarRocks 一直因性能卓越、功能全面而深受广大用户喜爱。在追求功能和性能的同时,易用性方面,StarRocks 也在一直围绕一线运维人员的作业细节持续提升,尤其从 V3.0 起,社区投入大量开发资源全面提升易用性。从分区分桶、导入导出、全局字典、查询观测性等各方面的操作都已变得非常简便,易用性因此成为 StarRocks 的一大产品特色,并持续受到一线运维人员的关注和认可。

本文将简要介绍如何轻松使用 StarRocks,主要涵盖分区分桶、数据导入、数据转换以及表结构优化几个方面的内容:

- 分区分桶:直接使用 date_trunc() 函数来指定分区方式,同时无需再考虑分桶键和分桶数量;
- 数据导入:从 HDFS 或云存储上导入数据时,可以使用更简单、更符合普通 SQL 语法的 INSERT from FILES 来实现;
- 数据转换:通过支持通用的 SELECT 和 JOIN 操作的 INSERT from FILES,能够更轻松、更通用地进行所需的数据转换(Transform)。这使得在导入过程中能够便捷地完成复杂的数据清洗转换工作;
- 表结构优化:可以通过 ALTER TABLE 命令进行表结构的调整和数据重组,包括重新设置分桶方式和分桶数、排序键,从而灵活响应最新的业务场景和性能需求。

# 分区分桶 :简单设置便能得到预期查询性能

对于很多使用 StarRocks 的同学来说,分区分桶通常是遇到的第一个门槛,一些缺乏了解的同学可能会凭感觉设置(不区分大小表,甚至没有按照最普通的 1GB ~ 10GB 一个分桶的建议),或者直接采用别人的建表模板,因而难以得到理想的查询性能,还可能因为设置的分桶数量过多而导致元数据占用内存过多。

的确,分区分桶的设置是否合理,对最终的性能表现会有显著影响,而过去在设置分区分桶时,除了需要理解不同方式有什么作用和限制,还要根据数据量大小以及常用查询 pattern 去合理地设置分桶键以及分桶数量,才能达到预期的查询性能。从 V3.0 到 V3.2,社区在这方面做了不少优化,尽量让用户更容易设置、甚至不用再管它。

推荐的分区分桶方式一般是这样的:
```
CREATE TABLE user_behavior_declared (
    UserID int(11),
    ItemID int(11),
    CategoryID int(11),
    BehaviorType varchar(65533),
    Timestamp datetime
)
DUPLICATE KEY (CategoryID, UserId)
PARTITION BY date_trunc('day', Timestamp)
-- DISTRIBUTED BY RANDOM  -- 可以不再需要设置
```

一般情况下,建议直接使用 **date_trunc() 函数来指定分区方式**(也即[「时间函数表达式分区」](https://docs.starrocks.io/zh/docs/table_design/expression_partitioning/#%E6%97%B6%E9%97%B4%E5%87%BD%E6%95%B0%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%88%86%E5%8C%BA))。绝大多数场景,按天分区都是比较合适的分区方式,并且设置这种分区方式后,系统会根据数据中相应的时间字段**自动按需动态**创建分区,不再需要在建表中手动设置历史分区、也不需要设定复杂的动态分区规则来创建未来分区。

对于分桶,经过 V3.1 和 V3.2 2 个版本的优化,一般用户终于可以不用再管分桶了(包括分桶键和分桶数量)。默认情况下,系统会设置 [Random 分桶](https

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值