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

引言

欢迎查阅本周的 Apache Doris 社区 FAQ 栏目!

在这个栏目中,每周将筛选社区反馈的热门问题和话题,重点回答并进行深入探讨。旨在为广大用户和开发者分享有关 Apache Doris 的常见问题。

通过这个每周 FAQ 栏目,希望帮助社区小伙伴更好地了解和应用 Apache Doris,促进经验交流和技术共享。

SQL问题

Q1 dori建完倒排索引后,如何判断sql是否走了索引

A1 可以通过 Query Profile 中的下面几个指标分析倒排索引的加速效果:

  1. RowsInvertedIndexFiltered 倒排过滤掉的行数,可以与其他几个 Rows 值对比分析索引过滤效果
  2. InvertedIndexFilterTime 倒排索引消耗的时间
  3. InvertedIndexSearcherOpenTime 倒排索引打开索引的时间
  4. InvertedIndexSearcherSearchTime 倒排索引内部查询的时间
    倒排索引内容可查阅:
    https://doris.apache.org/zh-CN/docs/dev/table-design/index/inverted-index
Q2 doris动态分区的修改有什么注意事项

A2 注意数据不要出现分区交集,要注意历史数据的保留时间,如果分区的区间设置不对可能出现历史分区被删除的情况:

java 复制代码
ALTER TABLE example_db.my_table set (
"dynamic_partition.enable" = "true", 
"dynamic_partition.time_unit" = "DAY", 
   -- 注意区间start
   "dynamic_partition.start " = "",
   -- 注意区间history
   "dynamic_partition.history_partition_num " = "",
   -- 注意区间end
"dynamic_partition.end" = "3", 
"dynamic_partition.prefix" = "p", 
"dynamic_partition.buckets" = "32"
);

分区修改内容可查阅

Q3 doris查询时报runtime filter如何处理

A3 如下:

  1. 适当调大Session 变量:runtime_filter_wait_time_ms
  2. 后续Doris会发布一个更智能的等待策略
    Runtime Filter内容可查阅

数据操作问题

Q4 JDBC 连接2.1.x 版本的Power BI报:Character set 'utf8mb3' is not supported by .Net.Framework

A4 该问题易在2.1.x 版本容易遇到,如果遇到该问题则需要把 JDBC Driver 升级到8.0.32。

Q5 Tableau连接Doris时报:SSL connection error:protocol version mismatch 无法连接到 MySQL 服务器

A5 该报错原因是 Doris 开启了 SSL 验证,但是连接过程中未使用 SSL 连接,需要在 fe.conf 里面关闭 enable_ssl 变量。

Q6 连接 Hive Catalog 报:Caused by: java.lang.NullPointerException

如 fe.log 中有如下堆栈:

java 复制代码
Caused by: java.lang.NullPointerException
    at org.apache.hadoop.hive.ql.security.authorization.plugin.AuthorizationMetaStoreFilterHook.getFilteredObjects(AuthorizationMetaStoreFilterHook.java:78) ~[hive-exec-3.1.3-core.jar:3.1.3]
    at org.apache.hadoop.hive.ql.security.authorization.plugin.AuthorizationMetaStoreFilterHook.filterDatabases(AuthorizationMetaStoreFilterHook.java:55) ~[hive-exec-3.1.3-core.jar:3.1.3]
    at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getAllDatabases(HiveMetaStoreClient.java:1548) ~[doris-fe.jar:3.1.3]
    at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getAllDatabases(HiveMetaStoreClient.java:1542) ~[doris-fe.jar:3.1.3]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_181]

A6 可以尝试在 create catalog 语句中添加 如下参数 解决:

java 复制代码
"metastore.filter.hook" = 
"org.apache.hadoop.hive.metastore.DefaultMetaStoreFilterHookImpl"

Hive Catalog可查阅

Q7 使用 Stream Load 访问 FE 的公网地址导入数据,被redirect重定向到内网 IP?

A7 当 stream load 的连接目标为 FE 的 http 端口时,FE 仅会随机选择一台 BE 节点做 http 307 redirect 操作,因此用户的请求实际是发送给 FE 指派的某一个 BE 的。

而 redirect 返回的是 BE 的 ip,也即内网 IP。所以如果你是通过 FE 的公网 IP 发送的请求,很有可能因为 redirect 到内网地址而无法连接。

通常的做法,一种是确保自己能够访问内网 IP 地址,或者是给所有 BE 上层架设一个负载均衡,然后直接将 stream load 请求发送到负载均衡器上,由负载均衡将请求透传到 BE 节点。

运维常见问题

Q8 doris表drop后,如何让对应的tablet快速清理掉

A8 如下:

java 复制代码
-- 先设置回收站时间为0
ADMIN SET FRONTEND CONFIG ("catalog_trash_expire_second" = "0");
-- 再清空回收站
ADMIN CLEAN TRASH              
-- 再恢复回收站时间
ADMIN SET FRONTEND CONFIG ("catalog_trash_expire_second" = "86400");
-- 查看回收站中可回收的库,表或分区元数据信息
SHOW CATALOG RECYCLE BIN;
Q9 通过 DECOMMISSION 下线 BE 节点时,为什么总会有部分 tablet 残留?

A9 在下线过程中,通过 show backends 查看下线节点的 tabletNum,会观察到 tabletNum 数量在减少,说明数据分片正在从这个节点迁移走。当数量减到 0 时,系统会自动删除这个节点。

但某些情况下,tabletNum 下降到一定数值后就不变化。这通常可能有以下两种原因:

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

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

对于以上情况,可以先通过

show proc "/cluster_health/tablet_health";

查看集群是否还有 unhealthy 的分片,如果为 0,

则可以直接通过 drop backend 语句删除这个 BE。

否则,还需要具体查看不健康分片的副本情况。
Doris BE节点下线卡住?快速排障技巧全攻略!

其它问题

Q10 初识Doris,有什么方式可以快速体验下Doris实时数仓的链路?

A10 基于Docker搭建一套演示环境,分钟级快速体验Doris实时数仓的"采-存-用"链路:Doris之旅基础篇|Docker快速体验(二)

相关推荐
诗人不写诗6 分钟前
spring boot apm生态
java·数据库·spring boot
LaughingZhu1 小时前
Anthropic 收购 Oven 后,Claude Code 用运行时写了一篇护城河文章
大数据·人工智能·经验分享·搜索引擎·语音识别
学习3人组1 小时前
TortoiseGit冲突解决实战上机练习
大数据·elasticsearch·搜索引擎
Ln5x9qZC21 小时前
Flink SQL 元数据持久化实战
大数据·sql·flink
OYpBNTQXi1 小时前
Flink Agents 源码解读 --- (6) --- ActionTask
大数据·flink
AI成长日志1 小时前
【GitHub开源项目专栏】黑客松获奖项目技术深潜:从垂直领域AI到安全基础设施的创新实践
人工智能·开源·github
火飞鹰2 小时前
封装MinIO为starter
java·数据库·spring boot
中金快讯2 小时前
济民健康医疗服务占比提升至46%!业务结构调整初见成效
大数据·人工智能
lizhihai_992 小时前
股市学习心得-尾盘半小时买入法
大数据