【clickhouse】flink clickhouse sink Class.forName 卡死

837 篇文章 834 订阅 ¥99.90 ¥99.00

文章目录

在这里插入图片描述

1.概述

一个flink项目要用到flink-clickhouse-sink,然后在git上找到的
git地址:https://github.com/ivi-ru/flink-clickhouse-sink.git

https://github.com/ivi-ru/flink-clickhouse-sink/blob/master/src/main/java/ru/ivi/opensource/flinkclickhousesink/ClickHouseSink.java

然后因为需要在ClickhouseWriter写入之前进行一些处理,获取表结构信息。

在这里插入图片描述
但是 Class.forName 卡死了,这个类的包设置为<scop>compile</scop></

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
以下是使用Flink将数据写入ClickHouse的Java代码示例: ```java import org.apache.flink.api.common.functions.MapFunction; import org.apache.flink.api.common.serialization.SimpleStringSchema; import org.apache.flink.streaming.api.datastream.DataStream; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.streaming.connectors.clickhouse.ClickHouseSink; import org.apache.flink.streaming.connectors.clickhouse.ClickHouseSinkFunction; import org.apache.flink.streaming.connectors.clickhouse.common.ClickHouseRowConverter; import org.apache.flink.streaming.connectors.clickhouse.common.container.ClickHouseClientProvider; import org.apache.flink.streaming.connectors.clickhouse.common.container.JDBCDriverContainer; import org.apache.flink.streaming.connectors.clickhouse.common.enums.InsertMode; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.Properties; public class FlinkClickHouseExample { public static void main(String[] args) throws Exception { // set up the execution environment final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); // configure the properties for the ClickHouse sink Properties properties = new Properties(); properties.setProperty(ClickHouseSinkOptions.TARGET_TABLE_NAME, "test"); properties.setProperty(ClickHouseSinkOptions.INSERT_MODE, InsertMode.REPLACE.name()); properties.setProperty(ClickHouseSinkOptions.USERNAME, "user"); properties.setProperty(ClickHouseSinkOptions.PASSWORD, "password"); properties.setProperty(ClickHouseSinkOptions.DATABASE_NAME, "test"); properties.setProperty(ClickHouseSinkOptions.TARGET_TABLE_SCHEMA, "id Int32, name String"); // create a ClickHouseSink with the properties and a row converter ClickHouseRowConverter rowConverter = new ClickHouseRowConverter.SimpleClickHouseRowConverter(); ClickHouseSinkFunction clickHouseSinkFunction = new ClickHouseSink(properties, rowConverter, new JDBCDriverContainer(), new ClickHouseClientProvider()); // create a data stream from a source, map it to a ClickHouse row, and add the ClickHouse sink DataStream<String> source = env.socketTextStream("localhost", 9000); DataStream<ClickHouseRow> clickHouseRows = source.map(new MapFunction<String, ClickHouseRow>() { @Override public ClickHouseRow map(String value) throws Exception { String[] fields = value.split(","); return new ClickHouseRow(fields[0], fields[1]); } }); clickHouseRows.addSink(clickHouseSinkFunction); // execute the Flink job env.execute("Flink ClickHouse Example"); } public static class ClickHouseRow { private int id; private String name; public ClickHouseRow(String id, String name) { this.id = Integer.parseInt(id); this.name = name; } public int getId() { return id; } public String getName() { return name; } } } ``` 在此代码中,我们首先配置了ClickHouse sink的属性,并创建了一个ClickHouseSinkFunction。接下来,我们从数据源创建了一个数据流,并将其映射为一个ClickHouse行。最后,我们将ClickHouse行添加到ClickHouse sink并执行Flink作业。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

九师兄

你的鼓励是我做大写作的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值