Doris系列12-数据导入之Broker Load

Doris系列12-数据导入之Broker Load,第1张

Broker load 是一个异步的导入方式,支持的数据源取决于 Broker 进程支持的数据源。

用户需要通过 MySQL 协议 创建 Broker load 导入,并通过查看导入命令检查导入结果。

适用场景:

源数据在 Broker 可以访问的存储系统中,如 HDFS。

数据量在 几十到百GB 级别。

名词解释:

基本原理:

用户在提交导入任务后,FE 会生成对应的 Plan 并根据目前 BE 的个数和文件的大小,将 Plan 分给 多个 BE 执行,每个 BE 执行一部分导入数据。

BE 在执行的过程中会从 Broker 拉取数据,在对数据 transform 之后将数据导入系统。所有 BE 均完成导入,由 FE 最终决定导入是否成功。

语法:

示例:

创建导入的详细语法执行 HELP BROKER LOAD 查看语法帮助。这里主要介绍 Broker load 的创建导入语法中参数意义和注意事项。

导入任务的标识。每个导入任务,都有一个在单 database 内部唯一的 Label。Label 是用户在导入命令中自定义的名称。通过这个 Label,用户可以查看对应导入任务的执行情况。

Label 的另一个作用,是防止用户重复导入相同的数据。强烈推荐用户同一批次数据使用相同的label。这样同一批次数据的重复请求只会被接受一次,保证了 At-Most-Once 语义

当 Label 对应的导入作业状态为 CANCELLED 时,可以再次使用该 Label 提交导入作业。

数据描述类参数主要指的是 Broker load 创建导入语句中的属于 data_desc 部分的参数。每组 data_desc 主要表述了本次导入涉及到的数据源地址,ETL 函数,目标表及分区等信息。

下面主要对数据描述类的部分参数详细解释:

导入作业参数主要指的是 Broker load 创建导入语句中的属于 opt_properties部分的参数。导入作业参数是作用于整个导入作业的。

下面主要对导入作业参数的部分参数详细解释:

这里以列类型为 TinyInt 来举例:

这里以列类型为 Decimal(1,0) 举例:

Broker load 导入方式由于是异步的,所以用户必须将创建导入的 Label 记录,并且在查看导入命令中使用 Label 来查看导入结果。查看导入命令在所有导入方式中是通用的,具体语法可执行 HELP SHOW LOAD 查看。

示例:

下面主要介绍了查看导入命令返回结果集中参数意义:

当 Broker load 作业状态不为 CANCELLED 或 FINISHED 时,可以被用户手动取消。取消时需要指定待取消导入任务的 Label 。取消导入命令语法可执行 HELP CANCEL LOAD查看。

下面几个配置属于 Broker load 的系统级别配置,也就是作用于所有 Broker load 导入任务的配置。主要通过修改 feconf来调整配置值。

min_bytes_per_broker_scanner/max_bytes_per_broker_scanner/max_broker_concurrency

前两个配置限制了单个 BE 处理的数据量的最小和最大值。第三个配置限制了一个作业的最大的导入并发数。最小处理的数据量,最大并发数,源文件的大小和当前集群 BE 的个数 共同决定了本次导入的并发数。

通常一个导入作业支持的最大数据量为 max_bytes_per_broker_scanner BE 节点数。如果需要导入更大数据量,则需要适当调整 max_bytes_per_broker_scanner 参数的大小。

默认配置:

doris端创建表

准备load 命令

查看导入的进度

等待执行完成:

doris端创建表

准备load 命令

查看导入的进度

Stream load 是一个同步的导入方式,用户通过发送 HTTP 协议发送请求将本地文件或数据流导入到 Doris 中。Stream load 同步执行导入并返回导入结果。用户可直接通过请求的返回体判断本次导入是否成功。

Stream load 主要适用于导入本地文件,或通过程序导入数据流中的数据。

下图展示了 Stream load 的主要流程,省略了一些导入细节。

Stream load 中,Doris 会选定一个节点作为 Coordinator 节点。该节点负责接数据并分发数据到其他数据节点。

用户通过 HTTP 协议提交导入命令。如果提交到 FE,则 FE 会通过 HTTP redirect 指令将请求转发给某一个 BE。用户也可以直接提交导入命令给某一指定 BE。

导入的最终结果由 Coordinator BE 返回给用户。

目前 Stream Load 支持两个数据格式:CSV(文本) 和 JSON

Stream load 通过 HTTP 协议提交和传输数据。这里通过 curl 命令展示如何提交导入。

用户也可以通过其他 HTTP client 进行操作。

示例:

user/passwd

Stream load 由于创建导入的协议使用的是 HTTP 协议,通过 Basic access authentication 进行签名。Doris 系统会根据签名验证用户身份和导入权限。

Stream load 由于使用的是 HTTP 协议,所以所有导入任务有关的参数均设置在 Header 中。下面主要介绍了 Stream load 导入任务参数的部分参数意义。

这里以列类型为 TinyInt 来举例:

(注:当表中的列允许导入空值时)

这里以列类型为 Decimal(1,0) 举例:

(注:当表中的列允许导入空值时)

注意:

10 虽然是一个超过范围的值,但是因为其类型符合 decimal的要求,所以 strict mode对其不产生影响。10 最后会在其他 ETL 处理流程中被过滤。但不会被 strict mode 过滤。

由于 Stream load 是一种同步的导入方式,所以导入的结果会通过创建导入的返回值直接返回给用户。

示例:

下面主要解释了 Stream load 导入结果参数:

用户无法手动取消 Stream load,Stream load 在超时或者导入错误后会被系统自动取消。

stream_load_default_timeout_second

导入任务的超时时间(以秒为单位),导入任务在设定的 timeout 时间内未完成则会被系统取消,变成 CANCELLED。

默认的 timeout 时间为 600 秒。如果导入的源文件无法在规定时间内完成导入,用户可以在 stream load 请求中设置单独的超时时间。

或者调整 FE 的参数stream_load_default_timeout_second 来设置全局的默认超时时间。

streaming_load_max_mb

Stream load 的最大导入大小,默认为 10G,单位是 MB。如果用户的原始文件超过这个值,则需要调整 BE 的参数 streaming_load_max_mb。

示例1:

以 "table1_20211207" 为 Label,使用本地文件 table1_data 导入 table1 表。

本地文件 table1_data 以 , 作为数据之间的分隔,具体内容如下:

最终导入命令:

示例2:

以 "table2_20211207" 为 Label,使用本地文件 table2_data 导入 table2 表。

本地文件 table2_data 以 | 作为数据之间的分隔,具体内容如下:

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/meirong/2377181.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-11-29
下一篇2023-11-29

随机推荐

  • 妮维雅小蓝罐好用吗 妮维雅小蓝罐的4种用法

    妮维雅小蓝罐是一款非常经典的面霜,久经不衰,这款面霜非常的平价,50元不到,好大一罐,可以用很久,而且这个面霜的用法很多,可以护手,可以当身体乳还可以当宝宝霜。妮维雅小蓝罐好用吗妮维雅的这款面霜应该是平价面霜届的网红了。红也红了很多

    2024-04-15
    25700
  • 润唇膏哪个牌子好?

    迪奥变色唇膏,科颜氏润唇膏,欧舒丹经典乳木果润唇膏。祖马龙 Jo Malone VE润唇膏,CHICCA 保湿润唇精华都很好。1、迪奥变色唇膏这款今年除了很多颜色,但是最百搭的还是001和004色,它很滋润,能够根据体温而变色,极致润泽,质

    2024-04-15
    23900
  • 25岁抗初老护肤品套装推荐

    欧莱雅复颜视黄醇精粹抗皱紧致水乳、资生堂悦薇珀翡紧颜亮肤水乳、兰蔻小黑瓶全新肌底精华液1、欧莱雅复颜视黄醇精粹抗皱紧致水乳:补水,保湿,提拉紧致,抗皱。适用任何肤质,柔肤水是乳白色液体质地,带有一点点粘稠感,保湿效果好;乳液是乳白色液体质地

    2024-04-15
    19100
  • 黛莱皙护肤品怎么样

    黛西护肤品品牌整体不错,有一定性价比。黛西是国内护肤品牌,隶属于上海黛西生物科技有限公司,这个品牌是名副其实的网络名人品牌。它通过网络名人和名人本身的影响力来吸引用户,选择的代言人都是高国民但年龄偏大,明显针对中年消费者。作为网络名人的产品

    2024-04-15
    16500
  • 伊思红参蜗牛霜怎么用,伊思红参蜗牛霜使用方法

    its skin伊思红参蜗牛霜是目前市场非常受欢迎的产品这一,虽然说通常面霜在使用上面并没有什么太需要注意的,不过品牌的不同也会有一些细节上的差别,以下我将为大家说明its skin伊思红参蜗牛霜的用法。伊思红参蜗牛霜怎么用1、彻底

    2024-04-15
    10500
  • 护肤品中啫喱 凝露 精华露是什么意思 分别是什么作用 它们的使用步骤是怎么样?

    1、啫喱都是渗透性非常好的产品,它可以有效打开肌肤毛孔通道促进后续护肤产品的吸收,同时啫喱成分本身也能帮助皮肤增加含氧量和含水量,通常啫喱产品都可以直达皮肤的深层,帮助皮肤捕捉氧气,锁住水分。有些含有特殊成分的啫喱,能有效去除表皮老化角质,

    2024-04-15
    17000
  • spa流程怎么做

    SPA是希腊语SOLUSPARAQUA的缩写,意为健康在水中,是指人们利用天然的水资源结合沐浴、按摩和香薰中促进新陈代谢,满足人体视觉、味觉、触觉、嗅觉和思考,达到一种身心从航快的享受。随伊姿贝尔小编一起走进曼妙,芬芳的SPA护理,看看身体

    2024-04-15
    9700

发表评论

登录后才能评论
保存