doris routine load

https://doris.apache.org/zh-CN/docs/data-operate/import/import-way/routine-load-manual/

json (无嵌套)
CREATE ROUTINE LOAD v2x_olap_database.government_car_route_load ON government_car_route_load
COLUMNS(temId, tehNo, speed, dayMileage, gpsTime, status, direction, k1, longitude, latitude, eventTime, dt)
PROPERTIES
(
"desired_concurrent_number"="3",
"max_batch_interval" = "20",
"max_batch_rows" = "300000",
"max_batch_size" = "209715200",
"strict_mode" = "false",
"format" = "json"
)
FROM KAFKA
(
"kafka_broker_list" = "10.0.2.37:31090,10.0.2.38:31091,10.0.2.38:31092",
"kafka_topic" = "government_car_topic",
"property.group.id" = "government_car_route_load_group",
"property.kafka_default_offsets" = "OFFSET_BEGINNING",
"property.enable.auto.commit" = "false",
"kafka_partitions" = "0"
);
json (嵌套)

参考:https://www.cnblogs.com/ywjfx/p/14722302.html

CREATE ROUTINE LOAD test.test_json_label_4 ON user_json
COLUMNS(id, name, counts, ts)
PROPERTIES
(
"desired_concurrent_number"="3",
"max_batch_interval" = "20",
"max_batch_rows" = "300000",
"max_batch_size" = "209715200",
"strict_mode" = "false",
"format" = "json",
"jsonpaths" = "[\"$.test.id\",\"$.test.name\",\"$.test.counts\",\"$.test.ts\"]"
)
FROM KAFKA
(
"kafka_broker_list" = "localhost:9092",
"kafka_topic" = "Demo2",
"kafka_partitions" = "0",
"kafka_offsets" = "0"
);
查看导入
mysql> show routine load\G;
Empty set (0.00 sec)

在这里插入图片描述

删除导入任务
mysql> STOP ROUTINE LOAD FOR government_car_route_load;
Query OK, 0 rows affected (0.00 sec)

暂停任务
mysql> PAUSE ROUTINE LOAD FOR government_car_route_load;
从 pause 状态中恢复
mysql> RESUME ROUTINE LOAD FOR government_car_route_load
问题记录
failed to get kafka partition info: [no partition in this topic]

在这里插入图片描述

"kafka_partitions" = "0"
no partition for this tuple.

分区表历史分区未创建报如上错误
在这里插入图片描述
参考:https://blog.youkuaiyun.com/qq_37865420/article/details/122456181
在这里插入图片描述
创建历史分区

alter table v2x_olap_database.government_car_recovery set ("dynamic_partition.create_history_partition"="true","dynamic_partition.start" = "-75");

在这里插入图片描述

routine load 容错 current error rows is more than max error num

https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/ALTER-ROUTINE-LOAD?_highlight=max_error_number#description

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

where 过滤条件

频繁因数据质量问题导致数据导入失败,加入 where 进行过滤
在这里插入图片描述

CREATE ROUTINE LOAD xxx ON xxx
COLUMNS(...),
where timestamp < servertimestamp and timestamp > UNIX_TIMESTAMP(DATE(now())) * 1000
PROPERTIES
(
...
)
FROM KAFKA
(
...
);
routine load 状态异常

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
failed to find 3 backends
在这里插入图片描述
其中某个 backend 状态异常
在这里插入图片描述
恢复重启该backend ./start-be.sh --daemon
分区自动创建,恢复routine load RESUME ROUTINE LOAD FOR government_car_route_load
在这里插入图片描述
在这里插入图片描述

### Doris 数据库中 Load 功能的使用方法 Doris 是一种高性能分布式数据库,支持多种数据加载方式来满足不同的业务需求。以下是关于 Doris 中 `Load` 功能的核心知识点以及常见问题解决方案。 #### 支持的数据加载方式 Doris 提供了多种数据加载的方式,主要包括以下几种: 1. **Broker Load**: 这是一种异步批量加载方式,适用于大规模离线数据导入场景。它通过 Broker 来管理文件读取过程,适合 HDFS 或其他外部存储系统的数据加载[^1]。 2. **Stream Load**: Stream Load 是一种同步的小规模数据加载方式,通常用于实时流式数据的导入。它可以处理来自标准输入流或 HTTP 请求中的数据,并立即返回执行状态[^3]。 3. **Routine Load**: Routine Load 可以看作是一个持续运行的任务,能够自动从 Kafka 等消息队列中拉取消息并将其写入到 Doris 表中。这种方式非常适合于日志类数据或者需要高吞吐量的场景。 4. **Insert Into**: 对于少量记录的操作可以直接采用 SQL 的形式完成插入操作 (INSERT INTO ... VALUES ...) 。不过需要注意的是此方法效率较低,在大批量数据迁移时不推荐使用。 #### 配置环境准备 为了成功实现上述任何一种类型的 LOAD 操作前都需要做好相应的准备工作: - 创建必要的目录结构以便保存元信息配置文件等资料, 如命令所示: ```bash sudo mkdir -p /usr/local/mydata/doris/fe/conf sudo mkdir -p /usr/local/mydata/doris/be/conf ``` 这些路径可用于存放 Frontend 和 Backend 节点的相关设置文档以及其他辅助资源文件. 另外如果涉及到容器化部署则可能还需要额外考虑镜像构建与分发等问题比如利用 docker-compose 文件定义服务依赖关系并通过如下指令引入自定义制作好的镜像包:`docker load -i kube-state-metrics_v2.5.0.tar`[^2]. #### 性能调优建议 当面对较大规模的数据集时可能会遇到性能瓶颈因此有必要针对具体情况进行适当调整优化措施包括但不限于以下几个方面: - 合理规划分区策略减少单节点压力提升查询速度; - 增加副本数量提高容错能力同时兼顾成本控制; - 根据实际负载动态扩展集群规模适应不断增长的需求变化趋势. 以上提到的内容均可以在官方文档 Performance Tuning Overview 下找到更详细的描述说明. #### 解决相关问题的方法论 对于常见的错误提示可以尝试按照下面思路排查修复: - 如果发现任务长时间处于 pending 状态可能是由于资源配置不足造成的应检查当前可用计算资源状况及时补充缺失部分. - 当出现 duplicate key conflict 错误时表示存在重复主键违反唯一约束规则需确认源端是否存在脏数据并对齐目标表设计规范后再重新提交请求. - 若网络传输过程中断开连接可查看双方防火墙规则确保允许相应端口通讯正常工作. ```sql -- Example of a simple broker load statement LOAD LABEL example_db.label_name ( DATA INFILE("hdfs://namenode:8020/user/example/input/file.csv") INTO TABLE table_name COLUMNS TERMINATED BY "," FORMAT AS "csv" ); ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值