因?yàn)槌志眯缘囊髮?duì)于下游歸檔不是 必要的。持久性消息只在進(jìn)入到用于打包和歸檔的捆綁器時(shí)被要求。從該點(diǎn)上來(lái)說(shuō),鑒于 唯一標(biāo)識(shí)符和打包,所有的數(shù)據(jù)是可重復(fù)的。非持久主題被用于發(fā)布捆綁器外或下游的所 有活動(dòng),大大降低了基礎(chǔ)設(shè)施的負(fù)擔(dān)。
[0045] 通過(guò)使數(shù)據(jù)分布系統(tǒng)200的組件配置是聲明性的,系統(tǒng)可以動(dòng)態(tài)地運(yùn)轉(zhuǎn)流量處理 組件,如上所述。通過(guò)使數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)源模型是聲明性的,該系統(tǒng)提供了關(guān)于那些源的操 作透明度和簡(jiǎn)單的方法以建立哪些數(shù)據(jù)可從哪里得到的公共目錄。聲明訂閱可以被用于精 確地理解數(shù)據(jù)流,其在使用數(shù)據(jù)分布系統(tǒng)200的部門之間被共享。所有的數(shù)據(jù)和控制信號(hào) 可以通過(guò)系統(tǒng)被推送,從而隨著動(dòng)態(tài)的安裝和擴(kuò)展,允許聲明性協(xié)議和數(shù)據(jù)的發(fā)布者和訂 閱者之間的解耦。
[0046] 圖3所示是根據(jù)本技術(shù)的各種實(shí)施例的用于捆綁數(shù)據(jù)的一組操作300的流程圖。 接收操作310接收來(lái)自一個(gè)或多個(gè)數(shù)據(jù)發(fā)生器的流數(shù)據(jù)。確定操作320確定捆綁參數(shù)(例 如,束大?。┯糜诟鶕?jù)捆綁參數(shù)捆綁不同的小塊流數(shù)據(jù)。捆綁參數(shù)可包括允許業(yè)務(wù)確定數(shù) 據(jù)應(yīng)當(dāng)如何被分組或捆綁(例如,通過(guò)圖5所示的捆綁器)成數(shù)據(jù)包(例如,基于內(nèi)容、來(lái) 源、預(yù)期用途等)的業(yè)務(wù)規(guī)則。在一些情況下,捆綁器可以在進(jìn)行任何轉(zhuǎn)換之前集合原始消 息或數(shù)據(jù)。束可以被分配一單調(diào)增加的束ID或其它唯一標(biāo)識(shí)符以按順序?qū)κ判?。這種 唯一的ID可能是公共的ID,其用于報(bào)告版本、驗(yàn)證和任何其它需要利用束流數(shù)據(jù)的有保證 的順序的查詢活動(dòng)。
[0047] 存儲(chǔ)操作330在歸檔中存儲(chǔ)捆綁的數(shù)據(jù)包。然后發(fā)布操作340可以發(fā)布與在控制 通道上的束關(guān)聯(lián)的元數(shù)據(jù)。在一些實(shí)施例中,元數(shù)據(jù)可包括束ID。除了在控制通道上發(fā)布 元數(shù)據(jù),發(fā)布操作350可發(fā)布元數(shù)據(jù)至分離的流。盡管關(guān)于非持久主題的控制信息可以被 發(fā)送,控制數(shù)據(jù)的相同副本可具有數(shù)據(jù)本身。包括具有包的控制數(shù)據(jù)的一些優(yōu)點(diǎn)包括以下 內(nèi)容:1)系統(tǒng)的確切行為可從歸檔被讀取和重放,因?yàn)榘邪怂惺录蛿?shù)據(jù);以及 2)包括定位在束本身內(nèi)的索引信息的控制摘要信息允許文件(只是索引)的快速掃描,在 很多情況下消除了掃描整個(gè)文件的需要。
[0048] 圖4所示是根據(jù)技術(shù)的一些實(shí)施例的用于處理數(shù)據(jù)流的一組操作400的流程圖。 這些操作的一個(gè)或多個(gè)操作可以通過(guò)各種系統(tǒng)組件來(lái)執(zhí)行,如提交服務(wù)或捆綁器。如圖4 所示,接收操作410接收來(lái)自一個(gè)或多個(gè)數(shù)據(jù)發(fā)生器的流數(shù)據(jù)。捆綁操作420捆綁流數(shù)據(jù) 成為數(shù)據(jù)包,如圖3所示。其通過(guò)排序操作430被分配了唯一的標(biāo)識(shí)符。傳送操作440傳 送具有分配的唯一標(biāo)識(shí)符的數(shù)據(jù)包至一個(gè)或多個(gè)數(shù)據(jù)用戶。
[0049] 捆綁操作420可以集合進(jìn)入數(shù)據(jù)分布系統(tǒng)的不同小塊的信息成為較大的時(shí)鐘邏 輯的數(shù)據(jù)塊、數(shù)據(jù)包或束。由捆綁操作420執(zhí)行的大數(shù)據(jù)流的集合允許系統(tǒng)利用數(shù)據(jù)和控 制的分離。通過(guò)調(diào)整被包括在束元數(shù)據(jù)內(nèi)的束大小和控制信息,該系統(tǒng)可以創(chuàng)建多倍效率 用于管理通過(guò)束的元數(shù)據(jù)的數(shù)據(jù)(又名控制數(shù)據(jù))。各種實(shí)施例允許控制數(shù)據(jù)的內(nèi)容的選 擇以調(diào)整大數(shù)據(jù)流的決定。
[0050] 通過(guò)捆綁操作420進(jìn)行數(shù)據(jù)的集合或"分塊"也具有改善10性能的直接和簡(jiǎn)單的 好處。在一些實(shí)施例中,通過(guò)唯一的ID,捆綁與序列化和識(shí)別束的排序密切相關(guān),它對(duì)于創(chuàng) 建數(shù)據(jù)的可靠分布是有用的。沒有通過(guò)序列化和識(shí)別給定的一致的排序,數(shù)據(jù)流不能在多 個(gè)位置被可靠地再現(xiàn)(例如,主要的和備份)。
[0051] 圖5所示是根據(jù)本技術(shù)的一個(gè)或多個(gè)實(shí)施例的數(shù)據(jù)分布系統(tǒng)500的一組組件。如 圖5所示,數(shù)據(jù)分布系統(tǒng)500可以包括捆綁器510、歸檔520、轉(zhuǎn)換器530、存儲(chǔ)庫(kù)服務(wù)540、 加載器550、報(bào)告存儲(chǔ)560和存儲(chǔ)570。
[0052] 從數(shù)據(jù)流的角度看,捆綁器510可以位于提交服務(wù)和歸檔服務(wù)520之間。提交服 務(wù),盡管沒有示出,是從一個(gè)或多個(gè)數(shù)據(jù)發(fā)生器接收原始流數(shù)據(jù),并將該原始數(shù)據(jù)提供給捆 綁器510。捆綁器510創(chuàng)建特定數(shù)據(jù)流的連續(xù)排序的束,S卩,有一組特定的協(xié)調(diào)的捆綁器進(jìn) 程用于每種類型的消息流。這些協(xié)調(diào)進(jìn)程創(chuàng)建集合的數(shù)據(jù)表示,并將其發(fā)送到歸檔服務(wù)。
[0053] 考慮到束是以單調(diào)增加順序被生成和流動(dòng)的,不同"束流"可被創(chuàng)建以便于數(shù)據(jù)流 的不同部分的動(dòng)態(tài)加速,其中基于一些選擇標(biāo)準(zhǔn)使得一些束流動(dòng)比其它束快。元數(shù)據(jù)的選 擇可以被用來(lái)識(shí)別和分別列舉一系列的束。
[0054] 作為一個(gè)示例,多束可以通過(guò)以下標(biāo)準(zhǔn)構(gòu)建:業(yè)務(wù)日期,類型:={GreeksICredi tGreeks|UnderlierAttributes},以及地域:={GL|AS|EU|AM}。這將導(dǎo)致每個(gè)業(yè)務(wù)日期 的流經(jīng)數(shù)據(jù)分布系統(tǒng)的12束流;每個(gè)束流的唯一標(biāo)識(shí)符必須是單獨(dú)的,以便允許有優(yōu)先次 序,并且是無(wú)間隔和有序的單調(diào)遞增的唯一ID。
[0055] 在一些實(shí)施例中,束的內(nèi)容可以包括控制數(shù)據(jù),其被與數(shù)據(jù)打包在一起成為束。盡 管關(guān)于非持久主題的控制信息也被發(fā)送出,其相同副本可具有數(shù)據(jù)本身。一些優(yōu)點(diǎn)包括以 下內(nèi)容:1)系統(tǒng)的確切行為可從歸檔被讀取和重放,因?yàn)槭邪怂惺录蛿?shù)據(jù);以 及2)被定位在束本身內(nèi)的包括索引信息的控制摘要信息允許文件(只是索引)的快速掃 描,從而減少或消除了掃描整個(gè)文件的需要。
[0056] 束可以是在任何轉(zhuǎn)換被執(zhí)行之前的原始信息的集合。束可以通過(guò)唯一標(biāo)識(shí)符被序 列化,其可以是單調(diào)增加的束ID。這種唯一的標(biāo)識(shí)符可能是公共的ID,其被用于報(bào)告版本、 驗(yàn)證和任何其它需要利用束流數(shù)據(jù)的有保證的順序的查詢活動(dòng)。束消息可以包括任何以下 五個(gè)部分:1)摘要部分;2)質(zhì)量部分;3)索引部分;4)校驗(yàn)和部分;和/或5)數(shù)據(jù)部分。
[0057] 束的摘要段可以被用來(lái)以密鑰信息和束的那些頂層屬性唯一地標(biāo)識(shí)束,那些屬性 通常是在所有類型的數(shù)據(jù)中引發(fā)關(guān)注,所有類型的數(shù)據(jù)如被捆綁的數(shù)據(jù)流、束的序列號(hào)、列 表數(shù)據(jù)的行數(shù),和數(shù)據(jù)段的大小。在一些實(shí)施例中,摘要段可獨(dú)立于所有其它部分被發(fā)送以 作為一個(gè)快速控制信號(hào)。
[0058] 質(zhì)量部分是在束消息中可選的輕量級(jí)保留段,其是由純?cè)椿M(jìn)程決定來(lái)填充。例 如,定價(jià)進(jìn)程可能會(huì)提供關(guān)于它生產(chǎn)的數(shù)據(jù)的性質(zhì)的指標(biāo),例如完整性檢查故障。通過(guò)將完 整性檢查故障放在一個(gè)特殊區(qū)域用于數(shù)據(jù)的獨(dú)立消耗,純?cè)椿梢詾橛嗛喺咛峁└咚俣?的信息至質(zhì)量段。以下團(tuán)隊(duì)可能訂閱這些信號(hào)以在糟糕的數(shù)據(jù)擊中束時(shí)就提前知道糟糕的 數(shù)據(jù)。MR分析師也可能訂閱某些信號(hào)以獲得完整性檢查故障的預(yù)警。這些消息段的大小將 在物理上被限制,且該效用將取決于提供時(shí)數(shù)據(jù)是如何被精心組織的。
[0059] 索引段是可選束段,其以簡(jiǎn)明的形式指示該束的內(nèi)容其對(duì)于跟蹤和解決問(wèn)題是有 用的。不同于質(zhì)量段,索引段通過(guò)使用業(yè)務(wù)對(duì)齊策略基于應(yīng)用于列表數(shù)據(jù)的密鑰規(guī)則的束 而建立。索引段可能是數(shù)據(jù)本身大小的一小部分,但預(yù)計(jì)有時(shí)將大于摘要和質(zhì)量段。
[0060] 校驗(yàn)和消息段可以被包括在包含數(shù)據(jù)段的消息內(nèi)。通過(guò)包括校驗(yàn)和消息段,數(shù)據(jù) 加載變得在所有分布的位置中獨(dú)立地可驗(yàn)證。在一些實(shí)施例中,校驗(yàn)和消息段包括表示在 數(shù)據(jù)部分中的列表數(shù)據(jù)的所有列的集合/總和/散列的校驗(yàn)和。
[0061] 在一些實(shí)施例中,束的數(shù)據(jù)段可以是消息或數(shù)據(jù)的集合的一列表式重組。數(shù)據(jù)可 以以一中性形式被保存。該數(shù)據(jù)的格式通過(guò)在保持輸入消息格式