第3.3章:StarRocks数据导入——Stream Load

一、概述

     Stream Load是StarRocks最为核心的导入方式,用户通过发送HTTP请求将本地文件或数据流导入至StarRocks中,其本身不依赖其他组件。 Stream Load支持csv和json两种数据文件格式,适用于数据文件数量较少且单个文件的大小不超过10GB 的场景。Stream Load支持在导入过程中做数据转换、以及通过 upsert和delete 操作实现数据变更。

   ps:StarRocks的主要导入方式例如Routine Load、Broker Load、DataX StarRocksWriter等,底层实现都是基于Stream Load的思想。

    Stream Load作是一种同步导入方式,可以直接通过请求的返回值判断导入是否成功,无法手动取消Stream Load任务,在超时或者导入错误后会被系统自动取消。

 官网文章地址:

从本地文件系统导入 | StarRocks

STREAM LOAD | StarRocks

二、 Stream Load原理

2.1 流程图

    Stream Load本质上是一个HTTP的PUT请求 ,执行流程如下:

2.2 流程详解

(1)用户发起导入请求,该请求可以直接发往FE,由FE将请求转发给某个BE,由该BE充当协调者的角色,也可以由用户自己在导入请求时指定某个BE为协调者角色,发起导入请求。

   ps:如果把导入作业请求发送给 FE,FE 会通过轮询机制选定由哪一个 BE 来接收请求,从而实现 StarRocks 集群内的负载均衡,推荐导入作业的请求直接发送给 FE。

(2)协调者在收到导入请求后,会把数据分发到其他BE数据节点,当集群内一份数据有两个数据节点完成数据写入后,就标志着这次导入事务成功,剩余的一份数据会由剩下的节点从这两个副本中去同步数据。

(3)导入数据成功后,协调者会将导入任务的状态返回给用户。

2.3 注意事项

(1)请求直接发往FE时,FE 会通过 HTTP 重定向 (Redirect) 指令将请求转发给某一个 BE。需要注意重定向过程中,可能会由于网络波动问题造成导入任务的失败。

(2) Stream Load导入作业的系统参数配置:

streaming_load_max_mb:代表单个源数据文件的大小上限,默认文件大小上限为 10 GB

  建议一次导入的数据量不要超过 10 GB,否则失败重试的代价过大。源文件较大,可以拆分为多个Stream Load任务并行的方式(手动指定不同的协调者BE)来提高Stream Load导入任务的导入性能。如果确实无法拆分,可以适当调大该参数的取值,从而提高数据文件的大小上限。

   ps :如果调大该参数的取值,需要重启 BE 才能生效,系统性能可能会受影响,失败重试时的代价也会增加。

2.4 应用案例

   Stream Load导入案例见文章:

第3.2章:StarRocks数据导入--Stream Load_starrocks stream load-CSDN博客

从本地文件系统导入 | StarRocks

   ps:Stream Load支持在导入过程中进行字段顺序调整或者进行简单的数据转换的,处理逻辑:“顺序占位取值”和“名称匹配数据”,该逻辑贯穿整个StarRocks的导入操作中(Broker Load等其他导入方式也是基于这种处理逻辑)

参考文章:

第3.2章:StarRocks数据导入--Stream Load_starrocks stream load-CSDN博客

从本地文件系统导入 | StarRocks

如何基于 Apache Doris 构建简易高效的用户行为分析平台?|解决方案

Apache Doris 2.0 如何实现导入性能提升 2-8 倍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/699503.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

v-rep插件

v-rep官网插件汉化教程 官网教程 插件是什么 插件本质上就是遵循一定规范的API编写出来的程序,在v-rep中最终需要编译为动态库。 linux下是libsimXXXX.so; 其中XXXX是插件的名称。 请至少使用4个字符,并且不要使用下划线,因为…

kafka生产者2

1.数据可靠 • 0:生产者发送过来的数据,不需要等数据落盘应答。 风险:leader挂了之后,follower还没有收到消息。。。。 • 1:生产者发送过来的数据,Leader收到数据后应答。 风险:leader应答…

【机器学习】数据清洗——基于Numpy库的方法删除重复点

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:机器学习 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进…

解锁网络潜能:深入探索SCTP及其在现代通信中的革命性作用

第一部分:SCTP简介 流控制传输协议(SCTP)是一种传输层协议,设计用于支持Internet上的多路径消息传输。它结合了TCP的可靠性和UDP的简洁性,提供了多种高级特性,如多宿(multi-homing)…

解释Iterable和Iterator接口

在Java中,Iterable和Iterator是两个重要的接口,它们在集合框架中扮演着核心的角色,尤其是在遍历集合元素的时候。 Iterable接口 Iterable接口是Java Collections Framework的一部分,位于java.lang包中。任何实现了Iterable接口的…

PostgreSQL索引篇 | BTree

B-Tree索引 (本文为《PostgreSQL数据库内核分析》一书的总结笔记,需要电子版的可私信我) B树特点: 非叶子节点含一个或多个关键字值和子节点指针,不指向实际数据的存储位置所有关键字都是叶子节点,每个叶…

Python运算符你学会了吗?

1.算术运算符 (加)、-(减)、*(乘)、/(除)、%(取余)、//(取整)、**(求幂) a 12 b 3 c 7print(a b) # 15 …

关于Kinect 互动沙盘 深度图 Shader Graph 分层

把Kinect的深度图穿给Shader Graph using com.rfilkov.kinect; using UnityEngine; using UnityEngine.UI; public class GetDepthTex : MonoBehaviour { public Material Mat_SandTable; void Update() { Mat_SandTable.SetTexture("_MainTex"…

【openGL教程08】关于着色器(02)

LearnOpenGL - Shaders 一、说明 着色器是openGL渲染的重要内容,客户如果想自我实现渲染灵活性,可以用着色器进行编程,这种程序小脚本被传送到GPU的显卡内部,起到动态灵活的着色作用。 二、着色器简述 正如“Hello Triangle”一章…

【寸铁的刷题笔记】树、dfs、bfs、回溯、递归(二)

【寸铁的刷题笔记】树、dfs、bfs、回溯、递归(二) 大家好 我是寸铁👊 金三银四,树、dfs、bfs、回溯、递归是必考的知识点✨ 快跟着寸铁刷起来!面试顺利上岸👋 喜欢的小伙伴可以点点关注 💝 上期回顾 感谢大家的支持&am…

简单的单层感知机(Perceptron)模型

[‘您需要实现一个简单的单层感知机(Perceptron)模型,并提供对其训练方法的实现。单层感知机是一种基础的线性二分类器,它对输入向量进行权值组合,然后通过激活函数(通常是一个符号函数)来决定该…

[附完整代码]群智能算法跑21种真实世界优化问题,并输出结果到excel||群智能算法跑CEC 2020真实世界优化问题,并输出结果到excel

1、简介 灰狼算法跑跑21种真实世界优化问题|足球训练队优化算法跑21种真实世界优化问题||牛顿拉夫逊算法跑21种真实世界优化问题||冠状豪猪CPO跑21种真实世界优化问题。 ‘FTTA’,‘BWO’, ‘CPO’, ‘FHO’, ‘GWO’, ‘HHO’, ‘NRBO’,‘SCA’,‘SGA’,WOA’跑21种真实世…

拓扑矩阵是四维协变量吗?

* 现在需要明确,拓扑矩阵的维度高于链表数据,那么用矩阵就可以控制链表数据,用矩阵表来 * 做循环,四维循环相当于三维向量的矢量运动嘛?我们在矩阵上面做计算也可以启动链表的运 * 动控制模型。。 * * 四维算法中应…

Linux:ACL权限,特殊位和隐藏属性

目录 一.什么是ACL 二.操作步骤 ① 添加测试目录、用户、组,并将用户添加到组 ② 修改目录的所有者和所属组 ③ 设定权限 ④ 为临时用户分配权限 ⑤ 验证acl权限 ⑥ 控制组的acl权限 三. 删除ACL权限 一.什么是ACL 访问控制列表 (Access Control List):ACL 通…

笔记本Win 10系统查看电池健康状况

博主最近换了个笔记本电池,之前的电池容量明显变小了很多,而且出现了轻微鼓包的情况。所以用gpt问了一下怎么用系统的方法查看电池情况。 在Windows 10系统中,您可以通过以下步骤来查看笔记本电脑电池的健康状况: 打开命令提示符&…

docker 带端口映射启动是报错

一、现象 docker端口映射或启动容器时报错 Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 二 、原因: docker服务启动时定义的自定义链DOCKER由于 centos7 firewall 被清掉 firewall的底层是使用iptables进行数据…

react + typescript 中 typeof的作用

在 TypeScript 中,使用 typeof 关键字可以获取一个变量或对象的类型。当你用 typeof 和一个组件(无论是类组件还是函数组件)一起使用时,你实际上是在获取这个组件的类型。 在 React 中,组件的类型不仅仅包括它的 prop…

CondaValueError: Malformed version string ‘~‘: invalid character(s)

使用conda 安装一些库时出现以下报错: CondaValueError: Malformed version string ~: invalid character(s)尝试进行更新conda conda upgrade -n base conda或者如果是环境方面的问题, conda upgrade -n base -c defaults --override-channels conda如…

记录 使用FFMPEG 笔记本摄像头推流

一、使用 FFMPEG 测试摄像头拉流显示 # 获取摄像头名称 ffmpeg -list_devices true -f dshow -i dummy# 我笔记本上的摄像头名称如下 device_pnp_\\?\usb#vid_0408&pid_1020&mi_00#6&199e90f7&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global# 使…

重温MySQL

mysql 是什么 mysql 就是一个软件,专门用来管理文件的软件 关系型数据库:采用二维表结构组织和管理数据,并且规定了表和表间数据的关系. 表是由行和列构成,列包含一组命名的属性(也称字段),行包含一条记录.行和列的交集称为数据项 (也称字段值). 如何操作数据库 那就是用sq…