<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    走自己的路

    路漫漫其修遠(yuǎn)兮,吾將上下而求索

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      50 隨筆 :: 4 文章 :: 118 評(píng)論 :: 0 Trackbacks

    統(tǒng)計(jì)服務(wù)對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行遷移,分析。

     

    外部遷移:

    業(yè)務(wù)數(shù)據(jù)存儲(chǔ)于Mysql中,Mysql存儲(chǔ)的數(shù)據(jù)會(huì)進(jìn)行垂直,水平切分,業(yè)務(wù)數(shù)據(jù)會(huì)存在于多個(gè)mysql表中,數(shù)據(jù)分散使得分析程序?qū)懫饋?lái)頭大。并且mysql的單表存儲(chǔ)量有限,擴(kuò)展起來(lái)也不容易,要定期做數(shù)據(jù)遷移。于是我們將mysql中的數(shù)據(jù)定時(shí)地遷移到mongoDB中,并清理mysql中的數(shù)據(jù)。

     

    外部遷移的程序是通用的:全量遷移,增量遷移(insertupdate)。遷移時(shí)是并發(fā)遷移的,可以根據(jù)業(yè)務(wù)ID或者時(shí)間分片。比如一個(gè)表中主要的操作是insert,這時(shí)他時(shí)間段內(nèi)(上次遷移的結(jié)束時(shí)間到這次遷移的時(shí)間)ID基本是連續(xù)增長(zhǎng)的,所以按ID分批,而某個(gè)表中的lastModifiedTime基本是連續(xù)的,這時(shí)我們按時(shí)間分批。

     

    外部遷移將Mysql多個(gè)表中的數(shù)據(jù)遷移到mongoDB的一個(gè)collection中。同時(shí)支持進(jìn)行一些數(shù)據(jù)格式的轉(zhuǎn)換,但基本保證數(shù)據(jù)的原樣性。

     


     

     

    內(nèi)部遷移

    內(nèi)部遷移是對(duì)原始數(shù)據(jù)進(jìn)行初步的整理,并臨時(shí)存儲(chǔ)到mongoDBcollection中。在統(tǒng)計(jì)完畢后清理臨時(shí)表。

     

    我們另外還開發(fā)了mongoDB查詢表達(dá)式和Java DSL,查詢表達(dá)式還支持用戶自定義函數(shù),內(nèi)部遷移只需要做簡(jiǎn)單的配置,類似于SQL.

    select max(column) as max, count(column), min(column) from collection where columnc=”” and column b=””

     

    求最大值,最小值,可以用來(lái)分批并發(fā)處理。

     

    select userFunction(columnd), * from collectionA where columna=”” and columnb=”” group by columna into collectionB values set(columnb), sum(columnc), count(columna)

    columnd的數(shù)據(jù)格式化后upsertcollectionB

    sum是對(duì)columnc求和

    count是對(duì)columna求個(gè)數(shù)

     

    內(nèi)部遷移后的臨時(shí)數(shù)據(jù)可以用來(lái)外部排重。比如求人數(shù)(非次數(shù))可以group by后求count就可以了。


     

    分析

    分析程序我們也建議通過(guò)配置統(tǒng)計(jì)出來(lái),也支持plugin的分析程序analyzer

    select sum(columna), count(columnb)

    查詢總數(shù)和個(gè)數(shù)

     

    select columnacolumnb from collectionB orderby columnc limit 30

    查詢值最大的30條數(shù)據(jù)

     

    CMS和排行服務(wù)可以通過(guò)統(tǒng)計(jì)服務(wù)直接查詢到感興趣的數(shù)據(jù)。



    posted on 2011-04-12 13:33 叱咤紅人 閱讀(2129) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 思思久久99热免费精品6| 亚洲色无码专区一区| 成人毛片100免费观看| 亚洲午夜福利精品久久| 产传媒61国产免费| 亚洲精品网站在线观看不卡无广告 | 亚洲自偷自偷偷色无码中文| 一级免费黄色毛片| 久久精品亚洲男人的天堂 | 久久九九久精品国产免费直播| 免费又黄又爽又猛的毛片| 老司机免费午夜精品视频| 免费观看午夜在线欧差毛片| 黄色一级视频免费观看| 亚洲精品天堂成人片?V在线播放| 国产在线精品一区免费香蕉| 亚洲av网址在线观看| 亚洲免费中文字幕| 亚洲精品无码专区在线| 免费国产成人午夜私人影视| 美女被免费网站91色| 亚洲精品自产拍在线观看动漫| 午夜宅男在线永久免费观看网| 久久精品国产亚洲AV天海翼| 国产亚洲精品激情都市| 99在线在线视频免费视频观看| 中国极品美軳免费观看| 亚洲AV无码专区国产乱码电影| xxxx日本免费| 小说区亚洲自拍另类| 国产AV无码专区亚洲AV男同| 免费在线看v网址| 噜噜综合亚洲AV中文无码| 亚洲色中文字幕无码AV| 亚洲精品免费网站| 国产亚洲精品欧洲在线观看| 亚洲第一福利视频| 免费日本黄色网址| 最新黄色免费网站| 免费看黄福利app导航看一下黄色录像 | 五月天网站亚洲小说|