starrocks采用streamload导入数据

本文档介绍了如何通过Java配置和代码实现对StarRocks的Streamload数据导入,帮助读者理解并掌握这一过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、依赖
<dependency>
    <groupId>com.starrocks</groupId>
    <artifactId>flink-connector-starrocks</artifactId>
    <version>1.2.1_flink-1.14_2.12</version>
</dependency>

2、配置

@Configuration
@ConfigurationProperties(prefix = "star")
@Data
@Slf4j
public class StarRocksConfiguration {
    private String url;
    private String port;
    private String format;
    private String user;
    private String pass;
    private String database;
    private String labelPrefix = "streamLoad";
    private String rowSep = "&";
    private Integer retryLimit;
    private Integer interval;
}

3、代码

@Override
public Map<String, Object> write(String tableName, List<String> records) throws Exception {
    StarRocksSinkBuffer bufferEntity = new StarRocksSinkBuffer(starRocksConfiguration.getDatabase(), tableName, starRocksConfiguration.getLabelPrefix());
    for (String record : records) {
        byte[] bts = record.getBytes(StandardCharsets.UTF_8);
        bufferEntity.addToBuffer(bts);
    }
    byte[] data = joinRows(bufferEntity.getBuffer(), (int) bufferEntity.getBatchSize());
    String loadUrl = new StringBuilder(starRocksConfiguration.getUrl())
            .append(":")
            .append(starRocksConfiguration.getPort())
            .
### StreamLoad 参数配置 StreamLoad 是一种高效的数据导入方式,主要用于将外部数据快速加载到数据库中。其核心参数 `auto.redirect` 的默认值为 `true`,表示是否自动重定向 StreamLoad 请求[^2]。当此参数启用时,前端(FE)会根据实际需求将请求重定向至目标后端节点(BE),从而优化数据写入路径并减少中间环节。 如果禁用了该功能,则客户端需要手动指定具体的 BE 地址来完成数据上传操作。这通常适用于某些特殊场景下对性能有更高要求的情况或者网络环境较为复杂的情形之下。 对于查看具体 BE 节点的状态及相关参数信息可以利用如下命令实现: ```bash curl http://<BE_IP>:<BE_HTTP_PORT>/varz ``` 例如执行下面这条语句能够获取位于 IP.210 上运行的服务详情[^1]: ```bash curl http://IP.210:8049/varz ``` 需要注意的是,在大多数生产环境中并不推荐直接使用本地回环接口即 127.0.0.1 来作为访问入口除非是在同一台机器内部署了所有组件并且确认没有任何安全风险存在的情况下才可以考虑这样做;因为这样可能会带来不必要的麻烦比如负载均衡失效等问题。 另外关于如何设置这些选项可以通过修改对应的配置文件来进行调整,并重启服务使更改生效。但是具体位置取决于所使用的版本以及安装方法等因素影响所以这里不做详尽阐述。 ### 关于 127.0.0.1 的使用说明 尽管如此,在开发测试阶段为了简化部署流程有时还是会采用 localhost 或者 loopback address (也就是常说的 127.0.0.1) 这样的形式来做初步验证工作。此时只要确保各个模块都在单一主机上正常启动即可满足基本的功能演示目的。不过一旦进入正式上线前准备时期就必须替换成为真实的外网可达地址以便后续维护管理更加便捷顺畅。 最后提醒一下由于涉及到敏感操作所以在任何情况下都应当遵循最小权限原则合理分配资源防止意外泄露重要资料造成不可挽回损失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sylarjyd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值