TW201342097A - 將巨量資料轉換為大物件之裝置及方法以及其電腦程式產品 - Google Patents

將巨量資料轉換為大物件之裝置及方法以及其電腦程式產品 Download PDF

Info

Publication number
TW201342097A
TW201342097A TW102108137A TW102108137A TW201342097A TW 201342097 A TW201342097 A TW 201342097A TW 102108137 A TW102108137 A TW 102108137A TW 102108137 A TW102108137 A TW 102108137A TW 201342097 A TW201342097 A TW 201342097A
Authority
TW
Taiwan
Prior art keywords
large object
tree
lis
data
area
Prior art date
Application number
TW102108137A
Other languages
English (en)
Other versions
TWI428773B (zh
Inventor
Wen-Wey Hseush
Shih-Chang Hsu
Yi-Cheng Huang
Michael Chih Huong Fong
Yi-Chen Hsu
Original Assignee
Ebizprise Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ebizprise Inc filed Critical Ebizprise Inc
Publication of TW201342097A publication Critical patent/TW201342097A/zh
Application granted granted Critical
Publication of TWI428773B publication Critical patent/TWI428773B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一種將一巨量資料轉換為一大物件之裝置、方法及其電腦程式產品。該裝置包含一介面以及一處理器。該介面存取儲存於一儲存器中之巨量資料。該處理器利用複數個記憶體映射檔案自該巨量資料建立該大物件。該處理器更佈局該大物件之一內容,其中該內容包含一詮釋資訊區、一樹區及一資料區。該處理器更藉由利用一位置無關結構(Location Independent Structure;LIS)佈局該樹區之一內容,並於該詮釋資訊區中描述該大物件之一結構。

Description

將巨量資料轉換為大物件之裝置及方法以及其電腦程式產品
本發明係關於一種處理一巨量資料之裝置及方法以及其電腦程式產品;更具體而言,本發明係關於一種將一巨量資料轉換為一大物件之裝置及方法以及其電腦程式產品。
隨著電腦技術之快速發展,大多數企業以一系統方式於電腦中收集、儲存、調處及組織商業資訊/資料。關聯式資料庫(relational database)及線上分析處理(on-line analytical processing;OLAP)為常用技術之實例。
儘管目前已有關聯式資料庫及線上分析處理之各種商業產品,然而當所儲存之商業資料量變得巨大時,此等商業產品具有缺點。在一些情形中,商業經理會希望根據資料庫中的巨量資料進行處理,並依據分析結果來作即時的決定。然而,當所處理之資料量巨大時,現今市場上之資料庫無法提供即時的回應。存取並分析數百萬計或數十億計之記錄通常會花費大量時間。對於需要根據巨量資料執行分析,並依據分析結果作出即時決定之商業經理而言,現今市場上之資料庫之處理時間過長而令人無法接受。
綜上所述,本領域亟需提供一種可高效地處理巨量/龐大量/大量資料之技術。
本發明之主要目的在於提供一種將一巨量資料轉換為一大物件(Big Object)之裝置。該裝置包含一介面以及一處理器。該介面存取儲存於一儲存器中之巨量資料。該處理器利用複數個記憶體映射檔案自該巨量資料建立該大物件。該處理器更用以佈局該大物件之一內容,其中該內容包含一詮釋資訊(meta information)區、一樹區及一資料區。該處理器更用以藉由利用一位置無關結構(Location Independent Structure;LIS),佈局該樹區之一內容。另外,該處理器更用以於該詮釋資訊區中描述該大物件之一結構。
本發明之另一目的在於提供一種在一電腦系統中將一巨量資料轉換為一大物件之方法。該方法包含以下步驟:(a)利用記憶體映射檔案自該巨量資料建立該大物件;(b)佈局該大物件之一內容,該內容包含一詮釋資訊區、一樹區及一資料區;(c)藉由利用一位置無關結構(LIS),佈局該樹區之一內容;以及(d)於該詮釋資訊區中描述該大物件之一結構。
本發明之再一目的在於提供一種電腦程式產品。該電腦程式產品內儲一電腦程式,該電腦程式包含複數個程式指令。當該電腦程式被載入至一電子裝置中時,該等程式指令能夠執行一種將一巨量資料轉換為一大物件之方法。該等程式指令包含程式指令A、程式指令B、程式指令C以及程式指令D。程式指令A用於利用記憶體映射檔案自該巨量資料建立該大物件。程式指令B用於佈局該大物件之一內容,其中該內容包含一詮釋資訊區、一樹區及一資料區。程式指令C用於藉由利用一位置無關結構,佈局該樹區之一內容。程式指令D用於在該詮釋資訊區中描述該大物件之一結構。
由於本發明藉由記憶體映射檔案及位置無關結構之技術將一巨量資料轉換為一大物件,故該大物件之度量(measure)排列於一連續記憶體空間中。藉此,無論對該大物件執行何種操作,皆可在執行各種操作時高效地存取該大物件之度量。
在參閱圖式及隨後描述之實施方式後,該技術域具有通常知識者便可瞭解本發明之其他目的,以及本發明之技術手段及實施態樣。
1...裝置/大型資料處理系統
2...內容
11...介面
13...處理器
15...使用者介面
17...儲存器
19...使用者
21...詮釋資訊區
22...樹區
23...資料區
b0...最左側子節點
S201~S211...步驟
第1A圖例示本發明之一第一實施例;
第1B圖例示大物件之一內容;
第1C圖例示根據一位置無關結構而佈局之一樹之一實例;
第1D圖例示如何以一陣列之形式組織第1C圖所示之子樹;
第1E圖例示一具有一智慧型指標之大物件;
第1F圖例示分割操作之概念;以及
第2圖例示本發明之一第二實施例之流程圖。
以下將透過實施例來解釋本發明之處理一巨量資料之裝置及方法以及其電腦程式產品。然而,本發明之實施例並非用以限制本發明需在如實施例所述之任何特定環境、應用或具體方式方能實施。因此,關於此等實施例之說明僅為闡釋本發明之目的,而非用以直接限制本發明。需説明者,在以下實施例及附圖中,與本發明無關之元件已省略而未繪示。
第1A圖例示本發明之一第一實施例,其為一用於將一巨量資料轉換為一大物件之裝置1。裝置1包含一介面11、一處理器13以及一使用者介面15,其中處理器13電性連接至介面11以及使用者介面15。介面11可為可連接至一儲存器之任何介面。處理器13可為本發明所屬技術領域中具有通常知識者所習知之各種處理器、中央處理單元(central processing unit;CPU)、微處理器或其他計算器件中之任一種。使用者介面15可為可由一使用者控制並根據使用者之控制而產生一指令之任何介面。
儲存器17包含巨量資料。該巨量資料被儲存為一包含複數個維度之多維資料模型。該多維資料模型包含被稱為度量之數字事實(numeric facts),其中每一度量為可經由所有維度之交叉乘積之多維空間而組織並存取之一資料元(data element)。每一維度為一包含複數個成員(member)之單一空間(single space),該等成員具有一共用之屬性集;即,一維度中之各成員可由一屬性集描述。
當一使用者19經由使用者介面15輸入一位址以鏈接至儲存器17中之巨量資料時,即開始一大物件之建立。在介面11與儲存器17間之連接建立後,介面11可存取該巨量資料,包括該大物件之維度、屬性及度量。然後,處理器13利用記憶體映射檔案自該巨量資料建立一大物件。當運行於裝置1上之作業系統為Linux時,可藉由函數mmap()來達成記憶體映射檔案之技術。另一方面,當運行於裝置1上之作業系統為Windows時,可藉由函數MapViewOfFile()以及函數CreateFileMapping()來達成記憶體映射檔案之技術。須注意者,熟習此項技術者應通曉記憶體映射檔案之技術。
處理器13佈局該大物件之一內容2。如第1B圖所示,內容2包含一詮釋資訊(meta information)區21、一樹區22及一資料區23。具體而言,處理器13藉由利用一位置無關結構(Location Independent Structure;LIS),佈局該樹區之一內容。該樹區包含一樹之一遞迴式LIS資料結構,該遞迴式LIS資料結構係以下列方式排列於一連續記憶體空間中:
LIS(r) = [s1, s2, …, sn, LIS(s1), LIS(s2), …, LIS(sn)],
其中函數LIS()代表LIS,變數r代表該樹之一根節點,變數s1、s2至sn代表該根節點之子節點。該樹之各該節點包含一用以儲存子節點指標(child pointer)之子節點指標欄位、一子節點數目欄位以及一用以儲存資料指標之資料指標欄位。每一子節點指標為相對於當前LIS之一偏移,且每一資料指標為相對於該資料區之一偏移。
該樹區中之樹係根據二個原則進行組織:(a)深度優先次序(depth first order)以及(b)子節點係以一連續陣列之形式組合在一起。第1C圖給出根據位置無關結構而佈局之一樹之一實例。為找出樹/子樹之一節點之一子節點及後代節點,子樹中之每一節點具有一用於找出其子節點之子節點指標欄位。子節點指標欄位保持子節點相對於封閉LIS之偏移量。由於所有子節點係以一連續陣列之形式排列,因而子節點指標欄位實際上指向其最左側之子節點。可藉由將LIS基位址(base address)與子節點欄位偏移量相加來計算一子節點於記憶體中之實際位址。茲提供一個用於計算一子節點之實際位址之具體實例。假設根部在a0處之樹(即第1C圖所示之樹)之LIS之基位址為0xFFFF0000,每一節點之大小為16位元組,且最左側子節點b0之子節點欄位偏移量為0X00000010。藉由該資訊,最左側子節點b0之實際位址為0xFFFF0010(0xFFFF0000+0X00000010)。另外,包含a0之後代節點之LIS之基位址為0xFFFF0010。第1D圖顯示如何以一陣列之形式組織第1C圖所示之子樹。可輕易看出,每一LIS皆設置於一連續位置中。
根據LIS來排列一樹/子樹之各節點具有多種有益效果。第一有益效果在於保持同輩局部性(sibling locality),乃因同時檢索同輩資料為極常見的。另外,樹之資訊於記憶體中為位置相關的,此意味著每一LIS皆儲存於連續位置中且可輕易地移動,此為用於分割一子樹之基本操作。
至於資料區23,其可包含度量(包括一般度量及/或時間序列度量)及增補資料。在大物件中,所有度量皆于同一區中被組合在一起。該等度量可為布林(Boolean)、整數、長整數、浮點(float)、雙精度浮點(double)、複數資料結構、指標、或一段可執行之程式碼。增補資料區包含用於大物件之操作之支援資訊。舉例而言,當映射為局部映射時,增補資料區可包含一節點標識符與其值間之映射表。資料區23中亦可包含智慧型指標及客製資料。稍後將說明智慧型指標之細節。
至於詮釋資訊區21,處理器13描述其中之大物件之一結構。該詮釋資訊區亦可包含一資料模型描述、一樹階層(tree hierarchy)及結構描述、一資料元描述以及一時間戳記與修訂號。
在一較佳實施例中,處理器13所建立之大物件可具有指向至少一個外部大物件之至少一個智慧型指標。藉由該至少一個智慧型指標,該大物件與該外部大物件可共享資訊。所共享之資訊可為該詮釋資訊區、該樹區及/或該資料區中之資訊。
智慧型指標可包含一指標欄位及一指向該外部大物件之統一資源定位符(Uniform Resource Locator;URL)。當該智慧型指標係處於該詮釋資訊區中且該統一資源定位符係指向該外部大物件之詮釋資訊區時,該大物件使用該外部大物件中之詮釋資訊。當該智慧型指標係處於該樹區中且該統一資源定位符係指向該外部大物件之一子樹時,該大物件共享該外部大物件之樹區中所包含之子樹,如第1E圖所示。當該智慧型指標係處於該資料區中且該統一資源定位符係指向該外部大物件之資料區時,該大物件共享該外部大物件之資料區中之資訊,如第1E圖所示。須注意者,在第1E圖中以虛線三角形形式顯示之樹以及以虛線矩形形式顯示之度量為具有智慧型指標者。
此外,當該大物件包含一智慧型指標時,處理器13利用記憶體映射檔案開啟由該統一資源定位符所規定之該外部大物件,以該外部大物件之一記憶體位址更新該智慧型指標之該指標欄位,並藉由該指標欄位而存取該外部大物件。由於該外部大物件之記憶體位址于該智慧型指標之該指標欄位中被更新,因而其後處理器13可高效地存取該外部大物件之共享資訊。
在成功地佈局詮釋資訊區21、樹區22及資料區23之後,可藉由各種操作而高效地存取並處理該大物件。在下文中,將闡述各該操作。
在一些情形中,使用者19須經由使用者介面15輸入一路徑條件。舉例而言,須根據至少一個路徑條件來執行選擇操作、分割操作及合併操作。當處理器13接收由XPath描述之一路徑條件時,處理器13自該樹區中該樹之該遞迴式LIS資料結構之一根部開始而遍訪該大物件之樹,判定至少一個同輩節點(sibling node)滿足該路徑條件,並以遞迴方式遍訪對應於該至少一個同輩節點之緊鄰LIS。
在一些情形中,須找出一給定節點之一路徑條件。對於此等情形,處理器13接收一給定節點之一記憶體位址。之後,處理器13自該樹區中該樹之該遞迴式LIS資料結構之一根部開始而遍訪該大物件之樹,確定一其記憶體範圍包含該給定節點之該記憶體位址之子LIS(sub-LIS),確定對應於該子LIS之一當前節點,將該當前節點之一名稱附加至由XPath描述之一路徑名稱,並遍訪該子LIS直至找到該給定節點為止。
在一些情形中,使用者19會希望自不同之角度查看該大物件,其中需要執行一轉換操作。在此等情形中,使用者19輸入一命令以用於請求對該大物件執行一轉換操作。然後,處理器13藉由對該大物件執行轉換操作而產生另一大物件。具體而言,處理器13藉由如下方式執行該轉換操作:自該樹區中該遞迴式LIS資料結構之一根部開始,遍訪該大物件之一樹結構;列舉該樹結構之每一XPath;以及根據每一所列舉之XPath而建立具有新階層之該另一大物件。
在一些情形中,使用者19會希望對該大物件進行分割。舉例而言,該大物件可被分配至不同之伺服器中並被並列地處理。為分割該大物件,使用者19輸入一命令以用於請求對該大物件執行一分割操作,俾使處理器13對該大物件執行該分割操作。具體而言,處理器13藉由如下方式執行該分割操作:接收由XPath描述之一路徑條件;確定滿足該路徑條件之至少一個子樹之一根節點之位置;對於各該至少一個子樹,建立一分割之大物件;以及以一智慧型指標更新各該至少一個子樹之該根節點,該智慧型指標包含該分割之大物件之一統一資源定位符。第1F圖例示分割操作之概念。
在一些情形中,使用者19會希望對該大物件進行合併,例如合併該分割之大物件。在此種情形中,使用者19可輸入一命令以用於請求對該大物件執行一合併操作,且處理器13於該大物件與各該至少一個分割之大物件之間執行該合併操作。具體而言,處理器13藉由如下方式執行該合併操作:自該樹區中該遞迴式LIS資料結構之一根部開始,遍訪該大物件之一樹結構;遍訪該樹區中由該等智慧型指標所指向之各該至少一個分割之大物件;列舉該樹結構之每一XPath;以及根據每一所列舉之XPath建立另一大物件。
綜上所述,應理解,本發明之裝置1藉由記憶體映射檔案及位置無關結構之技術而將一巨量資料轉換為一大物件。藉此,可高效地對該大物件執行各種操作。
本發明之一第二實施例為一種用於在一電腦系統(例如第一實施例中之大型資料處理系統1)中將一巨量資料轉換為一大物件之方法。第2圖例示第二實施例之流程圖。
首先,該方法執行步驟S201以令該電腦系統利用記憶體映射檔案自該巨量資料建立該大物件。然後,該方法執行步驟S203以令該電腦系統佈局該大物件之一內容,其中該內容包含一詮釋資訊區、一樹區及一資料區。
之後,該方法執行步驟S205以令該電腦系統藉由利用一位置無關結構(LIS)而佈局該樹區之一內容。在一較佳實施例中,該樹區包含一樹之一遞迴式LIS資料結構,該遞迴式LIS資料結構係以下列方式排列於一連續記憶體空間中:
LIS(r) = [s1, s2, …, sn, LIS(s1), LIS(s2), …, LIS(sn)],
其中函數LIS()代表LIS,變數r代表該樹之一根節點,變數s1、s2至sn代表該根節點之子節點。該樹之各該節點包含一子節點指標欄位、一子節點數目欄位以及一資料指標欄位。每一子節點指標為相對於當前LIS之一偏移,且每一資料指標為相對於該資料區之一偏移。
該方法亦執行步驟S207以令該電腦系統於該詮釋資訊區中描述該大物件之一結構。在步驟S207中,該方法可更描述該詮釋資訊區中之一資料模型描述、一樹階層及結構描述、一資料元描述以及一時間戳記與修訂號。
須注意者,藉由步驟S201、S203、S205及S207所建立之該大物件可包含一指向一外部大物件之智慧型指標。該智慧型指標包含一指標欄位及一指向該外部大物件之統一資源定位符。當該智慧型指標係處於該詮釋資訊區中且該統一資源定位符係指向該外部大物件之一詮釋資訊區時,該大物件與該外部大物件共享詮釋資訊。另一方面,當該智慧型指標係處於該樹區中且該統一資源定位符係指向該外部大物件之一樹/子樹時,該外部大物件之樹/子樹被共享。當該大物件中存在一智慧型指標時,該方法利用記憶體映射檔案開啟由該統一資源定位符所規定之該外部大物件,以該外部大物件之一記憶體位址更新該智慧型指標之該指標欄位,並藉由該指標欄位而存取該外部大物件。
在該方法成功地佈局該大物件之詮釋資訊區21、樹區22及資料區23之後,可藉由各種操作高效地存取並處理該大物件。該方法可執行步驟S209以接收一輸入指令,然後據此執行步驟S211以執行對應於該輸入指令之一操作。
若在步驟S209中所接收之輸入指令為由XPath描述之一路徑條件連同一請求該路徑條件之指令,則步驟S211自該樹區中該樹之該遞迴式LIS資料結構之一根部開始而遍訪該大物件之一樹結構,確定滿足該路徑條件之至少一個同輩節點,以及以遞迴方式遍訪對應於該至少一個同輩節點之緊鄰LIS。
當在步驟S209中所接收之輸入指令為一給定節點之一記憶體位址以及一請求該記憶體位址之指令時,步驟S211自該樹區中該遞迴式LIS資料結構之一根部開始而遍訪該大物件之一樹結構,確定一其記憶體範圍包含該給定節點之該記憶體位址之子LIS,確定對應於該子LIS之一當前節點,將該當前節點之一名稱附加至由XPath描述之一路徑名稱,以及遍訪該子LIS直至找到該給定節點為止。
若在步驟S209中所接收之輸入指令為一用於執行一轉換操作之指令,則步驟S211藉由對該大物件執行一轉換操作而產生另一大物件。具體而言,步驟S211使該電腦系統自該樹區中該遞迴式LIS資料結構之一根部開始而遍訪該大物件之一樹結構,列舉該樹結構之每一XPath,以及根據每一所列舉之XPath而建立具有新階層之該另一大物件。
若在步驟S209中所接收之輸入指令為一用於執行一分割操作之指令,則步驟S211藉由如下方式對該大物件執行一分割操作:接收由XPath描述之一路徑條件;確定滿足該路徑條件之至少一個子樹之一根節點之位置;對於各該至少一個子樹,建立一分割之大物件;以及以一智慧型指標更新各該至少一個子樹之該根節點,該智慧型指標包含該分割之大物件之一統一資源定位符。
若在步驟S209中所接收之輸入指令為一用於執行一合併操作之指令,則步驟S211藉由如下方式於該大物件與各該至少一個分割之大物件之間執行一合併操作:自該樹區中該遞迴式LIS資料結構之一根部開始,遍訪該大物件之一樹結構;遍訪該樹區中由該等智慧型指標所指向之各該至少一個分割之大物件;列舉該樹結構之每一XPath;以及根據每一所列舉之XPath建立另一大物件。
除了上述步驟,第二實施例亦可執行第一實施例所描述之所有操作及功能。所屬技術領域具有通常知識者可直接瞭解第二實施例如何基於上述第一實施例以執行此等操作及功能,故不贅述。
第二實施例中所述之用於在一電腦系統中將一巨量資料轉換為一大物件之方法可被實施為一電腦程式。當該電腦程式被載入至電腦系統或裝置1中時,該電腦程式中所包含之複數個程式碼能夠執行第二實施例中所述之用於將一巨量資料轉換為一大物件之方法。該電腦程式可儲存於一電腦程式產品中,例如唯讀記憶體(read only memory;ROM)、快閃記憶體、軟碟、硬碟、光碟(CD)、隨身碟、磁帶、可由網路存取之資料庫或熟習此項技藝者所習知且具有相同功能之任何其它儲存媒體中。
綜上所述,應理解,因本發明藉由記憶體映射檔案及位置無關結構之技術而將一巨量資料轉換為一大物件,故該大物件之度量排列於一連續記憶體空間中。藉此,無論對該大物件執行何種操作,皆可在執行各種操作時高效地存取該大物件之度量。
上述之實施例僅用來例舉本發明之實施態樣,以及闡釋本發明之技術特徵,並非用來限制本發明之範疇。任何熟悉此技術者可輕易完成之改變或均等性之安排均屬於本發明所主張之範圍,本發明之權利範圍應以申請專利範圍為準。

Claims (27)

  1. 一種將一巨量資料(big data)轉換為一大物件(Big Object)之裝置,包含:
      一介面,用以存取儲存於一儲存器之巨量資料;以及
      一處理器,用以執行以下操作:
        利用複數個記憶體映射檔案(memory mapped files)自該巨量資料建立該大物件,
        佈局該大物件之一內容,該內容包含一詮釋資訊(meta information)區、一樹區及一資料區,
        藉由利用一位置無關結構(Location Independent Structure;以下簡稱「LIS」),佈局該樹區之一內容,以及
        於該詮釋資訊區中描述該大物件之一結構。
  2. 如請求項1所述之裝置,其中該詮釋資訊區包含一資料模型描述、一樹階層(tree hierarchy)及結構描述、一資料元(data element)描述以及一時間戳記與修訂號。
  3. 如請求項1所述之裝置,其中該樹區包含一樹之一遞迴式LIS資料結構,該遞迴式LIS資料結構係以下列方式排列於一連續記憶體空間中:
      LIS(r) = [s1, s2, …, sn, LIS(s1), LIS(s2), …, LIS(sn)],
      其中,函數LIS()代表LIS,變數r代表該樹之一根節點,變數s1、s2至sn代表該根節點之子節點,各該節點包含一子節點指標欄位(child pointer field)、一子節點數目欄位以及一資料指標欄位,每一子節點指標為相對於當前LIS之一偏移,且每一資料指標為相對於該資料區之一偏移。
  4. 如請求項1所述之裝置,其中該大物件包含一指向一外部大物件之智慧型指標(smart pointer)。
  5. 如請求項4所述之裝置,其中該智慧型指標包含一指標欄位及一指向該外部大物件之統一資源定位符(Uniform Resource Locator;URL)。
  6. 如請求項5所述之裝置,其中該智慧型指標係處於該詮釋資訊區中,且該統一資源定位符係指向該外部大物件之一詮釋資訊區。
  7. 如請求項5所述之裝置,其中該智慧型指標係處於該樹區中,且該統一資源定位符係指向該外部大物件之一子樹。
  8. 如請求項5所述之裝置,其中該處理器更用以利用記憶體映射檔案開啟由該統一資源定位符所規定之該外部大物件,以該外部大物件之一記憶體位址更新該智慧型指標之該指標欄位,並藉由該指標欄位而存取該外部大物件。
  9. 如請求項3所述之裝置,其中該處理器更接收由XPath描述之一路徑條件,自該樹區中之該遞迴式LIS資料結構之一根部開始而遍訪(traverse)該大物件之一樹結構,確定至少一個同輩節點(sibling node)滿足該路徑條件,並以遞迴方式遍訪對應於該至少一個同輩節點之緊鄰LIS。
  10. 如請求項3所述之裝置,其中該處理器更接收一給定節點之一記憶體位址,自該樹區中之該遞迴式LIS資料結構之一根部開始而遍訪該大物件之一樹結構,確定一其記憶體範圍包含該給定節點之該記憶體位址之子LIS(sub-LIS),確定對應於該子LIS之一當前節點,將該當前節點之一名稱附加至由XPath描述之一路徑名稱,並遍訪該子LIS直至找到該給定節點為止。
  11. 如請求項3所述之裝置,其中該處理器更藉由對該大物件執行一轉換(transform)操作而產生另一大物件,該轉換操作包含下列操作:
      自該樹區中之該遞迴式LIS資料結構之一根部開始,遍訪該大物件之一樹結構,
      列舉該樹結構之每一XPath,以及
      根據每一所列舉之XPath而建立具有新階層之該另一大物件。
  12. 如請求項3所述之裝置,其中該處理器更對該大物件執行一分割操作,該分割操作包含下列操作:
      接收由XPath描述之一路徑條件,
      確定滿足該路徑條件之至少一個子樹之一根節點之位置,
      對各該至少一個子樹,建立一分割之大物件,以及
       以一智慧型指標更新各該至少一個子樹之該根節點,該智慧型指標包含該分割之大物件之一統一資源定位符。
  13. 如請求項12所述之裝置,其中該處理器更於該大物件與各該至少一個分割之大物件之間執行一合併(join)操作,該合併操作包含下列操作:
      自該樹區中之該遞迴式LIS資料結構之一根部開始,遍訪該大物件之一樹結構,
       遍訪該樹區中由該等智慧型指標所指向之各該至少一個分割之大物件,
       列舉該樹結構之每一XPath,以及
       根據每一所列舉之XPath建立另一大物件。
  14. 一種用於在一電腦系統中將一巨量資料轉換為一大物件之方法,包含以下步驟:
      利用記憶體映射檔案自該巨量資料建立該大物件;
       佈局該大物件之一內容,該內容包含一詮釋資訊區、一樹區及一資料區;
       藉由利用一位置無關結構(LIS),佈局該樹區之一內容;以及
       於該詮釋資訊區中描述該大物件之一結構。
  15. 如請求項14所述之方法,其中該詮釋資訊區包含一資料模型描述、一樹階層及結構描述、一資料元描述以及一時間戳記與修訂號。
  16. 如請求項14所述之方法,其中該樹區包含一樹之一遞迴式LIS資料結構,該遞迴式LIS資料結構係以下列方式排列於一連續記憶體空間中:
      LIS(r) = [s1, s2, …, sn, LIS(s1), LIS(s2), …, LIS(sn)],
       其中,函數LIS()代表LIS,變數r代表該樹之一根節點,變數s1、s2至sn代表該根節點之子節點,各該節點包含一子節點指標欄位、一子節點數目欄位以及一資料指標欄位,每一子節點指標為相對於當前LIS之一偏移,且每一資料指標為相對於該資料區之一偏移。
  17. 如請求項14所述之方法,其中該大物件包含一指向一外部大物件之智慧型指標。
  18. 如請求項17所述之方法,其中該智慧型指標包含一指標欄位及一指向該外部大物件之統一資源定位符。
  19. 如請求項18所述之方法,其中該智慧型指標係處於該詮釋資訊區中,且該統一資源定位符係指向該外部大物件之一詮釋資訊區。
  20. 如請求項18所述之方法,其中該智慧型指標係處於該樹區中,且該統一資源定位符係指向該外部大物件之一子樹。
  21. 如請求項18所述之方法,更包含以下步驟:
      利用記憶體映射檔案開啟由該統一資源定位符所規定之該外部大物件;
      以該外部大物件之一記憶體位址更新該智慧型指標之該指標欄位;以及
      藉由該指標欄位而存取該外部大物件。
  22. 如請求項16所述之方法,更包含以下步驟:
      接收由XPath描述之一路徑條件;
      自該樹區中之該遞迴式LIS資料結構之一根部開始而遍訪該大物件之一樹結構;
      判定至少一個同輩節點(sibling node)滿足該路徑條件;以及
       以遞迴方式遍訪對應於該至少一個同輩節點之緊鄰LIS。
  23. 如請求項16所述之方法,更包含以下步驟:
      接收一給定節點之一記憶體位址;
      自該樹區中之該遞迴式LIS資料結構之一根部開始而遍訪該大物件之一樹結構;
      確定一其記憶體範圍包含該給定節點之該記憶體位址之子LIS;
      確定對應於該子LIS之一當前節點;
      將該當前節點之一名稱附加至由XPath描述之一路徑名稱;以及
      遍訪該子LIS直至找到該給定節點為止。
  24. 如請求項16所述之方法,更包含以下步驟:
      藉由對該大物件執行一轉換操作而產生另一大物件,該轉換操作包含以下步驟:
        自該樹區中之該遞迴式LIS資料結構之一根部開始,遍訪該大物件之一樹結構;
        列舉該樹結構之每一XPath;以及
        根據每一所列舉之XPath而建立具有新階層之該另一大物件。
  25. 如請求項16所述之方法,更包含以下步驟:
      對該大物件執行一分割操作,該分割操作包含下列步驟:
        接收由XPath描述之一路徑條件;
        確定滿足該路徑條件之至少一個子樹之一根節點之位置;
        對於各該至少一個子樹,建立一分割之大物件;以及
        以一智慧型指標更新各該至少一個子樹之該根節點,該智慧型指標包含該分割之大物件之一統一資源定位符。
  26. 如請求項25所述之方法,更包含以下步驟:
      於該大物件與各該至少一個分割之大物件之間執行一合併操作,該合併操作包含下列步驟:
        自該樹區中之該遞迴式LIS資料結構之一根部開始,遍訪該大物件之一樹結構;
        遍訪該樹區中由該等智慧型指標所指向之各該至少一個分割之大物件;
        列舉該樹結構之每一XPath;以及
        根據每一所列舉之XPath建立另一大物件。
  27. 一種電腦程式產品,內儲一電腦程式,該電腦程式包含複數個程式指令,當該電腦程式被載入至一電子裝置中時,該等程式指令能夠執行一種將一巨量資料轉換為一大物件之方法,該等程式指令包含:
      程式指令A,利用記憶體映射檔案自該巨量資料建立該大物件;
      程式指令B,佈局該大物件之一內容,該內容包含一詮釋資訊區、一樹區及一資料區;
      程式指令C,藉由利用一位置無關結構,佈局該樹區之一內容;以及
      程式指令D,在該詮釋資訊區中描述該大物件之一結構。
TW102108137A 2012-03-08 2013-03-07 將巨量資料轉換為大物件之裝置及方法以及其電腦程式產品 TWI428773B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/415,622 US8364723B1 (en) 2012-03-08 2012-03-08 Apparatus and method for realizing big data into a big object and non-transitory tangible machine-readable medium thereof

Publications (2)

Publication Number Publication Date
TW201342097A true TW201342097A (zh) 2013-10-16
TWI428773B TWI428773B (zh) 2014-03-01

Family

ID=47562390

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102108137A TWI428773B (zh) 2012-03-08 2013-03-07 將巨量資料轉換為大物件之裝置及方法以及其電腦程式產品

Country Status (2)

Country Link
US (1) US8364723B1 (zh)
TW (1) TWI428773B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111274165A (zh) * 2018-12-05 2020-06-12 核桃运算股份有限公司 资料管理装置、方法及其电脑存储介质

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2795757C (en) * 2011-11-15 2021-09-07 Pvelocity Inc. Method and system for providing business intelligence data
US10311019B1 (en) * 2011-12-21 2019-06-04 EMC IP Holding Company LLC Distributed architecture model and management
US9747128B1 (en) * 2011-12-21 2017-08-29 EMC IP Holding Company LLC Worldwide distributed file system model
US9489233B1 (en) * 2012-03-30 2016-11-08 EMC IP Holding Company, LLC Parallel modeling and execution framework for distributed computation and file system access
US9007944B2 (en) * 2012-10-25 2015-04-14 Microsoft Corporation One-to-many and many-to-one communications on a network
US9348855B2 (en) * 2013-02-13 2016-05-24 International Business Machines Corporation Supporting big data in enterprise content management systems
WO2015117267A1 (en) * 2014-02-07 2015-08-13 Google Inc. Systems and methods for automatically creating content modification scheme
US10372488B2 (en) * 2016-09-16 2019-08-06 Oracle International Corporation Parallel processing using memory mapping
US10949387B1 (en) * 2016-09-29 2021-03-16 Triad National Security, Llc Scalable filesystem enumeration and metadata operations
TWI616079B (zh) * 2016-10-27 2018-02-21 Chunghwa Telecom Co Ltd 不需巨量資料偵測的低延遲多路徑繞徑方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8135716B2 (en) * 2008-12-10 2012-03-13 Sap Ag Systems and method for mapping large object data content in a database table to a work area
US8510267B2 (en) * 2011-03-08 2013-08-13 Rackspace Us, Inc. Synchronization of structured information repositories

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111274165A (zh) * 2018-12-05 2020-06-12 核桃运算股份有限公司 资料管理装置、方法及其电脑存储介质

Also Published As

Publication number Publication date
TWI428773B (zh) 2014-03-01
US8364723B1 (en) 2013-01-29

Similar Documents

Publication Publication Date Title
TWI428773B (zh) 將巨量資料轉換為大物件之裝置及方法以及其電腦程式產品
US11704294B2 (en) System and method for slowly changing dimension and metadata versioning in a multidimensional database environment
US9965545B2 (en) Document order management via relaxed node indexing
Meier et al. Nosql databases
US10459892B2 (en) Filesystem hierarchical aggregate metrics
US7792817B2 (en) System and method for managing complex relationships over distributed heterogeneous data sources
US8266136B1 (en) Mechanism for performing fast directory lookup in a server system
US8380738B2 (en) System and methods for database distribution and querying over key-based scalable storage
US10169446B1 (en) Relational modeler and renderer for non-relational data
JP2020512641A (ja) 多次元データベース環境において1回のスキャンでロード、集約、およびバッチ計算を行なうためのシステムおよび方法
BR112013032101B1 (pt) método para recomendar enriquecimentos de dados para um banco de dados, sistema em um ambiente computacional e meio de armazenamento por computador.
US9411792B2 (en) Document order management via binary tree projection
US20220215109A1 (en) New internet virtual data center system and method for constructing the same
EP3995972A1 (en) Metadata processing method and apparatus, and computer-readable storage medium
JP2004192657A (ja) 情報検索システム、情報検索方法および情報検索用プログラムを記録した記録媒体
Hewasinghage et al. Modeling strategies for storing data in distributed heterogeneous NoSQL databases
JP5953262B2 (ja) データ索引装置、データ索引方法及びプログラム
AU2021103781A4 (en) New internet virtual data center system and method for constructing the same
Saadouni et al. Data Migration from Relational to NoSQL Database: Review and Comparative Study
Liu et al. Cuttle: Enabling cross-column compression in distributed column stores
Kaufmann et al. System Architecture
Team Data Migration from Relational to NoSQL Database: Review and Comparative Study
Aravindharamanan et al. GMusic Player Using Self-adjusting Graph Data Structures
Engélinus et al. Enabling standard geospatial capabilities in Spark for the efficient processing of geospatial big data
Lopez-Veyna et al. A Review of Graph Databases