news 2026/9/11 4:03:46

Apache Doris Stream Load RESTful 接口实操指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Apache Doris Stream Load RESTful 接口实操指南

Apache Doris Stream Load RESTful 接口实操指南

【免费下载链接】dorisApache Doris is a real-time analytics and hybrid search database for AI agents.项目地址: https://gitcode.com/GitHub_Trending/doris/doris

深夜告警炸了:两百 MB 的 CSV 要灌进业务库,用 MySQL 协议一行一行 INSERT 还没跑完,连接池先耗尽了。这类批量灌数场景就是 Apache Doris Stream Load 干的事儿:它是把整个文件通过一次 HTTP 请求灌进去的 RESTful 接口,下面按动手顺序过一遍。

先选对接口:什么时候用 HTTP

Stream Load 适合数据已经整理成 CSV 或 JSON、需要一次性推送几 MB 到几 GB 的场景。偶发的单条插入用 MySQL 协议更直接,不必硬套。本文只讲批量灌数这条链路。

Stream Load 请求三要素

一个完整请求就三块,缺一个都跑不通。

  • URLhttp://<fe_host>:8030/api/<database>/<table>/_stream_load,FE 的 HTTP 端口默认 8030
  • 方法:PUT,数据直接放在请求体里
  • Header:声明数据格式和认证信息

Header 里高频的就四个参数,记住够用:

  • format:数据格式,csvjson
  • column_separator:字段分隔符,比如,
  • column:指定导入列的顺序,比如id,name
  • label:导入任务标识,可选,不填由服务端生成

最小可运行的 Python 示例:

import requests from requests.auth import HTTPBasicAuth url = 'http://127.0.0.1:8030/api/db0/t_user/_stream_load' headers = { 'Content-Type': 'text/plain; charset=UTF-8', 'format': 'csv', 'column_separator': ',', } data = '1,Tom\n2,Jelly' resp = requests.put(url, headers=headers, data=data, auth=HTTPBasicAuth('root', '')) print(resp.status_code, resp.text)

完整版在 samples/stream_load/python/DorisStreamLoad.py,里面还处理了大文件需要的Expect: 100-continue

读响应:成功看哪、失败看哪

请求返回后,先看Status字段。

  • StatusSuccessNumberLoadedRows符合预期,导入完成
  • NumberFilteredRows大于 0,说明有行解析或校验没通过,跟着响应里的errorURL能定位到具体是哪几行、为什么错
  • Message是给人看的失败原因,Label是本次导入的唯一标识

注意:失败时 HTTP 状态码也可能还是 200,判定逻辑别只写 HTTP code。

Go 还是 Java 还是 Rust SDK:怎么选

按技术栈选,没有标准答案。JVM 技术栈直接参考 Java 示例,面向对象的写法方便在内部服务里包一层连接池和重试;云原生服务用 Go 示例 更顺,goroutine 加 context 管理请求,它同时演示了用column做派生列计算和 JSON 导入;要写高吞吐的独立采集工具,Rust 示例 基于 reqwest 异步客户端,样板代码最少。不想写代码也行,Kettle 里就有 Doris Stream loader 步骤,配上 FE 地址、库表和参数后发的是同一套请求:

Stream Load 排错清单

高频问题四个,按"症状 → 动作"查:

  • 401 认证失败→ 核对用户名密码,再检查 conf/fe.conf 里 HTTP 认证相关的开关
  • 连接超时→ 客户端执行telnet <fe_host> 8030验证端口通不通,不通查防火墙和安全组
  • 列数对不上、FilteredRows 高→ 用column参数对齐字段顺序与表结构,再跟errorURL看失败明细
  • 提示 label 重复→ 同名 label 的任务还在跑或已结束,换一个 label,或等前一个任务收尾

进阶钩子:label 幂等与 TxnId 📌

label自己指定后就是导入的幂等键,同 label 重发不会重复导入,断点续传就靠它;响应里的TxnId是导入事务 ID,拿它可以在服务端跟踪这次导入的进度与状态。更多语言的现成实现都放在 samples/stream_load 目录,对照着改参数就能跑。

【免费下载链接】dorisApache Doris is a real-time analytics and hybrid search database for AI agents.项目地址: https://gitcode.com/GitHub_Trending/doris/doris

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 4:03:27

手写数字识别PyTorch实战:从CNN构建到OpenCV推理全流程

简介&#xff1a;基于Python实现的手写数字识别系统&#xff0c;完整覆盖BP神经网络与卷积神经网络两大主流方案&#xff0c;适合毕业设计、课程实践及机器学习入门者参考学习。项目自带MNIST数据集、9个Python源码文件、训练好的10组神经网络参数及效果图&#xff0c;可直接运…

作者头像 李华
网站建设 2026/9/11 4:03:15

老鼠动作行为图像分类:YOLOv5训练与行为学统计数据集解析

简介&#xff1a;一套面向动物行为分析、实验医学与图像分类任务的老鼠动作识别数据集&#xff0c;包含焦虑、身体抽搐、惊厥、探索移动、伸展肢体、摇头、中度呼吸困难、抓挠、重度呼吸困难、洗脸等10种典型行为类别。数据已按训练集与验证集组织&#xff0c;可直接用于yolov5…

作者头像 李华
网站建设 2026/9/11 4:00:59

10 秒把自己变成AI数字人:Duix.Avatar本地部署新手完整指南

10 秒把自己变成AI数字人&#xff1a;Duix.Avatar本地部署新手完整指南 【免费下载链接】Duix-Avatar &#x1f680; Truly open-source AI avatar(digital human) toolkit for offline video generation and digital human cloning. 项目地址: https://gitcode.com/GitHub_T…

作者头像 李华
网站建设 2026/9/11 4:00:31

军工级Web大文件上传方案:跨浏览器分片与加密传输实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 4:00:20

Spark大数据分析在餐饮行业的实战应用

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华