StarRocks导入数据【Stream Load】

介绍将数据导入 StarRocks 的常用方法。

准备工作

  1. 确保已执行 01_prepare_table.sql 创建目标表。
  2. 确保你的 StarRocks FE HTTP 端口是 8030 (Docker 默认)。

导入方式

1. Insert Into

最简单的 SQL 插入,适用于测试或小批量数据。

复制代码
INSERT INTO stream_load_demo VALUES (99, 'Test', '2023-01-01');

2. Stream Load (推荐)

最常用的实时/准实时导入方式,通过 HTTP 协议上传文件。

  • CSV 导入 : 运行 sh 02_stream_load_csv.sh
  • JSON 导入 : 运行 sh 03_stream_load_json.sh

Stream Load 是同步导入,命令返回 Status: Success 即表示数据已可见。

注意事项

  • 生产环境建议使用程序 (Java/Python/Go SDK) 封装 Stream Load。
  • 对于 Kafka 数据源,StarRocks 提供了 Routine Load 功能(配置 SQL 任务即可持续消费 Kafka)。
sql 复制代码
-- Phase 3: 数据导入
-- 01_prepare_table.sql

USE learn_starrocks;

CREATE TABLE IF NOT EXISTS stream_load_demo (
    id INT,
    name VARCHAR(50),
    event_date DATE
)
ENGINE=OLAP
DUPLICATE KEY(id)
DISTRIBUTED BY HASH(id) BUCKETS 3
PROPERTIES (
    "replication_num" = "1"
);
bash 复制代码
#!/bin/bash

# Phase 3: Stream Load (CSV)
# 02_stream_load_csv.sh

# 确保表已创建 (执行 01_prepare_table.sql)

echo "Loading CSV data into stream_load_demo..."

# 参数说明:
# -H "column_separator:," : 指定CSV分隔符
# -H "columns: id, name, event_date" : 指定CSV列对应的表字段顺序
# -T data.csv : 要上传的文件

curl --location-trusted -u root: \
    -H "label:csv_load_$(date +%s)" \
    -H "column_separator:," \
    -H "columns: id, name, event_date" \
    -T data.csv \
    http://127.0.0.1:8030/api/learn_starrocks/stream_load_demo/_stream_load

echo -e "\nDone."
bash 复制代码
#!/bin/bash

# Phase 3: Stream Load (JSON)
# 03_stream_load_json.sh

# 确保表已创建

echo "Loading JSON data into stream_load_demo..."

# 参数说明:
# -H "format: json" : 指定数据格式为 JSON
# -H "jsonpaths: [\"$.id\", \"$.name\", \"$.date\"]" : (可选) 如果JSON Key和表列名不完全一致,需指定映射

curl --location-trusted -u root: \
    -H "label:json_load_$(date +%s)" \
    -H "format: json" \
    -H "strip_outer_array: true" \
    -T data.json \
    http://127.0.0.1:8030/api/learn_starrocks/stream_load_demo/_stream_load

echo -e "\nDone."

CSV:

bash 复制代码
1,Alice,2023-11-01
2,Bob,2023-11-01
3,Charlie,2023-11-02

JSON

bash 复制代码
[
    {"id": 4, "name": "David", "date": "2023-11-03"},
    {"id": 5, "name": "Eve", "date": "2023-11-03"}
]
相关推荐
HackTwoHub5 小时前
AI大模型网关存在SQL注入、附 POC 复现、影响版本LiteLLM 1.81.16~1.83.7(CVE-2026-42208)
数据库·人工智能·sql·网络安全·系统安全·网络攻击模型·安全架构
l1t5 小时前
DeepSeek总结的DuckLake构建基于 SQL 原生表格式的下一代数据湖仓
数据库·sql
KmSH8umpK5 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第八篇
数据库·redis·分布式
TDengine (老段)5 小时前
从施工监测到运营预警,桥科院用 TDengine 提升桥梁数据管理能力
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
S1998_1997111609•X6 小时前
论mysql国盾shell-sfa犯罪行为集团下的分项工程及反向注入原理尐深度纳米算法下的鐌檵鄐鉎行为
网络·数据库·网络协议·百度·开闭原则
KmSH8umpK7 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第七篇
数据库·redis·分布式
BU摆烂会噶8 小时前
【LangGraph】持久化实现的三大能力——时间旅行
数据库·人工智能·python·postgresql·langchain
l1t9 小时前
DeepSeek总结的DuckLake 入门
数据库
Joseph Cooper9 小时前
RAG 与 AI Agent:智能体真的需要检索增强生成吗?
数据库·人工智能·ai·agent·rag·上下文工程
light blue bird9 小时前
主子端台二分法任务汇总组件
前端·数据库·.net·桌面端winform