Apache Doris (三十五):Doris Stream Load(2)-案例

目录

1. 开启Steam Load记录

​​​​​​​2. 案例

​​​​​​​3. 注意事项


进入正文之前,欢迎订阅专题、对博文点赞、评论、收藏,关注IT贫道,获取高质量博客内容!

宝子们订阅、点赞、收藏不迷路!抓紧订阅专题!


​​​​​​​1. 开启Steam Load记录

后续执行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

​​​​​​​2. 案例

下面以导入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

}

​

注意:

  1. 当前Doris内部保留30分钟内最近成功的label,重启集群后,30分钟前的lable会被删除。
  2. 用户无法手动取消 Stream Load,Stream Load 在超时或者导入错误后会被系统自动取消,取消后,已写入的数据也会回滚,不会生效。

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 |

+------+------+------+-------+

​​​​​​​3. 注意事项

1)开启BE上的Stream Load记录后,查询不到记录

这是因为拉取速度慢造成的,可以尝试调整下面的参数:

  1. 调大 BE 配置 stream_load_record_batch_size,这个配置表示每次从 BE 上最多拉取多少条 Stream load 的记录数,默认值为50条,可以调大到500条。
  2. 调小 FE 的配置 fetch_stream_load_record_interval_second,这个配置表示获取 Stream load 记录间隔,默认每120秒拉取一次,可以调整到60秒。
  3. 如果要保存更多的 Stream load 记录(不建议,占用 FE 更多的资源)可以将 FE 的配置 max_stream_load_record_size 调大,默认是5000条。

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界的荣耀与辉煌!
✏️评论:留下心声墨迹,你的评论将是我努力改进的方向!


你可能感兴趣的:(Apache,Doris,doris,olap,实时数仓,数据仓库,大数据,分布式数据库)