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"}
]
相关推荐
鲸采云SRM采购管理系统几秒前
采购管理系统哪家好?2026最新测评对比
java·服务器·数据库
cfm_29143 分钟前
基于Binlog实现不停机数据库平滑迁移技术
运维·数据库·架构
Full Stack Developme4 分钟前
SQL 注入 的历史及设计工作原理
数据库·sql
Tisfy6 分钟前
Codex:通过编辑配置文件添加带Bearer的自定义MCP
数据库·大模型·agent·codex·mcp
哈__37 分钟前
面向AI智能体的数据库专业技能包:将DBA工程经验封装为可调用能力
数据库·人工智能·dba
阿坤带你走近大数据39 分钟前
SQL里where后面的1=1是干嘛的,走的是什么索引
数据库·sql
阿坤带你走近大数据40 分钟前
SQL的执行顺序和书写顺序的介绍
数据库·sql·oracle
Poo_Chai1 小时前
QT emit信号后完整处理流程,包括槽函数响应流程
java·开发语言·数据库
这个DBA有点耶2 小时前
从DBA到数据架构师(五):数据架构演进中的技术债务管理
数据库·程序人生·云原生·架构·dba·数据库管理员
Bruce_Liuxiaowei3 小时前
基于微步在线威胁情报的公网 IP 攻击迹象监测:threatbook_query 脚本全解析与 BruceSec 平台整合实践
数据库·tcp/ip·安全·网络安全·智能体