[AIGC] 使用Flink SQL统计用户年龄和兴趣爱好

[AIGC] 使用Flink SQL统计用户年龄和兴趣爱好

    正在检查是否收录...

Apache Flink是一个具有强大计算能力、高吞吐量、低延迟的分布式计算框架,它支持批计算和流计算。Flink SQL是Flink ecosystem的一部分,是一种对结构化数据进行批和流处理的声明式语言。本文以一个简单的实例讲解如何使用Flink SQL来统计用户年龄和兴趣爱好。

文章目录

一、预备知识 二、创建源表和结果表 三、运行Flink SQL查询 四、验证结果 五、总结

一、预备知识

首先,你需要安装和配置Apache Flink,并且需要在你的Java代码中添加maven依赖。

<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table-api-java-bridge_2.11</artifactId> <version>1.10.0</version> </dependency> 

二、创建源表和结果表

一个叫user_behavior的源表已经被创建,其中包含了user_id,age,hobbies这三个字段。同时,我们需要创建一个结果表user_age_hobbies_stat存储统计结果,包含age,hobbies,count三个字段。

事件数据表的DDL如下:

CREATE TABLE user_behavior ( user_id INT, age INT, hobbies STRING ) WITH ( 'connector' = 'kafka', 'topic' = 'user_behavior', 'properties.bootstrap.servers' = 'localhost:9092', 'format' = 'json', 'scan.startup.mode' = 'latest-offset' ); 

结果数据表的DDL如下:

CREATE TABLE user_age_hobbies_stat ( age INT, hobbies STRING, count BIGINT ) WITH ( 'connector' = 'jdbc', 'url' = 'jdbc:mysql://localhost:3306/flink_result', 'username' = 'root', 'password' = '123456', 'table-name' = 'user_age_hobbies_stat' ); 

三、运行Flink SQL查询

我们现在要统计每个年龄和兴趣爱好的用户数量。从源表中导入数据,Flink SQL如下:

INSERT INTO user_age_hobbies_stat SELECT age, hobbies, COUNT(user_id) as count FROM user_behavior GROUP BY age, hobbies; 

这个Flink SQL查询首先会从user_behavior表中读取数据,然后通过GROUP BY操作将数据分组,按照用户的年龄(age)和兴趣爱好(hobbies)进行分组。COUNT(user_id)操作会计算每个分组中的用户数量。结果最后会被插入到user_age_hobbies_stat表中。

四、验证结果

执行完上述SQL后,你可以在MySQL数据库中查询user_age_hobbies_stat表,查看统计结果。假设你想看25岁,并且爱好音乐的用户数量,可以运行以下SQL:

SELECT count FROM user_age_hobbies_stat WHERE age=25 AND hobbies='music'; 

五、总结

通过上述方法,我们实现了用户年龄和兴趣爱好的统计。Flink SQL提供了一种声明式、可读性好的方式来处理批和流数据。当然,Flink SQL的功能远不止于此,它还支持丰富的内置函数、窗口等,能轻松完成复杂应用场景的数据分析任务。输入和输出表的创建、处理逻辑、结果的展示,都能通过SQL这种简洁并直观的方式来实现。无论你是数据分析师,还是实现数据管道的工程师,Flink SQL都能让你的工作变得更加高效。

sql兴趣爱好sql查询数据分析ctomysqlcreatejava数据表jsonurlrapwordstem结构化api可读性分布式数据管道结构化数据
  • 本文作者:李琛
  • 本文链接: https://wapzz.net/post-16942.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
本站部分内容来源于网络转载,仅供学习交流使用。如涉及版权问题,请及时联系我们,我们将第一时间处理。
文章很赞!支持一下吧 还没有人为TA充电
为TA充电
还没有人为TA充电
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
2.3W+
5
0
1
WAP站长官方

基于LLaMA-Factory微调Llama3

上一篇

1342万考生填报志愿这件事 ,AI搜索可帮了大忙

下一篇
  • 复制图片
按住ctrl可打开默认菜单