IT资讯 Doris Weekly:支持事务性 insert 操作、ODBC 外表支持 SQLServer

daryl · 2021-08-06 15:00:11 · 热度: 67

Doris Weekly:支持事务性 insert 操作、ODBC 外表支持 SQLServer

观众朋友们:

下午好!

欢迎收看【 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 --

猜你喜欢:
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册