前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【Apache Doris】周FAQ集锦:第 28 期

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

作者头像
一臻数据
发布2025-01-06 14:49:38
发布2025-01-06 14:49:38
10300
代码可运行
举报
文章被收录于专栏:一臻数据一臻数据
运行总次数:0
代码可运行

SQL问题

Q1 doris建表时报:

代码语言:javascript
代码运行次数:0
复制
Failed to create partition [xxx] . Timeout

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

当遇到这个错误是,通常是 BE 在创建数据分片时遇到了问题。可以参照以下步骤排查:

代码语言:javascript
代码运行次数:0
复制
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时报:

代码语言:javascript
代码运行次数:0
复制
ORA-01882: timezone region not found

A3 通常是timezone时区没对齐导致,例如jdbc url改为对应的时区即可:

代码语言:javascript
代码运行次数:0
复制
?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方式导入时报:

代码语言:javascript
代码运行次数:0
复制
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存储时报:

代码语言:javascript
代码运行次数:0
复制
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 方式:

代码语言:javascript
代码运行次数:0
复制
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 导出属性中添加该参数即可:

代码语言:javascript
代码运行次数:0
复制
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月内正式发布,敬请期待!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一臻数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档