STREAM LOAD
STREAM LOAD 允许您从本地文件系统或流式数据源加载数据。提交加载作业后,系统会同步运行该作业,并在作业完成后返回作业结果。您可以根据作业结果判断作业是否成功。有关 Stream Load 的应用场景、限制和支持的数据文件格式的信息,请参阅通过 Stream Load 从本地文件系统加载。
此示例使用本地气候数据(LCD)数据集,该数据集在StarRocks 基础知识 快速入门中有所介绍。您可以加载数据并自行尝试该示例。
自 v3.2.7 起,Stream Load 支持在传输过程中压缩 JSON 数据,从而降低网络带宽开销。用户可以使用参数 compression 和 Content-Encoding 指定不同的压缩算法。支持的压缩算法包括 GZIP、BZIP2、LZ4_FRAME 和 ZSTD。更多信息,请参阅data_desc。
自 v3.4.0 起,系统支持合并多个 Stream Load 请求。更多信息,请参阅Merge Commit 参数。
- 使用 Stream Load 将数据加载到原生表后,在该表上创建的物化视图的数据也会同步更新。
- 您只能以对目标表拥有 INSERT 权限的用户身份将数据加载到原生表中。如果您没有 INSERT 权限,请按照GRANT中的说明将 INSERT 权限授予您用于连接集群的用户。
语法
curl --location-trusted -u <username>:<password> -XPUT <url>
(
data_desc
)
[opt_properties]
本主题以 curl 为例,介绍如何使用 Stream Load 加载数据。除 curl 外,您还可以使用其他兼容 HTTP 的工具或语言执行 Stream Load。与加载相关的参数包含在 HTTP 请求头字段中。输入这些参数时,请注意以下几点:
-
您可以使用分块传输编码,如本主题所示。如果您不选择分块传输编码,则必须输入
Content-Length头字段以指示要传输的内容长度,从而确保数据完整性。备注如果您使用
curl执行 Stream Load,系统会自动添加Content-Length头字段,您无需手动输入。 -
您必须添加
Expect头字段并将其值指定为100-continue,如"Expect:100-continue"。这有助于在您的作业请求被拒绝时防止不必要的数据传输并减少资源开销。
请注意,在 StarRocks 中,某些字面量被 SQL 语言用作保留关键字。请勿在 SQL 语句中直接使用这些关键字。如果您想在 SQL 语句中使用此类关键字,请将其用反引号(`)括起来。请参阅关键字。
参数
username 和 password
指定您用于连接集群的账户的用户名和密码。这是必填参数。如果您使用未设置密码的账户,则只需输入 <username>:。