中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

大數據開發中統計系統設計的方法是什么

發布時間:2021-12-31 14:38:41 來源:億速云 閱讀:171 作者:iii 欄目:大數據

本篇內容主要講解“大數據開發中統計系統設計的方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“大數據開發中統計系統設計的方法是什么”吧!

1.背景

在大數據生產環境下,往往需求是越快越好,對于實時系統開發,需求往往是一個狀態值,比如多少次,多少個,而對于離線數據開發,因為不是實時,所以可以開發各種復雜需求,另外一種基于Lambda架構或者Kappa架構的,往往場合時實時統計系統,實時統計系統在前面Lambda架構的設計中已經談過,本文時另外一種更復雜的應用場景,對于Lambda架構中產生的流水,要盡可能快地滿足范圍查詢,什么意思呢,Lambda架構中,雖說可以查詢一個范圍統計的流水,但是為了盡可能地快,將離線計算結果是count,count(distinct) 這兩種可以更細地劃分,做初步的聚合,比如生成一個Set的集合,這樣可以滿足在查詢層更快地合并數據,但是同時也增加了架構的復雜性和非通用性,同理本文的實時范圍查詢,是基于需求的一種復雜設計,解決的是這樣的一個問題,我想求一段范圍的count,怎么保證最快地計算結果。

## 原始數據表t1流水如下
transactionId,id1,id2,money,create_time
## 目的
## 輸入id1, 一段范圍create_time, 得到count(money)

2.設計

前面背景中主要拋出一個問題,如何設計這樣的系統,滿足快速求時間范圍的count, 需要達到生產級別的實時查詢系統。

(1)為了快速count,必然不能只有流水,只有流水的count,遇到數據量大的范圍count,很耗時,所以設計預計算count,即截至到xx,某個id的所有count(money)

(2) 在查詢時候只需要查到開始時間的最左時間流水,和結束時間的右逼近流水,相減即可

(3)為了快速查詢時間和id,必然需要這兩個加索引

(4)如果需求是最近三個月的查詢,那么回溯時候,可以認為設計開始時間節點,從那里開始時0,然后開始不斷累加

注意:(4)看應用需求,可以將最原始節點卡在三個月前,令那個時間點的截至數據count就是0

示意圖如下:

大數據開發中統計系統設計的方法是什么

3.實現方案

假設是(3)方案,更通用的方案,就是數據會存的更多一點

假設原始全量數據存在于mysql表中,那么需要新建立一張t2表,字段如下:

id1,create_time, money_sum

(1)首次計算如下

SELECT id1,
       create_time,
       sum() over(PARTITION BY money_sum
                  ORDER BY create_time) AS money_sum
WHERE create_time > NOW

(2) 增量計算

## 查詢t1一條增量記錄
select id1,create_time,money from t1
## 查詢 t2 這個id1的最近一條記錄
SELECT id1,
       create_time,
       monye_sum + MONEY AS money_sum
FROM
  (SELECT id1,
          create_time,
          money_sum,
          row_number() over(PARTITION BY id1
                            ORDER BY create_time DESC) r
   FROM t2
   WHERE id1 = xx )
WHERE r=1
## 將這條記錄insert到t2即可

到此,相信大家對“大數據開發中統計系統設計的方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永嘉县| 屏山县| 惠东县| 临泉县| 时尚| 资讯| 钦州市| 陇西县| 泰和县| 东乡| 信阳市| 康保县| 富顺县| 永济市| 孝昌县| 岳普湖县| 松潘县| 永泰县| 寿光市| 阜新| 北京市| 高阳县| 武平县| 盘锦市| 闽侯县| 新昌县| 定南县| 从化市| 上杭县| 浦江县| 合作市| 罗甸县| 怀远县| 于田县| 金堂县| 巴林左旗| 满城县| 麟游县| 逊克县| 册亨县| 定南县|