目录
1. 开启Steam Load记录
2. 案例
3. 注意事项
进入正文之前,欢迎订阅专题、对博文点赞、评论、收藏,关注IT贫道,获取高质量博客内容!
宝子们订阅、点赞、收藏不迷路!抓紧订阅专题!
后续执行Stream Load 导入任务后,我们会在Doris集群中会查询对应Stream Load任务的情况,默认BE是不记录Stream Load 记录,如果想要在Doris集群中通过mysql 语法来查询对应的Stream Load记录情况,需要再BE节点上配置enable_stream_load_record参数为true,该参数设置为true会让BE节点记录对应的Stream Load信息。配置步骤如下:
1)停止Doris 集群
#停止Doris 集群
[root@node1 ~]# cd /software/doris-1.2.1/
[root@node1 doris-1.2.1]# sh stop_doris.sh
2)在node3-node5 BE 节点上配置be.conf
#node3节点配置be.conf
[root@node3 ~]# vim /software/doris-1.2.1/apache-doris-be/conf/be.conf
...
enable_stream_load_record = true
...
#node4节点配置be.conf
[root@node4 ~]# vim /software/doris-1.2.1/apache-doris-be/conf/be.conf
...
enable_stream_load_record = true
...
#node5节点配置be.conf
[root@node5 ~]# vim /software/doris-1.2.1/apache-doris-be/conf/be.conf
...
enable_stream_load_record = true
...
3)重新启动Doris集群
#启动Doris 集群
[root@node1 ~]# cd /software/doris-1.2.1/
[root@node1 doris-1.2.1]# sh start_doris.sh
下面以导入Linux节点本地磁盘数据到Doris为例,演示Stream Load使用方式。
1)准备数据
在node1节点中创建/root/csv-data/test.csv数据文件,内容如下:
1,zs,18,100
2,ls,19,200
3,ww,20,300
4,ml,21,400
5,tq,22,500
2)创建Doris表
create table stream_load_t1(
id int,
name string,
age int,
score double
)
ENGINE = olap
DUPLICATE KEY(id)
DISTRIBUTED BY HASH(`id`) BUCKETS 8;
3)创建Stream Load导入任务
[root@node1 ~]# curl --location-trusted -u root:123456 -T /root/csv-data/test.csv -H "label:test-label" -H "column_separator:," http://node1:8030/api/example_db/stream_load_t1/_stream_load
{
"TxnId": 15016,
"Label": "test-label",
"TwoPhaseCommit": "false",
"Status": "Success",
"Message": "OK",
"NumberTotalRows": 5,
"NumberLoadedRows": 5,
"NumberFilteredRows": 0,
"NumberUnselectedRows": 0,
"LoadBytes": 60,
"LoadTimeMs": 223,
"BeginTxnTimeMs": 2,
"StreamLoadPutTimeMs": 7,
"ReadDataTimeMs": 0,
"WriteDataTimeMs": 125,
"CommitAndPublishTimeMs": 86
}
注意:
4)查看任务
Stream Load 任务执行后,可以查看对应的导入的任务,命令如下,通过该命令可以观察Stream Load 对应的Label 已经存在哪些,目的不是观察任务是否成功,因为Stream Load 本身是同步执行导入并返回导入结果。
mysql> show stream load order by starttime desc limit 1\G;
*************************** 1. row ***************************
Label: test-label
Db: example_db
Table: stream_load_t1
User: root
ClientIp: 192.168.179.4
Status: Success
Message: OK
Url: N/A
TotalRows: 5
LoadedRows: 5
FilteredRows: 0
UnselectedRows: 0
LoadBytes: 60
StartTime: 2023-03-08 15:30:41.209
FinishTime: 2023-03-08 15:30:41.432
1 row in set (0.03 sec)
5)查询Doris 表结果
mysql> select * from stream_load_t1;
+------+------+------+-------+
| id | name | age | score |
+------+------+------+-------+
| 5 | tq | 22 | 500 |
| 1 | zs | 18 | 100 |
| 3 | ww | 20 | 300 |
| 4 | ml | 21 | 400 |
| 2 | ls | 19 | 200 |
+------+------+------+-------+
1)开启BE上的Stream Load记录后,查询不到记录
这是因为拉取速度慢造成的,可以尝试调整下面的参数:
2)用户无法手动取消 Stream Load,Stream Load 在超时或者导入错误后会被系统自动取消。用户无法手动取消 Stream Load,Stream Load 在超时或者导入错误后会被系统自动取消。
3)通过MySQL Client 执行help stream load 命令可以查询Steam Load 更多使用帮助。
4)关于FE配置参数
stream_load_default_timeout_second:导入任务的超时时间(以秒为单位),导入任务在设定的 timeout 时间内未完成则会被系统取消,变成 CANCELLED。默认的 timeout 时间为 600 秒。如果导入的源文件无法在规定时间内完成导入,用户可以在 stream load 请求中设置单独的超时时间。或者调整 FE 的参数stream_load_default_timeout_second 来设置全局的默认超时时间。
5)关于BE配置参数
streaming_load_max_mb:Stream load 的最大导入大小,默认为 10G,单位是 MB。如果用户的原始文件超过这个值,则需要调整 BE 的参数 streaming_load_max_mb。
6)关于Stream Load的更多使用方式,参考官网:STREAM-LOAD - Apache Doris
个人主页:IT贫道_Apache Doris,Kerberos安全认证,随笔-CSDN博客 主页包含各种IT体系技术
订阅:拥抱独家专题,你的订阅将点燃我的创作热情!
点赞:赞同优秀创作,你的点赞是对我创作最大的认可!
⭐️ 收藏:收藏原创博文,让我们一起打造IT界的荣耀与辉煌!
✏️评论:留下心声墨迹,你的评论将是我努力改进的方向!