StarRocks使用 - Stream Load or Broker Load

本文介绍了StarRocks的两种数据导入方式:Stream Load和Broker Load。Stream Load是同步的,适合小到中型数据量导入,而Broker Load是异步的,适用于大规模数据导入。两者在内存管理和数据处理上有区别,优化策略包括文件切分和并行度调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Stream Load与Broker Load简介

StarRocks的导入(Load)功能就是将用户的原始数据导入到 StarRocks表中。StarRocks底层实现了统一的流式导入框架,而在这个框架之上,StarRocks提供了非常丰富的导入方式以适应不同的数据源和数据导入需求。Stream Load和Broker Load是其中经常使用的两种。

Stream Load是一种同步执行的导入方式。用户通过HTTP协议发送请求将本地文件或者数据流中的数据导入到StarRocks中,并等待系统返回导入的结果状态,从而判断导入是否成功。

Broker Load通过Broker进程访问并读取外部数据源,采用MySQL协议向StarRocks创建导入作业。提交的作业将异步执行,用户可以通过SHOW LOAD命令查看导入结果。

Stream Load or Broker Load 

Broker load 在底层数据处理上跟 Stream Load 一样,只是调度上有些不同。 Stream Load是同步导入方式,用户通过Http访问的方式将CSV格式或JSON格式的数据批量地导入StarRocks,并返回数据导入的结果。这种方式会把数据缓存到内存中。Broker Load是异步方式导入,除CSV/Json外,还支持Parquet/ORC,Broker load顺序读取文件,不需要一下子把数据全部缓存在内存中。对于CSV文件Broker可以自动对文件进行切分,对于ORC/Parquet文件则一个文件由一个Broker进行读取。

Stream Load

### Doris 数据库中 Load 功能的使用方法 Doris 是一种高性能分布式数据库,支持多种数据加载方式来满足不同的业务需求。以下是关于 Doris 中 `Load` 功能的核心知识点以及常见问题解决方案。 #### 支持的数据加载方式 Doris 提供了多种数据加载的方式,主要包括以下几种: 1. **Broker Load**: 这是一种异步批量加载方式,适用于大规模离线数据导入场景。它通过 Broker 来管理文件读取过程,适合 HDFS 或其他外部存储系统的数据加载[^1]。 2. **Stream Load**: Stream Load 是一种同步的小规模数据加载方式,通常用于实时流式数据的导入。它可以处理来自标准输入流或 HTTP 请求中的数据,并立即返回执行状态[^3]。 3. **Routine Load**: Routine Load 可以看作是一个持续运行的任务,能够自动从 Kafka 等消息队列中拉取消息并将其写入到 Doris 表中。这种方式非常适合于日志类数据或者需要高吞吐量的场景。 4. **Insert Into**: 对于少量记录的操作可以直接采用 SQL 的形式完成插入操作 (INSERT INTO ... VALUES ...) 。不过需要注意的是此方法效率较低,在大批量数据迁移时不推荐使用。 #### 配置环境准备 为了成功实现上述任何一种类型的 LOAD 操作前都需要做好相应的准备工作: - 创建必要的目录结构以便保存元信息配置文件等资料, 如命令所示: ```bash sudo mkdir -p /usr/local/mydata/doris/fe/conf sudo mkdir -p /usr/local/mydata/doris/be/conf ``` 这些路径可用于存放 Frontend 和 Backend 节点的相关设置文档以及其他辅助资源文件. 另外如果涉及到容器化部署则可能还需要额外考虑镜像构建与分发等问题比如利用 docker-compose 文件定义服务依赖关系并通过如下指令引入自定义制作好的镜像包:`docker load -i kube-state-metrics_v2.5.0.tar`[^2]. #### 性能调优建议 当面对较大规模的数据集时可能会遇到性能瓶颈因此有必要针对具体情况进行适当调整优化措施包括但不限于以下几个方面: - 合理规划分区策略减少单节点压力提升查询速度; - 增加副本数量提高容错能力同时兼顾成本控制; - 根据实际负载动态扩展集群规模适应不断增长的需求变化趋势. 以上提到的内容均可以在官方文档 Performance Tuning Overview 下找到更详细的描述说明. #### 解决相关问题的方法论 对于常见的错误提示可以尝试按照下面思路排查修复: - 如果发现任务长时间处于 pending 状态可能是由于资源配置不足造成的应检查当前可用计算资源状况及时补充缺失部分. - 当出现 duplicate key conflict 错误时表示存在重复主键违反唯一约束规则需确认源端是否存在脏数据并对齐目标表设计规范后再重新提交请求. - 若网络传输过程中断开连接可查看双方防火墙规则确保允许相应端口通讯正常工作. ```sql -- Example of a simple broker load statement LOAD LABEL example_db.label_name ( DATA INFILE("hdfs://namenode:8020/user/example/input/file.csv") INTO TABLE table_name COLUMNS TERMINATED BY "," FORMAT AS "csv" ); ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值