Flink 实践教程-进阶(5):排序(乱序调整)

作者:腾讯云流计算 Oceanus 团队

流计算 Oceanus 简介

流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的具备一站开发、无缝连接、亚秒延时、低廉成本、安全稳定等特点的企业级实时大数据分析平台。流计算 Oceanus 以实现企业数据价值最大化为目标,加速企业实时化数字化的建设进程。

本文将为您详细介绍如何使用 Windowing TVF 配合聚合函数,实时调整乱序数据,经过聚合分析后存入 MySQL 中。

操作视频

前置准备

创建流计算 Oceanus 集群

进入 Oceanus 控制台 [1],点击左侧【集群管理】,点击左上方【创建集群】,具体可参考 Oceanus 官方文档 创建独享集群 [2]。

创建消息队列 CKafka

进入 CKafka 控制台 [3],点击左上角【新建】,即可完成 CKafka 的创建,具体可参考 CKafka 创建实例 [4]。

创建 Topic:
进入 CKafka 实例,点击【topic 管理】>【新建】,即可完成 Topic 的创建,具体可参考 CKafka 创建 Topic [5]。

数据准备:
进入同子网的 CVM 下,启动 Kafka 客户端,模拟发送数据,具体操作参见 运行 Kafka 客户端 [6]。

# 启动 Kafka 生产者命令
bash kafka-console-producer.sh --broker-list 10.0.0.29:9092 --topic oceanus_advanced5_input --producer.config ../config/producer.properties
// 按顺序插入如下数据,注意这里数据时间是乱序的
{
   
   "order_id":"10000","num":1,"event_time":"2021-12-22 14:29:16"}
{
   
   "order_id":"10000","num":1,"event_time":"2021-12-22 14:29:30"}
{
   
   "order_id":"10000","num":1,"event_time":"2021-12-22 14:29:50"}
{
   
   "order_id":"10000","num":1,"event_time":"2021-12-22 14:29:59"}
{
   
   "order_id":"10000","nu
Maven依赖问题中出现错误信息 `Could not find artifact org.apache.flink:flink-connectors-jdbc:pom:1.17.2 in Maven repository`,表明Maven无法在指定的仓库中找到所需的特定版本的Flink JDBC连接器。以下是解决此类问题的一些方法: ### 1. 检查Maven仓库配置 确保你的`pom.xml`文件或`settings.xml`文件中的仓库配置正确无误。如果使用了自定义的仓库(例如阿里云镜像),请确认是否支持该特定版本的Flink JDBC连接器。 ```xml <repositories> <repository> <id>central</id> <url>https://repo1.maven.org/maven2</url> </repository> </repositories> ``` ### 2. 手动下载并安装JAR包到本地仓库 如果远程仓库找不到所需版本,可以手动下载JAR包,并通过Maven命令将其安装到本地仓库。 #### 步骤: 1. **从官方网站或其他可信源获取JAR包** 访问[Flink官方GitHub发布页面](https://github.com/apache/flink/releases)或[Maven仓库](https://search.maven.org/),搜索`flink-connectors-jdbc`并尝试找到对应版本。 2. **使用Maven命令安装到本地仓库** ```bash mvn install:install-file -Dfile=path/to/flink-connectors-jdbc-1.17.2.jar -DgroupId=org.apache.flink -DartifactId=flink-connectors-jdbc -Dversion=1.17.2 -Dpackaging=jar ``` 3. **更新`pom.xml`文件** 在项目`pom.xml`中添加如下依赖声明: ```xml <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connectors-jdbc</artifactId> <version>1.17.2</version> </dependency> ``` ### 3. 使用其他版本的Flink JDBC连接器 如果无法找到1.17.2版本的JDBC连接器,可以考虑使用其他稳定版本,例如1.16.x或1.18.x,具体取决于项目需求和兼容性。 ```xml <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connectors-jdbc</artifactId> <version>1.16.0</version> </dependency> ``` ### 4. 配置额外的Maven仓库 有时某些版本的依赖可能仅存在于特定的第三方仓库中,比如Cloudera、Confluent等。你可以尝试在`pom.xml`中添加这些仓库以扩展搜索范围。 ```xml <repositories> <repository> <id>confluent</id> <url>https://packages.confluent.io/maven/</url> </repository> </repositories> ``` ### 5. 确认Flink版本与JDBC连接器的兼容性 不同版本的Flink可能会对JDBC连接器有不同的要求,请参考[Flink官方文档](https://nightlies.apache.org/flink/flink-docs-release-1.17/docs/connectors/datastream/jdbc/),确认`flink-connectors-jdbc` 1.17.2是否适用于当前使用的Flink运行时环境。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值