欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于Flink的實時數(shù)據(jù)去重方法、裝置、電子設(shè)備及介質(zhì)與流程

文檔序號:40572109發(fā)布日期:2025-01-03 11:33閱讀:13來源:國知局
基于Flink的實時數(shù)據(jù)去重方法、裝置、電子設(shè)備及介質(zhì)與流程

本發(fā)明涉及數(shù)據(jù)處理,尤其是一種基于flink的實時數(shù)據(jù)去重方法、裝置、電子設(shè)備及介質(zhì)。


背景技術(shù):

1、在大數(shù)據(jù)時代,隨著數(shù)字化轉(zhuǎn)型的加速,各行各業(yè)產(chǎn)生了前所未有的海量數(shù)據(jù),這些數(shù)據(jù)涵蓋了從金融交易到醫(yī)療記錄,從社交媒體互動到工業(yè)物聯(lián)網(wǎng)傳感器輸出的廣泛范圍。然而,數(shù)據(jù)的爆發(fā)式增長也帶來了前所未有的挑戰(zhàn),尤其是數(shù)據(jù)的冗余和重復(fù)問題。重復(fù)的數(shù)據(jù)不僅浪費了寶貴的存儲空間,還增加了數(shù)據(jù)處理的時間和成本,更重要的是,它們降低了數(shù)據(jù)分析的準(zhǔn)確性和時效性,影響了企業(yè)的決策質(zhì)量和效率。

2、針對實時數(shù)據(jù)去重的需求,傳統(tǒng)的解決方案雖然各有千秋,但它們在實際應(yīng)用中均存在明顯的局限性。傳統(tǒng)的去重方式如特征工程,結(jié)合外部存儲器(如redis)、布隆過濾器、基于位圖(bitmap)去重、基于哈希表等,雖然可以在一定程度上能夠解決數(shù)據(jù)重復(fù)的問題,但在實際應(yīng)用中往往暴露出了各自顯著的缺點。比如:特征工程在實現(xiàn)過程比較復(fù)雜,往往需要編寫復(fù)雜的邏輯來處理數(shù)據(jù)中的重復(fù)項,增加了整體的復(fù)雜性和出錯的可能性。此外,特征工程依賴于特定數(shù)據(jù)集,并且可能引入新的誤差,且伴隨著性能問題。結(jié)合外部存儲器(如redis)的方式在網(wǎng)絡(luò)通信方面會引入額外的開銷,該方式不僅增加了系統(tǒng)的外部依賴性和復(fù)雜性,方案不夠靈活,而且提升了使用與維護成本?;谖粓D(bitmap)去重的方式則在內(nèi)存消耗與可擴展性、數(shù)據(jù)類型支持、靈活性與定制化、性能與延遲以及依賴性與復(fù)雜性等方面存在一定的缺點?;诠1砣ブ貏t無法處理大數(shù)據(jù)量和實時場景。

3、以上問題亟需解決。

4、術(shù)語解釋:

5、flink:全稱為apache?flink,是一個分布式流處理和批處理框架,旨在提供高效、可擴展且具有容錯能力的處理引擎,支持大規(guī)模數(shù)據(jù)處理和實時數(shù)據(jù)分析。

6、鏈表:一種常見的線性數(shù)據(jù)結(jié)構(gòu),它由一系列節(jié)點(node)組成,每個節(jié)點包含數(shù)據(jù)部分和指向下一個節(jié)點的引用(或指針),鏈表中的節(jié)點通過指針相互連接,形成一個鏈?zhǔn)浇Y(jié)構(gòu)。

7、位數(shù)組:一種緊湊的數(shù)據(jù)結(jié)構(gòu),每個元素只占用一個比特(bit),可以表示兩種狀態(tài)(0和1)。因此,位數(shù)組存儲效率非常高。

8、位圖(bitmap):位圖(bitmap)是一種數(shù)據(jù)結(jié)構(gòu),用于以位(bit)的形式存儲數(shù)據(jù),每個位代表一個特定的元素是否存在,常見于數(shù)據(jù)去重場景。

9、比特:計算機科學(xué)中最基本的單位,用于表示信息的最小單位。

10、哈希(hash):一種將任意長度的數(shù)據(jù)映射到固定長度輸出的算法。哈希函數(shù)接受輸入數(shù)據(jù)(通常稱為“消息”或“鍵”),并生成一個稱為哈希值或摘要的固定大小的字符串。

11、時間窗口:數(shù)據(jù)處理和分析領(lǐng)域中的一個概念,特別是在流處理系統(tǒng)(如apacheflink)中,用于對連續(xù)的數(shù)據(jù)流進行分段處理。時間窗口將無限的數(shù)據(jù)流分割成有限大小的“窗口”,使得系統(tǒng)能夠在這些窗口內(nèi)進行聚合、計算和分析。

12、滑動步長:在數(shù)據(jù)處理或算法中,每次移動或滑動的距離;在本專利中特指在時間窗口中滑動的距離。


技術(shù)實現(xiàn)思路

1、本發(fā)明的目的在于至少一定程度上解決現(xiàn)有技術(shù)中存在的技術(shù)問題之一。

2、為此,本發(fā)明實施例的一個目的在于提供一種基于flink的實時數(shù)據(jù)去重方法,該方法基于flink實現(xiàn)了數(shù)據(jù)的實時去重,提高了數(shù)據(jù)去重的效率和可靠性。

3、本發(fā)明實施例的另一個目的在于提供一種基于flink的實時數(shù)據(jù)去重裝置。

4、為了達(dá)到上述技術(shù)目的,本發(fā)明實施例所采取的技術(shù)方案包括:

5、一方面,本發(fā)明實施例提供了一種基于flink的實時數(shù)據(jù)去重方法,包括以下步驟:

6、確定去重規(guī)則和控制策略,并提交flink任務(wù);

7、獲取消息隊列中的實時數(shù)據(jù)作為輸入數(shù)據(jù)流,并根據(jù)所述去重規(guī)則確定所述輸入數(shù)據(jù)流的關(guān)鍵值,進而通過分組算子根據(jù)所述關(guān)鍵值對所述輸入數(shù)據(jù)流進行分組,得到分組數(shù)據(jù)流;

8、通過去重算子根據(jù)所述關(guān)鍵值對所述分組數(shù)據(jù)流進行數(shù)據(jù)去重,得到主數(shù)據(jù)流和側(cè)流;

9、輸出所述主數(shù)據(jù)流,并根據(jù)所述控制策略判斷是否保存所述側(cè)流。

10、進一步地,在本發(fā)明的一個實施例中,所述去重規(guī)則包括若干個數(shù)據(jù)類型和對應(yīng)的去重字段,所述控制策略包括控制參數(shù)和存儲策略。

11、進一步地,在本發(fā)明的一個實施例中,所述根據(jù)所述去重規(guī)則確定所述輸入數(shù)據(jù)流的關(guān)鍵值,其具體包括:

12、確定所述輸入數(shù)據(jù)流的當(dāng)前數(shù)據(jù)類型,根據(jù)所述去重規(guī)則確定所述當(dāng)前數(shù)據(jù)類型對應(yīng)的當(dāng)前去重字段;

13、根據(jù)所述當(dāng)前去重字段讀取所述輸入數(shù)據(jù)流的去重字段值,并對所述去重字段值進行拼接,得到拼接字段值;

14、根據(jù)所述拼接字段值的哈希值確定所述關(guān)鍵值。

15、進一步地,在本發(fā)明的一個實施例中,所述通過分組算子根據(jù)所述關(guān)鍵值對所述輸入數(shù)據(jù)流進行分組,得到分組數(shù)據(jù)流,其具體包括:

16、基于分組算子實現(xiàn)flink的keyselector接口;

17、將所述關(guān)鍵值相同的若干個輸入數(shù)據(jù)流劃分為一組,得到對應(yīng)所述關(guān)鍵值的所述分組數(shù)據(jù)流。

18、進一步地,在本發(fā)明的一個實施例中,所述通過去重算子根據(jù)所述關(guān)鍵值對所述分組數(shù)據(jù)流進行數(shù)據(jù)去重,得到主數(shù)據(jù)流和側(cè)流,其具體包括:

19、通過去重算子繼承flink的keyedprocessfunction抽象類;

20、根據(jù)所述控制策略的控制參數(shù)確定時間窗口和滑動步長,并創(chuàng)建鏈表,進而通過所述鏈表的節(jié)點封裝位數(shù)組和時間記錄;

21、通過所述時間窗口讀取所述分組數(shù)據(jù)流,并判斷當(dāng)前時間窗口的當(dāng)前數(shù)據(jù)流對應(yīng)的當(dāng)前關(guān)鍵值是否存在于所述鏈表中;

22、若所述當(dāng)前關(guān)鍵值不存在于所述鏈表中,將所述當(dāng)前數(shù)據(jù)流收集到主數(shù)據(jù)流,并將所述當(dāng)前關(guān)鍵值添加至所述鏈表的節(jié)點,若所述當(dāng)前關(guān)鍵值存在于所述鏈表中,將所述當(dāng)前數(shù)據(jù)流收集到側(cè)流;

23、根據(jù)所述滑動步長更新當(dāng)前時間窗口,并返回判斷當(dāng)前時間窗口的當(dāng)前數(shù)據(jù)流對應(yīng)的當(dāng)前關(guān)鍵值是否存在于所述鏈表中這一步驟。

24、進一步地,在本發(fā)明的一個實施例中,所述將所述當(dāng)前關(guān)鍵值添加至所述鏈表的節(jié)點,其具體包括:

25、當(dāng)所述鏈表為空,將所述當(dāng)前關(guān)鍵值映射到所述鏈表的首節(jié)點的位數(shù)組,并根據(jù)所述當(dāng)前數(shù)據(jù)流的時間和所述滑動步長更新所述首節(jié)點的時間記錄;

26、當(dāng)所述鏈表不為空,判斷所述當(dāng)前數(shù)據(jù)流的時間是否小于所述鏈表的尾節(jié)點的時間記錄;

27、若所述當(dāng)前數(shù)據(jù)流的時間小于等于所述鏈表的尾節(jié)點的時間記錄,將所述當(dāng)前關(guān)鍵值映射到所述鏈表的尾節(jié)點的位數(shù)組,若所述當(dāng)前數(shù)據(jù)流的時間大于所述鏈表的尾節(jié)點的時間記錄,將所述當(dāng)前關(guān)鍵值映射到所述鏈表的新增節(jié)點,并根據(jù)尾節(jié)點的時間記錄和所述滑動步長確定所述新增節(jié)點的時間記錄。

28、進一步地,在本發(fā)明的一個實施例中,所述判斷當(dāng)前時間窗口的當(dāng)前數(shù)據(jù)流對應(yīng)的當(dāng)前關(guān)鍵值是否存在于所述鏈表中,其具體包括:

29、遍歷所述鏈表的所有節(jié)點,計算所述當(dāng)前關(guān)鍵值在各個節(jié)點的位數(shù)組中各個位置的映射下標(biāo);

30、當(dāng)所述當(dāng)前關(guān)鍵值在某一節(jié)點的位數(shù)組中各個位置的所述映射下標(biāo)的值均為1,確定所述當(dāng)前關(guān)鍵值存在于所述鏈表中。

31、另一方面,本發(fā)明實施例提供了一種基于flink的實時數(shù)據(jù)去重裝置,包括:

32、任務(wù)提交模塊,用于確定去重規(guī)則和控制策略,并提交flink任務(wù);

33、數(shù)據(jù)分組模塊,用于獲取消息隊列中的實時數(shù)據(jù)作為輸入數(shù)據(jù)流,并根據(jù)所述去重規(guī)則確定所述輸入數(shù)據(jù)流的關(guān)鍵值,進而通過分組算子根據(jù)所述關(guān)鍵值對所述輸入數(shù)據(jù)流進行分組,得到分組數(shù)據(jù)流;

34、數(shù)據(jù)去重模塊,用于通過去重算子根據(jù)所述關(guān)鍵值對所述分組數(shù)據(jù)流進行數(shù)據(jù)去重,得到主數(shù)據(jù)流和側(cè)流;

35、數(shù)據(jù)輸出模塊,用于輸出所述主數(shù)據(jù)流,并根據(jù)所述控制策略判斷是否保存所述側(cè)流。

36、另一方面,本發(fā)明實施例提供了一種電子設(shè)備,所述電子設(shè)備包括存儲器、處理器、存儲在所述存儲器上并可在所述處理器上運行的程序以及用于實現(xiàn)所述處理器和所述存儲器之間的連接通信的數(shù)據(jù)總線,所述程序被所述處理器執(zhí)行時實現(xiàn)如前面所述的基于flink的實時數(shù)據(jù)去重方法。

37、另一方面,本發(fā)明實施例還提供了一種存儲介質(zhì),所述存儲介質(zhì)為計算機可讀存儲介質(zhì),用于計算機可讀存儲,所述存儲介質(zhì)存儲有一個或者多個程序,所述一個或者多個程序可被一個或者多個處理器執(zhí)行,以實現(xiàn)如前面所述的基于flink的實時數(shù)據(jù)去重方法。

38、本發(fā)明的優(yōu)點和有益效果將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到:

39、本發(fā)明實施例確定去重規(guī)則和控制策略,并提交flink任務(wù),獲取消息隊列中的實時數(shù)據(jù)作為輸入數(shù)據(jù)流,并根據(jù)去重規(guī)則確定輸入數(shù)據(jù)流的關(guān)鍵值,進而通過分組算子根據(jù)關(guān)鍵值對輸入數(shù)據(jù)流進行分組,得到分組數(shù)據(jù)流,通過去重算子根據(jù)關(guān)鍵值對分組數(shù)據(jù)流進行數(shù)據(jù)去重,得到主數(shù)據(jù)流和側(cè)流,輸出主數(shù)據(jù)流,并根據(jù)控制策略判斷是否保存?zhèn)攘?。本發(fā)明實施例根據(jù)去重規(guī)則確定輸入數(shù)據(jù)流的關(guān)鍵值,通過分組算子根據(jù)關(guān)鍵值對輸入數(shù)據(jù)流進行分組,通過去重算子根據(jù)關(guān)鍵值對分組數(shù)據(jù)流進行數(shù)據(jù)去重,基于flink實現(xiàn)了數(shù)據(jù)的實時去重,提高了數(shù)據(jù)去重的效率和可靠性。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
嵊泗县| 克山县| 明星| 阳泉市| 那坡县| 丹阳市| 富川| 澄城县| 札达县| 子洲县| 新蔡县| 鹤壁市| 彩票| 东海县| 长垣县| 建瓯市| 大田县| 读书| 当涂县| 黑河市| 迁西县| 修武县| 咸宁市| 铜鼓县| 淅川县| 桃江县| 托克托县| 辉县市| 睢宁县| 尼木县| 开远市| 海阳市| 蒙阴县| 油尖旺区| 天全县| 台州市| 南岸区| 内乡县| 大洼县| 南部县| 霍林郭勒市|