版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
XX項(xiàng)目數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書文件狀態(tài):[]草稿[√]正式發(fā)布[]正在修改版本:編寫:審核:批準(zhǔn):審批日期:1、狀態(tài):對(duì)于基線庫(kù)文檔,應(yīng)為“正式發(fā)布”;2、版本:對(duì)于基線庫(kù)文檔,指經(jīng)過(guò)客戶確認(rèn)的版本,從1.0開始整數(shù)計(jì)數(shù),2.0,3.0。。。;1、狀態(tài):對(duì)于基線庫(kù)文檔,應(yīng)為“正式發(fā)布”;2、版本:對(duì)于基線庫(kù)文檔,指經(jīng)過(guò)客戶確認(rèn)的版本,從1.0開始整數(shù)計(jì)數(shù),2.0,3.0。。。;3、編寫:文檔的主要編寫人員;4、審核:審核包括技術(shù)審核、規(guī)范性審核,根據(jù)實(shí)際情況,可以填寫多人,如項(xiàng)目經(jīng)理,項(xiàng)目管理中心QA,領(lǐng)導(dǎo)指定人員等;5、批準(zhǔn):各里程碑節(jié)點(diǎn)的批準(zhǔn)人:需求文檔:重大項(xiàng)目-業(yè)務(wù)總監(jiān),非重大-部門經(jīng)理設(shè)計(jì)文檔:重大項(xiàng)目-業(yè)務(wù)總監(jiān)、架構(gòu)師,非重大-部門經(jīng)理測(cè)試文檔:重大項(xiàng)目-業(yè)務(wù)總監(jiān),非重大-項(xiàng)目管理中心經(jīng)理里程碑其他文檔(如工作報(bào)告,安裝部署、運(yùn)維手冊(cè)、使用手冊(cè)等):重大項(xiàng)目-業(yè)務(wù)總監(jiān),非重大項(xiàng)目-部門經(jīng)理重大項(xiàng)目:軟件開發(fā)項(xiàng)目100萬(wàn)以上,運(yùn)維項(xiàng)目200萬(wàn)以上,氣象服務(wù)項(xiàng)目50萬(wàn)以上華云信息技術(shù)工程有限公司XX項(xiàng)目數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書華云信息技術(shù)工程有限公司 I文件更改歷史記錄文件編號(hào):HX-SD-項(xiàng)目英文縮寫-PDD-版本號(hào)更改記錄版本號(hào)更改要點(diǎn)修改人審批人批準(zhǔn)日期1.0正式發(fā)布尹玉梅王桂娟2013.4.2模板編號(hào):HX-SD-IV-PDD版本:1.0PDD:PreliminaryDesignDocument使用本模板時(shí),請(qǐng)刪除模板更改記錄,填寫項(xiàng)目文檔的版本信息。目錄1引言 11.1目的 11.2背景 11.3數(shù)據(jù)庫(kù)概述 11.4術(shù)語(yǔ) 11.5參考資料 22數(shù)據(jù)庫(kù)設(shè)計(jì)決策 32.1輸入輸出查詢決策 32.2數(shù)據(jù)庫(kù)響應(yīng)時(shí)間設(shè)計(jì)決策 32.3數(shù)據(jù)呈現(xiàn)方式?jīng)Q策 32.4數(shù)據(jù)庫(kù)系統(tǒng)選型決策 32.5數(shù)據(jù)庫(kù)安全性設(shè)計(jì)決策 42.6分布式設(shè)計(jì)決策 42.7備份/恢復(fù)機(jī)制決策 42.8數(shù)據(jù)一致性設(shè)計(jì)決策 43數(shù)據(jù)庫(kù)設(shè)計(jì) 53.1數(shù)據(jù)分類 53.1.1業(yè)務(wù)域描述 53.1.2分類原則 53.1.3分類內(nèi)容 53.2數(shù)據(jù)模型設(shè)計(jì) 63.2.1總體描述 63.2.2概念模型設(shè)計(jì) 63.2.3邏輯模型設(shè)計(jì) 73.2.4物理模型設(shè)計(jì) 93.3數(shù)據(jù)流程設(shè)計(jì) 103.4數(shù)據(jù)庫(kù)總體設(shè)計(jì) 113.4.1設(shè)計(jì)原則 113.4.2設(shè)計(jì)目標(biāo) 113.4.3總體邏輯架構(gòu)設(shè)計(jì) 123.4.4總體物理架構(gòu)設(shè)計(jì) 133.5數(shù)據(jù)分布設(shè)計(jì) 143.5.1數(shù)據(jù)邏輯分布 143.5.2數(shù)據(jù)物理分布 143.6數(shù)據(jù)存儲(chǔ)設(shè)計(jì) 153.6.1文件存儲(chǔ)區(qū)設(shè)計(jì)原則 163.6.2文件存儲(chǔ)區(qū)容量估算 163.6.3RDBMS設(shè)計(jì)原則 163.6.4RDBMS容量估算 163.6.5文件存儲(chǔ)區(qū)設(shè)計(jì) 163.6.6RDBMS設(shè)計(jì) 173.7數(shù)據(jù)計(jì)算 183.7.1批處理 183.7.2流式處理 233.8數(shù)據(jù)服務(wù) 353.8.1數(shù)據(jù)訪問(wèn)接口 363.8.2數(shù)據(jù)服務(wù)管理 363.8.3數(shù)據(jù)共享服務(wù) 363.8.4數(shù)據(jù)交換服務(wù) 363.8.5元數(shù)據(jù)服務(wù) 363.9數(shù)據(jù)治理(可裁剪) 363.9.1元數(shù)據(jù)管理 373.9.2生命周期管理 373.9.3數(shù)據(jù)質(zhì)量管理 373.10數(shù)據(jù)安全設(shè)計(jì)(可裁剪) 373.10.1數(shù)據(jù)安全特性與技術(shù) 383.10.2安全審計(jì) 383.10.3訪問(wèn)控制 383.10.4數(shù)據(jù)加密 393.10.5數(shù)據(jù)遷移 393.10.6數(shù)據(jù)恢復(fù)與備份 391附錄:標(biāo)題一 401.1標(biāo)題二 401.1.1標(biāo)題三 402附錄:模板使用說(shuō)明 412.1文檔模板相關(guān)快捷鍵使用說(shuō)明 412.1.1標(biāo)題欄 412.1.2正文欄 412.1.3可選欄 412.2整體需要注意的地方 423附錄:圖表編輯要求 433.1圖編輯要求 433.2表編輯要求 434附錄:如何避免文檔打印時(shí)出問(wèn)題 454.1避免圖出問(wèn)題 454.2避免表出問(wèn)題 45引言【總體說(shuō)明:1.編寫文檔時(shí),如果某章節(jié)/欄目不適用或不涉及,應(yīng)注明。并在可能的情況下說(shuō)明理由。必要時(shí),可增加適當(dāng)?shù)臈l目。2.本模板中“【…】”內(nèi)容均為填寫說(shuō)明;在使用時(shí)請(qǐng)將其刪除。3.附錄為文檔模板使用說(shuō)明,包括標(biāo)題格式、圖表的編輯等都有說(shuō)明,請(qǐng)編寫文檔時(shí)參照。文檔編寫完成后,請(qǐng)將附錄幾個(gè)章節(jié)刪除。】目的【說(shuō)明編寫本軟件數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書的目的,指出預(yù)期的讀者?!勘尘啊菊f(shuō)明待開發(fā)產(chǎn)品或項(xiàng)目(以下簡(jiǎn)稱產(chǎn)品)的名稱。列出此開發(fā)任務(wù)的提出者、開發(fā)者、用戶等?!繑?shù)據(jù)庫(kù)概述本條應(yīng)簡(jiǎn)述本文檔適用的數(shù)據(jù)庫(kù)的用途。它應(yīng)描述數(shù)據(jù)庫(kù)的一般性質(zhì);概括它的開發(fā)、使用和維護(hù)的歷史;標(biāo)識(shí)項(xiàng)目的投資方、需方、用戶、開發(fā)方和支持機(jī)構(gòu);標(biāo)識(shí)當(dāng)前和計(jì)劃的運(yùn)行現(xiàn)場(chǎng);并列出其他有關(guān)文檔。術(shù)語(yǔ)【說(shuō)明本文檔中的專門術(shù)語(yǔ)定義和英文縮寫詞的原詞組?!繀⒖假Y料【列出本文檔中參考文件、資料或技術(shù)標(biāo)準(zhǔn);列出其作者、標(biāo)題或編號(hào)、發(fā)布日期或出版單位或網(wǎng)址。列出本文檔中引用的屬于本開發(fā)產(chǎn)品/軟件系統(tǒng)的其他文件?!繑?shù)據(jù)庫(kù)設(shè)計(jì)決策本章應(yīng)根據(jù)需要分條給出數(shù)據(jù)庫(kù)級(jí)設(shè)計(jì)決策,即數(shù)據(jù)庫(kù)行為設(shè)計(jì)決策(從用戶的角度看,該數(shù)據(jù)庫(kù)如何滿足它的需求而忽略內(nèi)部實(shí)現(xiàn))和其他影響數(shù)據(jù)庫(kù)進(jìn)一步設(shè)計(jì)的決策。如果所有這些決策在系統(tǒng)或CSCI需求中均是明確的,本章應(yīng)如實(shí)陳述。對(duì)應(yīng)于指定為關(guān)鍵性需求(如安全性、保密性、私密性需求)的設(shè)計(jì)決策,應(yīng)在單獨(dú)的條中加以描述。如果設(shè)計(jì)決策依賴于系統(tǒng)狀態(tài)或方式,則應(yīng)指出這種依賴性。如果設(shè)計(jì)決策的部分或全部已在定制的或商用的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)的文檔中作了描述,本章可引用它們。輸入輸出查詢決策關(guān)于該數(shù)據(jù)庫(kù)應(yīng)接受的查詢或其他輸入和它應(yīng)產(chǎn)生的輸出(顯示、報(bào)告、消息、響應(yīng)等)的設(shè)計(jì)決策,包括與其他系統(tǒng)、HWCI,CSCI和用戶的接口。如果該信息的部分或全部已在接口設(shè)計(jì)說(shuō)明(IDD)中給出,此處可引用。數(shù)據(jù)庫(kù)響應(yīng)時(shí)間設(shè)計(jì)決策有關(guān)響應(yīng)每次輸入或查詢的數(shù)據(jù)庫(kù)行為的設(shè)計(jì)決策,包括動(dòng)作、響應(yīng)時(shí)間和其他性能特性、所選擇的方程式/算法/規(guī)則、配置和對(duì)不允許的輸入的處理。數(shù)據(jù)呈現(xiàn)方式?jīng)Q策有關(guān)數(shù)據(jù)庫(kù)/數(shù)據(jù)文件如何呈現(xiàn)給用戶的設(shè)計(jì)決策。數(shù)據(jù)庫(kù)系統(tǒng)選型決策有關(guān)要使用什么數(shù)據(jù)庫(kù)管理系統(tǒng)(包括名字、版本/發(fā)行)的設(shè)計(jì)決策和為適應(yīng)需求的變化而引人到數(shù)據(jù)庫(kù)內(nèi)部的靈活性類型的設(shè)計(jì)決策。數(shù)據(jù)庫(kù)安全性設(shè)計(jì)決策有關(guān)數(shù)據(jù)庫(kù)要提供的可用性、保密性、私密性和運(yùn)行連續(xù)性的層次與類型的設(shè)計(jì)決策。分布式設(shè)計(jì)決策有關(guān)數(shù)據(jù)庫(kù)的分布(如客戶機(jī)/服務(wù)器)、主數(shù)據(jù)庫(kù)文件更新與維護(hù)的設(shè)計(jì)決策,包括一致性的維護(hù)、同步的建立/重建與維護(hù)、完整性與業(yè)務(wù)規(guī)則的實(shí)施等。備份/恢復(fù)機(jī)制決策有關(guān)備份與恢復(fù)的設(shè)計(jì)決策,包括數(shù)據(jù)與處理分布策略、備份與恢復(fù)期間所允許的動(dòng)作、對(duì)例如音像等新技術(shù)或非標(biāo)準(zhǔn)技術(shù)的特殊考慮。數(shù)據(jù)一致性設(shè)計(jì)決策有關(guān)重組、排序、索引、同步與一致性的設(shè)計(jì)決策,包括自動(dòng)的盤管理與空間回收、優(yōu)化策略、存儲(chǔ)與空間大小、數(shù)據(jù)庫(kù)內(nèi)容的填充與歷史數(shù)據(jù)的捕獲等方面的考慮。數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)分類業(yè)務(wù)域描述從業(yè)務(wù)域的角度描述本系統(tǒng)不同的業(yè)務(wù)領(lǐng)域可能涉及的數(shù)據(jù)。例如:模式二期項(xiàng)目的業(yè)務(wù)域包括HPC資源域、業(yè)務(wù)運(yùn)行監(jiān)視域、模式試驗(yàn)域、模式產(chǎn)品域、業(yè)務(wù)信息域等等。針對(duì)這些業(yè)務(wù)域進(jìn)行簡(jiǎn)單的描述,并重點(diǎn)描述每個(gè)業(yè)務(wù)域內(nèi)所涉及的數(shù)據(jù),可以以清單的形式展示。HPC資源域1、計(jì)算資源數(shù)據(jù)指標(biāo)編號(hào)指標(biāo)名稱001計(jì)算機(jī)系統(tǒng)的cpu總核小時(shí)002計(jì)算機(jī)系統(tǒng)的cpu使用核小時(shí)003用戶的cpu總核小時(shí)004用戶的cpu使用核小時(shí)分類原則描述針對(duì)本系統(tǒng)從系統(tǒng)設(shè)計(jì)的角度對(duì)數(shù)據(jù)重新分類的原則。按照業(yè)務(wù)分類?按照數(shù)據(jù)的屬性分類?按照使用方式分類等。分類內(nèi)容針對(duì)本系統(tǒng)所涉及的數(shù)據(jù),按照上述的分類原則進(jìn)行數(shù)據(jù)的分類。比如按照氣象數(shù)據(jù)的標(biāo)準(zhǔn)分類,把每一類設(shè)計(jì)的內(nèi)容進(jìn)行清單羅列。數(shù)據(jù)模型設(shè)計(jì)總體描述數(shù)據(jù)的基本結(jié)構(gòu)分三個(gè)層次,反映了觀察數(shù)據(jù)的三種不同角度。(1)概念數(shù)據(jù)層。它是數(shù)據(jù)的整體邏輯表示。指出了每個(gè)數(shù)據(jù)的邏輯定義及數(shù)據(jù)間的邏輯聯(lián)系,是存貯記錄的集合。它所涉及的是數(shù)據(jù)所有對(duì)象的邏輯關(guān)系,而不是它們的物理情況。(2)物理數(shù)據(jù)層。它是物理存貯設(shè)備上實(shí)際存儲(chǔ)的數(shù)據(jù)的集合。這些數(shù)據(jù)是原始數(shù)據(jù),是用戶加工的對(duì)象,由內(nèi)部模式描述的指令操作處理的位串、字符和字組成。(3)邏輯數(shù)據(jù)層。它是用戶所看到和使用的數(shù)據(jù),表示了一個(gè)或一些特定用戶使用的數(shù)據(jù)集合,即邏輯記錄的集合。 數(shù)據(jù)建模概念模型設(shè)計(jì)概念數(shù)據(jù)模型是最終用戶對(duì)數(shù)據(jù)存儲(chǔ)的看法,反映了最終用戶綜合性的信息需求,它以數(shù)據(jù)類的方式描述企業(yè)級(jí)的數(shù)據(jù)需求,數(shù)據(jù)類代表了在業(yè)務(wù)環(huán)境中自然聚集成的幾個(gè)主要類別數(shù)據(jù)。概念數(shù)據(jù)模型的內(nèi)容包括重要的實(shí)體及實(shí)體之間的關(guān)系。在概念數(shù)據(jù)模型中不包括實(shí)體的屬性,也不用定義實(shí)體的主鍵。這是概念數(shù)據(jù)模型和邏輯數(shù)據(jù)模型的主要區(qū)別。概念數(shù)據(jù)模型的目標(biāo)是統(tǒng)一業(yè)務(wù)概念,作為業(yè)務(wù)人員和技術(shù)人員之間溝通的橋梁,確定不同實(shí)體之間的最高層次的關(guān)系。根據(jù)業(yè)務(wù)域的劃分,梳理跨業(yè)務(wù)域的端到端的業(yè)務(wù)流程,從而梳理出大的對(duì)象之間的關(guān)系和小的業(yè)務(wù)流程。例如,用戶(user)E-R圖邏輯模型設(shè)計(jì)邏輯數(shù)據(jù)模型反映的是系統(tǒng)分析設(shè)計(jì)人員對(duì)數(shù)據(jù)存儲(chǔ)的觀點(diǎn),是對(duì)概念數(shù)據(jù)模型進(jìn)一步的分解和細(xì)化。邏輯數(shù)據(jù)模型是根據(jù)業(yè)務(wù)規(guī)則確定的,關(guān)于業(yè)務(wù)對(duì)象、業(yè)務(wù)對(duì)象的數(shù)據(jù)項(xiàng)及業(yè)務(wù)對(duì)象之間關(guān)系的基本藍(lán)圖。邏輯數(shù)據(jù)模型的內(nèi)容包括所有的實(shí)體和關(guān)系,確定每個(gè)實(shí)體的屬性,定義每個(gè)實(shí)體的主鍵,指定實(shí)體的外鍵,需要進(jìn)行范式化處理。邏輯數(shù)據(jù)模型的目標(biāo)是盡可能詳細(xì)的描述數(shù)據(jù),但并不考慮數(shù)據(jù)在物理上如何來(lái)實(shí)現(xiàn)。邏輯數(shù)據(jù)建模不僅會(huì)影響數(shù)據(jù)庫(kù)設(shè)計(jì)的方向,還間接影響最終數(shù)據(jù)庫(kù)的性能和管理。如果在實(shí)現(xiàn)邏輯數(shù)據(jù)模型時(shí)投入得足夠多,那么在物理數(shù)據(jù)模型設(shè)計(jì)時(shí)就可以有許多可供選擇的方法。解決端到端的業(yè)務(wù)流程梳理出大量的小流程和對(duì)象關(guān)系,進(jìn)一步梳理出各個(gè)業(yè)務(wù)域的業(yè)務(wù)對(duì)象及其行為和屬性。這是以圖形的形式表示的數(shù)據(jù)的邏輯模型以表格的形式表示的關(guān)系數(shù)據(jù)庫(kù)表也是邏輯模型的一種;【包括表、索引、視圖、規(guī)則、觸發(fā)器、存儲(chǔ)過(guò)程、用戶、序列等數(shù)據(jù)庫(kù)對(duì)象的結(jié)構(gòu)和功能設(shè)計(jì),應(yīng)根據(jù)統(tǒng)一的命名規(guī)則對(duì)數(shù)據(jù)庫(kù)對(duì)象進(jìn)行標(biāo)識(shí)。如:表結(jié)構(gòu)設(shè)計(jì)可參考下表。如:表結(jié)構(gòu)設(shè)計(jì)可參考下表?!啃蛱?hào)字段中文名稱字段名數(shù)據(jù)類型長(zhǎng)度是否主鍵缺省值說(shuō)明非關(guān)系數(shù)據(jù)文件的邏輯表達(dá)如下圖所示:注意:數(shù)據(jù)的邏輯模型與具體的數(shù)據(jù)庫(kù)系統(tǒng)無(wú)關(guān)?。?!物理模型設(shè)計(jì)數(shù)據(jù)庫(kù)物理設(shè)計(jì)是將一個(gè)給定邏輯結(jié)構(gòu)實(shí)施到具體的環(huán)境中時(shí),為邏輯數(shù)據(jù)模型選取一個(gè)具體的工作環(huán)境,這個(gè)工作環(huán)境提供了數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)與存取方法,這個(gè)過(guò)程就是數(shù)據(jù)庫(kù)的物理設(shè)計(jì)。物理結(jié)構(gòu)依賴于給定的DBMS和和硬件系統(tǒng),因此設(shè)計(jì)人員必須充分了解所用RDBMS的內(nèi)部特征、存儲(chǔ)結(jié)構(gòu)、存取方法。數(shù)據(jù)庫(kù)的物理設(shè)計(jì)通常分為兩步,第一,確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu),第二,評(píng)價(jià)實(shí)施空間效率和時(shí)間效率確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)包含下面幾個(gè)方面的內(nèi)容:1、選擇存取方法:是通過(guò)一般索引機(jī)制或者聚族索引機(jī)制等。2、設(shè)計(jì)存儲(chǔ)結(jié)構(gòu):存儲(chǔ)方法一般有順序存儲(chǔ)、鏈接存儲(chǔ)、索引存儲(chǔ)、散列存儲(chǔ)等方法。3、確定存放位置:文件存放的目錄結(jié)構(gòu)及其路徑等。4、選擇存儲(chǔ)介質(zhì):數(shù)據(jù)將要存儲(chǔ)在什么物理介質(zhì)上,是磁盤、磁盤陣列還是磁帶庫(kù)等等5、評(píng)價(jià)物理結(jié)構(gòu):針對(duì)各種物理結(jié)構(gòu)的存儲(chǔ)進(jìn)行評(píng)價(jià),選擇最優(yōu)的存儲(chǔ)。數(shù)據(jù)庫(kù)物理設(shè)計(jì)過(guò)程中需要對(duì)時(shí)間效率、空間效率、維護(hù)代價(jià)和各種用戶要求進(jìn)行權(quán)衡,選擇一個(gè)優(yōu)化方案作為數(shù)據(jù)庫(kù)物理結(jié)構(gòu)。在數(shù)據(jù)庫(kù)物理設(shè)計(jì)中,最有效的方式是集中地存儲(chǔ)和檢索對(duì)象數(shù)據(jù)流程設(shè)計(jì)數(shù)據(jù)流圖示例數(shù)據(jù)庫(kù)總體設(shè)計(jì)設(shè)計(jì)原則說(shuō)明設(shè)計(jì)的原則,一般原則描述可以從整體性原則、標(biāo)準(zhǔn)化原則、安全與效率并種的原則、一致性原則等。設(shè)計(jì)目標(biāo)總體目標(biāo)主要包括以下五個(gè)方面內(nèi)容:1、實(shí)現(xiàn)信息資源整合信息資源規(guī)劃的一項(xiàng)很重要的目標(biāo)就是要解決目前信息系統(tǒng)建設(shè)中的重復(fù)建設(shè)問(wèn)題,達(dá)到信息系統(tǒng)的整合和集約,信息資源規(guī)劃是信息系統(tǒng)頂層設(shè)計(jì)的一部分,能夠從整體上對(duì)信息資源進(jìn)行設(shè)計(jì),并能夠提供信息系統(tǒng)建設(shè)的標(biāo)準(zhǔn)和規(guī)范,這樣信息系統(tǒng)就能夠以此為標(biāo)準(zhǔn),進(jìn)行適時(shí)、適度、逐步整合,最終達(dá)到消除冗余,集約良性發(fā)展的效果。2、提高技術(shù)響應(yīng)速度業(yè)務(wù)需求的變化和技術(shù)的響應(yīng)速度之間一直是一對(duì)矛盾,信息資源規(guī)劃通過(guò)對(duì)信息系統(tǒng),尤其是信息資源架構(gòu)進(jìn)行科學(xué)設(shè)計(jì),可以增強(qiáng)信息資源架構(gòu)的穩(wěn)定性,當(dāng)業(yè)務(wù)需求變化時(shí),可以通過(guò)很少的數(shù)據(jù)結(jié)構(gòu)和程序變動(dòng)就能夠滿足業(yè)務(wù)需求,這樣不但提高了技術(shù)響應(yīng)速度,而且能夠增強(qiáng)系統(tǒng)的穩(wěn)定性,降低故障率。3、實(shí)現(xiàn)信息共享信息資源規(guī)劃通過(guò)建設(shè)信息共享服務(wù)平臺(tái),實(shí)現(xiàn)了數(shù)據(jù)的集中存儲(chǔ)和計(jì)算,并實(shí)現(xiàn)了對(duì)外統(tǒng)一的服務(wù)接口,不論是對(duì)于海關(guān)內(nèi)部的信息共享需求,還是外部的數(shù)據(jù)共享需求;不論是直接面向用戶的共享查詢,還是面向應(yīng)用系統(tǒng)的數(shù)據(jù)服務(wù),都可以通過(guò)數(shù)據(jù)服務(wù)共享平臺(tái)解決。4、實(shí)現(xiàn)大數(shù)據(jù)分析必須實(shí)現(xiàn)信息系統(tǒng)的物聯(lián)化、互聯(lián)化、智能化,而最重要的就是智能化,即通過(guò)大數(shù)據(jù)分析,為海關(guān)準(zhǔn)確決策提供信息支持。信息資源規(guī)劃通過(guò)設(shè)計(jì)和實(shí)現(xiàn)數(shù)據(jù)共享服務(wù)平臺(tái),引入并行數(shù)據(jù)庫(kù)、分布式數(shù)據(jù)庫(kù)等大數(shù)據(jù)存儲(chǔ)和計(jì)算技術(shù),能夠解決海關(guān)的大數(shù)據(jù)分析問(wèn)題,達(dá)到數(shù)據(jù)用得好、決策準(zhǔn)的業(yè)務(wù)目標(biāo)。5、提升數(shù)據(jù)質(zhì)量信息資源規(guī)劃通過(guò)設(shè)定標(biāo)準(zhǔn)規(guī)范、業(yè)務(wù)管理流程,能夠規(guī)范數(shù)據(jù)的定義、存儲(chǔ)、使用、傳輸、交換,使得數(shù)據(jù)采集更加規(guī)范、數(shù)據(jù)傳輸更加準(zhǔn)確高效,數(shù)據(jù)使用更加安全方便,通過(guò)各種管理流程和規(guī)范,能夠大幅提升數(shù)據(jù)質(zhì)量??傮w邏輯架構(gòu)設(shè)計(jì)圖:數(shù)據(jù)架構(gòu)總體邏輯藍(lán)圖數(shù)據(jù)架構(gòu)的六個(gè)統(tǒng)一,即統(tǒng)一數(shù)據(jù)規(guī)劃、統(tǒng)一存儲(chǔ)、統(tǒng)一計(jì)算、統(tǒng)一服務(wù)、統(tǒng)一接入、統(tǒng)一數(shù)據(jù)治理。總體物理架構(gòu)設(shè)計(jì)通過(guò)萬(wàn)兆連接核心交換區(qū),實(shí)現(xiàn)網(wǎng)絡(luò)高速交換,確??煽啃愿鞣?wù)器均雙線連接數(shù)據(jù)區(qū)核心交換機(jī),消除單點(diǎn)故障結(jié)構(gòu)清晰,層次分明數(shù)據(jù)分布設(shè)計(jì)數(shù)據(jù)邏輯分布數(shù)據(jù)分類從數(shù)據(jù)本身的原則屬性角度對(duì)數(shù)據(jù)從系統(tǒng)管理、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)處理的角度進(jìn)行分類,那么這些數(shù)據(jù)與業(yè)務(wù)系統(tǒng)本身的關(guān)系是如何對(duì)應(yīng)的,本章節(jié)描述的是業(yè)務(wù)系統(tǒng)與數(shù)據(jù)分類后的對(duì)應(yīng)關(guān)系。以表格的形式展現(xiàn)系統(tǒng)名稱分系統(tǒng)名稱系統(tǒng)應(yīng)用類型業(yè)務(wù)應(yīng)用類數(shù)據(jù)業(yè)務(wù)分析類數(shù)據(jù)HPC資源精細(xì)化管理分系統(tǒng)實(shí)時(shí)性要求高數(shù)據(jù)物理分布數(shù)據(jù)存放:集中存放+災(zāi)備?分布式主從模式?分布式無(wú)中心化?數(shù)據(jù):核心交易:商用關(guān)系DB+小機(jī)集群?分析:newSQL+小機(jī)集群?低價(jià)值密度的大規(guī)模數(shù)據(jù):NoSQL+大規(guī)模普通機(jī)器集群據(jù)地理分布:交易數(shù)據(jù)集中存放+災(zāi)備;其他管理支持類應(yīng)用數(shù)據(jù)可三中心分別存放?數(shù)據(jù)存儲(chǔ)設(shè)計(jì)【先說(shuō)明本系統(tǒng)數(shù)據(jù)類型、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),然后再按照下面章節(jié)內(nèi)容描述設(shè)計(jì)?!课募鎯?chǔ)區(qū)設(shè)計(jì)原則文件存儲(chǔ)區(qū)容量估算RDBMS設(shè)計(jì)原則RDBMS容量估算文件存儲(chǔ)區(qū)設(shè)計(jì)存儲(chǔ)區(qū)域劃分【本節(jié)應(yīng)列出存儲(chǔ)區(qū)域劃分結(jié)構(gòu)圖和針對(duì)每一個(gè)存儲(chǔ)區(qū)域的功能和業(yè)務(wù)處理說(shuō)明?!看鎯?chǔ)區(qū)目錄結(jié)構(gòu)設(shè)計(jì)1【針對(duì)每一個(gè)存儲(chǔ)區(qū)域的目錄結(jié)構(gòu)進(jìn)行詳細(xì)說(shuō)明。通過(guò)目錄規(guī)劃圖和目錄結(jié)構(gòu)說(shuō)明表描述所劃分的目錄結(jié)構(gòu),以及其存儲(chǔ)目錄所完成的功能和業(yè)務(wù)處理。如需要,指出目錄結(jié)構(gòu)中的文件命名及文件結(jié)構(gòu)?!磕夸浗Y(jié)構(gòu)例如:序號(hào)目錄名稱目錄說(shuō)明存儲(chǔ)容量清除策略目錄結(jié)構(gòu)說(shuō)明【描述其存儲(chǔ)目錄所完成的功能和業(yè)務(wù)處理進(jìn)行必要的說(shuō)明。涉及軟件配置項(xiàng)的則應(yīng)給出或引用為理解設(shè)計(jì)所需的設(shè)計(jì)約定?!课募拔募Y(jié)構(gòu)【如需要,對(duì)特定目錄下的文件命名和文件結(jié)構(gòu)進(jìn)行設(shè)計(jì)。如果在需求基線或IDD/PDD中已有描述,在此可進(jìn)行引用?!縍DBMS設(shè)計(jì)數(shù)據(jù)庫(kù)表存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)【描述數(shù)據(jù)和數(shù)據(jù)庫(kù)對(duì)象的存放位置和存儲(chǔ)結(jié)構(gòu),包括確定關(guān)系表、索引、日志、備份等的存儲(chǔ)安排及存儲(chǔ)結(jié)構(gòu)。確定數(shù)據(jù)存放位置是按照數(shù)據(jù)應(yīng)用的不同將數(shù)據(jù)庫(kù)的數(shù)據(jù)劃分為若干類,并確定各類數(shù)據(jù)的大小和存放位置。數(shù)據(jù)的分類可依據(jù)數(shù)據(jù)的穩(wěn)定性、存取響應(yīng)速度、存取頻度、數(shù)據(jù)共享程度、數(shù)據(jù)保密程度、數(shù)據(jù)生命周期的長(zhǎng)短、數(shù)據(jù)使用的頻度等因素加以區(qū)別。確定數(shù)據(jù)存放的位置主要是從提高系統(tǒng)性能的角度考慮。如果在概要設(shè)計(jì)階段數(shù)據(jù)庫(kù)平臺(tái)產(chǎn)品的選型已經(jīng)確定,本節(jié)應(yīng)結(jié)合具體的平臺(tái)產(chǎn)品進(jìn)行描述。】存儲(chǔ)參數(shù)配置設(shè)計(jì)【對(duì)數(shù)據(jù)庫(kù)平臺(tái)產(chǎn)品的存儲(chǔ)參數(shù)的配置變量進(jìn)行初步的調(diào)整設(shè)計(jì)。如果在概要設(shè)計(jì)階段數(shù)據(jù)庫(kù)平臺(tái)產(chǎn)品的選型未能確定,本部分內(nèi)容可在詳細(xì)設(shè)計(jì)階段進(jìn)行。】數(shù)據(jù)計(jì)算本章描述數(shù)據(jù)層面上的數(shù)據(jù)計(jì)算架構(gòu)。從數(shù)據(jù)層,可以將數(shù)據(jù)計(jì)算分成實(shí)時(shí)性的流處理模型,和以MapReduce和OLAP多維分析計(jì)算為代表的批處理。數(shù)據(jù)計(jì)算可以采取目前對(duì)數(shù)據(jù)計(jì)算處理的多種方式的其中一種或多種來(lái)設(shè)計(jì)描述。比如MapReduce批處理、Storm的流式計(jì)算等。批處理滿足非實(shí)時(shí)數(shù)據(jù)處理業(yè)務(wù)場(chǎng)景,將批量數(shù)據(jù)以任務(wù)的方式進(jìn)行處理,并以異步方式提交計(jì)算結(jié)果,典型場(chǎng)景包括:數(shù)據(jù)挖掘模型計(jì)算、指標(biāo)引擎計(jì)算、OLAP多維分析計(jì)算、MapReduce批處理等。數(shù)據(jù)挖掘模型計(jì)算,可以依靠傳統(tǒng)的自我編程實(shí)現(xiàn),但受限于開發(fā)水平和開發(fā)時(shí)間要求,且性能也常常不如商業(yè)工具強(qiáng)勁和穩(wěn)定。目前在中國(guó)市場(chǎng)上最為流行的三大數(shù)據(jù)挖掘軟件(SAS公司的EnterpriseMiner、IBM公司的IntelligentMiner和SPSS公司的Clementine。在選擇合適的數(shù)據(jù)發(fā)掘工具產(chǎn)品時(shí),需要考慮以下幾點(diǎn):數(shù)據(jù)挖掘是短期使用還是長(zhǎng)期行為,數(shù)據(jù)挖掘經(jīng)驗(yàn)和水平,數(shù)據(jù)狀態(tài),預(yù)算和性能要求。指標(biāo)引擎計(jì)算與OLAP多維分析計(jì)算,可以通過(guò)關(guān)系型數(shù)據(jù)庫(kù)計(jì)算引擎,在庫(kù)內(nèi)實(shí)現(xiàn)??紤]數(shù)據(jù)量級(jí)和計(jì)算性能,建議使用完全并行的MPP+SharedNothing架構(gòu)數(shù)據(jù)庫(kù)產(chǎn)品,由許多松耦合的處理單元組成,以保證每一個(gè)節(jié)點(diǎn)(node)都是獨(dú)立的、自給的、節(jié)點(diǎn)之間對(duì)等,而且整個(gè)系統(tǒng)中不存在單點(diǎn)瓶頸,具有非常強(qiáng)的擴(kuò)展性。技術(shù)要求:1、支持X86PCserver以及虛擬化環(huán)境運(yùn)行,具有低成本優(yōu)勢(shì);2、采用列存儲(chǔ)和高效透明壓縮技術(shù),降低I/O,提高存儲(chǔ)能力;3、具有基于全部字段,自動(dòng)建立粗粒度智能索引,快速過(guò)濾數(shù)據(jù)包,提高查詢性能;4、具有多種數(shù)據(jù)分布算法策略,確保數(shù)據(jù)均勻分布在集群節(jié)點(diǎn)上,提高整體批量計(jì)算性能;5、利用多核CPU,多個(gè)I/O通道等硬件資源,具有并行加載,并行計(jì)算與并行導(dǎo)出等場(chǎng)景的良好性能;6、具有多種OLAP函數(shù),支持動(dòng)態(tài)hashjoin,靜態(tài)hashjoin等智能算法適配功能,滿足強(qiáng)一致性關(guān)聯(lián)要求;圖SEQ圖\*ARABIC2靜態(tài)hashjoin技術(shù)圖SEQ圖\*ARABIC3動(dòng)態(tài)hashjoin技術(shù)具有高并發(fā)特點(diǎn),有效支撐自助查詢等大規(guī)模查詢服務(wù)和批量調(diào)度任務(wù);8、具有線性擴(kuò)展能力,硬件擴(kuò)容與計(jì)算能力近似線性增長(zhǎng)關(guān)系。MapReduce是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運(yùn)算。概念"Map(映射)"和"Reduce(規(guī)約)",主要思想,都是從函數(shù)式編程語(yǔ)言里借來(lái)的,還有從矢量編程語(yǔ)言里借來(lái)的特性。當(dāng)前的實(shí)現(xiàn)是指定一個(gè)Map(映射)函數(shù),用來(lái)把一組鍵值對(duì)映射成一組新的鍵值對(duì),指定并發(fā)的Reduce(規(guī)約)函數(shù),用來(lái)保證所有映射的鍵值對(duì)中的每一個(gè)共享相同的鍵組。實(shí)現(xiàn)過(guò)程:一個(gè)代表客戶機(jī)在單個(gè)主系統(tǒng)上啟動(dòng)的MapReduce應(yīng)用程序稱為JobTracker。類似于NameNode,它是Hadoop集群中惟一負(fù)責(zé)控制MapReduce應(yīng)用程序的系統(tǒng)。在應(yīng)用程序提交之后,將提供包含在HDFS中的輸入和輸出目錄。JobTracker使用文件塊信息(物理量和位置)確定如何創(chuàng)建其他TaskTracker從屬任務(wù)。MapReduce應(yīng)用程序被復(fù)制到每個(gè)出現(xiàn)輸入文件塊的節(jié)點(diǎn)。將為特定節(jié)點(diǎn)上的每個(gè)文件塊創(chuàng)建一個(gè)惟一的從屬任務(wù)。每個(gè)TaskTracker將狀態(tài)和完成信息報(bào)告給JobTracker。流式處理滿足實(shí)時(shí)處理業(yè)務(wù)場(chǎng)景,實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí),高效處理計(jì)算。典型產(chǎn)品包括:storm,S4,StreamBase等。非實(shí)時(shí)計(jì)算幾乎都基于MapReduce計(jì)算框架,但MapReduce并不是萬(wàn)能的。對(duì)于搜索等應(yīng)用環(huán)境中的某些現(xiàn)實(shí)問(wèn)題,MapReduce并不能很好地解決問(wèn)題。商用搜索引擎,像Google、Bing和Yahoo!等,通常在用戶查詢響應(yīng)中提供結(jié)構(gòu)化的Web結(jié)果,同時(shí)也插入基于流量的點(diǎn)擊付費(fèi)模式的文本廣告。為了在頁(yè)面上最佳位置展現(xiàn)最相關(guān)的廣告,通過(guò)一些算法來(lái)動(dòng)態(tài)估算給定上下文中一個(gè)廣告被點(diǎn)擊的可能性。上下文可能包括用戶偏好、地理位置、歷史查詢、歷史點(diǎn)擊等信息。一個(gè)主搜索引擎可能每秒鐘處理成千上萬(wàn)次查詢,每個(gè)頁(yè)面都可能會(huì)包含多個(gè)廣告。為了及時(shí)處理用戶反饋,需要一個(gè)低延遲、可擴(kuò)展、高可靠的處理引擎。然而,對(duì)于這些實(shí)時(shí)性要求很高的應(yīng)用,盡管MapReduce作了實(shí)時(shí)性改進(jìn),但仍很難穩(wěn)定地滿足應(yīng)用需求。因?yàn)镠adoop為批處理作了高度優(yōu)化,MapReduce系統(tǒng)典型地通過(guò)調(diào)度批量任務(wù)來(lái)操作靜態(tài)數(shù)據(jù);而流式計(jì)算的典型范式之一是不確定數(shù)據(jù)速率的事件流流入系統(tǒng),系統(tǒng)處理能力必須與事件流量匹配,或者通過(guò)近似算法等方法優(yōu)雅降級(jí),通常稱為負(fù)載分流(load-shedding)。當(dāng)然,除了負(fù)載分流,流式計(jì)算的容錯(cuò)處理等機(jī)制也和批處理計(jì)算不盡相同。最近Facebook在Sigmod11上發(fā)表了利用HBase/Hadoop進(jìn)行實(shí)時(shí)數(shù)據(jù)處理的論文,通過(guò)一些實(shí)時(shí)性改造,讓批處理計(jì)算平臺(tái)也具備實(shí)時(shí)計(jì)算的能力。這類基于MapReduce進(jìn)行流式處理的方案有三個(gè)主要缺點(diǎn)。將輸入數(shù)據(jù)分隔成固定大小的片段,再由MapReduce平臺(tái)處理,缺點(diǎn)在于處理延遲與數(shù)據(jù)片段的長(zhǎng)度、初始化處理任務(wù)的開銷成正比。小的分段會(huì)降低延遲,增加附加開銷,并且分段之間的依賴管理更加復(fù)雜(例如一個(gè)分段可能會(huì)需要前一個(gè)分段的信息);反之,大的分段會(huì)增加延遲。最優(yōu)的分段大小取決于具體應(yīng)用。為了支持流式處理,MapReduce需要被改造成Pipeline的模式,而不是Reduce直接輸出;考慮到效率,中間結(jié)果最好只保存在內(nèi)存中等。這些改動(dòng)使得原有的MapReduce框架的復(fù)雜度大大增加,不利于系統(tǒng)的維護(hù)和擴(kuò)展。用戶被迫使用MapReduce的接口來(lái)定義流式作業(yè),這使得用戶程序的可伸縮性降低。綜上所述,流式處理的模式?jīng)Q定了要和批處理使用非常不同的架構(gòu),試圖搭建一個(gè)既適合流式計(jì)算又適合批處理計(jì)算的通用平臺(tái),結(jié)果可能會(huì)是一個(gè)高度復(fù)雜的系統(tǒng),并且最終系統(tǒng)可能對(duì)兩種計(jì)算都不理想。數(shù)據(jù)分析系統(tǒng)整體組成示意圖上圖從整個(gè)分析系統(tǒng)的架構(gòu)角度,給出了實(shí)時(shí)計(jì)算子系統(tǒng)所處的位置。實(shí)時(shí)計(jì)算系統(tǒng)和批處理計(jì)算系統(tǒng)同屬于計(jì)算這個(gè)大的范疇,批處理計(jì)算可以是MapReduce、MPI、SCOPE等,實(shí)時(shí)計(jì)算可以是S4、Storm等,批處理和實(shí)時(shí)都可以或不依賴統(tǒng)一的資源調(diào)度系統(tǒng)。另外,計(jì)算系統(tǒng)的輸入、輸出,包括中間過(guò)程的輸入、輸出,都與存儲(chǔ)系統(tǒng)交互,可以是塊存儲(chǔ)系統(tǒng)HDFS,也可以是K-V存儲(chǔ)系統(tǒng)Hypertable等。計(jì)算層的上層是數(shù)據(jù)倉(cāng)庫(kù),或者直接和用戶交互,交互方式可以是SQL-like或者M(jìn)R-like等。StormStorm是一個(gè)分布式的、容錯(cuò)的實(shí)時(shí)計(jì)算系統(tǒng),遵循EclipsePublicLicense1.0,Storm可以方便地在一個(gè)計(jì)算機(jī)集群中編寫與擴(kuò)展復(fù)雜的實(shí)時(shí)計(jì)算,Storm之于實(shí)時(shí)處理,就好比Hadoop之于批處理。Storm保證每個(gè)消息都會(huì)得到處理,而且它很快——在一個(gè)小集群中,每秒可以處理數(shù)以百萬(wàn)計(jì)的消息??梢允褂萌我饩幊陶Z(yǔ)言來(lái)做開發(fā)。主要商業(yè)應(yīng)用及案例:TwitterStorm的優(yōu)點(diǎn)1.簡(jiǎn)單的編程模型。類似于MapReduce降低了并行批處理復(fù)雜性,Storm降低了進(jìn)行實(shí)時(shí)處理的復(fù)雜性。2.服務(wù)化,一個(gè)服務(wù)框架,支持熱部署,即時(shí)上線或下線App.3.可以使用各種編程語(yǔ)言。你可以在Storm之上使用各種編程語(yǔ)言。默認(rèn)支持Clojure、Java、Ruby和Python。要增加對(duì)其他語(yǔ)言的支持,只需實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Storm通信協(xié)議即可。4.容錯(cuò)性。Storm會(huì)管理工作進(jìn)程和節(jié)點(diǎn)的故障。5.水平擴(kuò)展。計(jì)算是在多個(gè)線程、進(jìn)程和服務(wù)器之間并行進(jìn)行的。6.可靠的消息處理。Storm保證每個(gè)消息至少能得到一次完整處理。任務(wù)失敗時(shí),它會(huì)負(fù)責(zé)從消息源重試消息。7.快速。系統(tǒng)的設(shè)計(jì)保證了消息能得到快速的處理,使用ZeroMQ作為其底層消息隊(duì)列。8.本地模式。Storm有一個(gè)“本地模式”,可以在處理過(guò)程中完全模擬Storm集群。這讓你可以快速進(jìn)行開發(fā)和單元測(cè)試。Storm架構(gòu)Storm集群由一個(gè)主節(jié)點(diǎn)和多個(gè)工作節(jié)點(diǎn)組成。主節(jié)點(diǎn)運(yùn)行了一個(gè)名為“Nimbus”的守護(hù)進(jìn)程,用于分配代碼、布置任務(wù)及故障檢測(cè)。每個(gè)工作節(jié)點(diǎn)都運(yùn)行了一個(gè)名為“Supervisor”的守護(hù)進(jìn)程,用于監(jiān)聽工作,開始并終止工作進(jìn)程。Nimbus和Supervisor都能快速失敗,而且是無(wú)狀態(tài)的,這樣一來(lái)它們就變得十分健壯,兩者的協(xié)調(diào)工作是由Zookeeper來(lái)完成的。ZooKeeper用于管理集群中的不同組件,ZeroMQ是內(nèi)部消息系統(tǒng),JZMQ是ZeroMQMQ的JavaBinding。有個(gè)名為storm-deploy的子項(xiàng)目,可以在AWS上一鍵部署Storm集群.Storm的一些常用應(yīng)用場(chǎng)景1.流聚合
流聚合把兩個(gè)或者多個(gè)數(shù)據(jù)流聚合成一個(gè)數(shù)據(jù)流—基于一些共同的tuple字段。2.批處理
有時(shí)候?yàn)榱诵阅芑蛘咭恍﹦e的原因,你可能想把一組tuple一起處理,而不是一個(gè)個(gè)單獨(dú)處理。3.BasicBolt1).讀一個(gè)輸入tuple2).根據(jù)這個(gè)輸入tuple發(fā)射一個(gè)或者多個(gè)tuple3).在execute的方法的最后ack那個(gè)輸入tuple遵循這類模式的bolt一般是函數(shù)或者是過(guò)濾器,這種模式太常見,storm為這類模式單獨(dú)封裝了一個(gè)接口:IbasicBolt4.內(nèi)存內(nèi)緩存+Fieldsgrouping組合
在bolt的內(nèi)存里面緩存一些東西非常常見。緩存在和fieldsgrouping結(jié)合起來(lái)之后就更有用了。比如,你有一個(gè)bolt把短鏈接變成長(zhǎng)鏈接(bit.ly,t.co之類的)。你可以把短鏈接到長(zhǎng)鏈接的對(duì)應(yīng)關(guān)系利用LRU算法緩存在內(nèi)存里面以避免重復(fù)計(jì)算。比如組件一發(fā)射短鏈接,組件二把短鏈接轉(zhuǎn)化成長(zhǎng)鏈接并緩存在內(nèi)存里面。5.計(jì)算topN
比如你有一個(gè)bolt發(fā)射這樣的tuple:"value","count"并且你想一個(gè)bolt基于這些信息算出topN的tuple。最簡(jiǎn)單的辦法是有一個(gè)bolt可以做一個(gè)全局的grouping的動(dòng)作并且在內(nèi)存里面保持這topN的值。
這個(gè)方式對(duì)于大數(shù)據(jù)量的流顯然是沒有擴(kuò)展性的,因?yàn)樗械臄?shù)據(jù)會(huì)被發(fā)到同一臺(tái)機(jī)器。一個(gè)更好的方法是在多臺(tái)機(jī)器上面并行的計(jì)算這個(gè)流每一部分的topN,然后再有一個(gè)bolt合并這些機(jī)器上面所算出來(lái)的topN以算出最后的topN。這個(gè)模式之所以可以成功是因?yàn)榈谝粋€(gè)bolt的fieldsgrouping使得這種并行算法在語(yǔ)義上是正確的。
用TimeCacheMap來(lái)高效地保存一個(gè)最近被更新的對(duì)象的緩存6.用TimeCacheMap來(lái)高效地保存一個(gè)最近被更新的對(duì)象的緩存
有時(shí)候你想在內(nèi)存里面保存一些最近活躍的對(duì)象,以及那些不再活躍的對(duì)象。TimeCacheMap是一個(gè)非常高效的數(shù)據(jù)結(jié)構(gòu),它提供了一些callback函數(shù)使得我們?cè)趯?duì)象不再活躍的時(shí)候我們可以做一些事情.7.分布式RPC:CoordinatedBolt和KeyedFairBolt
用storm做分布式RPC應(yīng)用的時(shí)候有兩種比較常見的模式:它們被封裝在CoordinatedBolt和KeyedFairBolt里面.CoordinatedBolt包裝你的bolt,并且確定什么時(shí)候你的bolt已經(jīng)接收到所有的tuple,它主要使用DirectStream來(lái)做這個(gè).
KeyedFairBolt同樣包裝你的bolt并且保證你的topology同時(shí)處理多個(gè)DRPC調(diào)用,而不是串行地一次只執(zhí)行一個(gè)。S4S4是一個(gè)通用的、分布式的、可擴(kuò)展的、分區(qū)容錯(cuò)的、可插拔的流式系統(tǒng)?;赟4框架,開發(fā)者可以輕松開發(fā)面向持續(xù)流數(shù)據(jù)處理的應(yīng)用。S4的設(shè)計(jì)特點(diǎn)有以下幾個(gè)方面。ActorModel為了能在普通機(jī)型構(gòu)成的集群上進(jìn)行分布式處理,并且集群內(nèi)部不使用共享內(nèi)存,S4架構(gòu)采用了Actor模式,這種模式提供了封裝和地址透明語(yǔ)義,因此在允許應(yīng)用大規(guī)模并發(fā)的同時(shí),也提供了簡(jiǎn)單的編程接口。S4系統(tǒng)通過(guò)處理單元(ProcessingElements,PEs)進(jìn)行計(jì)算,消息在處理單元間以數(shù)據(jù)事件的形式傳送,PE消費(fèi)事件,發(fā)出一個(gè)或多個(gè)可能被其他PE處理的事件,或者直接發(fā)布結(jié)果。每個(gè)PE的狀態(tài)對(duì)于其他PE不可見,PE之間唯一的交互模式就是發(fā)出事件和消費(fèi)事件??蚣芴峁┝寺酚墒录胶线m的PE和創(chuàng)建新PE實(shí)例的功能。S4的設(shè)計(jì)模式符合封裝和地址透明的特性。DecentralizedandSymmetricArchitecture除了遵循Actor模式,S4也參照了MapReduce模式。為了簡(jiǎn)化部署和運(yùn)維,從而達(dá)到更好地穩(wěn)定性和擴(kuò)展性,S4采用了對(duì)等架構(gòu),集群中的所有處理節(jié)點(diǎn)都是等同的,沒有中心控制。這種架構(gòu)將使得集群的擴(kuò)展性很好,處理節(jié)點(diǎn)的總數(shù)理論上無(wú)上限;同時(shí),S4將沒有單點(diǎn)容錯(cuò)的問(wèn)題。PluggableArchitectureS4系統(tǒng)使用Java開發(fā),采用了極富層次的模塊化編程,每個(gè)通用功能點(diǎn)都盡量抽象出來(lái)作為通用模塊,而且盡可能讓各模塊實(shí)現(xiàn)可定制化。PartialFault-Tolerance基于Zookeeper服務(wù)的集群管理層將會(huì)自動(dòng)路由事件從失效節(jié)點(diǎn)到其他節(jié)點(diǎn)。除非顯式保存到持久性存儲(chǔ),否則節(jié)點(diǎn)故障時(shí),節(jié)點(diǎn)上處理事件的狀態(tài)會(huì)丟失。ObjectOriented節(jié)點(diǎn)間通信采用“PlainOldJavaObjects”(POJOs)模式,應(yīng)用開發(fā)者不需要寫Schemas或用哈希表來(lái)在節(jié)點(diǎn)間發(fā)送Tuples。S4的功能組件分3大類,Clients、Adapters和PNodeCluster,圖2顯示了S4系統(tǒng)框架。
Yahoo!S4流式系統(tǒng)框架結(jié)構(gòu)圖
S4提供ClientAdapter,允許第三方客戶端向S4集群發(fā)送事件和接收事件。Adapter實(shí)現(xiàn)了基于JSON的API,支持多語(yǔ)言實(shí)現(xiàn)的客戶端驅(qū)動(dòng)。Client通過(guò)Driver組件與Adapter進(jìn)行交互,Adapter也是一個(gè)Cluster,其中有多個(gè)Adapter結(jié)點(diǎn),Client可以通過(guò)多個(gè)Driver與多個(gè)Adapter進(jìn)行通信,這樣可以保證單個(gè)Client在分發(fā)大數(shù)據(jù)量時(shí)Adapter不會(huì)成為瓶頸,也可以確保系統(tǒng)支持多個(gè)Client應(yīng)用并發(fā)執(zhí)行的快速、高效和可靠性。在Adapter中,真正與Client交互的是其Stub組件,該組件實(shí)現(xiàn)了管理Client與Adapter之間通過(guò)TCP/IP協(xié)議進(jìn)行通信的功能。GenericJsonClientStub這個(gè)類支持將事件在Client與Adapter之間以JSON的形式轉(zhuǎn)換,從而支持更多種類型的Client應(yīng)用。不同的Client可以配置不同的Stub來(lái)與Adapter進(jìn)行通信,用戶可以定義自己的Stub來(lái)實(shí)現(xiàn)自己想要的業(yè)務(wù)邏輯,這樣也使得Client的行為更加多樣性、個(gè)性化。StreamBaseStreamBase是IBM開發(fā)的一款商業(yè)流式計(jì)算系統(tǒng),在金融行業(yè)和政府部門使用,其本身是商業(yè)應(yīng)用軟件,但提供了DevelopEdition。相對(duì)于付費(fèi)使用的EnterpriseEdition,前者的功能更少,但這并不妨礙我們從外部使用和API接口來(lái)對(duì)StreamBase本身進(jìn)行分析。StreamBase使用Java開發(fā),IDE是基于Eclipse進(jìn)行二次開發(fā),功能非常強(qiáng)大。StreamBase也提供了相當(dāng)多的Operator、Functor以及其他組件來(lái)幫助構(gòu)建應(yīng)用程序。用戶只需要通過(guò)IDE拖拉控件,然后關(guān)聯(lián)一下,設(shè)置好傳輸?shù)腟chema并且設(shè)置一下控件計(jì)算過(guò)程,就可以編譯出一個(gè)高效處理的流式應(yīng)用程序了。同時(shí),StreamBase還提供了類SQL語(yǔ)言來(lái)描述計(jì)算過(guò)程。
StreamBase組件交互圖
StreamBaseServer是節(jié)點(diǎn)上啟動(dòng)的管理進(jìn)程,它負(fù)責(zé)管理節(jié)點(diǎn)上Container的實(shí)例,每個(gè)Container通過(guò)Adapter獲得輸入,交給應(yīng)用邏輯進(jìn)行計(jì)算,然后通過(guò)Adapter進(jìn)行輸出。各個(gè)Container相互連接,形成一個(gè)計(jì)算流圖。Adapter負(fù)責(zé)與異構(gòu)輸入或輸出交互,源或目的地可能包括CSV文件、JDBC、JMS、Simulation(StreamBase提供的流產(chǎn)生模擬器)或用戶定制。
每個(gè)StreamBaseServer上面都會(huì)存在一個(gè)SytsemContainer,主要是產(chǎn)生系統(tǒng)監(jiān)控信息的流式數(shù)據(jù)。HAContainer用于容錯(cuò)恢復(fù),可以看出它實(shí)際包含兩個(gè)部分:Heartbeat和HAEvents,其中HeartBeat也是Tuple在Container之間傳輸。在HA方案下,HAContainer監(jiān)控PrimaryServer的活動(dòng)情況,然后將這些信息轉(zhuǎn)換成為HAEvents交給StreamBaseMonitor來(lái)處理。Monitor就是從SystemContainer和HAContainer中獲取數(shù)據(jù)并且進(jìn)行處理。StreamBase認(rèn)為HA問(wèn)題應(yīng)該通過(guò)CEP方式處理,也就是說(shuō)如果哪個(gè)部件出現(xiàn)問(wèn)題,就肯定會(huì)反映在SystemContainer和HAContainer的輸出流上面,然后Monitor通過(guò)復(fù)雜事件處理這些Tuples的話就能夠檢測(cè)到機(jī)器故障等問(wèn)題,并作出相應(yīng)處理。StreamBase提出了以下4種模板策略來(lái)解決容錯(cuò)問(wèn)題。Hot-HotServerPairTemplatePrimaryServer和SecondaryServer都在同時(shí)計(jì)算,并且將計(jì)算結(jié)果交給下游。優(yōu)點(diǎn)是PrimaryServer如果故障的話那么SecondaryServer依然工作,幾乎沒有任何切換時(shí)間;并且下游只需要選取先到來(lái)的Tuple就可以處理了,保證處理速度最快;缺點(diǎn)是浪費(fèi)計(jì)算和網(wǎng)絡(luò)資源。Hot-WarmServerPairTemplatePrimaryServer和SecondaryServer都在同時(shí)計(jì)算,但只有PrimaryServer將計(jì)算結(jié)果交給下游。優(yōu)點(diǎn)是如果PrimaryServer故障,SecondaryServer可以很快切換,而不需要任何恢復(fù)狀態(tài)的工作。相對(duì)于Hot-Hot方式時(shí)間稍微長(zhǎng)一些,但沒有Hot-Hot那么耗費(fèi)網(wǎng)絡(luò)資源,同時(shí)也浪費(fèi)了計(jì)算資源。SharedDiskTemplatePrimaryServer在計(jì)算之后,將計(jì)算的一些中間關(guān)鍵狀態(tài)存儲(chǔ)到磁盤、SAN(StorageAreaNetwork)或是可靠的存儲(chǔ)介質(zhì)。如果SrimaryServer故障,SecondaryServer會(huì)從介質(zhì)中讀取出關(guān)鍵狀態(tài),然后接著繼續(xù)計(jì)算。優(yōu)點(diǎn)是沒有浪費(fèi)任何計(jì)算和網(wǎng)路資源,但恢復(fù)時(shí)間依賴狀態(tài)的量級(jí)而定,相對(duì)于前兩種,恢復(fù)時(shí)間可能會(huì)稍長(zhǎng)。FastRestartTemplate這種方案限定了應(yīng)用場(chǎng)景,只針對(duì)無(wú)狀態(tài)的應(yīng)用。對(duì)于無(wú)狀態(tài)的情況,方案可以非常簡(jiǎn)單,只要發(fā)現(xiàn)PrimaryServer故障,SecondaryServer立即啟動(dòng),并接著上游的數(shù)據(jù)流繼續(xù)計(jì)算即可。BorealisBorealis是BrandeisUniversity、BrownUniversity和MIT合作開發(fā)的一個(gè)分布式流式系統(tǒng),由之前的流式系統(tǒng)Aurora、Medusa演化而來(lái)。目前Borealis系統(tǒng)已經(jīng)停止維護(hù),最新的Release版本停止在2008年。Borealis具有豐富的論文、完整的用戶/開發(fā)者文檔,系統(tǒng)是C++實(shí)現(xiàn)的,運(yùn)行于x86-basedLinux平臺(tái)。系統(tǒng)是開源的,同時(shí)使用了較多的第三方開源組件,包括用于查詢語(yǔ)言翻譯的ANTLR、C++的網(wǎng)絡(luò)編程框架庫(kù)NMSTL等。Borealis系統(tǒng)的流式模型和其他流式系統(tǒng)基本一致:接受多元的數(shù)據(jù)流和輸出,為了容錯(cuò),采用確定性計(jì)算,對(duì)于容錯(cuò)性要求高的系統(tǒng),會(huì)對(duì)輸入流使用算子進(jìn)行定序。Borealis的系統(tǒng)架構(gòu)圖QueryProcessor(QP)是計(jì)算執(zhí)行的地方,是系統(tǒng)的核心部件,其大部分功能繼承自Aurora。I/OQueues將數(shù)據(jù)流導(dǎo)入QP,路由Tuples到其他節(jié)點(diǎn)或客戶端程序。Admin模塊用來(lái)控制本地的QP,例如建立查詢、遷移數(shù)據(jù)流圖片段,該模塊也會(huì)同LocalOptimizer協(xié)作優(yōu)化現(xiàn)有數(shù)據(jù)流圖。LocalOptimizer職責(zé)包括本地調(diào)度策略、調(diào)整Operator行為、超載后丟棄低價(jià)值元組等。StorageManager模塊用于存儲(chǔ)本地計(jì)算的狀態(tài)數(shù)據(jù)。LocalCatalog存儲(chǔ)本地?cái)?shù)據(jù)流圖和元數(shù)據(jù),可以被本地所有組件訪問(wèn)。BorealisNode還有彼此通信的模塊用于執(zhí)行協(xié)作任務(wù)。NeighborhoodOptimizer使用本地和鄰居節(jié)點(diǎn)來(lái)優(yōu)化節(jié)點(diǎn)間的負(fù)載均衡或shedload。HighAvailability(HA)模塊相互監(jiān)測(cè),發(fā)現(xiàn)對(duì)方故障時(shí)及時(shí)代替對(duì)方。LocalMonitor收集本地性能相關(guān)統(tǒng)計(jì)數(shù)字報(bào)告給本地和NeighborhoodOptimizer。GlobalCatalog為整個(gè)數(shù)據(jù)流計(jì)算提供了一個(gè)邏輯上的完整視圖。除作為基本功能節(jié)點(diǎn)外,BorealisServer也可以被設(shè)計(jì)成一個(gè)協(xié)作節(jié)點(diǎn)來(lái)執(zhí)行全局的系統(tǒng)監(jiān)控和其他優(yōu)化任務(wù),比如全局的負(fù)載分布和GlobalLoadShedding,因此Borealis實(shí)際上提供了完整的3級(jí)監(jiān)控和優(yōu)化(Local、Neighborhood、Global)。負(fù)載均衡方面,Borealis提供了動(dòng)態(tài)和靜態(tài)兩種部署機(jī)制。Correlation-basedOperatorDistribution通過(guò)分析不同Operators和Nodes間的負(fù)載變化的關(guān)系,決定和動(dòng)態(tài)調(diào)整Operatpr的部署,使之達(dá)到負(fù)載均衡。ResilientOperatorDistributionAlgorithm該算法的目標(biāo)是提供一種靜態(tài)的Operator部署方案,該方案能夠在不需要重新調(diào)整的情況下處理最大可能的輸入速度變化范圍。由于動(dòng)態(tài)調(diào)整需要時(shí)間和消耗,前者適用于負(fù)載變化持續(xù)時(shí)間較長(zhǎng)的系統(tǒng);而后者則能處理較快較短的負(fù)載峰值。在實(shí)現(xiàn)上前者使用相關(guān)系數(shù)作為節(jié)點(diǎn)關(guān)聯(lián)度指標(biāo),并通過(guò)貪婪算法將NP問(wèn)題轉(zhuǎn)化為多項(xiàng)式求解;而后者在部署前計(jì)算完畢,保證系統(tǒng)能夠容忍負(fù)載峰值。該算法在線性代數(shù)上建模,包括OperatorOrdering、OperatorAssignment兩個(gè)階段。Borealis通過(guò)四種容錯(cuò)機(jī)制來(lái)滿足用戶需求。AmnesiaBackup備機(jī)發(fā)現(xiàn)主機(jī)故障,立即從一個(gè)空的狀態(tài)開始重做。PassiveStandby主機(jī)處理,備機(jī)待命,主機(jī)按周期做Checkpoint,主機(jī)故障后切換到備機(jī),重放Checkpoint和數(shù)據(jù)流,對(duì)于不確定性計(jì)算可以很好地支持,缺點(diǎn)是恢復(fù)時(shí)間較長(zhǎng)。ActiveStandby主備機(jī)同時(shí)計(jì)算,主機(jī)故障時(shí)直接切換到備機(jī),不支持不確定性計(jì)算,浪費(fèi)計(jì)算資源,不過(guò)恢復(fù)時(shí)間幾乎沒有。UpstreamBackup通過(guò)上游備份來(lái)容錯(cuò),故障時(shí)從上游重放數(shù)據(jù)即可,恢復(fù)時(shí)間最長(zhǎng),不過(guò)最節(jié)省資源。除此之外,Borealis還提供了更高級(jí)的容錯(cuò)機(jī)制RollbackRecovery,它是一種基于副本在節(jié)點(diǎn)失效、網(wǎng)絡(luò)失效或網(wǎng)絡(luò)分區(qū)時(shí)的故障恢復(fù)機(jī)制,在盡量減少系統(tǒng)不一致的情況下,盡可能地保證系統(tǒng)的可用性。該機(jī)制允許用戶定義一個(gè)閾值來(lái)在一致性和可用性之間做一個(gè)平衡。當(dāng)系統(tǒng)數(shù)據(jù)恢復(fù)后,系統(tǒng)支持重新計(jì)算輸出正確的結(jié)果,保證最終一致性。該機(jī)制使用了Data-serializingOperator(SUnion)來(lái)確保所有的副本處理同樣順序的數(shù)據(jù)。當(dāng)失效恢復(fù)后,通過(guò)Checkpoint/Redo、Undo/Redo來(lái)實(shí)現(xiàn)恢復(fù)重放。數(shù)據(jù)服務(wù)數(shù)據(jù)服務(wù)主要描述數(shù)據(jù)訪問(wèn)接口,數(shù)據(jù)服務(wù)管理、數(shù)據(jù)共享服務(wù)、數(shù)據(jù)交換服務(wù)、元數(shù)據(jù)服務(wù)等。數(shù)據(jù)訪問(wèn)接口API形式、圖形表格形式等。數(shù)據(jù)服務(wù)管理數(shù)據(jù)共享服務(wù)數(shù)據(jù)交換服務(wù)元數(shù)據(jù)服務(wù)數(shù)據(jù)治理(可裁剪)數(shù)據(jù)治理體系建設(shè)的目的,是建立數(shù)據(jù)擁有者、使用者、數(shù)據(jù)以及支撐系統(tǒng)之間的和諧互補(bǔ)關(guān)系,從全機(jī)構(gòu)視角協(xié)調(diào)、統(tǒng)領(lǐng)各個(gè)層面的數(shù)據(jù)管理工作,確保內(nèi)部各類人員能夠得到及時(shí)、準(zhǔn)確的數(shù)據(jù)支持和服務(wù)。通常認(rèn)為,數(shù)據(jù)治理至少應(yīng)當(dāng)涵蓋如下功能域:信息資源目錄管理、主數(shù)據(jù)管理、元數(shù)據(jù)管理、數(shù)據(jù)質(zhì)量管理、數(shù)據(jù)標(biāo)準(zhǔn)管理以及數(shù)據(jù)生命周期管理。數(shù)據(jù)治理體系在數(shù)據(jù)架構(gòu)中的定位:元數(shù)據(jù)管理生命周期管理數(shù)據(jù)質(zhì)量管理數(shù)據(jù)安全設(shè)計(jì)(可裁剪)信息系統(tǒng)安全架構(gòu)分為兩個(gè)方面:管理要求和技術(shù)要求。管理要求分為:安全管理制度,安全管理機(jī)構(gòu),系統(tǒng)建設(shè)管理和系統(tǒng)運(yùn)維;技術(shù)要求分為:物理安全,網(wǎng)絡(luò)安全,主機(jī)安全,應(yīng)用安全和數(shù)據(jù)安數(shù)據(jù)安全貫穿數(shù)據(jù)整個(gè)生命周期,其安全問(wèn)題涉及數(shù)據(jù)整個(gè)數(shù)據(jù)生命周期的管理過(guò)程。對(duì)企業(yè)而言所有的數(shù)據(jù)在其生命周期中都應(yīng)當(dāng)被有效地管理,通過(guò)必要控制手段清晰地界定避免內(nèi)部非授權(quán)的訪問(wèn),并指定完善的數(shù)據(jù)備份、恢復(fù)策略、刪除策略,保證數(shù)據(jù)的安全性。數(shù)據(jù)安全的內(nèi)容可以簡(jiǎn)化為保密性、完整性和可用性。其中包括數(shù)據(jù)本身的安全,即利用現(xiàn)代密碼技術(shù)對(duì)數(shù)據(jù)進(jìn)行主動(dòng)保護(hù),如數(shù)據(jù)保密、保證數(shù)據(jù)完整性等等。同時(shí)還包括數(shù)據(jù)防護(hù)的安全,即利用技術(shù)手段對(duì)數(shù)據(jù)進(jìn)行保護(hù),如磁盤陣列、數(shù)據(jù)備份、異地容災(zāi)等等。數(shù)據(jù)安全特性與技術(shù)安全審計(jì)數(shù)據(jù)安全審計(jì)是對(duì)每個(gè)用戶在計(jì)算機(jī)系統(tǒng)上的操作做一個(gè)完整的記錄,以備用戶違反安全規(guī)則的事
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 天門職業(yè)學(xué)院《數(shù)學(xué)教師技能實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 天津中醫(yī)藥大學(xué)《行草書技法二》2023-2024學(xué)年第一學(xué)期期末試卷
- 天津中德應(yīng)用技術(shù)大學(xué)《宴會(huì)設(shè)計(jì)與管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 天津中德應(yīng)用技術(shù)大學(xué)《商業(yè)銀行沙盤》2023-2024學(xué)年第一學(xué)期期末試卷
- 智能家居實(shí)課程設(shè)計(jì)
- 污水廠課程設(shè)計(jì)去除率
- 櫻桃卡通漫畫課程設(shè)計(jì)
- 小學(xué)環(huán)境保護(hù)的課程設(shè)計(jì)
- 精-品解析:廣東省深圳市龍崗區(qū)實(shí)驗(yàn)學(xué)校2022-2023學(xué)年九年級(jí)上學(xué)期期末化學(xué)試題(原卷版)
- 無(wú)錫紅色研學(xué)課程設(shè)計(jì)
- 小學(xué)綜合實(shí)踐四年級(jí)上冊(cè)第1單元《主題活動(dòng)三:學(xué)校中遵守規(guī)則情況調(diào)查》教案
- 盡調(diào)清單(重大事項(xiàng)變更)
- (最新版)高考送考工作方案
- 裝修公司客戶服務(wù)部 客服類流程結(jié)點(diǎn)說(shuō)明
- 餐具清洗消毒制度范文
- 機(jī)電工程規(guī)范
- 骶髂關(guān)節(jié)炎病因與治療課件
- 攝影器材借還管理登記表Excel模板
- 中國(guó)風(fēng)兒童滿月紀(jì)念相冊(cè)PPT模板
- 論倒簽提單的效力和后果
- 楊柳煤礦“三量”動(dòng)態(tài)變化情況分析報(bào)告(3)
評(píng)論
0/150
提交評(píng)論