一、导入说明
数据导入是指将原始数据按照业务需求进行清洗、转换、并加载到 StarRocks 中的过程,从而可以在 StarRocks 系统中进行极速统一的数据分析。
StarRocks 数据导入实现有以下共性特征
1.1 原子性保证
StarRocks 中所有导入方式都提供原子性保证,即每一个导入作业,都是一个完整的事务操作。导入事务可以保证一批次内的数据原子生效,不会出现部分数据写入的情况。
每个导入作业都有一个标签 (Label),由用户指定或系统自动生成,用于标识该导入作业。每个标签在一个数据库内都是唯一的,仅可用于一个成功的导入作业。一个导入作业成功后,其标签不可再用于提交其他导入作业。只有失败的导入作业的标签,才可再用于提交其他导入作业。这一机制可以保证任一标签对应的数据最多被导入一次,即可以在StarRocks侧实现At-Most-Once(至多一次)语义。如果结合上游系统的 At-Least-Once语义,则可以实现导入数据 Exactly-Once语义。
1.2 导入模式
StarRocks 支持两种导入模式:同步导入和异步导入。
1.2.1 同步导入
对于同步导入方式,返回结果即表示导入成功还是失败。支持同步模式的导入方式有 Stream Load 和 INSERT。
用户操作过程如下:
创建导入作业。
查看 StarRocks 返回的导入结果。
判断导入结果。如果导入结果为失败,可以重试导入作业。
-
Stream Load 导入作业的执行流程:

(1)用户发起导入请求,该请求可以直接发往FE,由FE将请求转发给某个BE,由该BE充当协调者的角色,也可以由用户自己在导入请求时指定某个BE为协调者角色,发起导入请求。
ps:如果把导入作业请求发送给 FE,FE 会通过轮询机制选定由哪一个 BE 来接收请求,从而实现 StarRocks 集群内的负载均衡,推荐导入作业的请求直接发送给 FE。

最低0.47元/天 解锁文章
1568

被折叠的 条评论
为什么被折叠?



