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"}
]
相关推荐
哈__25 分钟前
从 MySQL 到在线表格:NocoDB 自托管部署、数据导入与远程访问
数据库·mysql
倔强的石头1061 小时前
高可用与无感扩容——分布式时序数据库选型指南
数据库·分布式·时序数据库
袋鼠云数栈10 小时前
实时湖仓如何真正做到“数据够新”?
大数据·数据库·人工智能·数据治理
ACP广源盛1392462567310 小时前
M6/M5 Pro Mac mini 端侧 AI 落地@ACP#YLB3116 中端多盘存储扩展在 AI 服务中的机会与应用场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos
ACP广源盛1392462567310 小时前
M6/M5 Pro Mac mini 端侧 AI 新形态@ACP#GSV5800 Serdes 长距离视频传输在 AI 服务中的机会与落地场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos·音视频
倔强的石头_12 小时前
事务边界与批量写入:避免长事务、锁等待和日志压力
数据库
努力努力再努力wz12 小时前
【Redis入门系列】从 KEYS 到 SCAN:渐进式遍历、Cursor 与位反转原理
数据库·redis·缓存
坐吃山猪13 小时前
【多线程】Lock与Condition
大数据·数据库
Lightpwd14 小时前
Spring Boot 多数据源落地:AbstractRoutingDataSource + 注解切面(附源码)
数据库·后端
LabVIEW开发14 小时前
LabVIEW 64位安装的位深陷阱:工具包、内存与工程兼容
数据库·labview·labview知识·labview功能·labview程序