StarRocks kafka异步导入数据

StarRocks支持从Kafka的数据导入,如CSV、JSON和Avro,CSV中空值用N表示。导入具有原子性保证,提供MySQL和HTTP协议提交作业。异步导入包括BrokerLoad、RoutineLoad和SparkLoad,涉及PENDING、ETL、LOADING、FINISHED和CANCELLED等阶段。RoutineLoad作业由FE拆分并分配给BE执行,确保数据处理。
在这里插入代码片

StarRocks之系统架构 - 墨天轮 (modb.pro) 
StarRocks的系统架构

1、 https://docs.starrocks.io/en-us/3.0/loading/RoutineLoad

2、支持的数据
Routine Load 现在支持使用来自 Kafka 集群的 CSV、JSON 和 Avro(自 v3.0.1 起支持)格式的数据。
笔记
对于 CSV 数据,请注意以下几点:
您可以使用长度不超过 50 个字节的 UTF-8 字符串作为文本分隔符,例如逗号(,)、制表符或竖线(|)。
空值用 表示 \N 。例如,数据文件由三列组成,该数据文件中的记录在第一列和第三列中保存数据,但在第二列中没有数据。在这种情况下,您需要 \N 在第二列中使用空值来表示。这意味着记录必须编译为 a,\N,b 而非 a,b .  a,b 表示记录的第二列包含空字符串。

2、导入数据
 https://docs.starrocks.io/zh-cn/3.0/loading/Loading_intro#%E5%AF%BC%E5%85%A5%E6%96%B9%E5%BC%8F

每个导入左右都有一个标签。
标识该导入作业;
每个标签在一个数据库内是唯一的;
仅用于一个成功的导入作业;
只有失败的导入作业的标签,才可再用于提交其他导入作业。
这一机制可以保证数据至多被导入一次。

StarRocks 中所有导入方式都提供原子性保证,即同一个导入作业内的所有有效数据要么全部生效,要么全部不生效,不会出现仅导入部分数据的情况。这里的有效数据不包括由于类型转换错误等数据质量问题而被过滤掉的数据。

StarRocks 提供两种访问协议用于提交导入作业:MySQL 协议和 HTTP 协议。不同的导入方式支持的访问协议有所不同,具体请参见本文“ 导入方式 ”章节。

导入模式:
1.同步导入
2.异步导入

同步导入可以看网站上的内容。
这里讲讲异步导入的:

支持异步模式的导入方式有Broker Load、Routine Load和Spark Load。

每个阶段的描述如下:
PENDING
该阶段是指提交导入作业后,等待 FE 调度执行。
ETL
该阶段执行数据的预处理,包括清洗、分区、排序、聚合等。
LOADING
该阶段先对数据进行清洗和转换,然后将数据发送给 BE 处理。当数据全部导入后,进入等待生效过程,此时,导入作业的状态依旧是 LOADING。
FINISHED
在导入作业涉及的所有数据均生效后,作业的状态变成 FINISHED,此时,导入的数据均可查询。FINISHED 是导入作业的最终状态。
CANCELLED
在导入作业的状态变为 FINISHED 之前,您可以随时取消作业。另外,如果导入出现错误,StarRocks 系统也会自动取消导入作业。作业取消后,进入 CANCELLED 状态。CANCELLED 也是导入作业的一种最终状态。

说明
如果是 Broker Load 作业,该阶段会直接完成。

Routine Load 导入作业的执行流程描述如下:
用户通过支持 MySQL 协议的客户端向 FE 提交一个导入作业。
FE 将该导入作业拆分成若干个任务,每个任务负责导入若干个分区的数据。
FE 将各个任务分配到指定的 BE 上执行。
BE 完成分配的任务后,向 FE 汇报。
FE 根据汇报结果,继续生成后续新的任务,或者对失败的任务进行重试,或者暂停任务的调度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值