[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都能讓你的工作變得更加高效。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/20984.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/20984.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/20984.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C# 面向對象編程(一)——類 第三篇

總目錄 C# 語法總目錄 系列鏈接 C# 面向對象編程(一) 類 第一篇 C# 面向對象編程(一) 類 第二篇 C# 面向對象編程(一) 類 第三篇 C# 面向對象編程 一 ——類 第三篇 簡介面向對象編程類 第三篇9. 重載運算符10. 分部方法** nameof方法 **** GetType 方法和 typeof方…

【Intro】Heterogeneous Graph Attention Network(HAN)

論文鏈接&#xff1a;https://arxiv.org/pdf/1903.07293 Abstract 異構性和豐富的語義信息給面向異構圖的圖形神經網絡設計帶來了巨大的挑戰。 -> 一種基于分層注意的異構圖神經網絡&#xff0c;包括節點級注意和語義級注意。具體來說&#xff0c;節點級關注旨在學習節點…

GPT4o還沒用上?落后一個月!

文章目錄 一.Share官方網站&#xff1a;以一半的價格享受官網服務1.1 網址1.2 一些介紹和教學實戰&#xff1a;1.3 主界面&#xff08;支持4o)&#xff1a;1.4 GPTS&#xff08;上千個工具箱任你選擇&#xff09;&#xff1a;1.5 快速的文件數據分析&#xff08;以數學建模為例…

一次“yarn Couldn‘t find package“問題的排查

本文記錄一次使用yarn install 時報錯 Couldn’t find package xxxx 問題的排查。 問題描述 問題來自于筆者對一個前端項目進行debug時的yarn install 報錯信息&#xff0c;在一個可以明確代碼沒有問題的項目中&#xff0c;因為切換環境&#xff0c;重新執行yarn install,發現…

qt qcomboBox實現自動檢索功能 通過輸入匹配字符進行篩選

本人做了一個自定義控件SeepedSearch 用于快速檢索匹配的字符的下拉框 方便查找目標 直接上源碼 1. SpeedSerach.h #pragma once #include class QComboBox; class QCompleter; class SpeedSearch : public QWidget { Q_OBJECT public: explicit SpeedSearch(QWidget *paren…

web前端三大主流框架指的是什么

web前端三大主流框架是什么&#xff1f;前端開發師的崗位職責有哪些&#xff1f;這邊整理了相關內容供大家參考了解&#xff0c;請各位小伙伴隨小編一起查閱下面的內容。 web前端三大主流框架 web前端三大主流框架是Angular、React、Vue。 1.Angular Angular原名angularJS誕生…

如何用python做一個貪吃蛇程序?——潯川AI社(VIP)

1 游戲說明: 死亡條件:碰壁、吃自己! 狀態:只有吃了食物才會隨機生成其中一種狀態,分別是:穩如老狗、幸運光滑、衰神附體之一 狀態:穩如老狗:相對于上一次速度不變! 狀態:幸運光滑:相對于上一次速度變慢! 狀態:衰神附體:相對于上一次速度變快! 總體速率對比…

UnityAPI學習之Transform組件基本使用

目錄 Transform組件 訪問與獲取 Transform的位置和旋轉信息 Transform局部坐標和旋轉信息的獲取 Transform的縮放與正方向 縮放&#xff08;Scale&#xff09; 正方向 Transform相關的查找方法 銷毀游戲物體 Transform組件 訪問與獲取 現在創建一個容器放置GrisGO物…

操作系統的分類

Linux類系統的組成 Linux操作系統Linux內核Linux應用 Linux內核是什么&#xff1f; Linux系統內核是構成Linux操作系統核心的部分&#xff0c;它是操作系統中最基礎和關鍵的組件&#xff0c;直接與硬件交互并管理計算機系統的底層資源。以下是Linux內核主要特性和功能的概覽…

一起學習大模型 - langchain里的 PromptTemplate詳細介紹

系列文章目錄 一起學習大模型 - 大模型的交互工具prompt簡介與運用 一起學習大模型 - langchain里的PromptTemplate詳細介紹 一起學習大模型 - langchain里PromptTemplate錯誤排查總結 文章目錄 系列文章目錄前言一、 安裝 LangChain二、 基本用法1. 導入庫并定義模板2. 填充…

API接口通道如何設置?

API接口通道如何設置&#xff1f; 如果分站點的AI接口使用openai&#xff08;站點后臺->系統配置->AI參數配置->AI接口&#xff09;&#xff0c;則需要在超管后臺配置接口通道&#xff0c;其他方式則無需在超管后臺配置接口通道 1、進入超管后臺選擇接口通道&#x…

一鍵批量轉換,高效輕松管理:解鎖不同格式圖片統一處理新體驗,讓圖片管理更高效

在信息爆炸的時代&#xff0c;圖片管理成為了一個不容忽視的問題。我們時常面臨各種格式的圖片文件&#xff0c;不同的格式不僅增加了管理的難度&#xff0c;還可能導致兼容性問題。如何快速高效地管理不同格式的圖片&#xff0c;成為了現代人面臨的一大挑戰。現在&#xff0c;…

網上幫別人開網店賣貨的騙局!

小紅書幫別人開店賣貨的騙局主要涉及到一些不法分子利用小紅書平臺的流量和用戶信任度&#xff0c;通過虛假宣傳、承諾高額利潤等手段&#xff0c;誘騙用戶開店并**所謂的“賺錢機會”。 這些騙局往往以“輕松創業、快速致富”為誘餌&#xff0c;吸引那些對創業充滿熱情但缺乏經…

Redis常用命令——List篇

提到List&#xff0c;我們第一時間想到的就是鏈表。但是在Redis中&#xff0c;List更像是一種雙端隊列&#xff0c;例如C中的deque。它可以快速高效的對頭部和尾部進行插入和刪除操作。本片文章主要對List列表的相關命令進行詳解&#xff0c;希望本篇文章會對你有所幫助。 文章…

MedSegDiff-V2: Diffusion-Based Medical Image Segmentation with Transformer 論文總結

標題&#xff1a;MedSegDiff-V2: Diffusion-Based&#xff08;基于擴散模型&#xff09;Medical Image Segmentation&#xff08;醫學圖像分割&#xff09;with Transformer 論文&#xff08;AAAI&#xff09;&#xff1a;https://ojs.aaai.org/index.php/AAAI/article/view/28…

【避坑全攻略】如何讓私人的LLM擁有一個嗓子——ChatTTS

OpenAI 發布 GPT4o 之后&#xff0c;使得越來越多的人都開始幻想屬于自己的AI“伴侶”&#xff0c;這最讓人驚艷的就是他們出色的TTS技術。而在此之前&#xff0c;主流的開源TTS有 XTTS 2 和 Bark。而近日&#xff0c;一個名為 ChatTTS 文本轉語音項目爆火出圈&#xff0c;引來…

Python中的random.choices詳解

1. 什么是random.choices函數&#xff1f; random.choices是Python標準庫中random模塊提供的一個函數&#xff0c;用于從給定的序列中隨機選擇一個值。這個函數可以用于實現隨機抽樣、按照概率進行選擇等功能。 random.choices(population, weightsNone, *, cum_weightsNone,…

.gitignore 文件

一.什么是 .gitignore 文件 在任何當前工作的 Git 倉庫中&#xff0c;每個文件都是這樣的&#xff1a; 追蹤的&#xff08;tracked&#xff09;- 這些是 Git 所知道的所有文件或目錄。這些是新添加&#xff08;用 git add 添加&#xff09;和提交&#xff08;用 git commit 提…

汽美汽修店管理系統會員小程序的作用是什么

汽車后市場汽美汽修賽道同樣存在著大量商家&#xff0c;連鎖品牌店或個人小店等&#xff0c;門店扎堆且區域覆蓋面積廣&#xff0c;當然每天車來車往也有不少生意。 隨著線上化程度加深和商家不斷拓展市場的需要&#xff0c;傳統運營模式可能難以滿足現狀&#xff0c;尤其是年…

Element - UI <el-table-column>多選數據提交后禁用已提交的多選框

1. 通過 selection-change"selectionChange" 將已選擇的數據存入selectData數組中 <el-table :data"tableData" class"my-5" selection-change"selectionChange" > //多選框已選擇的數據 const selectData ref([]); const sel…