观众朋友们:
晚上好!
欢迎收看【 Doris 近日要闻】~本次为您带来的是 2021年07月19日 ~ 2021年08月01日 的双周总结。
Doris 社区周报每期会包含 FAQ 环节。我们会在社区论坛、Github ISSUE、Dev邮件组以及微信用户群中挑选一些主要问题并在 FAQ 环节中进行解答。
Dev 邮件组:dev@doris.apache.org
Github Issue:https://github.com/apache/incubator-doris/issues
社区论坛地址:http://ai.baidu.com/forum/topic/list/209/0/167
▼
1. 统计数据
共20位作者提交了33个 Commit 。感谢以下作者的贡献:
jiafeng.zhang, weizuo93, HappenLee, xy720, stdpain, qiye, caiconghui, Xinyi Zou, Mingyu Chen, xinghuayu007, pengxiangyu, luozenglin, huangmengbin, Zhengguo Yang, Xiang Wei, Tobiasz Kędzierski, Henry2SS, GoGoWen, EmmyMiao87, DinoZhang
最近2周,共修改新增代码行 13525 ,删除代码行 1500 。
▼
2. 主要进展
2.1 新增功能
https://github.com/apache/incubator-doris/pull/6115
支持为AES_ENCRYPT和AES_DECRYPT函数创建自定义公钥。
https://github.com/apache/incubator-doris/pull/6233
支持在SQL查询规划阶段,利用BE的函数计算能力计算所有常量表达式。
https://github.com/apache/incubator-doris/pull/6223
ODBC外表支持SQLServer。
https://github.com/apache/incubator-doris/pull/6245
支持事务性insert操作。
https://github.com/apache/incubator-doris/pull/6214
支持通过show load profile查看broker load的导入执行profile。
https://github.com/apache/incubator-doris/pull/6230
Unique Key模型支持Update语法。
https://github.com/apache/incubator-doris/pull/6333
支持LDAP登陆验证。
2.2 Bug修复
https://github.com/apache/incubator-doris/pull/6266
修复Grouping Set和Order By同时使用可能产生的规划错误。
https://github.com/apache/incubator-doris/pull/6273
修复日期格式化函数的错误。
https://github.com/apache/incubator-doris/pull/6305
修复runtime filter在处理null值的错误问题。
https://github.com/apache/incubator-doris/pull/6284
修复Spark Load计算bool类型的hash值错误的问题。
https://github.com/apache/incubator-doris/pull/6317
修复memtable写入多个segment时可能导致BE进程宕机的问题。
2.3 功能改进
https://github.com/apache/incubator-doris/pull/6200
提升FE处理tablet汇报的性能。
https://github.com/apache/incubator-doris/pull/6099
BE端读取数据时,共享schema数据结构以提升效率。
https://github.com/apache/incubator-doris/pull/6253
优化lower和upper函数的执行效率。
https://github.com/apache/incubator-doris/pull/6274
优化Join算子的代价计算模型。
https://github.com/apache/incubator-doris/pull/6207
重构FE端元数据镜像文件的格式,以方便扩展。
https://github.com/apache/incubator-doris/pull/6293
优化zonemap的生成逻辑,避免生成过大的zonemap索引条目。
2.4 文档
https://github.com/apache/incubator-doris/pull/6231
创建demo文档库,丰富Apache Doris的使用示例说明。
▼
3. FAQ
Q:tablet writer write failed, tablet_id=27306172, txn_id=28573520, err=-235 or -215
A:
这个错误通常发生在数据导入操作中。新版错误码为 -235,老版本错误码可能是 -215。这个错误的含义是,对应tablet的数据版本超过了最大限制(默认500),后续写入将被拒绝。比如问题中这个错误,即表示 27306172 这个tablet的数据版本超过了限制。
这个错误通常是因为导入的频率过高,大于后台数据的compaction速度,导致版本堆积并最终超过了限制。此时,我们可以先通过show tablet 27306172 语句,然后执行结果中的 show proc 语句,查看tablet各个副本的情况。结果中的 versionCount即表示版本数量。如果发现某个副本的版本数量过多,则需要降低导入频率或停止导入,并观察版本数是否有下降。如果停止导入后,版本数依然没有下降,则需要去对应的BE节点查看be.INFO日志,搜索tablet id以及 compaction关键词,检查compaction是否正常运行。关于compaction调优相关,可以参阅:Doris 最佳实践-Compaction调优(3)
Q:tablet 110309738 has few replicas: 1, alive backends: [10003]
A:
这个错误可能发生在查询或者导入操作中。通常意味着对应tablet的副本出现了异常。
此时,可以先通过 show backends 命令检查BE节点是否有宕机,如 isAlive 字段为false,或者 LastStartTime 是最近的某个时间(表示最近重启过)。如果BE有宕机,则需要去BE对应的节点,查看be.out日志。如果BE是因为异常原因宕机,通常be.out中会打印异常堆栈,帮助排查问题。如果be.out中没有错误堆栈。则可以通过linux命令dmesg -T 检查是否是因为OOM导致进程被系统kill掉。
如果没有BE节点宕机,则需要通过show tablet 110309738 语句,然后执行结果中的 show proc 语句,查看tablet各个副本的情况,进一步排查。
Q:disk xxxxx on backend xxx exceed limit usage
A:
通常出现在导入、Alter等操作中。这个错误意味着对应BE的对应磁盘的使用量超过了阈值(默认95%)此时可以先通过 show backends 命令,其中MaxDiskUsedPct展示的是对应BE上,使用率最高的那块磁盘的使用率,如果超过95%,则会报这个错误。
此时需要前往对应BE节点,查看数据目录下的使用量情况。其中trash目录和snapshot目录可以手动清理以释放空间。如果是data目录占用较大,则需要考虑删除部分数据以释放空间了。具体可以参阅【磁盘空间管理】:http://doris.incubator.apache.org/master/zh-CN/administrator-guide/operation/disk-capacity.html
-- END --
【Doris Weekly & FAQ】2021.07.05~2021.07.18
活动回顾| Apache Doris 的过去、现在与未来 活动回顾| 基于 Iceberg 拓展 Doris 数据湖能力的实践
社区人物志|王博:每一位你,都是前进道路上的一团星光。
社区人物志|张家锋:一个人可能走得更快,但一群人会走得更远
欢迎扫码关注:
Apache Doris(incubating)官方公众号
相关链接:
Apache Doris官方网站:
http://doris.incubator.apache.org
Apache Doris Github:
https://github.com/apache/incubator-doris
Apache Doris 开发者邮件组:
dev@doris.apache.org
本文分享自微信公众号 - ApacheDoris(gh_80d448709a68)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。