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

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

一臻数据 2025-01-06
588

  引言   

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

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

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


 






      SQL问题      

Q1 doris建表时报:

Failed to create partition [xxx] . Timeout

A1 Doris 建表是按照 Partition 粒度依次创建的。当一个 Partition 创建失败时,可能会报这个错误。即使不使用 Partition,当建表出现问题时,也会报 Failed to create partition,因为如前文所述,Doris 会为没有指定 Partition 的表创建一个不可更改的默认的 Partition。 

当遇到这个错误是,通常是 BE 在创建数据分片时遇到了问题。可以参照以下步骤排查:
1. 在 fe.log 中,查找对应时间点的 Failed to create partition 日志。
在该日志中,会出现一系列类似 {10001-10010} 字样的数字对。
数字对的第一个数字表示 Backend ID,第二个数字表示 Tablet ID
如上这个数字对,表示 ID 为 10001 的 Backend 上,
创建 ID 为 10010 的 Tablet 失败了。

2. 前往对应 Backend 的 be.INFO 日志,查找对应时间段内,
tablet id 相关的日志,可以找到错误信息。

3. 以下罗列一些常见的 tablet 创建失败错误,包括但不限于:

1)BE 没有收到相关 task,此时无法在 be.INFO 
中找到 tablet id 相关日志或者 BE 创建成功,但汇报失败。
以上问题,请参阅官网的 安装与部署 检查 FE 和 BE 的连通性。
2)预分配内存失败。可能是表中一行的字节长度超过了 100KB。
3)Too many open files。
打开的文件句柄数超过了 Linux 系统限制。需修改 Linux 系统的句柄数限制。

如果创建数据分片时超时,也可以通过在 fe.conf 中设置 
tablet_create_timeout_second=xxx 
以及 max_create_table_timeout_second=xxx 来延长超时时间。

其中 tablet_create_timeout_second 默认是 1 秒,
max_create_table_timeout_second 默认是 60 秒,
总体的超时时间为 
min(tablet_create_timeout_second * replication_num, max_create_table_timeout_second),具体参数设置可参阅官网的 FE 配置项 。

Q2 doris表模型选择有何建议?

A2 因为数据模型在建表时就已经确定,且无法修改。所以,选择一个合适的数据模型非常重要:
1. Aggregate 模型可以通过预聚合,极大地降低聚合查询时所需扫描的数据量和查询的计算量,非常适合有固定模式的报表类查询场景。但是该模型对 count(*) 查询很不友好。同时因为固定了 Value 列上的聚合方式,在进行其他类型的聚合查询时,需要考虑语意正确性。 
2. Unique 模型针对需要唯一主键约束的场景,可以保证主键唯一性约束。但是无法利用 ROLLUP 等预聚合带来的查询优势。对于聚合查询有较高性能需求的用户,推荐使用自 1.2 版本加入的写时合并实现。 
3. Duplicate 适合任意维度的 Ad-hoc 查询。虽然同样无法利用预聚合的特性,但是不受聚合模型的约束,可以发挥列存模型的优势(只读取相关列,而不需要读取所有 Key 列)。 
4. 如果有部分列更新的需求,请查阅官方的文档主键模型部分列更新 与 聚合模型部份列更新 获取相关使用建议。
表模型内容可查阅:
https://doris.apache.org/zh-CN/docs/dev/table-design/data-model/overview
Q3 创建oracle catalog时报:
ORA-01882: timezone region not found
A3 通常是timezone时区没对齐导致,例如jdbc url改为对应的时区即可:
?timezone=xxx 

oracle catalog内容可查询:

https://doris.apache.org/zh-CN/docs/dev/lakehouse/database/oracle



      数据操作问题      

Q4 300多亿的非light_schema_change大表进行字段长度变更有什么风险?

A4 Schema Change 的实现分为两个大类:
轻量级 Schema Change 和重量级 Schema Change。 
轻量级 Schema Change 完成速度很快,只会同步地修改 FE 的元数据,一般在秒级别完成。增加或删除 value 列、更改列名、增加除 DUP KEY 列和 UNIQUE KEY 列以外的 VARCHAR 列的长度,都会使用轻量级 Schema Change 的逻辑。 
重量级 Schema Change,会对数据进行复制-修改-替换,所以非light_schema_change的大表需要谨慎进行Schema Change。 
Schema Change内容可查阅:
https://doris.apache.org/zh-CN/docs/dev/table-design/schema-change
Q5 broker load方式导入时报:
java.sql.SQLException: errCode = 2, 
detailMessage = 
There are more than 100 unfinished load jobs, 
please retry later. You can use SHOW LOAD to view submitted jobs

A5 通常进行调大fe.conf的desired_max_waiting_jobs参数解决。 
如果调大后有job CANCELLED,可以通过fe.log和be.INFO搜索对应 jobid的信息,确定异常详情再处理。

Q6 doris进行远端s3存储时报:

ERROR 1105 (HY000): errCode = 2, 
detailMessage = 
Failed to create repository: 
connect to s3 failed
Unable to marshall request to JSON
host must not be null.

A6 S3 SDK 默认使用 virtual-hosted style 方式。但某些对象存储系统 (如:minio) 可能没开启或没支持 virtual-hosted style 方式的访问,此时我们可以添加 use_path_style 参数来强制使用 path style 方式:
CREATE RESOURCE "remote_s3"
PROPERTIES
(
    "type" = "s3",
    "s3.endpoint" = "bj.s3.com",
    "s3.region" = "bj",
    "s3.bucket" = "test-bucket",
    "s3.root.path" = "path/to/root",
    "s3.access_key" = "bbb",
    "s3.secret_key" = "aaaa",
    "s3.connection.maximum" = "50",
    "s3.connection.request.timeout" = "3000",
    "s3.connection.timeout" = "1000",
    "use_path_style" = "true"
);

远端存储内容可查阅:
https://doris.apache.org/zh-CN/docs/dev/table-design/tiered-storage/remote-storage
Q7 outfile导出数据到s3时,能否保留字段名
A7 导出属性中添加该参数即可:
format"="csv_with_names"

outfile内容可查阅:
https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-statements/Data-Manipulation-Statements/OUTFILE




      运维常见问题      

Q8 doris监控中compaction的指标不是走的FE?

A8 是的,监控的 compactoin 指标是直接从BE拉取的。 
监控告警内容可查阅:
https://doris.apache.org/zh-CN/docs/dev/admin-manual/maint-monitor/monitor-alert

Q9 doris编译时,若需要下第三方包,但机器无法连外网,建议如何处理?

A9 建议找个能连外网的机器编译好,然后把thridparty相关目录copy到开发机即可。


      其它问题      

Q10 doris认证课程什么时候上线?

A10 快了。Doris 2025年最新的官方课程及培训认证体系预计1-2月内正式发布,敬请期待! 
有需要的小伙伴也可以先查阅一臻之前的Doris课程:Doris之旅基础篇|开篇介绍(一)


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

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

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



往期推荐

走进开源,拥抱开源

【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】周FAQ集锦:第 19 期

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

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










关于社区






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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论