【Apache Doris】周FAQ集锦:第 16 期
- SQL问题
- 数据操作问题
- 运维常见问题
- 其它问题
- 关于社区
欢迎查阅本周的 Apache Doris 社区 FAQ 栏目!
在这个栏目中,每周将筛选社区反馈的热门问题和话题,重点回答并进行深入探讨。旨在为广大用户和开发者分享有关 Apache Doris 的常见问题。
通过这个每周 FAQ 栏目,希望帮助社区小伙伴更好地了解和应用 Apache Doris,促进经验交流和技术共享。
SQL问题
❓Q1 hive catalog 查询时报:
Wrong data type for colum xxx
💡A1 通常是进行了schema change导致,可以刷新或重建hive catalog重新查询。
❓Q2 doris的key是否可以创建主键索引?
💡A2 doris中key是排序的,在主键上的条件通常比较快,不需要其它索引。
数据操作问题
❓Q3 compaction会影响集群性能?
💡A3 如果是小批量写,每次写的少,会导致小版本比较多,compaction 不是很理想;对比直接使用 insert into select 写入一个大批量的数据,相同的数据下,可能insert into select 写完的表,查询性能会快些,因为一次 insert into 之后数据就是个大的版本了,所以查询性能也会比较好。
Compaction 原理 | 实践全析可查阅:
https://mp.weixin.qq.com/s/hb3DqVZdf8LyzE0OH1QvMA
❓Q4 export和select into outfile这两种将数据导出到本地文件的方式,所生成的文件是否可以指定存放到任意一台be?
💡A4 目前暂不支持export和select into outfile指定导出至具体的服务器(be)。
❓Q5 ccr跨集群数据同步中binlog会不会占用太多空间,是否需要限制它的大小?
💡A5 ccr不会占用太多空间,并且可以设置binlog的过期时间,目前默认是一天。
CCR跨级群同步内容可查阅:
https://doris.apache.org/zh-CN/docs/2.0/admin-manual/data-admin/ccr
运维常见问题
❓Q6 部署doris集群的be时,服务器有多块磁盘,使用lvm将多块磁盘组成一组pv、vg、lv挂载至一个目录下和单独将磁盘分区格式化挂载至多个目录,在性能上有没有区别?另外对于compaction而言,lvm划分的磁盘compaction_task_num_per_disk会为每个物理磁盘分配多个task?
💡A6 如下:
1. 直接分区格式化挂载多块磁盘到不同目录,可以减少管理层级,会减少I/O路径上的开销,利于提高性能。
即少依赖一层,会让系统简单稳定一些,效率也会高,并且doris会自动管理多盘,包括负载均衡。
所以使用doris,不需要用lvm、raid之类的操作。
2. lvm 挂盘之后,compaction认为BE只有一个磁盘,会按照一个磁盘分配task。
3. 任何系统和架构越简单越好。
❓Q7 fe内存居高不下时,如何排查?
💡A7 如下:
1. 观察profile是否是开启的,如果开启的话全局关闭
2. 导入任务多的话,可能是label堆积,可以修改label的保留时间
fe.conf
label_keep_max_second = 14400;
streaming_label_keep_max_second = 14400;
3. 将FE JVM GC算法修改为G1,CMS算法修改为G1 算法
# G1 JAVA OPTS
JAVA_OPTS="-Djavax.security.auth.useSubjectCredsOnly=false -Xss4m -Xmx8192m -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:$DORIS_HOME/log/fe.gc.log.$CUR_DATE -Dlog4j2.formatMsgNoLookups=true"
-Xmx改成一致的,注意下CUR_DATE这个环境变量,在老版本可能叫DATE
4. 在内存较高时,可以打个jmap看看哪些模块占用较多:jmap -histo:live pid > 1.jmp
❓Q8 doris的fe/meta/image目录下多久会生成image.XX镜像文件?
💡A8 同时满足两个条件:
- master 节点的日志条数达到阈值(默认10w 条)
- 符合checkpoint线程执行周期(默认六十秒)
❓Q9 doris如何把测试库所有表发布到生产环境?
💡A9 doris在0.15之后的版本已经支持通过 mysqldump 工具导出数据或者表结构。
mysql-dump内容可查阅:
https://doris.apache.org/zh-CN/docs/2.0/data-operate/export/export-with-mysql-dump
其它问题
❓Q10 apache doris + apachehudi 如何快速搭建?
💡A10 湖仓一体(Data Lakehouse)融合了数据仓库的高性能、实时性以及数据湖的低成本、灵活性等优势,帮助用户更加便捷地满足各种数据处理分析的需求。在过去多个版本中,Apache Doris 持续加深与数据湖的融合,已演进出一套成熟的湖仓一体解决方案。为便于用户快速入门,我们将通过系列文章介绍 Apache Doris 与各类主流数据湖格式及存储系统的湖仓一体架构搭建指南,包括 Hudi、Iceberg、Paimon、OSS、Delta Lake、Kudu、BigQuery 等,欢迎持续关注。
Apache Doris + Apache Hudi 快速搭建指南:
https://mp.weixin.qq.com/s/C2Bje0NrFVyhdQ80ak7nlg
一臻数据
关于社区
Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。
如果您对 Apache Doris 感兴趣,可以通过以下入口访问官方网站、社区论坛、GitHub和dev邮件组:
💡官方文档
💡社区论坛
💡GitHub
💡dev邮件组:dev@doris.apache.org
非常欢迎您在社区论坛中与其他用户分享您的使用经验和技巧,或者向dev邮件组提交反馈和意见。
相信,您的参与将帮助Apache Doris变得更加完善。