用途:向 StarRocks 表中导入数据,并根据数据来源、批量大小和时效要求选择合适方式。
主要能力与用法:
- Stream Load:基于 HTTP 的实时导入,适合应用直连、中小批量(资料称小于 10GB)。用 curl 向 FE 的 8030 端口 /api/database/table/_stream_load 提交,可设置 label、column_separator、columns(含表达式与 now())、where,支持 CSV、JSON(format:json、jsonpaths、strip_outer_array)和 Parquet(format:parquet)。结果在 HTTP 响应中同步返回,不用 SHOW LOAD 查询;也可调 get_load_state 端点。
- Broker Load:大批量(资料称大于 10GB)从 S3/HDFS 导入,适合定时 ETL。使用 LOAD LABEL … DATA INFILE … INTO TABLE … WITH BROKER 提供访问密钥和区域,可用 SET 做列转换、PARTITION 指定分区,PROPERTIES 设置 timeout、max_filter_ratio、strict_mode。用 SHOW LOAD 查看状态,CANCEL LOAD 取消。
- Routine Load:从 Kafka 持续消费。CREATE ROUTINE LOAD … ON … FROM KAFKA 指定 broker、topic、分区和消费组,支持 jsonpaths;可用 SHOW ROUTINE LOAD、PAUSE、RESUME、STOP、SHOW ROUTINE LOAD TASK 管理。
- INSERT INTO:库内小批量写入与 ETL 转换,支持 VALUES、INSERT INTO … SELECT 和 INSERT OVERWRITE 覆盖分区。显式 SQL 事务需 v3.5+ 且仅 shared-nothing 集群支持 INSERT;事务内 UPDATE/DELETE 需 v4.0+ shared-data 集群、目标为主键表,且须位于同表 INSERT 之前,每表仅一次。
排查:用 SHOW LOAD … \G 查看 ErrorMsg;常见错误包括过滤行过多、超时、副本不足、列不匹配,可调整 max_filter_ratio、timeout、检查集群或列映射。建议始终设置 label 以便追踪并避免重复。资料还提示相关技能 starrocks-table-design 和 starrocks-etl-and-tasks。
限制:具体版本兼容性、权限要求和集群配置以实际环境为准,资料未提供完整参数说明。