ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Doris 数据导入怎么用最省心:Stream Load RESTful API 速查与多语言 SDK 选型

Doris 数据导入怎么用最省心:Stream Load RESTful API 速查与多语言 SDK 选型 Doris 数据导入怎么用最省心Stream Load RESTful API 速查与多语言 SDK 选型【免费下载链接】dorisApache Doris is a real-time analytics and hybrid search database for AI agents.项目地址: https://gitcode.com/GitHub_Trending/doris/doris应用要往 Apache Doris 实时写一批数据走哪条通道最省事多数实时写入场景Stream Load 绕不开一次 HTTP 请求数据直接进表。这里把 Doris 数据导入里 Stream Load 的请求怎么构造、响应怎么判读、各语言 SDK 怎么选讲清楚末尾再附一份排障清单够你直接搭起一条批量导入链路。Doris 批量导入的通道不止一条Kettle 这类 ETL 工具算其中一条本文聚焦更通用的 Stream Load。Stream Load 请求速查接口要素一张表Stream Load 本质是发给 Doris RESTful API 的一个 PUT 请求请求头描述数据长什么样请求体就是数据本身。把下面几个要素先对齐绝大多数报错都不会出现。要素取值为什么需要它HTTP 方法PUTStream Load 固定用 PUT 提交数据体GET/POST 会被直接拒绝请求端点http://fe_host:fe_http_port/api/db/table/_stream_load定位到具体库表端口取 FE 的http_port默认 8030Content-Typetext/plain声明请求体是原始文本别拿 application/json 去传裸数据formatcsv、json等告诉 Doris 按哪种格式解析请求体column_separator默认逗号,指定字段分隔符必须和 format 配套AuthorizationBasic base64(用户名:密码)走 Basic 认证校验调用方身份label自定义字符串可选标记一次导入重试时用它保幂等、防重复写Expect100-continue先让服务端确认愿意接收再放行请求体一段最小可跑的请求十行以内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, format: csv, column_separator: ,} resp requests.put(url, headersheaders, data1,Tom\n2,Jelly, authHTTPBasicAuth(root, )) print(resp.status_code, resp.text)Stream Load 响应字段判读数据发出去后返回的 JSON 才是真结果。判成败别只看 HTTP 状态码——HTTP 200 只代表 BE 收到了请求Status字段才是关键。字段含义Status导入结果。Success才算成功Label Already Exists说明 label 撞车得换一个NumberLoadedRows真正写进表的行数应等于你提交的数据行数NumberTotalRows请求体里的总行数用来核对有没有丢行NumberFilteredRows被过滤掉的行数大于 0 就去读 Message 里的具体报错LoadTimeMs服务端处理耗时用来粗估单次导入性能Label本次导入标识记下来便于排查和重试一句话判据Status是Success且NumberLoadedRows等于NumberTotalRows这次 Doris 数据加载才算干净落表。多语言 SDK 选型表Go、Java、Rust 怎么选官方仓库 samples/stream_load/ 目录里每种语言都放了一份能直接跑的示例思路一致差别只在依赖和写法按团队技术栈挑一个抄就行。语言示例文件路径适合场景Pythonsamples/stream_load/python/DorisStreamLoad.py脚本、运维快速验证依赖最轻Gosamples/stream_load/go/doris_stream_load.go服务侧高并发写入用标准库 net/http 直发Javasamples/stream_load/java/DorisStreamLoad.javaJava 企业栈用 Apache HttpClient 封装成可复用方法Rustsamples/stream_load/rust/src/doris_stream_load.rs高性能数据处理用 reqwest 异步发送Doris 数据导入踩坑清单跑通之后真正花时间的是这三类报错。现象、原因、处理一次列全排障时对着查就行。现象原因处理返回 401/403认证失败账号密码错或 FE 开了 HTTP 认证而请求没带对 Authorization核对账号密码确认请求带了 Basic 头查 conf/fe.conf 里 HTTP 认证相关配置连接超时、连不上 FEFE 的 HTTP 端口默认 8030没开放或被防火墙拦截用telnet fe_host 8030测连通性放通端口或换到可达节点Status 报错、字段对不上每行字段数与表结构不一致或分隔符不匹配用columns头指定导入列顺序确认format与column_separator和数据一致先拿 samples/stream_load 里对应语言的示例把账号、库表、端口换成自己的环境跑一遍。再盯着响应里的Status和NumberLoadedRows调字段基本就能跑通。【免费下载链接】dorisApache Doris is a real-time analytics and hybrid search database for AI agents.项目地址: https://gitcode.com/GitHub_Trending/doris/doris创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表