【Apache Doris】周FAQ集锦:第 1 期

Viewed 592

引言
欢迎查阅本周的 Apache Doris 社区 FAQ 栏目!
在这个栏目中,每周将筛选社区反馈的热门问题和话题,重点回答并进行深入探讨。旨在为广大用户和开发者分享有关 Apache Doris 的常见问题。
通过这个每周 FAQ 栏目,希望帮助社区小伙伴更好地了解和应用 Apache Doris,促进经验交流和技术共享。

SQL问题

Q1 替换nvl2的方式有哪些?
A1 在SQL中,NVL2是一个函数,用于在条件成立时返回一个值,在条件不成立时返回另一个值;可以通过case when进行替换。

Q2 查询报错:meet unknown column stats on table 0lapscanNode
image.png
A2 通过关闭相关变量解决:set global forbid_unknown_col_stats = false;
forbid_unknown_col_stats参数只有在测试和跑benchmark时会打开,用于防止没有收集到统计信息,导致结果不理性,而进行不必要的问题追查。
生产环境中,建议永远设置为false。

数据操作问题

Q1 Doris 1.2.6,数据写入过程中出现错误码[-233]异常
A1 OLAP_ERR_TOO_MANY_TRANSACTIONS ,太多事务积压未完成导致。降低写入或者更新频率,或调大BE参数max_runnings_transactions_per_txn_map处理。
BE参数说明可以查阅BE配置项:
https://doris.apache.org/zh-CN/docs/admin-manual/config/be-config

Q2 查看Broker Load导入状态时,Progress为50%,但State为FINISHED
image.png
A2 State为FINISHED是正确的,Progress进度统计存在问题,但只是显示问题,不会影响数据读写。
在Apache Doris 2.0.3已经修复了,建议升级至>=2.0.3的版本。
Release 2.0.3,可以查阅:
https://cdnd.selectdb.com/zh-CN/docs/releasenotes/release-2.0.3

运维常见问题

Q1 Routine Load异常:fetch failed due to requested offset not available on the broker: Broker: Offset out of range
A1 Routine Load报[broker:Offset Out of range] 原因:

  1. routine load 记录的偏移量和kafka group 已经committed的offset是一致的,由于kafka的数据清理机制(有没有消费都会清理),记录的偏移量下一个offset被清理导致的这个异常 。
  2. kafka清理时间设置过短,数据积压严重,也会导致此类异常出现。
    解决方案:查看kafka 现阶段最小偏移量,使用alter routine load job,重新设置偏移量,恢复routine load job即可。

Q2 Drop一张大表后,为什么BE磁盘空间没有减少?
A2 分两种情况:

  1. drop不加force时,数据不会放入回收站。这个机制是为了防止误删除,recoverd的时候用,和 fe.conf的catalog_trash_expire_second 参数有关系,默认为1天,1天后会将删除的表自动放到trash中。
  2. drop加force时,数据会直接放入回收站,此时可以通过admin clean trash去清理。

Q3 FE的负载均衡怎么实现?
A3 可以通过 JDBC Connector / ProxySQL / Nginx 方式实现:
https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/load-balancing

  1. JDBC的通信方式,建议使用 JDBC Connector的loadbalance实现。
  2. 代理的方式用Nginx多些,也可以考虑 ProxySQL。

Q4 FE启动异常:Try to lock process failed
A4 如下:

  1. fe的元数据文件被修改导致
  2. fe进程冲突导致,jps查看是否已经存在fe进程进行排查处理

Q5 Routine Load任务stop后,多久会删除?
A5 routine load任务stop之后,默认会在三天回收删除。
由fe的label_keep_max_second参数控制,该参数除了控制routine load,也是job共用的参数。
FE参数说明可以查阅FE配置项:
https://cdnd.selectdb.com/zh-CN/docs/admin-manual/config/fe-config

其它问题

Q Doris血缘分析的开源工具有哪些?
A 可以参考

  1. datahub:
    https://datahubproject.io/docs/next/features/
  2. apache atlas:
    https://atlas.apache.org/api/v2/index.html
  3. 基于ali的druid二开,例如data-lineage-doris项目:
    使用ali的druid去解析sql。由于sql本身有记录在fe的审计日志里,只需通过类似flume采集日志推送到kafka,后端设计一个服务专门去解析这些sql生成血缘关系即可:
    https://github.com/eyesmoons/data-lineage-doris

一臻数据

3 Answers

Q2 Drop一张大表后,为什么BE磁盘空间没有减少?这个问题写的有问题,加force直接就删除,不会放入回收站,你写反了