引言
欢迎查阅本周的 Apache Doris 社区 FAQ 栏目!
在这个栏目中,每周将筛选社区反馈的热门题目和话题,重点回答并举行深入探讨。旨在为广大用户和开发者分享有关 Apache Doris 的常见题目。
通过这个每周 FAQ 栏目,盼望资助社区小伙伴更好地了解和应用 Apache Doris,促进经验交流和技能共享。
SQL题目
Q1 dori建完倒排索引后,怎样判断sql是否走了索引
A1 可以通过 Query Profile 中的下面几个指标分析倒排索引的加快效果:
- RowsInvertedIndexFiltered 倒排过滤掉的行数,可以与其他几个 Rows 值对比分析索引过滤效果
- InvertedIndexFilterTime 倒排索引斲丧的时间
- InvertedIndexSearcherOpenTime 倒排索引打开索引的时间
- 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"
- );
复制代码 分区修改内容可查阅
Q3 doris查询时报runtime filter怎样处理惩罚
A3 如下:
- 适当调大Session 变量:runtime_filter_wait_time_ms
- 后续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 中有如下堆栈:
- 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可查阅
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快速体验(二)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |