資料計算方法及引擎
本發明係關於電腦技術領域,特別關於一種資料計算方法及引擎。
在業務系統的運行過程中,會產生大量的資料。在實際應用場景中,開發人員一般根據自身的需求開發相應的腳本,並利用該腳本對業務系統產生的資料進行計算,資料計算結果可被用於分析用戶的需求等。
例如,以下兩個查詢過程分別對應兩個腳本,一是查詢用戶1的常用IP,然後查詢該IP使用的常用設備;二是查詢用戶1的常用IP,然後查詢該IP的最近使用時間。透過完整地執行該腳本來實現查詢目的。
上述兩個查詢過程中都存在“查詢用戶1的常用IP”。由於資料查詢實現的全過程包裝在一整段程式碼片段中,所以,在實際查詢過程中,需要對“用戶1的常用IP”這一資料進行2次查詢。而重複查詢同一資料,將增加業務系統的IO消耗。
鑒於此,本發明實施例提供了一種資料計算方法及引擎,能夠降低業務系統的IO消耗。
第一態樣,本發明實施例提供了一種資料計算方法,包括:
接收資料計算請求,其中,所述資料計算請求中包括:若干目標資料視圖的標識;
根據預設的與資料視圖相對應的DAG(Directed Acyclic Graph,有向無環圖)配置,確定各個所述目標資料視圖的當前層DS(Data Source,資料源)節點和所述當前層DS節點的輸入參數;
根據各個所述當前層DS節點及其輸入參數,確定若干當前層目標DS節點及其輸入參數,其中,所述若干當前層目標DS節點中不存在第一DS節點和第二DS節點,所述第一DS節點與第二DS節點相同、且所述第一DS節點的輸入參數與所述第二DS節點的輸入參數相同;
根據各個所述當前層目標DS節點的輸入參數,執行各個所述當前層目標DS節點;
根據各個所述當前層目標DS節點的執行結果和各個所述目標資料視圖對應的DAG配置,確定各個所述目標資料視圖的當前層的資料計算結果。
第二態樣,本發明實施例提供了一種資料計算引擎,包括:
接收單元,用於接收資料計算請求,其中,所述資料計算請求中包括:若干目標資料視圖的標識;
確定單元,用於根據預設的與資料視圖相對應的DAG配置,確定各個所述目標資料視圖的當前層DS節點和所述當前層DS節點的輸入參數;
合併單元,用於根據各個所述當前層DS節點及其輸入參數,確定若干當前層目標DS節點及其輸入參數,其中,所述若干當前層目標DS節點中不存在第一DS節點和第二DS節點,所述第一DS節點與第二DS節點相同、且所述第一DS節點的輸入參數與所述第二DS節點的輸入參數相同;
執行單元,用於根據各個所述當前層目標DS節點的輸入參數,執行各個所述當前層目標DS節點;
計算單元,用於根據各個所述當前層目標DS節點的執行結果和各個所述目標資料視圖對應的DAG配置,確定各個所述目標資料視圖的當前層的資料計算結果。
本發明實施例採用的上述至少一個技術方案能夠達到以下有益效果:該方法將資料計算抽象為取數邏輯和資料加工邏輯,其中,取數邏輯透過DS節點(資料源層)實現,資料加工邏輯透過DAG配置(資料視圖層)實現。當接收到資料計算請求時,該方法將根據DAG配置分層收集DS節點(IO節點),並執行去重後的DS節點,減少對業務系統的存取次數,降低業務系統的IO消耗。
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的圖式,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例,基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動的前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
如圖1所示,本發明實施例提供了一種資料計算方法,該方法可以包括以下步驟:
步驟101:接收資料計算請求,其中,資料計算請求中包括:若干目標資料視圖的標識。
資料計算請求中還包括:各個目標資料視圖的第一層DS節點的輸入參數。一個資料計算請求可以針對一個或多個資料視圖。
步驟102:根據預設的與資料視圖相對應的DAG配置,確定各個目標資料視圖的當前層DS節點和當前層DS節點的輸入參數。
DAG配置為資料視圖的表現形式,DAG為分層結構,為確定各層目標DS節點提供了便利。DAG配置中可以包括多層,對每層的處理均可以採用步驟102提供的方法。
在本發明實施例中,對第一層來說,DS節點的輸入參數為資料計算請求中包括的資料視圖的第一層DS節點的輸入參數,對於除了第一層之外的其他層來說,DS節點的輸入參數為上一層的資料計算結果。
如圖2所示,是一種資料視圖對應的DAG配置,該資料視圖要實現的業務目的是:根據輸入用戶ID,獲取該用戶ID關聯的常用IP,並根據這些IP清單獲取曾經使用過這些IP進行登入的帳號總數。
該DAG配置包括兩層,第一層DS節點對應的執行任務為“取用戶常用IP列表”,其輸入參數為用戶ID;第二層DS節點對應的執行任務為“該IP出現過的帳號個數”,其輸入參數為第一層的資料計算結果,最終得到的資料計算結果為“用戶ID常用IP所能關聯出的帳號個數”。
需要說明的是,在DAG配置中,第一層DS節點和第二層DS節點分別位於DAG樹的不同層,即每個資料視圖本身存在多個待計算的層級。但是,從邏輯層面來說,第一層DS節點和第二層DS節點都屬於資料源層。
步驟103:根據各個當前層DS節點及其輸入參數,確定若干當前層目標DS節點及其輸入參數,其中,若干當前層目標DS節點中不存在第一DS節點和第二DS節點,第一DS節點與第二DS節點相同、且第一DS節點的輸入參數與第二DS節點的輸入參數相同。
需要說明的是,第一DS節點和第二DS節點為若干當前層目標DS節點中重複的節點,即兩個DS節點對應的執行任務相同,且對應的輸入參數也相同。
當DAG配置中包括多層時,需要確定每一層的目標DS節點及其輸入參數。現以圖3-圖5所示的三個DAG配置的第一層為例,對步驟103進行詳細的說明。
三個DAG配置的第一層DS節點分別為:DS4、DS1、DS1,對應的輸入參數皆為用戶ID,由於圖4中的DS1與圖5中的DS1相同,且兩個節點的輸入參數皆為用戶ID,則圖4中的DS1可以與圖5中的DS1合併執行,即第一層目標DS節點為DS4和DS1,對應的輸入參數皆為用戶ID。合併後得到的當前層目標DS節點的數量少於合併前的當前層DS節點的數量。
步驟104:根據各個當前層目標DS節點的輸入參數,執行各個當前層目標DS節點。
在現有技術中,由於線上業務系統和離線業務系統存在巨大的環境差異,導致資料計算邏輯需要被分開定義:即對同一資料需求(包含取數、資料加工等複雜的資料構造邏輯),需要根據環境不同,進行兩次獨立開發。這樣開發代價高,人力成本高,並且很難做到真正的資料邏輯對等。
鑒於此,根據應用的環境不同,該方法分為以下兩種情況:
情況1:所處環境為線上環境;
此時,步驟104具體包括:
A1:調用TR服務介面。
A2:將當前層目標DS節點的輸入參數提供給TR服務介面,以使TR服務介面獲取與當前層目標DS節點的輸入參數相匹配的資料。
情況2:所處環境為離線環境;
此時,步驟104具體包括:
從離線資料庫中篩選出與當前層目標DS節點的輸入參數相匹配的資料。
以圖2所示的DAG配置為例,對於第一層DS節點,當所處環境為線上環境時,步驟104可以透過調用一個TR服務介面實現:return IpService.queryIpList(userId)。當所處環境為離線環境時,步驟104可以透過一段SQL語句實現:select ip from table1 where userId=“userId”。
對於第二層DS節點,當所處環境為線上環境時,步驟104可以透過調用一個TR服務介面實現:return IpService.queryUserIdCount(ipList)。當所處環境為離線環境時,步驟104可以透過一段SQL語句實現:select count(userId) from table1 where ip in ipList。
在本發明實施例中,該資料計算方法支援配置化的IO合併,能夠最大限度的為各業務系統節省IO消耗。並且,該資料引擎支援一次配置,能夠同時適用於線上、離線環境,可大大節省資料開發成本,並提高線上、離線資料的一致性。
雖然DS節點這部分需要線上和離線各自根據環境適配,但由於以下兩個原因,使得這個過程簡單可控,不會增加開發複雜度。
(1)DS節點僅包含最基本的取數邏輯,不存在複雜加工邏輯,離線和線上很好對齊。
(2)在資料計算場景中,基礎資料邏輯往往是一個很小的集合。更多資料是透過處理和加工而衍生出來的。
需要說明的是,為了提高資料計算效率,在步驟104中,併發執行各個當前層目標DS節點。
步驟105:根據各個當前層目標DS節點的執行結果和各個目標資料視圖對應的DAG配置,確定各個目標資料視圖的當前層的資料計算結果。
步驟105具體包括:
B1:根據各個當前層目標DS節點的執行結果和各個目標資料視圖對應的DAG配置,確定各個目標資料視圖對應的執行結果。
根據目標資料視圖的DAG配置可以確定各層DS節點,透過DS節點可以確定目標資料視圖對應的目標DS節點,該目標DS節點的執行結果即為目標資料視圖對應的執行結果。
目標資料視圖對應的執行結果可以分為兩種:一種是執行成功,即目標資料視圖對應的當前層目標DS節點在預設的執行時間範圍內得到與其輸入參數相匹配的資料;另一種是執行失敗,即目標資料視圖對應的當前層目標DS節點在執行時間範圍內未得到與其輸入參數相匹配的資料。
B2:根據各個目標資料視圖對應的執行結果及DAG配置進行資料計算,得到各個目標資料視圖的當前層的資料計算結果,其中,不同目標資料視圖對應的資料計算串列執行。
在本發明實施例中,透過預設的執行時間範圍控制執行目標DS節點的時間,提高資料計算的效率。執行時間範圍的存在能夠避免一個目標資料視圖的資料計算過程中止,不影響其他目標資料視圖的資料計算過程的進行。如果在執行時間範圍內有某個DS節點沒算出來,則這個DS的計算過程放到後續DS參數準備過程中串列計算。
針對上述兩種執行結果,根據各個目標資料視圖對應的執行結果及DAG配置進行資料計算,具體分為以下兩種情況:
(1)當目標資料視圖對應的當前層目標DS節點在預設的執行時間範圍內得到與其輸入參數相匹配的資料時,根據資料和目標資料視圖對應的DAG配置進行資料計算。
(2)當目標資料視圖對應的當前層目標DS節點在執行時間範圍內未得到與其輸入參數相匹配的資料時,根據目標資料視圖對應的當前層目標DS節點的輸入參數,重新執行目標資料視圖對應的當前層目標DS節點,當目標資料視圖對應的當前層目標DS節點在執行時間範圍內得到與其輸入參數相匹配的資料時,根據目標資料視圖對應的DAG配置進行資料計算。
當然,在實際應用場景中,當目標資料視圖對應的當前層目標DS節點在執行時間範圍內未得到與其輸入參數相匹配的資料時,還可以終止目標資料視圖的資料計算過程。需要說明的是,一個目標資料視圖對應的資料計算過程終止,並不影響其他目標資料視圖對應的資料計算過程。
該方法將資料計算抽象為取數邏輯和資料加工邏輯,其中,取數邏輯透過DS節點(資料源層)實現,資料加工邏輯透過DAG配置(資料視圖層)實現。當接收到資料計算請求時,該方法將根據DAG配置分層收集DS節點(IO節點),並執行去重後的DS節點,減少對業務系統的存取次數,降低業務系統的IO消耗。
本發明實施例以圖3-圖5所示的三個資料視圖對應的DAG配置為例,對資料計算方法進行詳細的說明,該方法包括:
S1:接收資料計算請求,其中,資料計算請求中包括:若干目標資料視圖的標識和各個目標資料視圖的第一層DS節點的輸入參數。
假設圖3所示的DAG配置對應資料視圖1,圖4所示的DAG配置對應資料視圖2,圖5所示的DAG配置對應資料視圖3。
資料計算請求中包括:目標資料視圖的標識1、2、3,對應的第一層DS節點的輸入參數皆為用戶ID。
S2:根據預設的與資料視圖相對應的DAG配置,確定各個目標資料視圖的第一層DS節點和第一層DS節點的輸入參數。
目標資料視圖1的第一層DS節點為DS4,對應的輸入參數為用戶ID;目標資料視圖2的第一層DS節點為DS1,對應的輸入參數為用戶ID;目標資料視圖3的第一層DS節點為DS1,對應的輸入參數為用戶ID。
S3:根據各個第一層DS節點及其輸入參數,確定若干第一層目標DS節點及其輸入參數,其中,若干第一層目標DS節點中不存在第一DS節點和第二DS節點,第一DS節點與第二DS節點相同、且第一DS節點的輸入參數與第二DS節點的輸入參數相同。
第一層目標DS節點為DS1和DS4,對應的輸入參數皆為用戶ID。
S4:根據各個第一層目標DS節點的輸入參數,執行各個第一層目標DS節點。
以目標資料視圖1為例,當所處環境為線上環境時,S4具體包括:調用TR服務介面;將用戶ID提供給TR服務介面,以使TR服務介面獲取與用戶ID相匹配的資料。
當所處環境為離線環境時,S4具體包括:從離線資料庫中篩選出與用戶ID相匹配的資料。
S5:根據各個第一層目標DS節點的執行結果和各個目標資料視圖對應的DAG配置,確定各個目標資料視圖對應的執行結果。
目標資料視圖1對應的執行結果為DS4的執行結果,目標資料視圖2、目標資料視圖3對應的執行結果為DS1的執行結果。
S6:根據各個目標資料視圖對應的執行結果及DAG配置進行資料計算,得到各個目標資料視圖的第一層的資料計算結果,其中,不同目標資料視圖對應的資料計算串列執行。
對上述三個目標資料視圖進行串列計算,但是目標資料視圖的具體計算順序並不做限定,例如,按照目標資料視圖1、2、3的順序,分別計算三個目標資料視圖第一層的資料計算結果。
以目標資料視圖1為例,當DS4在預設的執行時間範圍內得到與其輸入參數相匹配的資料時,根據資料和目標資料視圖1對應的DAG配置進行資料計算。其中,資料計算可以為資料過濾(filter)、資料校驗等。
當DS4在執行時間範圍內未得到與用戶ID相匹配的資料時,根據目標資料視圖1對應的用戶ID,重新執行目標資料視圖1對應的DS4,當目標資料視圖1對應的DS4在執行時間範圍內得到與用戶ID相匹配的資料時,根據目標資料視圖1對應的DAG配置進行資料計算。
在目標資料視圖1的第一層資料計算完成後,依次進行目標資料視圖2和目標資料視圖3的第一層資料計算。
S7:根據預設的與資料視圖相對應的DAG配置,確定各個目標資料視圖的第二層DS節點和第二層DS節點的輸入參數。
目標資料視圖1的第二層DS節點為DS2,對應的輸入參數為其第一層的資料計算結果;目標資料視圖2的第二層DS節點為DS2,對應的輸入參數為其第一層的資料計算結果;目標資料視圖3的第二層DS節點為DS3,對應的輸入參數為其第一層的資料計算結果。
S8:根據各個第二層DS節點及其輸入參數,確定若干第二層目標DS節點及其輸入參數,其中,若干第二層目標DS節點中不存在第一DS節點和第二DS節點,第一DS節點與第二DS節點相同、且第一DS節點的輸入參數與第二DS節點的輸入參數相同。
第二層目標DS節點為DS2和DS3,對應的輸入參數皆為上一層的資料計算結果。
S9:根據各個第二層目標DS節點的輸入參數,執行各個第二層目標DS節點。
以目標資料視圖1為例,當所處環境為線上環境時,S4具體包括:調用TR服務介面;將第一層的資料計算結果提供給TR服務介面,以使TR服務介面獲取與第一層的資料計算結果相匹配的資料。
當所處環境為離線環境時,S4具體包括:從離線資料庫中篩選出與第一層的資料計算結果相匹配的資料。
S10:根據各個第二層目標DS節點的執行結果和各個目標資料視圖對應的DAG配置,確定各個目標資料視圖對應的執行結果。
目標資料視圖1和目標資料視圖2對應的執行結果為DS2的執行結果,目標資料視圖3對應的執行結果為DS3的執行結果。
S6:根據各個目標資料視圖對應的執行結果及DAG配置進行資料計算,得到各個目標資料視圖的第二層的資料計算結果,其中,不同目標資料視圖對應的資料計算串列執行。
按照目標資料視圖1、2、3的順序,分別計算三個目標資料視圖第二層的資料計算結果。
以目標資料視圖1為例,當DS2在預設的執行時間範圍內得到與第一層的資料計算結果相匹配的資料時,根據資料和目標資料視圖1對應的DAG配置進行資料計算。其中,資料計算可以為資料去重、資料校驗等。
當DS2在執行時間範圍內未得到與第一層的資料計算結果相匹配的資料時,根據目標資料視圖1對應的第一層的資料計算結果,重新執行目標資料視圖1對應的DS2,當目標資料視圖1對應的DS2在執行時間範圍內得到與第一層的資料計算結果相匹配的資料時,根據目標資料視圖1對應的DAG配置進行資料計算。
在目標資料視圖1的第二層資料計算完成後,依次進行目標資料視圖2和目標資料視圖3的第二層資料計算。
如圖6所示,一種資料計算引擎,包括:
接收單元601,用於接收資料計算請求,其中,資料計算請求中包括:若干目標資料視圖的標識;
確定單元602,用於根據預設的與資料視圖相對應的有向無環圖DAG配置,確定各個目標資料視圖的當前層DS節點和當前層DS節點的輸入參數;
合併單元603,用於根據各個當前層DS節點及其輸入參數,確定若干當前層目標DS節點及其輸入參數,其中,若干當前層目標DS節點中不存在第一DS節點和第二DS節點,第一DS節點與第二DS節點相同、且第一DS節點的輸入參數與第二DS節點的輸入參數相同;
執行單元604,用於根據各個當前層目標DS節點的輸入參數,執行各個當前層目標DS節點;
計算單元605,用於根據各個當前層目標DS節點的執行結果和各個目標資料視圖對應的DAG配置,確定各個目標資料視圖的當前層的資料計算結果。
在本發明的一個實施例中,計算單元605,用於根據各個當前層目標DS節點的執行結果和各個目標資料視圖對應的DAG配置,確定各個目標資料視圖對應的執行結果;根據各個目標資料視圖對應的執行結果及DAG配置進行資料計算,得到各個目標資料視圖的當前層的資料計算結果,其中,不同目標資料視圖對應的資料計算串列執行。
在本發明的一個實施例中,計算單元605,用於當目標資料視圖對應的當前層目標DS節點在預設的執行時間範圍內得到與其輸入參數相匹配的資料時,根據資料和目標資料視圖對應的DAG配置進行資料計算。
在本發明的一個實施例中,計算單元605,進一步用於當目標資料視圖對應的當前層目標DS節點在執行時間範圍內未得到與其輸入參數相匹配的資料時,根據目標資料視圖對應的當前層目標DS節點的輸入參數,重新執行目標資料視圖對應的當前層目標DS節點,當目標資料視圖對應的當前層目標DS節點在執行時間範圍內得到與其輸入參數相匹配的資料時,根據目標資料視圖對應的DAG配置進行資料計算。
在本發明的一個實施例中,當所處環境為線上環境時,執行單元604,用於調用TR服務介面;將當前層目標DS節點的輸入參數提供給TR服務介面,以使TR服務介面獲取與當前層目標DS節點的輸入參數相匹配的資料。
在本發明的一個實施例中,當所處環境為離線環境時,執行單元604,用於從離線資料庫中篩選出與當前層目標DS節點的輸入參數相匹配的資料。
本發明實施例提供了一種資料計算設備,包括:處理器和記憶體;
記憶體用於儲存執行指令,處理器用於執行記憶體儲存的執行指令以實現上述任一實施例的方法。
在20世紀90年代,對於一個技術的改進可以很明顯地區分是硬體上的改進(例如,對二極體、電晶體、開關等電路結構的改進)還是軟體上的改進(對於方法流程的改進)。然而,隨著技術的發展,當今的很多方法流程的改進已經可以視為硬體電路結構的直接改進。設計人員幾乎都透過將改進的方法流程程式設計到硬體電路中來得到相應的硬體電路結構。因此,不能說一個方法流程的改進就不能用硬體實體模組來實現。例如,可程式設計邏輯裝置(Programmable Logic Device, PLD)(例如現場可程式設計閘陣列(Field Programmable Gate Array,FPGA))就是這樣一種積體電路,其邏輯功能由用戶對器件程式設計來確定。由設計人員自行程式設計來把一個數位系統“集成”在一片PLD上,而不需要請晶片製造廠商來設計和製作專用的積體電路晶片。而且,如今,取代手工地製作積體電路晶片,這種程式設計也多半改用“邏輯編譯器(logic compiler)”軟體來實現,它與程式開發撰寫時所用的軟體編譯器相類似,而要編譯之前的原始程式碼也得用特定的程式設計語言來撰寫,此稱之為硬體描述語言(Hardware Description Language,HDL),而HDL也並非僅有一種,而是有許多種,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL (Very-High-Speed Integrated Circuit Hardware Description Language)與Verilog。本領域技術人員也應該清楚,只需要將方法流程用上述幾種硬體描述語言稍作邏輯程式設計並程式設計到積體電路中,就可以很容易得到實現該邏輯方法流程的硬體電路。
控制器可以按任何適當的方式實現,例如,控制器可以採取例如微處理器或處理器以及儲存可由該(微)處理器執行的電腦可讀程式碼(例如軟體或韌體)的電腦可讀媒體、邏輯閘、開關、專用積體電路(Application Specific Integrated Circuit,ASIC)、可程式設計邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限於以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,記憶體控制器還可以被實現為記憶體的控制邏輯的一部分。本領域技術人員也知道,除了以純電腦可讀程式碼方式實現控制器以外,完全可以透過將方法步驟進行邏輯程式設計來使得控制器以邏輯閘、開關、專用積體電路、可程式設計邏輯控制器和嵌入微控制器等的形式來實現相同功能。因此這種控制器可以被認為是一種硬體部件,而對其內包括的用於實現各種功能的裝置也可以視為硬體部件內的結構。或者甚至,可以將用於實現各種功能的裝置視為既可以是實現方法的軟體模組又可以是硬體部件內的結構。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦。具體的,電腦例如可以為個人電腦、膝上型電腦、行動電話、相機電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任何設備的組合。
為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本申請時可以把各單元的功能在同一個或多個軟體和/或硬體中實現。
本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體態樣的實施例的形式。而且,本發明可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方框圖來描述的。應理解可由電腦程式指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理機或其他可程式設計資料處理設備的處理器以產生一個機器,使得透過電腦或其他可程式設計資料處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些電腦程式指令也可儲存在能引導電腦或其他可程式設計資料處理設備以特定方式工作的電腦可讀記憶體中,使得儲存在該電腦可讀記憶體中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些電腦程式指令也可裝載到電腦或其他可程式設計資料處理設備上,使得在電腦或其他可程式設計設備上執行一系列操作步驟以產生電腦實現的處理,從而在電腦或其他可程式設計設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀媒體中的非永久性記憶體,隨機存取記憶體(RAM)和/或非易失性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀媒體的示例。
電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可程式設計唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁片儲存或其他磁性存放裝置或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀媒體不包括暫存電腦可讀媒體(transitory media),如調製的資料信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
本申請可以在由電腦執行的電腦可執行指令的一般上下文中描述,例如程式模組。一般地,程式模組包括執行特定任務或實現特定抽象資料類型的常式、程式、物件、元件、資料結構等等。也可以在分散式運算環境中實踐本申請,在這些分散式運算環境中,由通過通信網路而被連接的遠端處理設備來執行任務。在分散式運算環境中,程式模組可以位於包括存放裝置在內的本地和遠端電腦儲存媒體中。
本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於系統實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
以上所述僅為本申請的實施例而已,並不用於限制本申請。對於本領域技術人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本申請的請求項之內。
101~105:方法步驟
601:接收單元
602:確定單元
603:合併單元
604:執行單元
605:計算單元
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的圖式作簡單地介紹,顯而易見地,下面描述中的圖式是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些圖式獲得其他的圖式。
[圖1]是本發明一個實施例提供的一種資料計算方法的流程圖;
[圖2]是本發明一個實施例提供的一種DAG配置的結構示意圖;
[圖3]是本發明一個實施例提供的另一種DAG配置的結構示意圖;
[圖4]是本發明一個實施例提供的又一種DAG配置的結構示意圖;
[圖5]是本發明一個實施例提供的再一種DAG配置的結構示意圖;
[圖6]是本發明一個實施例提供的一種資料計算引擎的結構示意圖。