修炼k8s+flink+hdfs+dlink(七:flinkcdc)

一 :flinkcdc官网链接。

https://ververica.github.io/flink-cdc-connectors/release-2.1/content/about.html

二:在flink中添加jar包。

在flink lib目录下增加你所需要的包。

https://kdocs.cn/join/gv467qi?f=101
邀请你加入共享群「工作使用重要工具」一起进行文档协作
在这里插入图片描述

三:申请资源。

cd /opt/app/flink/flink-1.13.6/bin
yarn-session.sh  -s 1 -jm 1024m -tm 1024m -nm test_cdc -d
yarn application -list

在这里插入图片描述

四:配置dlink。

在这里插入图片描述
在这里插入图片描述

五:编写代码。

set execution.checkpointing.interval=30s;
set state.checkpoints.dir=hdfs://cluster/flink/mysql_es1;
set state.savepoints.dir=hdfs://cluster/flink/mysql_es1;



CREATE TABLE `mobile_device`( 
`id` int, 
`user_id` string, 
`app_id` string, 
`group_id` string, 
`app_version` string, 
`sdk_version` string, 
`mobile` string, 
`brand` string, 
`model_identifier` string, 
`model` string, 
`system` string, 
`device_id` string, 
`secret_key` string, 
`pkd` string, 
`access_token` string, 
`refresh_token`string, 
`iot_device_secret` string, 
`status` int, 
`expiration_timeout` timestamp, 
`login_type` int, 
`create_time` timestamp, 
`update_time` timestamp, 
PRIMARY KEY (id) NOT ENFORCED
) WITH (
 'connector' = 'mysql-cdc',
 'hostname' = 'xx.xx.xx.xx',
 'port' = '3306',
 'username' = 'xxxx',
 'password' = 'xxxxx',
 'database-name' = 'xx',
 'table-name' = 'xxxx'
);


select * from mobile_device;

注意:大小写会影响数据的读取。

在这里插入图片描述

六:查看具体的任务。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### 结合使用Flink CDC和Flink SQL进行实时数据处理 为了简化从数据库消费数据的方式,可以采用Amazon Managed Service for Apache Kafka与CDC (Change Data Capture) 连接器相结合的方法来直接读取表中的变更数据[^1]。然而,在此场景下讨论的是利用Flink CDC连接器以及Flink SQL实现相同目标。 #### 使用Flink CDC捕获变化的数据 通过配置Flink CDC连接器到MySQL这样的RDS实例上,能够监听并捕捉源数据库内发生的任何更改事件。这些变动会被转化为一系列更新记录,并发送至下游系统用于进一步分析或存储。对于想要构建低延迟应用的服务提供商来说,这种方法提供了极大的灵活性和支持能力。 ```sql CREATE TABLE orders ( id BIGINT, order_id STRING, price DECIMAL(10, 2), currency STRING, dt TIMESTAMP(3), PRIMARY KEY(id) NOT ENFORCED ) WITH ( 'connector' = 'mysql-cdc', 'hostname' = 'localhost', 'port' = '3306', 'username' = 'root', 'password' = '123456', 'database-name' = 'db1', 'table-name' = 'orders' ); ``` 上述SQL语句展示了创建一个名为`orders`的表结构定义及其关联属性设置的过程。这里指定了使用的连接器类型为`mysql-cdc`,意味着它将作为CDC机制的一部分工作于指定的目标数据库之上。 #### 应用Flink SQL执行实时查询 一旦成功建立了稳定可靠的数据摄取管道之后,则可以通过编写简单的Flink SQL脚本来实施各种形式的数据转换逻辑。例如下面这段代码实现了基于时间窗口统计订单金额总和的功能: ```sql SELECT TUMBLE_START(dt, INTERVAL '1' HOUR), SUM(price) FROM orders GROUP BY TUMBLE(dt, INTERVAL '1' HOUR); ``` 该查询会按照每个小时的时间间隔对传入的数据集做一次汇总计算,从而得到相应时间段内的销售总额情况报告。这种做法不仅提高了开发效率而且使得整个流程更加直观易懂。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值