暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

一臻数据 2025-01-13
437
 引言   

欢迎查阅本周的 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 注意数据不要出现分区交集,要注意历史数据的保留时间,如果分区的区间设置不对可能出现历史分区被删除的情况:
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"
);

分区修改内容可查阅:
https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-statements/Data-Definition-Statements/Alter/ALTER-TABLE-PROPERTY
Q3 doris查询时报runtime filter如何处理
A3 如下:
1. 适当调大Session 变量:runtime_filter_wait_time_ms
2. 后续Doris会发布一个更智能的等待策略

Runtime Filter内容可查阅:
https://doris.apache.org/zh-CN/docs/dev/query-acceleration/optimization-technology-principle/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 中有如下堆栈:
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 语句中添加 如下参数 解决:
"metastore.filter.hook" = 
"org.apache.hadoop.hive.metastore.DefaultMetaStoreFilterHookImpl"

Hive Catalog可查阅: 
https://doris.apache.org/zh-CN/docs/dev/lakehouse/catalogs/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 如下:
-- 先设置回收站时间为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 下降到一定数值后就不变化。这通常可能有以下两种原因:

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快速体验(二)


一臻数据致力于大数据AI时代的前沿内容分享,会持续分享更多有趣有用有态度的知识。同时也欢迎大家投稿,共建共进,帮助圈友们冲破认知壁垒,实现自我提升!

另外,整理了份《一臻数据知识库》,其中包含 Apache Doris Data+AI 的学习资料、学习课程、白皮书、研究报告、行业标准  实践指南 等内容,会持续更新,欢迎关注公众号,免费领取

资料获取 🔗 欢迎扫描下方二维码图片 备注【Doris】免费领取❗️



往期推荐

走进开源,拥抱开源

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

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

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

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

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

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

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

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

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









关于社区






Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。 
如果您对 Apache Doris 感兴趣,可以通过以下入口访问官方网站、社区论坛、GitHub和dev邮件组:
💡官网文档:https://doris.apache.org 
💡社区论坛:https://ask.selectdb.com 
💡GitHub:https://github.com/apache/doris 
💡dev邮件组:dev@doris.apache.org
非常欢迎您在社区论坛中与其他用户分享您的使用经验和技巧,或者向dev邮件组提交反馈和意见。
相信,您的参与将帮助Apache Doris变得更加完善。

▼   点击阅读原文,发现更多精彩!

文章转载自一臻数据,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论