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"}
]
相关推荐
藦卡机器人5 小时前
国产机械臂做的比较好的品牌有哪些?
大数据·数据库·人工智能
jiunian_cn5 小时前
【Redis】数据库管理操作
数据库·redis·缓存
_Johnny_6 小时前
ETCD 配额/空间告警模拟方案
网络·数据库·etcd
猫头虎6 小时前
基于信创openEuler系统安装部署OpenTeleDB开源数据库的实战教程
数据库·redis·sql·mysql·开源·nosql·database
爬山算法6 小时前
MongoDB(1)什么是MongoDB?
数据库·mongodb
Nandeska6 小时前
17、MySQL InnoDB ReplicaSet
数据库·mysql
AI_56786 小时前
SQL性能优化全景指南:从量子执行计划到自适应索引的终极实践
数据库·人工智能·学习·adb
数据知道6 小时前
PostgreSQL 性能优化:分区表实战
数据库·postgresql·性能优化
静听山水7 小时前
StarRocks表模型详解
数据库