热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DorisWeekly:优化CSV格式导入效率、支持RuntimeFilter功能

doris,weekly,优化,csv,格式,导入,效率,支持,runtime

观众朋友们:

下午好!

欢迎收看【 Doris 近日要闻】~本次为您带来的是 2021年07月15日 ~ 2021年07月18日 的双周总结。

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. 统计数据

共位24作者提交了56个 Commit 。感谢以下作者的贡献:

Mingyu Chen, stdpain, Zhengguo Yang, Xinyi Zou, HappenLee, EmmyMiao87, zhoukang, qiye, jiafeng.zhang, Pxl, xy720, wudi, pengxiangyu, huzk, harveyyue, flynn, caiconghui, Stephen-Robin, Lijia Liu, Kuncle, Henry2SS, GeoffreyStark, DinoZhang, Arthur.Zhang

最近2周,共修改新增代码行 18424 ,删除代码行 7124 

2. 主要进展

2.1 新增功能

  • https://github.com/apache/incubator-doris/pull/6117

    show tablet status 增加表创建时间、数据更新时间

  • https://github.com/apache/incubator-doris/pull/6107

    支持 Alibaba DataX doriswriter 插件

  • https://github.com/apache/incubator-doris/pull/6140

    增加 bit_length 函数支持

  • https://github.com/apache/incubator-doris/pull/6161

    支持通过 libhdfs3 直接访问并导入 hdfs 数据,不再需要 broker 进程。

  • https://github.com/apache/incubator-doris/pull/6159

    支持通过限制一个用户的最大查询示例数来限制用户查询量,或避免用户发送不合理的复杂查询。

  • https://github.com/apache/incubator-doris/pull/6023

    支持修复分区表的默认分桶数。

  • https://github.com/apache/incubator-doris/pull/6121

    支持 Runtime Filter 功能。

  • https://github.com/apache/incubator-doris/pull/6226

    支持通过代价模型计算的 Join Reorder 功能。

  • https://github.com/apache/incubator-doris/pull/6209

    新增 bdbje debug 模式,用于查看存储在 bdbje 中的元数据日志。

2.2 WIP

  • https://github.com/apache/incubator-doris/pull/5980

    支持数组类型简单的查询语法。

2.3 Bug修复

  • https://github.com/apache/incubator-doris/pull/6165

    修复 Flink-Doris-Connector 导入 null 值报错的问题。

  • https://github.com/apache/incubator-doris/pull/6172

    修复 bucket shuffle join 某些情况下产生错误查询计划的问题。

  • https://github.com/apache/incubator-doris/pull/6129

    修复通过动态分区功能创建历史分区时可能产生错误的问题,并支持了指定创建历史分区的个数。

  • https://github.com/apache/incubator-doris/pull/6190

    show dynamic partition table 语句直接转发到 master 执行,避免出现信息无法查看的问题。

  • https://github.com/apache/incubator-doris/pull/6109

    修复某些情况下,错误的创建了范围重叠的分区的问题。

  • https://github.com/apache/incubator-doris/pull/6096

    修复创建逻辑视图时,会错误的折叠非确定性常量表达式的问题。

  • https://github.com/apache/incubator-doris/pull/6184

    修复 show view for table 可能出现 Unresovled table reference 错误的问题。

  • https://github.com/apache/incubator-doris/pull/6215

    修复某些情况下,Routine Load 可能会卡住的问题。

  • https://github.com/apache/incubator-doris/pull/6213

    修复 Routine Load中使用 json 函数,无法匹配整个 json 数据的问题。

  • https://github.com/apache/incubator-doris/pull/6051

    修复 decimal 类型除零错误

  • https://github.com/apache/incubator-doris/pull/6250

    升级 okhttp 版本已修复在jdk13下使用 doris on es 功能可能导致 http 请求卡住的问题。

2.4 功能改进

  • https://github.com/apache/incubator-doris/pull/6149

    Spring 内嵌容器修改为 Jetty,修复307转发问题。

  • https://github.com/apache/incubator-doris/pull/6180

    优化 Bloom Filter 的过滤效率。

  • https://github.com/apache/incubator-doris/pull/6170

    优化 csv 格式导入的效率。

  • https://github.com/apache/incubator-doris/pull/5934

    Flink Doris Connector 支持设置数据写入到 Doris 的时间间隔。

  • https://github.com/apache/incubator-doris/pull/6092

    Routine Load 新增 errorRowsAfterResumed 来展示重启后作业处理的错误行数。

3. FAQ

Q:通过 DECOMMISSION 下线BE节点时,为什么总会有部分tablet残留?

A:

在下线过程中,通过 show backends 查看下线节点的 tabletNum ,会观察到 tabletNum 数量在减少,说明数据分片正在从这个节点迁移走。当数量减到0时,系统会自动删除这个节点。但某些情况下,tabletNum 下降到一定数值后就不变化。这通常可能有以下两种原因:

1. 这些 tablet 属于刚被删除的表、分区或物化视图。而刚被删除的对象会保留在回收站中。而下线逻辑不会处理这些分片。可以通过修改 FE 的配置参数 catalog_trash_expire_second 来修改对象在回收站中驻留的时间。当对象从回收站中被删除后,这些 tablet就会被处理了。

2. 这些 tablet 的迁移任务出现了问题。此时需要通过 show proc "/cluster_balance" 来查看具体任务的错误了。

对于处理版本,可以先通过 show proc "/statistic" 查看集群是否还有 unhealthy 的分片,如果为0,则可以直接通过 drop backend 语句删除这个 BE 。否则,还需要具体查看不健康分片的副本情况。

Q:priorty_network应该如何设置?

A:

priorty_network 是 FE、BE 都有的配置参数。这个参数主要用于帮助系统选择正确的网卡 IP 作为自己的 IP 。建议任何情况下,都显式的设置这个参数,以防止后续机器增加新网卡导致IP选择不正确的问题。

priorty_network 的值是 CIDR 格式表示的。分为两部分,第一部分是点分十进制的 IP 地址,第二部分是一个前缀长度。比如 10.168.1.0/8 会匹配所有 10.xx.xx.xx 的IP地址,而 10.168.1.0/16 会匹配所有 10.168.xx.xx 的 IP 地址。

之所以使用 CIDR 格式而不是直接指定一个具体 IP,是为了保证所有节点都可以使用统一的配置值。比如有两个节点:10.168.10.1 和 10.168.10.2,则我们可以使用 10.168.10.0/24 来作为 priorty_network 的值。

Q:FE的Master、Follower、Observer都是什么?

A:

首先明确一点,FE 只有两种角色:Follower 和 Observer。而 Master 只是一组 Follower 节点中选择出来的一个 FE。Master 可以看成是一种特殊的 Follower。所以当我们被问及一个集群有多少 FE,都是什么角色时,正确的回答当时应该是所有 FE 节点的个数,以及 Follower 角色的个数和 Observer 角色的个数。

所有 Follower 角色的 FE 节点会组成一个可选择组,类似 Poxas 一致性协议里的组概念。组内会选举出一个 Follower 作为 Master。当 Master 挂了,会自动选择新的 Follower 作为 Master。而 Observer 不会参与选举,因此 Observer 也不会称为 Master 。

一条元数据日志需要在多数 Follower 节点写入成功,才算成功。比如3个 FE ,2个写入成功才可以。这也是为什么 Follower 角色的个数需要是奇数的原因。

Observer 角色和这个单词的含义一样,仅仅作为观察者来同步已经成功写入的元数据日志,并且提供元数据读服务。他不会参与多数写的逻辑。

-- END --


推荐阅读
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • 本文详细介绍了PHP中与URL处理相关的三个函数:http_build_query、parse_str和查询字符串的解析。通过示例和语法说明,讲解了这些函数的使用方法和作用,帮助读者更好地理解和应用。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
author-avatar
敏儿儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有