flink读取mysql_flink 从mysql 读取数据 放入kafka中 用于搜索全量

public static void main(String[] arg) throws Exception {

TypeInformation[] fieldTypes = new TypeInformation[] { BasicTypeInfo.STRING_TYPE_INFO };

RowTypeInfo rowTypeInfo = new RowTypeInfo(fieldTypes);

JDBCInputFormat jdbcInputFormat = JDBCInputFormat.buildJDBCInputFormat().setDrivername("com.mysql.jdbc.Driver")

.setDBUrl("jdbc:mysql://*:3306/tablename?characterEncoding=utf8")

.setUsername("*").setPassword("*")

.setQuery("select LOGIC_CODE from *").setRowTypeInfo(rowTypeInfo).finish();

final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();

DataSource s = env.createInput(jdbcInputFormat);

BatchTableEnvironment tableEnv = new BatchTableEnvironment(env, TableConfig.DEFAULT());

tableEnv.registerDataSet("t2", s);

Table query = tableEnv.sqlQuery("select * from t2");

DataSet result = tableEnv.toDataSet(query, Row.class).map(new MapFunction(){

@Override

public String map(Row value) throws Exception {

return value.toString() ;

}

});

logger.info("read db end");

KafkaOutputFormat kafkaOutput = KafkaOutputFormat.buildKafkaOutputFormat()

.setBootstrapServers("*:9092").setTopic("search_test_whk").setAcks("all").setBatchSize("1000")

.setBufferMemory("100000").setLingerMs("1").setRetries("2").finish();

result.output(kafkaOutput);

logger.info("write kafka end");

env.execute("Flink add data source");

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flink是一个分布式流处理框架,能够处理和分析实时数据流。Kafka是一个分布式流式数据处理平台,能够实时地收集、存储和处理大规模数据流。 在Flink读取Kafka数据并将其写入MySQL数据库需要以下步骤: 1. 配置Kafka Consumer:通过配置Kafka Consumer相关的属性,如bootstrap.servers(Kafka的地址)、group.id(消费者组标识)、topic(要读取的主题名称)等。 2. 创建Flink Execution Environment:通过创建Flink执行环境,可以定义Flink作业的运行模式和相关配置。 3. 创建Kafka Data Source:使用FlinkKafka Consumer API创建一个Kafka数据源,通过指定Kafka Consumer的配置和要读取的主题,可以从Kafka获取数据。 4. 定义数据转换逻辑:根据需要,可以使用Flink提供的转换算子对Kafka数据进行处理,如map、filter、reduce等。 5. 创建MySQL Sink:通过配置MySQL数据库的连接信息,如URL、用户名、密码等,创建一个MySQL数据池。 6. 将数据写入MySQL:通过使用FlinkMySQL Sink API,将经过转换后的数据写入MySQL数据库。可以指定要写入的表名、字段映射关系等。 7. 设置并执行作业:将Kafka数据源和MySQL Sink绑定在一起,并设置作业的并行度,然后执行Flink作业。 通过以上步骤,我们可以将Kafka的数据读取出来,并经过转换后写入MySQL数据库,实现了从KafkaMySQL的数据传输。 需要注意的是,在配置Kafka Consumer和MySQL数据库时,要确保其正确性和可用性,以确保数据的正确读取写入。同时,在处理大规模数据流时,还需要考虑分布式部署、容错性和高可用性等方面的问题,以保证系统的稳定性和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值