的事實屬性作為JSON對象。
[0031]var fact = {
[0032]month: {id: 1},
[0033]item: {id: "tablet “},
[0034]ship_to: {id: "sap"},
[0035]channel:{id:"x"},
[0036]units:256};
[0037]注意的是,提供的示例具有非常簡單的形式。在其他實現中,事件將被提供有更多維度的信息。特別注意的是,事件結構應該匹配模式結構(例如,雪花,星形,等等)。當事件結構不匹配模式結構時,差異可以被解釋為數據結構中的變化,并且動態(tài)地引發(fā)對于數據庫模式和有關的元數據的修改。
[0038]為了向AppA 202發(fā)出填充的事件數據結構(參照圖1),客戶端可以(使用API)調用:
[0039]//向事實表格添加你的事件。
[0040]APPA.sendFact ( “pro jectld”,fact);
[0041]SDK和API可以以任意合適的語言實現,例如JAVASCRIPT、Objective C、JAVA等等。
[0042]被接收作為事件對象的一部分的數據被動態(tài)地存儲在數據庫表格中。在一些實現中,數據可以存儲在若干數據庫表格中(例如,圖1)。注意的是,上面的示例JSON對象很接近地映射到圖1中詳述的數據庫模式。AppA 202可以基于接收到的事件數據和元數據的結構導出和形成數據庫模式的結構。在一些實現中,接收到的事件數據對象可以提供由AppA202使用的元素(元數據,方法等等)以定義數據庫模式的結構。
[0043]當接收到事件時,“輸入模式”然后被種入(seed)到存儲數據庫模式和關聯(lián)的元數據(表名、列名、類型,鍵、聯(lián)結、表格的角色等等)的業(yè)務智能查詢編譯器(例如,DaSL),以用于在當被請求時運行用于檢索存儲在數據庫中的數據的查詢。例如,使用圖1的示例,最終用戶可以請求每月出售了多少單元,并且DaSL可以適當地檢索存儲在數據庫中的數據。
[0044]在一些實現中,可以創(chuàng)建附加的視圖(例如,數據庫分析、計算和/或屬性視圖);在其他實現中,需要創(chuàng)建諸如業(yè)務對象域(universe)的特定元數據。DaSL輸入模式可以基于這些視圖或附加的元數據。這些視圖/域將稍后用于執(zhí)行對數據庫的實際查詢(例如,DaSL可以生成適當格式的查詢)。這個步驟不是嚴格地強制的,因為DaSL還可以直接在數據庫模式之上工作-在這種情況下,DaSL直接生成SQL查詢。換句話說,當存在可用的BI子系統(tǒng)時,它將在此時建立,以便DaSL可以利用它并且產生專用查詢。
[0045]AppA 202向DaSL提供適當的元數據數據(輸入模式),以便DaSL理解可以在數據庫上執(zhí)行什么類型的查詢(以及通過哪種語言/形式)。雖然未完全地示出,但是需要的元數據源自于事件本身并且由AppA 202使用以預先向DaSL通知如何在數據庫中表示信息。例如,在一些實現中,AppA 202可以使用在事件對象中接收到的字段的名稱來創(chuàng)建用于存儲那些信息的數據庫表格,并向DaSL通知與事件相關聯(lián)的數據庫模式結構,并且DaSL可以基于數據庫模式的已知結構以及提供的字段名來生成適當的數據庫(或BI子系統(tǒng))查詢。在一些實現中,直接重用字段名(例如,如果它們包含有特定數據庫中不可被接受為列名的字符)是不可能的,但是無論如何,AppA 202將定義并保持字段名和列名之間的映射。舉例來說,對于用ID標識(ship)的單元的查詢(參照圖1),DaSL將使用事實表格102的主關鍵字Item_ID生成訪問Product_Dim表格104b的適當查詢,以用于完成查詢的任何必要的信息。
[0046]在一些實現中,只要存在兩個結構之間的映射,數據儲存器和事件結構就可以去耦(decouple)。事實情況是,輸入模式更接近地映射到接收到的事件并且不同對象之間的邏輯依賴的結構還可以使得管理更清楚/可管理。DaSL查詢按照需要被映射到數據結構的屬性來表示,并且可以向最終用戶隱藏細節(jié)。最終用戶一般使用工具(參照圖4)來生成對DaSL適當的查詢以用于數據檢索。工具引入最終用戶和DaSL之間的抽象層。
[0047]圖3是示出根據實現的、用于輸入模式的動態(tài)生成和修改的示例分布式計算系統(tǒng)(EDCS)300的框圖。示出的EDCS 300包括或可通信地耦接在網絡330上通信的數據庫服務器(DBS) 302和客戶端340。在一些實現中,EDCS 300的一個或多個組件可以被配置為在基于云計算的環(huán)境之內操作(如下面的圖4中示出的)。
[0048]在高級別,DBS 302是可操作以使用數據庫204接收、發(fā)送、處理、存儲或管理與EDCS 300相關聯(lián)的數據和信息的電子計算設備。在示例性實現中,數據庫204是內存數據庫。內存數據庫204是主要依靠易失性電子存儲器的高性能數據庫管理系統(tǒng)(DBMS)以用于存儲、檢索和處理數據,所述易失性電子存儲器是諸如隨機存取存儲器(RAM),而不是磁的、光學的、可移動的或其他合適的非電子存儲器。在一些實現中,對電子存儲器的依賴允許近實時的聚集、復制、同步和處理數據。在一些實現中,持久層確保如果發(fā)生電力或其他系統(tǒng)故障則內存數據庫的副本保持在非易失性的磁的、光學的、可移動的或其他合適的非電子存儲器中,以便允許恢復內存數據庫。在其他實現中,數據庫204可以是主要依賴非易失性的磁的、光學的、可移動的、或其他合適的非電子存儲器以用于存儲、檢索和處理數據的傳統(tǒng)的數據庫。在一些實現中,數據庫服務器402可以包含可以共享存儲、處理、及其他適當的數據庫功能的傳統(tǒng)的數據庫和內存數據庫兩者。
[0049]通常,DBS 302是提供應用分析能力/功能的服務器。具體地,DBS 302提供用于輸入模式的動態(tài)生成和修改的功能。除此以外,DBS 302至少負責從EDCS 300的(例如,由與客戶端340相關聯(lián)的客戶端應用346訪問的)一個或多個數據源206a/b接收請求、事件和/或數據,分析并將接收到的數據存儲到輸入模式中,以及向最終用戶工具提供數據以更新數據可視化(例如,儀表板)。除了從客戶端340接收到的請求之外,請求還可以從內部用戶、外部或第三方、其他自動應用、以及任意其他適當的實體、個人、系統(tǒng)或計算機發(fā)送給DBS 302。在一些實現中,多個請求可以從直接訪問(例如,從服務器命令控制臺或通過其他適當的訪問方法)DBS 302的用戶直接發(fā)送到DBS 302。根據一些實現,DBS 302還可以包括或可通信地耦接電子郵件服務器、網絡服務器、高速緩存服務器、流數據服務器、業(yè)務智能(BI)服務器和/或其他服務器。
[0050]DBS 302的組件中的每一個可以使用系統(tǒng)總線303通信。在一些實現中,DBS 302的任意和/或全部組件,硬件和/或軟件兩者,可以使用應用編程接口(API) 312和/或服務層313通過系統(tǒng)總線303彼此連接、和/或與接口 304連接。API 312可以包括用于例程、數據結構和對象分類的規(guī)范。API 312可以或者獨立于計算機語言或者依賴于計算機語言,并且涉及完整接口、單個功能、乃至API的集合。服務層313向EDCS 300提供軟件服務。DBS 302的功能可以易于全部服務消費者使用此服務層。軟件服務,諸如由服務層313提供的那些軟件服務,通過定義的接口提供可重用的、已定義的業(yè)務功能。例如,接口可以是以可擴展標記語言(XML)格式或其他合適的格式以JAVA、C++或其他合適的語言編寫的軟件。
[0051]雖然示出為EDCS 300中的DBS 302的集成組件,但是替換實現可以示出API 312和/或服務層313為相對于EDCS 300的其他組件獨立的組件。此外,API 312和/或服務層313的任意或全部部分可以實現為另一軟件模塊、企業(yè)應用或硬件模塊的子模塊或次模塊而不脫離此公開的范圍。例如,API312可以合并到AppA 202中。
[0052]DBS 302包括接口 304。雖然在圖3中示出為單個接口 304,但是可以根據EDCS300的特定需要、期望、或特定實現使用兩個或更多接口 304。接口 304由DBS 302用于與包括在EDCS 300之內的、連接到網絡330的分布式環(huán)境中的其他系統(tǒng)通信;例如,客戶端340以及其他系統(tǒng)可通信地耦接到網絡330 (無論示出與否)。通常,接口 304包括以合適的組合編碼在軟件和/或硬件中的邏輯,并且可操作與網絡330通信。更具體地,接口 304可以包含支持與通信相關聯(lián)的一個或多個通信協(xié)議的軟件,從而網絡330或接口的硬件可操作以在示出的EDCS 300之內和外部傳遞物理信號。
[0053]DBS 302包括處理器305。雖然在圖3中示出為單個處理器305,但是可以根據EDCS 300的特定需要、期望、或特定實現使用兩個或更多處理器。通常,處理器305運行指令并且操作數據以執(zhí)行DBS 302的操作。具體地,處理器305運行輸入模式的動態(tài)生成和修改所需的功能。
[0054]DBS 302還包括存儲器306,其保持用于EDCS 300的DBS 302、客戶端340、和/或其他組件的數據。雖然在圖3中示出為單個存儲器306,但是可以根據EDCS 300的特定需要、期望、或特定實現使用兩個或更多存儲器。雖然存儲器306示出為DBS 302的集成組件,但是在替換實現中,存儲器306可以在DBS 302和/或EDCS 300外部。
[0055]在高級別中,AppA 202是提供如上所述的功能的任何種類的軟件和/或硬件組件中的一個或多個,以用于基