当前位置: 首页 > news >正文

StarRocks导入数据:从本地文件导入数据(Stream Load)

STREAM LOAD 允许您从本地文件系统或流式数据源导入数据。提交导入作业后系统会同步运行该作业并在作业完成后返回作业结果。您可以根据作业结果判断作业是否成功。有关 Stream Load 的应用场景、限制和支持的数据文件格式的信息请参阅通过 Stream Load 从本地文件系统导入数据。语法curl --location-trusted -u username:password -XPUT url ( data_desc ) [opt_properties]用户名和密码指定用于连接集群的账户的用户名和密码。这是一个必需参数。如果您使用的账户未设置密码则只需输入username:XPUT指定 HTTP 请求方法。这是一个必需参数。Stream Load 仅支持 PUT 方法。urlhttp://fe_host:fe_http_port/api/database_name/table_name/_stream_load参数是否必填描述fe_host是集群中 FE 节点的 IP 地址。注意如果您将导入作业提交到特定的 BE 或 CN 节点则必须输入该 BE 或 CN 节点的 IP 地址。fe_http_port是集群中 FE 节点的 HTTP 端口号。默认端口号为8030。注意如果您将导入作业提交到特定的 BE 或 CN 节点则必须输入该 BE 或 CN 节点的 HTTP 端口号。默认端口号为8030。database_name是表所属的数据库名称。table_name是表的名称。data_desc核心描述您要导入的数据文件。data_desc描述符可以包含数据文件的名称、格式、列分隔符、行分隔符、目标分区以及与表的列映射。语法-T file_path -H format: CSV | JSON -H column_separator: column_separator -H row_delimiter: row_delimiter -H columns: column1_name[, column2_name, ... ] -H partitions: partition1_name[, partition2_name, ...] -H temporary_partitions: temporary_partition1_name[, temporary_partition2_name, ...] -H jsonpaths: [ \json_path1\[, \json_path2\, ...] ] -H strip_outer_array: true | false -H json_root: json_path -H ignore_json_size: true | false -H compression: compression_algorithm | Content-Encoding: compression_algorithmopt_properties指定一些可选参数这些参数应用于整个导入作业。语法-H label: label_name -H where: condition1[, condition2, ...] -H max_filter_ratio: num -H timeout: num -H strict_mode: true | false -H timezone: string -H load_mem_limit: num -H partial_update: true | false -H partial_update_mode: row | column -H merge_condition: column_name实操演练csv文件导入csv文件准备在本地创建一个example.csv文件并写入数据vim example.csv # 写入以下数据 1,Lily,23 2,Rose,23 3,Alice,24 4,Julia,25进入StarRocks数据库创建数据库和表table1测试msyql -uroot -P9030 -h127.0.0.1 -p create database testdb; use testdb; CREATE TABLE table1 ( id int(11) NOT NULL COMMENT user ID, name varchar(65533) NULL COMMENT user name, score int(11) NOT NULL COMMENT user score ) ENGINEOLAP PRIMARY KEY(id) DISTRIBUTED BY HASH(id);包含id name 和score字段对应example.csv文件的内容现在设置导入参数-XPUThttp://198.134.198.12:8030/api/testdb/table1/_stream_load198.134.198.12:8030填写对应的IP和端口可以进入StarRocks数据库使用show proc frontends\G;查看http_port端口定义导入标识标签-H label:label1设置超时时间最长不超过100秒-H timeout:100设置错误容忍度最大为0.2-H max_filter_ratio:0.2指定用逗号,作为 CSV 列分隔符文件格式一致-H column_separator:,导入文件 -T 文件地址-T example.csvHTTP 1.1 标准请求头-H Expect:100-continue导入curl --location-trusted -u root:StarRocks123 -H label:label1 \ -H Expect:100-continue \ -H timeout:100 \ -H column_separator:, \ -H max_filter_ratio:0.2 \ -T example.csv \ -XPUT http://198.134.198.12:8030/api/testdb/table1/_stream_load导入作业完成后系统以 JSON 格式返回作业结果{ TxnId: 7399, Label: label1, Db: testdb, Table: table1, Status: Success, Message: OK, NumberTotalRows: 4, NumberLoadedRows: 4, NumberFilteredRows: 0, NumberUnselectedRows: 0, LoadBytes: 42, LoadTimeMs: 284, BeginTxnTimeMs: 1, StreamLoadPlanTimeMs: 3, ReadDataTimeMs: 0, WriteDataTimeMs: 107, CommitAndPublishTimeMs: 171 }参数名称说明TxnId导入作业的事务 ID。Label导入作业的标签。Status此次导入的数据的最终状态。Success表示数据导入成功数据已经可见。Publish Timeout表示导入作业已经成功提交但是由于某种原因数据并不能立即可见。可以视作已经成功、不必重试导入。Label Already Exists表示该标签已经被其他导入作业占用。数据可能导入成功也可能是正在导入。Fail表示数据导入失败。您可以指定标签重试该导入作业。Message导入作业的状态详情。如果导入作业失败这里会返回具体的失败原因。NumberTotalRows读取到的总行数。NumberLoadedRows成功导入的总行数。只有当返回结果中的Status为Success时有效。NumberFilteredRows导入过程中因数据质量不合格而过滤掉的行数。NumberUnselectedRows导入过程中根据 WHERE 子句指定的条件而过滤掉的行数。LoadBytes此次导入的数据量大小。单位字节 (Bytes)。LoadTimeMs此次导入所用的时间。单位毫秒 (ms)。BeginTxnTimeMs导入作业开启事务的时长。StreamLoadPlanTimeMs导入作业生成执行计划的时长。ReadDataTimeMs导入作业读取数据的时长。WriteDataTimeMs导入作业写入数据的时长。CommitAndPublishTimeMs导入作业提交和数据发布的耗时。如果导入作业失败系统还会返回ErrorURL例如{ErrorURL: http://172.26.195.68:8045/api/_load_error_log?fileerror_log_3a4eb8421f0878a6_9a54df29fd9206be}可以wget下来查看详情wget http://172.26.195.68:8045/api/_load_error_log?fileerror_log_3a4eb8421f0878a6_9a54df29fd9206be进入StarRocks客户端查看数据是否导入成功mysql use testdb; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql select * from table1; -------------------- | id | name | score | -------------------- | 4 | Julia | 25 | | 1 | Lily | 23 | | 2 | Rose | 23 | | 3 | Alice | 24 | -------------------- 4 rows in set (0.04 sec)导入JSON文件在您的本地文件系统中创建一个名为example.json的 JSON 文件。该文件由两列组成依次表示城市 ID 和城市名称。{name: Beijing, code: 2}创建一个名为table2的主键表。该表由两列组成id和city其中id是主键。CREATE TABLE table2 ( id int(11) NOT NULL COMMENT city ID, city varchar(65533) NULL COMMENT city name ) ENGINEOLAP PRIMARY KEY(id) DISTRIBUTED BY HASH(id);启动 Stream Load运行以下命令将example2.json的数据导入到table2中curl -v --location-trusted -u root:StarRocks123 -H strict_mode: true \ -H Expect:100-continue \ -H format: json -H jsonpaths: [\$.name\, \$.code\] \ -H columns: city,tmp_id, id tmp_id * 100 \ -T example2.json -XPUT \ http://198.134.198.12:8030/api/testdb/table2/_stream_load如果您使用的账户未设置密码则只需输入username:。您可以使用 SHOW FRONTENDS 查看 FE 节点的 IP 地址和 HTTP 端口。example.json由两个键name和code组成映射到table2的id和city列如下图所示。上述图中的映射描述如下StarRocks 提取example2.json的name和code键并将它们映射到jsonpaths参数中声明的name和code字段。StarRocks 提取jsonpaths参数中声明的name和code字段并按顺序将它们映射到columns参数中声明的city和tmp_id字段。StarRocks 提取columns参数中声明的city和tmp_id字段并按名称将它们映射到table2的city和id列。-H columns: city,tmp_id, id tmp_id * 100在上述示例中example.json中code的值在加载到table2的id列之前乘以 100。有关jsonpaths、columns和 StarRocks 表列之间的详细映射请参见 STREAM LOAD 中的“列映射”部分。导入完成后您可以查询table2以验证导入是否成功mysql select * from testdb.table2; --------------- | id | city | --------------- | 200 | Beijing | --------------- 1 row in set (0.04 sec)官方文档https://docs.starrocks.io/zh/docs/loading/StreamLoad/大家有空可以看看CLup平台https://www.csudata.com/clup/manualhttps://www.csudata.com/clup/manual
http://www.zskr.cn/news/1353107.html

相关文章:

  • 2026年比较好的冶金设备/单齿辊冶金设备/金属冷锯冶金设备/金属热锯冶金设备厂家推荐与选型指南 - 行业平台推荐
  • Multisim仿真避坑指南:手把手教你调好MOS管放大电路的静态工作点
  • 老带新转介绍 vs 数据化获客:上游销售的两种获客逻辑,该怎么选
  • 工厂接单:短账期高单价,还是长账期低单价?这道题最考验老板的算盘
  • 为你的Agent工具快速接入多模型能力使用Taotoken配置指南
  • 2026年质量好的空调/余姚松井空调/余姚海尔空调/余姚迈迪龙空调优选公司推荐 - 品牌宣传支持者
  • 2026年知名的大包盖别墅/登封工厂自建房/登封自建办公楼高评分公司推荐 - 行业平台推荐
  • 分光计调平调焦保姆级教程:手把手教你搞定三棱镜折射率实验(附避坑清单)
  • 如何用XUnity.AutoTranslator为Unity游戏添加实时AI翻译:新手完整指南
  • 渗透测试靶场部署指南:从协议层到运维层的真实感构建
  • Audition变调进阶指南:利用‘共振变换’和‘恒定元音’让男声变女声更自然
  • 手把手教你用DiskGenius专业版恢复误删文件(附实测步骤与避坑指南)
  • 【Linux】Linux中常用操作命令总结
  • linux服务器操作系统有哪些
  • 2026年热门的空调/大金空调可靠服务公司 - 品牌宣传支持者
  • [开源] 院感手卫生数字孪生仿真系统:面向感控科的干预效果事前推演工具
  • 深圳连续模五金冲压件
  • 生成模型选型实战指南:Diffusion、GAN、VAE如何按需选用
  • Unity Live2D模型提取实战:AssetBundle二进制解析与资源还原
  • 国产DSP FT-M6678中断开发避坑指南:从CIC配置到向量表编写的完整流程
  • 如何识别并拒绝AI领域虚假技术信息
  • Stacking模型集成实战:Python中防泄漏的K折交叉验证实现
  • Unity层级窗口可视化增强:Hierarchy Decorator原理与实战
  • GPT-4V算卡路里准不准?我们拿它和薄荷健康、MyFitnessPal做了次硬核对比评测
  • 手把手教你用232串口连接欧姆龙G9SP安全PLC与NB触摸屏(含接线图与配置避坑)
  • Keil MDK自定义Flash算法开发与调试技巧
  • 告别手动移植!用Simulink PSP工具箱给Pixhawk飞控写算法,保姆级配置流程(附避坑点)
  • 告别图形界面:用C语言命令行工具测试CY7C68013A的USB批量传输(Bulk Loop)
  • sqli-labs第14关:双引号闭合下的POST报错注入实战解析
  • 量子计算与化学模拟:混合架构实践与优化