敬爱的社区小伙伴们,咱们很快乐地发表,Apache Doris 于 2023 年 2 月 15 日迎来 1.2.2 Release 版本的正式公布 !在新版本中,Apache Doris 团队修复了自 1.2.1 版本公布以来超过 200 个问题或性能改良项。同时,1.2.2 版本作为 1.2 LTS 的迭代版本, 具备更高的稳定性,倡议用户降级到这个版本。
GitHub 下载:https://github.com/apache/dor…
官网下载页:https://doris.apache.org/zh-C…
New Feature
数据湖剖析
- 反对主动同步 Hive Metastore 元数据信息。 默认状况下内部数据源的元数据变更,如创立或删除表、加减列等操作不会同步给 Doris,用户须要应用
REFRESH CATALOG
命令手动刷新元数据。在 1.2.2 版本中反对主动刷新 Hive Metastore 元数据信息,通过让 FE 节点定时读取 HMS 的 notification event 来感知 Hive 表元数据的变更状况。参考文档:https://doris.apache.org/docs/dev/lakehouse/multi-catalog/ - 反对读取 Iceberg Snapshot 以及查问 Snapshot 历史。 在执行 Iceberg 数据写入时,每一次写操作都会产生一个新的快照。默认状况下通过 Apache Doris 读取 Iceberg 表仅会读取最新版本的快照。在 1.2.2 版本中能够应用
FOR TIME AS OF
和FOR VERSION AS OF
语句,依据快照 ID 或者快照产生的工夫读取历史版本的数据,也能够应用 iceberg_meta 表函数查问指定表的快照信息。参考文档:https://doris.apache.org/docs/dev/lakehouse/multi-catalog/iceberg - JDBC Catalog 反对 PostgreSQL、Clickhouse、Oracle、SQLServer。
- JDBC Catalog 反对 insert into 操作。 在 Doris 中建设 JDBC Catalog 后,能够通过 insert into 语句间接写入数据,也能够将 Doris 执行完查问之后的后果写入 JDBC Catalog,或者是从一个 JDBC 表面将数据导入另一个 JDBC 表面。参考文档:https://doris.apache.org/docs/dev/lakehouse/multi-catalog/jdbc/
主动分桶推算
反对通过 DISTRIBUTED BY HASH(……) BUCKETS AUTO
语句设置主动分桶,零碎帮忙用户设定以及伸缩不同分区的分桶数,使分桶数放弃在一个绝对适合的范畴内。参考文档:https://mp.weixin.qq.com/s/DSyZGJtjQZUYUsvfK0IcCg
新增函数
减少归类剖析函数 width_bucket
。参考文档:https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-functions/width-bucket/#description
Behavior Changes
默认状况下禁用 BE 的 Page Cache
敞开此配置以优化内存应用并升高内存 OOM 的危险,但有可能减少一些小查问的查问提早。如果您对查问提早敏感,或者具备高并发小查问场景,能够配置 disable_storage_page_cache=false
以再次启用 Page Cache。
减少新 Session 变量 group_by_and_having_use_alias_first
用于管制 group by 和 having 语句是否优先应用列的别名,而非从 From 语句里寻找列的名字,默认为 false。
Improvement
Compaction 优化
- 反对 Vetical Compaction。在过来版本中,宽列场景 Compaction 往往会带来大量的内存开销。在 1.2.2 版本中,Vertical Compaction 采纳了按列组的形式进行数据合并,单次合并只须要加载局部列的数据,可能极大缩小合并过程中的内存占用。在理论测试中,Vertical compaction 应用内存仅为原有 compaction 算法的 1/10,同时 Compaction 速率晋升 15%。
- 反对 Segment Compaction。在过来版本中,当用户大数据量高频导入时可能会遇到 -238 以及 -235 问题,Segment Compaction 容许在导入数据的同时进行数据的合并,以无效管制 Segment 文件的数量,晋升高频导入的零碎稳定性。
参考文档:https://doris.apache.org/docs/dev/advanced/best-practice/compaction
数据湖剖析
- Hive Catalog 反对拜访 Hive 1/2/3 版本。参考文档:https://doris.apache.org/docs…
- Hive Catalog 能够应用 Broker 拜访数据存储在 JuiceFS 的 Hive。参考文档:https://doris.apache.org/docs…
- Iceberg Catalog 反对 Hive Metastore 和 Rest 作为元数据服务。参考文档:https://doris.apache.org/docs…
- ES Catalog 反对 元数据字段 _id 列映射。参考文档:https://doris.apache.org/zh-CN/docs/dev/lakehouse/multi-catalog/es
- 优化 Iceberg V2 表有大量删除行诗时的读取性能。
- 反对读取 Schema Evolution 后 Iceberg 表。
- Parquet Reader 正确处理列名大小写。
其余
- 反对拜访 Hadoop KMS 加密的 HDFS。
- 反对勾销正在执行的导出工作。参考文档:https://doris.apache.org/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/CANCEL-EXPORT
- 将
explode_split
函数执行效率优化 1 倍。 - 将 nullable 列的读取性能优化 3 倍。
- 优化 Memtracker 的局部问题,进步内存治理精度,优化内存利用。
BugFix
- 修复了应用 Doris-Flink-Connectore 导入数据时的内存透露问题;
- 修复了 BE 可能的线程调度问题,并缩小了 BE 线程耗尽导致的 Fragment_sent_timeout。
- 修复了 datetimev2/decivalv3 的局部正确性和精度问题。
- 修复了 Light Schema Change 性能的各种已知问题。
- 修复了 bitmap 类型 Runtime Filter 的各种数据正确性问题。
- 修复了 1.2.1 版本中引入的 CSV 读取性能差的问题。
- 修复了 Spark Load 数据下载阶段导致的 BE OOM 问题。
- 修复了从 1.1.x 版降级到 1.2.x 版时可能呈现的元数据兼容性问题。
- 修复了创立 JDBC Catalog 时的元数据问题。
- 修复了因为导入操作导致的 CPU 使用率高的问题。
- 修复了大量失败 Broker Load 作业导致的 FE OOM 问题。
- 修复了加载浮点类型时精度失落的问题。
- 修复了 Stream Load 应用两阶段提交时呈现的内存透露问题。
其余
增加指标以查看 BE 上的 Rowset 和 Segment 总数量 doris_be_all_rowset_nums
和 doris_be_all_segment_nums