建议收藏|现在 Apache Doris 应该选择什么版本部署和升级?

文摘   2024-10-24 00:00   重庆  

又是好久不见的俩月,这段时间事情着实有点多,没太多时间来写文章,望各位看官老爷见谅~

今天我们就来聊几个话题:

1. Doris 应该哪个版本作为生产版本?

2. 哪个版本可测试存算分离?

3. 如何完成旧有环境的升级?

话不多说,走起!

引言

Apache Doris 作为当下最流行的 OLAP 数据库,一直保持着社区活跃、发版频繁、修复及时、丰富能力的特性,从正式孵化器毕业后,自2022年6月 Apache Doris 1.0 版本发布后,陆续发布了 1.1、1.2、2.0、2.1、3.0 这五个里程碑式大版本,截止2024年10月,三位数小版本累计发版已达41个。

在这两年零四个月的时间里,Apache Doris 在社区各方贡献者的努力下,已彻底完成了涅槃重生。

功能从最初的单一 OLAP 场景数据库,拓展至具备大宽表查询、关联查询、联邦查询、文本分词、湖仓一体、大批加速等能力,且已实现融合统一、实时分析、安全可靠等特性的国产化实时数据仓库。

性能从能找到的历史测试报告中对比可得,2.1 版本用一半的机器资源,跑十倍的数据测试集,与 1.0 查询速度持平,也就是意味着相较于 1.0,最新稳定版本性能已有了超 20 倍的提升

其中,跨越式性能飞跃是从 2.0 至 2.1 版本产生的,在各种测试对比中,不同业务场景基本有 5-10 倍的性能提升!

1.0测试报告出处:https://www.bookstack.cn/read/doris-1.0-zh/e5110f4a831ddfb2.md

2.1测试报告出处:https://doris.apache.org/zh-CN/docs/benchmark/ssb

由于发版已保持在一个月发布1-2个版本的速度,使当下很多看官老爷都还停留在 1.1、1.2、2.0 系列版本,一方面是由于企业内部的严格发版机制规约,不允许随便做升级,以免影响线上业务;另一方面是不确定哪一个版本是当下在生产上切实可打,稳定可靠的,担心原本稳定的系统反而变差了。

故此本篇文章,将从版本说明、升级路线、落地方案三方面帮助大家稳定、可靠的完成版本升级工作。

版本说明

推荐版本

生产版本:2.1.6(存算一体)【强烈建议升级至该版本!】

测试版本:2.1.6(存算一体)、3.0.2(存算分离和存算一体)

据当前可统计的信息所得,2.1.6存算一体版本已落地数百家企业生产环境中,运行一月有余未发现重要BUG,无论是稳定性还是性能都是一个非常可靠能打的版本,推荐上生产。

若非2.1.6版本的集群,强烈建议升级至2.1.6,提升性能的同时保证集群进一步的稳定性!

3.0 系列会并行存算一体和存算分离两种架构,若大家对存算分离感兴趣,可使用 3.0.2 版本进行部署安装

版本特性

所有特性在后续版本中,若无特殊说明,则表明均已包含前置版本特性。

版本主要新增特性STABLE
1.1.x1. 向量化引擎初步完成
2. 简易 MemTracker 内存管理器
3. ODBC Sink
1.2.x1. 全面向量化引擎
2. Unique MOW 数据更新模式
3. Multi Catalog 多源数据目录
4. Light Schema Change
5. JDBC 外部表
6. Java UDF
7. Remote UDF
8. Array/JSONB 数据类型
9. DateV2/DatetimeV2 新时间类型
10. 新 Memory Tracker 内存管理器
11. Table Valued Function 表函数
12. Auto Bucket
2.0.x1. 初步完善 CBO 优化器
2. 倒排索引
3. 高并发主键等值点查
4. Pipeline 并行执行模型
5. 初步 WorkLoad Group 支持
6. CCR 跨集群复制同步
7. K8S Operator
2.1.x1. 更完善的 CBO 优化器
2. ARM 深度适配
3. 多SQL方言兼容
4. ADBC 高速数据通道
5. 异步物化视图(多表物化视图)
6. 自增列
7. 自动分区
8. Group Commit 服务端攒批
9. MemTable 前移
10. Variant 可变数据类型
11. IP 数据类型
12. 更完善的 WorkLoad Group 资源隔离能力
13. TopSQL
14. 任务调度 Job Scheduler
15. Decimal256
16. Hive Catalog 回写能力
3.0.x1. 存算分离架构
2. Trino 框架兼容
3. Java UDTF
4. 生成列
5. 事务增强
6. 物化视图触发式更新
7. 物化视图透明改写

升级路线

version < 1.2.4.1

建议使用X2Doris工具进行跨集群数据迁移,以免有数据类型变更和语法变更导致的异常问题。

version >= 1.2.4.1

可通过 Doris Manager 管控工具进行平滑升级,即:

1.2.x —> 2.0.x —> 2.1.6(需要升级2次

version >= 2.0.0

可直升 2.1.6 版本

version >= 2.1.0

推荐升级至 2.1.6 版本

注意!不可跨大版本做升级动作!必须连续版本之间才能升级!

落地方案

Doris Manager 升级

推荐使用 Doris Manager 24.1.1 版本

Doris Manager 是 SelectDB 团队专门为 Doris 和 SelectDB 内核打造的管控平台,可在 SelectDB 官网免费下载使用,这里不做关于 Doris Manager 的安装部署说明。

Doris Manager 支持对集群进行版本升级,提供全量停服升级和在线滚动升级两种升级模式。您可以在集群详情页,点击右上角下拉菜单中的 集群升级 ,选择目标升级版本及升级模式进行集群的升级操作。

集群升级前巡检

注意 升级时备份数据为可选项,如果您的集群数据量大时备份耗时会比较久,期间服务不可用,如果您不勾选备份,升级不支持回滚。

当前,Doris Manager 支持升级 1.2.1 版本以上的 Apache Doris 及 SelectDB Doris 集群。对集群版本的升级有版本类型和版本号的相关限制,限制情况如下表所示:

当前版本目标版本
1.2.1~1.2.71.2.8
1.2.4~1.2.82.0.*
2.0.*2.1.*
2.1.*3.0.*(存算一体模式)

发起升级操作之后,可以在集群升级页面看到详细的升级流程和进展情况。首先会进行安装包的下载分发,分发完成后,即可开始正式的升级操作。

开始升级

全量停服升级支持回滚,全量停服升级之后,您可以检查升级完成的集群,如果发现异常可以进行回滚操作。

检查和回滚

在线滚动升级过程中可以先进行单台升级,单台升级完成后,再滚动升级所有节点。

暂停

同时在滚动升级所有节点过程中,也支持暂停升级,暂停升级仅停止等待升级的任务,当前正在运行中的任务将继续进行。

暂停升级

如果滚动升级过程中,发现异常,可以进行回滚操作,一旦发起回滚,则会回滚当前所有升级完成的节点。

img

回滚完成后,该次升级任务结束,如需继续升级,可以再次发起新的升级任务。

img

手动升级

升级说明

  1. 1. 在升级过程中,由于 Doris 的 RoutineLoad、Flink-Doris-Connector、Spark-Doris-Connector 都已在代码中实现了重试机制,所以在多 BE 节点的集群中,滚动升级不会导致任务失败。

  2. 2. StreamLoad 任务需要您在自己的代码中实现重试机制,否则会导致任务失败。

  3. 3. 集群副本修复和均衡功能在单次升级任务中务必要前置关闭和结束后打开,无论您集群节点是否全部升级完成。

升级流程概览

  1. 1. 元数据备份

  2. 2. 关闭集群副本修复和均衡功能

  3. 3. 兼容性测试

  4. 4. 升级 BE

  5. 5. 升级 FE

  6. 6. 打开集群副本修复和均衡功能

详情可移步至 Apache Doris 官网进行查阅,在此不做赘述。

X2Doris 集群迁移升级

X2Doris 用于将各种类型的数据迁移到 Apache Doris / SelectDB 的工具,集自动建表和数据迁移为一体,超高性能,简单易用,让数据迁移变得简单高效。

同时 X2Doris 也是可以直接免费下载使用的,可在 SelectDB 官网下载。

让数据迁移到 Doris 变得简单高效

使用X2Doris,可完成两个 Doris 集群间的数据迁移工作,需注意的是这里需要的资源除原有 Doris 集群和目标 Doris 集群外,还需要给X2Doris部署的资源,X2Doris可使用单机 Spark 模式同步,若想加速,可以配置 Spark 集群资源完成数据同步抽取的加速工作,具体使用操作可移步至官方操作文档查看。

注意事项

  1. 1. 切不可跨两位数大版本升级,比如从1.2直接到2.1,这种操作容易引起数据问题,难以回退

  2. 2. 推荐使用 Manager 完成集群的升级操作,手动升级有风险,需谨慎操作

  3. 3. 备份与否取决于数据的重要性,除非跨版本升级的操作外,升级一般非常靠谱的动作,如果用备份的话可能时间会比较长,为安全考虑可以消耗这个时间来做这个事情的

  4. 4. 在升级之前,最好是有测试集群并跑做SQL语法的验证,测试环境非常有必要,最好是正式集群升级前并跑一段时间(一周或者半个月),确保没问题再升级生产集群

小结

Apache Doris 现在 2.1.6 版本是非常耐打的一个版本,无论是性能,还是绝大部分的功能完善度上而言,都是一个可视为生产稳定可靠的版本,如对存算分离版本感兴趣,下载3.0.2部署以后,可加微信好友拉各位至3.0专项群中来专项看问题。

最后祝各位看官老爷可早日升级,享受 Doris 强大稳定的集群体验!

以上~


大数据技能圈
分享大数据前沿技术,实战代码,详细文档
 最新文章