flink sql实时计算当天pv写入mysql

本文介绍如何使用 Flink SQL 实现实时计算网站 PV,并将结果实时更新到 MySQL 数据库中,包括数据源生成、MySQL Sink 定义及查询实现。

今天我们主要来讲一个很简单但是很常见的需求,实时计算出网站当天的pv值,然后将结果实时更新到mysql数据库,以供前端查询显示。

接下来我们看看如何用flink sql来实现这个简单的功能。

首先我们还是使用datagen生成测试数据,随机生成一些用户id

     String sourceSql = "CREATE TABLE datagen (\n" +
                " userid int,\n" +
                " proctime as PROCTIME()\n" +
                ") WITH (\n" +
                " 'connector' = 'datagen',\n" +
                " 'rows-per-second'='100',\n" +
                " 'fields.userid.kind'='random',\n" +
                " 'fields.userid.min'='1',\n" +
                " 'fields.userid.max'='100'\n" +
                ")";

定义mysql的sink,这里mysql是作为了一个upsert的sink,所以必须要一个主键,在mysql建表的时候我们指定了当天的日期作为主键,mysql ddl如下

CREATE TABLE `pv` (
  `day_str` varchar(100) NOT NULL,
  `pv` bigint(10) DEFAULT NULL,
  PRIMARY KEY (`day_str`)
)

Flink中的ddl要和mysql中对的上,也要指定主键。

    String mysqlsql = "CREATE TABLE pv (\n" +
                "  day_s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值