# StarRocks Source组件使用说明
# 组件说明
StarRocks Source用于从StarRocks集群中并行、高效地读取数据。其核心原理是通过FE(Frontend)获取查询计划与Tablet分布信息,直接并行从多个BE(Backend)节点读取数据,而非单点JDBC拉取,从而支持大规模数据导出。
提示
点击对应表的【配置】按钮展开的配置项,完成配置后必须点击弹窗底部的【保存配置】按钮才能保存各自表的配置参数。
# 配置项说明
| 配置名称 | 数据类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
| 节点名称 | String | 是 | StarRocks | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。确保唯一性。 |
| 节点编码 | String | 是 | 自动生成 | 当前创建的节点编码,以此标识此组件,由用户自定义且不可为空。命名可包含字母、数字、下划线。确保唯一性。 |
| 选择数据源 | String | 是 | - | 从下拉选项中选择列出的当前项目已经关联的数据源。 |
| 选择库 | String | 否 | - | 从下拉列表中选择数据库。 |
| 选择表 / 视图 | String | 否 | - | 从下拉列表中选择数据表 / 视图。 |
| table 数量限制 | Int | 否 | 1024 | 与分区相对应的 table 的数量。这个值设置得越小,生成的分区就越多。这将增加引擎方面的并行性,但同时也会给 StarRocks 带来更大的压力。 |
| 请求连接超时时间 | Int | 否 | 30000 | 请求连接超时发送到 StarRocks,单位为毫秒。 |
| 查询超时时间 | Int | 否 | 3600 | 查询超时时间,默认值为 1 小时,-1 表示不限制,单位为秒。 |
| 查询 keep alive 时间 | Int | 否 | 10 | 查询任务的持续时间,单位为分钟。默认值值为 10。建议将该参数设置为大于等于 5 的值。 |
| 单次读取最大数据行数 | Int | 否 | 1024 | 一次从 BE 读取的最大数据行数。增加此值可以减少引擎和 StarRocks 之间建立的连接数量,从而减轻网络延迟造成的开销。 |
| 单次查询最大内存 | Int | 否 | 2 | BE 节点中单个查询允许的最大内存空间。 |
| 重试请求数 | Int | 否 | 3 | 发送到 StarRocks 的重试请求数。 |
| 可选参数 | 否 | - | 其他参数,用户可以根据需求进行配置。 |
获取表 / 视图后,点击每张表后的【配置】按钮可以分别为表配置更多的参数,具体如下:
| 配置名称 | 数据类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
| 名称 | String | 否 | - | 表的配置项名称。 |
| 字段信息 | String | 否 | - | 获取对应表 / 视图的字段名称。 |
| 过滤条件 | String | 否 | - | 设置数据过滤的条件表达式。格式为“field=value”,例如:“F_ID>2” 。 |
# FAQ
Q1:必须配置schema吗?
是的(≥2.3.12)。StarRocks Source不会自动推断表结构,必须手动声明字段名称与类型。如果字段名与StarRocks物理列名不一致,可通过投影方式重命名。
Q2:如何提高读取速度?
调小request_tablet_size,增加Split数量;
调大scan_batch_rows(如4096或8192),减少RPC次数;
适当增加Env并行度(如parallelism=10);
使用scan_filter提前过滤数据,减少传输量。
Q3:读取Decimal类型报错怎么办?
确保schema中DECIMAL指定精度,如"DECIMAL(20,1)"(注意引号);
若仍报错,升级至2.3.11+,该版本已修复Decimal生成问题。
Q4:支持CDC或实时读取吗?
不支持。StarRocks Source目前仅支持Batch模式,实时读取请使用其他源(如Kafka),将StarRocks作为Sink。
Q5:nodeUrls配多个FE有什么作用?
连接器会随机选择一个可用FE获取元数据,避免单FE故障或过载,增强稳定性(≥2.3.10)。