Flink从kafka中读数据存入Mysql Sink

上篇文章我们描述了如何通过继承RichSourceFunction来实现自定义的Source。本篇中我们将继续讲述如何通过connector读取源数据,并将读取的数据存入到其他数据存储系统中,主要的思路就是Flink作为消费者来消费Kafka Topic中的数据,并将数据实时的插入到mysql/Hbase中。数据格式是模拟网站的点击日志:city,loginTime(登录时间),OS(操作系统),...
摘要由CSDN通过智能技术生成

上篇文章我们描述了如何通过继承RichSourceFunction来实现自定义的Source。本篇中我们将继续讲述如何通过connector读取源数据,并将读取的数据存入到其他数据存储系统中,主要的思路就是Flink作为消费者来消费Kafka Topic中的数据,并将数据实时的插入到mysql/Hbase中。数据格式是模拟网站的点击日志:city,loginTime(登录时间),OS(操作系统),phoneName(手机型号),下面进入正题

一、添加Maven依赖

<dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.46</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-java</artifactId>
            <version>1.7.2</version>
            <!--编译时使用,运行时并不使用,所以本地测试需要注释掉-->
            <!--<scope>provided</scope>-->
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-streaming-java_2.11</artifactId>
            <version>1.7.2</version>
            <!--<scope>provided</scope>-->
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-connector-kafka-0.11_2.11</artifactId>
            <version>1.6.1</version>
            <!--<scope>provided</scope>-->
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.51</version>
        </dependency>
</dependencies>

二、Entity实体类

用于封装kafka中接收数据的实体,这样做的好处我们在《Flink自定义DataSource之MysqlSource》一文中解释过这样做的优势了,这里不做过多赘述

package com.xpu.kafkatomysql;

/**
 * 实体类封装
 * create by xiax.xpu on @Date 2019/4/13 12:14
 */
public class Entity {
    public String phoneName;
    public  String os;
    public String city;
    public String loginTime;

    public Entity() {
    }

    public Entity(String phoneName, String os, String ci
  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
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数据库时,要确保其正确性和可用性,以确保数据的正确读取和写入。同时,在处理大规模数据流时,还需要考虑分布式部署、容错性和高可用性等方面的问题,以保证系统的稳定性和性能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值