版本通告|Apache Doris 1.2 Release 版本正式发布!

2022/12/08 15:24
阅读数 248


亲爱的社区小伙伴们,历时数月,我们很高兴地宣布,ApacheDoris于 2022年12月 日迎来了 1.2 Release 版本的正式发布!有近 120 位 Contributor 为 Apache Doris 提交了超过 2400 项优化和修复,感谢每一个让 Apache Doris 变得更好的你!

在 1.2 版本中,我们实现了全面向量化、实现多场景查询性能3-11 倍的提升,在 Unique Key 模型上实现了 Merge-on-Write 的数据更新模式、数据高频更新时查询性能提升达 3-6 倍,增加了 Multi-Catalog 多源数据目录、提供了无缝接入 Hive、ES、Hudi、Iceberg 等外部数据源的能力,引入了Light Schema Change 轻量表结构变更、实现毫秒级的 Schema Change 操作并且可以借助 Flink CDC 自动同步上游数据库的 DML 和 DDL 操作,以 JDBC 外部表替换了过去的 ODBC 外部表,支持了 Java UDF 和 Romote UDF 以及 Array 数组类型和 JSONB 类型,修复了诸多之前版本的性能和稳定性问题,欢迎大家下载使用!


 重 要 优 化

  全面向量化支持,性能大幅提升

在标准的 ssb-100-flat benchmark中,1.2 版本的性能比1.1 版本快 2 倍;在复杂的 TPCH 100 基准测试中,1.2 版本的性能比 1.1 版本快 3 倍。

  Merge-on-Write Unique Key

在原有的 Unique Key 数据模型上,支持了 Merge-on-Write 的数据更新模式。该模式在数据写入时即对需要删除或更新的数据进行标记,从而避免了在读取时对数据进行 Merge Read 的开销,极大地提高了可更新数据模型上的读取效率。

  Multi Catalog 多源数据目录

多源数据目录功能为Doris提供了快速接入外部数据源进行访问的能力。用户可以通过 CREATE CATALOG 命令连接到外部数据源。Doris 会自动映射外部数据源的库、表信息。之后,用户就可以像访问普通表一样,对这些外部数据源中的数据进行访问了。避免了之前用户需要对每张表手动建立外表映射的复杂操作。

目前该功能支持以下数据源:

  1. Hive Metastore:可以访问包括 Hive、Iceberg、Hudi 在内的数据表。也可对接兼容 Hive Metastore 的数据源,如阿里云的 DataLake Formation。同时支持 HDFS 和对象存储上的数据访问。

  2. Elasticsearch:访问 ES 数据源。

  3. JDBC:通过 JDBC 协议访问 MySQL等数据库。

相关文档:https://doris.apache.org/zh-CN/docs/dev/ecosystem/external-table/multi-catalog


  轻量表结构变更

在新版本中,对数据表的加减列操作,不再需要同步更改数据文件,仅需在 FE 中更新元数据即可,从而实现毫秒级的 Schema Change 操作。通过该功能,可以实现对上游 CDC 数据的 DDL 同步能力。如用户可以通过 Flink CDC,实现上游数据库到 Doris 的 DML 和 DDL 同步。

使用说明:通过建表的时候使用以下命令开启

"light_schema_change"="true" 

相关文档:https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE


  JDBC 外表

在新版本中,用户可以通过 JDBC 连接支持JDBC的外部数据源。当前已支持:

  • MySQL

  • PostgreSQL

  • Oracle

  • SQLServer

  • Clickhouse


注:ODBC 外表功能将在之后的某个版本移除,请尽量切换到 JDBC 外表功能。
相关文档:https://doris.apache.org/zh-CN/docs/dev/ecosystem/external-table/jdbc-of-doris/


  JAVA UDF

支持通过 Java 编写 UDF/UDAF,方便用户在 Java 生态中使用自定义函数。同时,通过堆外内存、Zero Copy 等技术,使得跨语言的数据访问效率大幅提升。

相关文档:https://doris.apache.org/zh-CN/docs/dev/ecosystem/udf/java-user-defined-function
示例:https://github.com/apache/doris/tree/master/samples/doris-demo


  Remote UDF

支持通过 RPC 的方式访问远程用户自定义函数服务,从而彻底消除用户编写 UDF 的语言限制。用户可以使用任意编程语言实现自定义函数,完成复杂的数据分析工作。

相关文档:https://doris.apache.org/zh-CN/docs/ecosystem/udf/remote-user-defined-function
示例:https://github.com/apache/doris/tree/master/samples/doris-demo


  更多数据类型支持

Array 类型

支持了数组类型,同时也支持多级嵌套的数组类型。在一些用户画像,标签等场景,可以利用 Array 类型更好地适配业务场景。同时在新版本中,我们也实现了大量数组相关的函数,以更好地支持该数据类型在实际场景中的应用。
相关文档: https://do ris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/ARRAY

相关函数:https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/array-functions/array


JSONB 类型

支持二进制的 JSON 数据类型 JSONB。该类型提供更紧凑的 JSONB 编码格式,同时提供在编码格式上的数据访问,相比于使用字符串存储的 JSON 数据,有数倍的性能提升。

相关文档: https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Types/JSONB
相关函数: https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/json-functions/jsonb_parse
DateV2

影响范围:

  1. 用户需要在建表时指定 datev2 和 datetimev2,原有表的 date 以及 datetime 不受影响。

  2. datev2 和 datetimev2 在与原来的 date 和 datetime 做计算时(例如等值连接),原有类型会被 cast 成新类型做计算

  3. example 在文档中有

相关文档: https://doris.apache.org/docs/dev/sql-manual/sql-reference/Data-Types/DATEV2

 其他变更 

   其他
  1. 全新的内存管理框架

    相关文档:https://github.com/apache/doris/blob/master/docs/zh-CN/docs/admin-manual/memory-management/memory-tracker.md

  2. Table Valued Function

    Doris 实现了一组 Table Valued Function(TVF),TVF 可以视作一张普通的表,可以出现在 SQL 中所有“表”可以出现的位置。

  3. 更便捷的分区创建方式

    支持通过 FROM TO 命令创建一个时间范围内的多个分区。

  4. 列重命名

    对于开启了 Light Schema Change 的表,支持对列进行重命名。

    文档:https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-RENAME

  5. 更丰富权限管理

    • 支持行级权限

      可以通过 CREATE ROW POLICY 命令创建行级权限。

      文档:https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-POLICY

    • 支持指定密码强度、过期时间等。

    • 支持在多次失败登录后锁定账户。

      文档:https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Account-Management-Statements/ALTER-USER

  6. 导入相关

    • CSV 导入支持带 header的 csv文件。

    • Stream Load 新增 hidden_columns,可以显式指定 delete flag 列和 sequence 列。

    • Spark Load 支持 Parquet 和 ORC 文件导入。

    • 支持清理已完成的导入的 Label

    • 支持通过状态批量取消导入作业

    • broker load 新增支持阿里云 oss,腾讯云 cos/chdfs 和华为云 obs。

    • 支持通过 hive-site.xml 文件配置访问 hdfs。

  7. 支持通过 SHOW CATALOG RECYCLE BIN 功能查看回收站中的内容。

    文档:https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Show-Statements/SHOW-CATALOG-RECYCLE-BIN

  8. 支持 SELECT * EXCEPT 语法。

    文档:https://doris.apache.org/zh-CN/docs/dev/data-table/basic-usage

  9. OUTFILE 支持 ORC 格式导出。并且支持多字节分隔符。

    文档:https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/OUTFILE

  10. 支持通过配置修改可保存的 Query Profile 的数量。

  11. DELETE 语句支持 IN 谓词条件。并且支持分区裁剪。

    文档:https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/DELETE

  12. 时间列的默认值支持使用 CURRENT_TIMESTAMP

    文档中搜索 "CURRENT_TIMESTAMP":https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE

  13. 添加两张系统表:backends,rowsets

    文档:
    https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/backends
    https://doris.apache.org/zh-CN/docs/dev/admin-manual/system-table/rowsets

  14. 备份恢复

    • Restore作业支持 reserve_replica 参数,使得恢复后的表的副本数和备份时一致。

    • Restore 作业支持 reserve_dynamic_partition_enable 参数,使得恢复后的表保持动态分区开启状态。

      文档:https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/RESTORE

    • 支持通过内置的 libhdfs 进行备份恢复操作,不再依赖 broker。

      文档:https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Backup-and-Restore/CREATE-REPOSITORY

  15. 支持同机多磁盘之间的数据均衡

    文档:
    https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-REBALANCE-DISK
    https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-CANCEL-REBALANCE-DISK

  16. Routine Load 支持订阅 Kerberos 认证的 Kafka 服务。

    文档中搜索 kerberos:https://doris.apache.org/zh-CN/docs/dev/data-operate/import/import-way/routine-load-manual

  17. New built-in-function

    新增以下内置函数:

    • cbrt

    • sequence_match/sequence_count

    • mask/mask_first_n/mask_last_n

    • elt

    • any/any_value

    • group_bitmap_xor

    • ntile

    • nvl

    • uuid

    • initcap

    • regexp_replace_one/regexp_extract_all

    • multi_search_all_positions/multi_match_any

    • domain/domain_without_www/protocol

    • running_difference

    • bitmap_hash64

    • murmur_hash3_64

    • to_monday

    • not_null_or_empty

    • window_funnel

    • group_bit_and/group_bit_or/group_bit_xor

    • outer combine

    以及所有 array 函数


 下 载 使 用  

   下载使用

http://doris.apache.org/zh-CN/downloads/downloads.html

   升级说明

您可以从Apache Doris 低发行版本直接升级到 1.2 Release 版本,升级过程请参考文档:https://doris.apache.org/docs/admin-manual/cluster-management/upgrade/

   更新日志及升级注意事项

详细 Release Note 请查看链接:
https://github.com/apache/doris/issues/14461

   意见反馈

如果您遇到任何使用上的问题,欢迎随时通过 GitHub Discussion 论坛或者 Dev 邮件组与我们取得联系。
GitHub 论坛:https://github.com/apache/doris/discussions
Dev 邮件组:dev@doris.apache.org‍信公众号:



 致 谢 

Apache Doris 1.2 Release 版本的发布离不开所有社区用户的支持,在此向所有参与版本设计、开发、测试、讨论的社区贡献者们表示感谢,他们分别是(首字母排序):


贡献者名单


@924060929

@a19920714liou

@adonis0147

@Aiden-Dong

@aiwenmo

@AshinGau

@b19mud

@BePPPower

@BiteTheDDDDt

@bridgeDream

@ByteYue

@caiconghui

@CalvinKirs

@cambyzju

@caoliang-web

@carlvinhust2012

@catpineapple

@ccoffline

@chenlinzhong

@chovy-3012

@coderjiang

@cxzl25

@dataalive

@dataroaring

@dependabot[bot]

@dinggege1024

@DongLiang-0

@Doris-Extras

@eldenmoon

@EmmyMiao87

@englefly

@FreeOnePlus

@Gabriel39

@gaodayue

@geniusjoe

@gj-zhang

@gnehil

@GoGoWen

@HappenLee

@hello-stephen

@Henry2SS

@hf200012

@huyuanfeng2018

@jacktengg

@jackwener

@jeffreys-cat

@Jibing-Li

@JNSimba

@Kikyou1997

@Lchangliang

@LemonLiTree

@lexoning

@liaoxin01

@lide-reed

@link3280

@liutang123

@liuyaolin

@LOVEGISER

@lsy3993

@luozenglin

@luzhijing

@madongz

@morningman

@morningman-cmy

@morrySnow

@mrhhsg

@Myasuka

@myfjdthink

@nextdreamblue

@pan3793

@pangzhili

@pengxiangyu

@platoneko

@qidaye

@qzsee

@SaintBacchus

@SeekingYang

@smallhibiscus

@sohardforaname

@song7788q

@spaces-X

@ssusieee

@stalary

@starocean999

@SWJTU-ZhangLei

@TaoZex

@timelxy

@Wahno

@wangbo

@wangshuo128

@wangyf0555

@weizhengte

@weizuo93

@wsjz

@wunan1210

@xhmz

@xiaokang

@xiaokangguo

@xinyiZzz

@xy720

@yangzhg

@Yankee24

@yeyudefeng

@yiguolei

@yinzhijian

@yixiutt

@yuanyuan8983

@zbtzbtzbt

@zenoyang

@zhangboya1

@zhangstar333

@zhannngchen

@ZHbamboo

@zhengshiJ

@zhenhb

@zhqu1148980644

@zuochunwei

@zy-kkk


   Apache Doris 开源社区链接参考

Apache Doris官方网站:
http://doris.apache.org

Apache Doris Github
https://github.com/apache/doris

Apache Doris 开发者邮件组:
dev@doris.apache.org


本文分享自微信公众号 - ApacheDoris(gh_80d448709a68)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部