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

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

ApacheDoris 2022-12-09
781


亲爱的社区小伙伴们,历时数月,我们很高兴地宣布,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://doris.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,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论