Doris Weekly:支持通过 alter table 命令修改列注释和表注释

Doris Weekly:支持通过 alter table 命令修改列注释和表注释

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

Doris 社区周报每期会包含 FAQ 环节。我们会在社区论坛、Github ISSUE、Dev邮件组以及微信用户群中挑选一些主要问题并在 FAQ 环节中进行解答。

  • Dev 邮件组:dev@doris.apache.org

  • Github Issue:https://github.com/apache/incubator-doris/issues

  • 社区论坛地址:https://github.com/apache/incubator-doris/discussions

1. 统计数据

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

Zhengguo Yang, Mingyu Chen, wunan1210, weizuo93, jiafeng.zhang, caiconghui, Xiang Wei, Hao Tan, 月眸, xy720, stdpain, luozenglin, huzk, caoliang-web, Xinyi Zou, Pxl, PKU-zhoubintao, EmmyMiao87, CenterCode

最近2周,共修改新增代码行 23359 ,删除代码行 1495 

2. 主要进展

2.1 新增功能

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

    Spark-Doris-Connector 支持数据写入Doris。

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

    支持String列类型,长度范围1-2GB。

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

    支持percentile()精确百分位函数。

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

    支持表名大小写不敏感的集群初始化配置。

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

    支持会话变量控制单个查询的CPU资源消耗。

2.2 WIP

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

    CBO优化器支持统计信息收集接口。

2.3 Bug修复

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

    修复查询结果导出功能错误重试的问题。

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

    修复Spark Load处理多个rollup视图时可能出现的数据错误问题。

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

    修复FE元数据image文件某些情况下生成失败的问题。

2.4 功能改进

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

    优化部分情况下,Spark Load的BE内存占用。

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

    优化BE端内存限制。

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

    优化部分列类型转换成string类型的速度。

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

    支持过滤条件利用Unique Key表中Value列上的索引。

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

    优化多个Alter Job同时运行的执行效率。

2.5 文档

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

    增加新的帮助文档目录。

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

    增加Spark-Doris-Connector代码示例

3. FAQ

Q:show backends/frontends 查看到的信息不完整

A:

在执行如 show backends/frontends 等某些语句后,结果中可能会发现有部分列内容不全。比如show backends结果中看不到磁盘容量信息等。

通常这个问题会出现在集群有多个FE的情况下,如果用户连接到非Master FE节点执行这些语句,就会看到不完整的信息。这是因为,部分信息仅存在于Master FE节点。比如BE的磁盘使用量信息等。所以只有在直连Master FE后,才能获得完整信息。

当然,用户也可以在执行这些语句前,先执行 set forward_to_master=true; 这个会话变量设置为true后,后续执行的一些信息查看类语句会自动转发到Master FE获取结果。这样,不论用户连接的是哪个FE,都可以获取到完整结果了。

Q:通过Java程序调用stream load导入数据,在一批次数据量较大时,可能会报错Broken Pipe

A:

除了Broken Pipe外,还可能出现一些其他的奇怪的错误。

这个情况通常出现在开启httpv2后。因为httpv2是使用spring boot实现的http 服务,并且使用tomcat作为默认内置容器。但是jetty对307转发的处理似乎有些问题,所以后面将内置容器修改为了jetty。此外,在java程序中的 apache http client的版本需要使用4.5.13以后的版本。之前的版本,对转发的处理也存在一些问题。

所以这个问题可以有两种解决方式:

1.关闭httpv2

    在fe.conf中添加 enable_http_server_v2=false后重启FE。但是这样无法再使用新版UI界面,并且之后的一些基于httpv2的新接口也无法使用。(正常的导入查询不受影响)。

2. 升级

    可以升级到百度的Palo发行版0.14.13及之后的版本,已修复这个问题。

Q:节点新增加了新的磁盘,为什么数据没有均衡到新的磁盘上?

A:

当前Doris的均衡策略是以节点为单位的。也就是说,是按照节点整体的负载指标(分片数量和总磁盘利用率)来判断集群负载。并且将数据分片从高负载节点迁移到低负载节点。如果每个节点都增加了一块磁盘,则从节点整体角度看,负载并没有改变,所以无法触发均衡逻辑。

此外,Doris目前并不支持单个节点内部,各个磁盘间的均衡操作。所以新增磁盘后,不会将数据均衡到新的磁盘。

但是,数据在节点之间迁移时,Doris会考虑磁盘的因素。比如一个分片从A节点迁移到B节点,会优先选择B节点中,磁盘空间利用率较低的磁盘。

这里我们提供3种方式解决这个问题:

1. 重建新表

    通过create table like 语句建立新表,然后使用 insert into select的方式将数据从老表同步到新表。因为创建新表时,新表的数据分片会分布在新的磁盘中,从而数据也会写入新的磁盘。这种方式适用于数据量较小的情况(几十GB以内)。

2. 通过Decommission命令

    decommission命令用于安全下线一个BE节点。该命令会先将该节点上的数据分片迁移到其他节点,然后在删除该节点。前面说过,在数据迁移时,会优先考虑磁盘利用率低的磁盘,因此该方式可以“强制”让数据迁移到其他节点的磁盘上。当数据迁移完成后,我们在cancel掉这个decommission操作,这样,数据又会重新均衡回这个节点。当我们对所有BE节点都执行一遍上述步骤后,数据将会均匀的分布在所有节点的所有磁盘上。

    注意,在执行decommission命令前,先执行以下命令,以避免节点下线完成后被删除。

    admin set frontend config(“drop_backend_after_decommission” = “false”);

3. 使用API手动迁移数据

    Doris提供了HTTP API,可以手动指定一个磁盘上的数据分片迁移到另一个磁盘上,具体可参阅:

http://doris.incubator.apache.org/master/zh-CN/administrator-guide/http-actions/tablet-migration-action.html

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/opensource/145355.html

(0)
上一篇 2021年9月7日 18:14
下一篇 2021年9月7日 18:14

相关推荐

发表回复

登录后才能评论