TW202215265A - 適應性多屬性索引結構 - Google Patents
適應性多屬性索引結構 Download PDFInfo
- Publication number
- TW202215265A TW202215265A TW109135558A TW109135558A TW202215265A TW 202215265 A TW202215265 A TW 202215265A TW 109135558 A TW109135558 A TW 109135558A TW 109135558 A TW109135558 A TW 109135558A TW 202215265 A TW202215265 A TW 202215265A
- Authority
- TW
- Taiwan
- Prior art keywords
- index
- query
- combined
- performance
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
- G06F16/24545—Selectivity estimation or determination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Operations Research (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stereophonic System (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
一種適應性多屬性索引結構,係採用四種常見之資料屬性包括時間、空間、關鍵字(物理量描述)及數值,由於每種屬性適合的索引方式不同,在整合其所有不同的索引架構時,發現其索引整合的順序會對查詢效能有顯著的影響。本發明為一套能適應性選擇最有效率的結合式索引之系統架構,藉由估計個別的索引效能以及篩選率來達成。主要的概念係利用將篩選率高的索引設計在較優先之位置處理查詢,用以最少化查詢中的中間結果,進而提升資料查詢效能。本發明為一套多重索引框架,考慮所有可能的結合式索引順序,並且根據不同的查詢適應性選出其中最佳之結合式索引。結果顯示,在一百萬筆資料量下,本發明提出的系統架構相較於使用單一順序的索引架構,有百分之99到百分之94的機會節省25到51倍的查詢時間,並且相較於傳統的關聯式資料庫PostGIS,反應時間也快上兩倍。
Description
本發明係有關於一種適應性多屬性索引結構,尤指涉及一種能適
應性選擇最有效率之結合式索引之系統架構,特別係指藉由估計個別的索引效能以及篩選率來達成者。
近年來,由於物聯網具有良好的自動監控特性,使其逐漸被廣泛
應用在各個領域,然而隨著越來越多的物聯網裝置,巨量物聯網資料面臨著如何提升擴充性的議題。為此許多研究提及關鍵值(key-value)儲存模式是一種相較於傳統關聯式資料庫更適合管理巨量資料的選擇。然而,除此之外物聯網資料還具有多重屬性的特徵,例如:時間、空間、及主題等屬性,隨著資料量的快速增長,導致嚴重的資料管理問題,因此如何建構出一套有效率的多重屬性索引架構也成為一重要課題。
傳統的多重屬性索引方法係建構獨立索引,經過單獨處理後整合
查詢結果,但獨立索引不是最優化的查詢系統,對此,有許多研究提出不同的結合式索引(combined index)來解決多重屬性資料管理的問題,但是索引的順序係決定查詢效能的關鍵因素。然而,目前許多現存的研究僅採取一種固定的索引整合順序設計其結合式索引,需要花費許多的查詢時間。故,一般習用者係無法符合使用者於實際使用時之所需。
本發明之主要目的係在於,克服習知技藝所遭遇之上述問題並提
供建立一套能適應性選擇最有效率之結合式索引之系統架構,藉由估計個別的索引效能以及篩選率來達成;主要概念係利用將篩選率高的索引設計在較優先之位置處理查詢,用以最少化查詢中的中間結果,達到提升資料查詢效能之適應性多屬性索引結構
為達以上之目的,本發明係一種適應性多屬性索引結構,係包
括:一主節點設備,用以在積累一定數量的資料時負責平衡數個不同索引結構的負載,該主節點設備應用一B
+樹(B
+-tree)來索引每一索引結構所管理的時間段,其葉節點鏈接到各該索引結構;以及該數個索引結構內含各種結合式索引之索引整合順序,各該索引結構係包含一選擇器與一資料過濾器,該選擇器將根據查詢條件選擇最適合的結合式索引,其中該結合式索引之順序係由四種資料屬性,包括關鍵字(keyword)、數值(value)、時間(temporal)與空間(spatial)以不同順序組成各種結合式索引順序,並且每一種結合式索引係將索引整合為不同層的一單獨的樹結構,其中上一層索引的葉節點將是下一層索引的根節點,並且不同層之索引具有不同之節點大小,頂層索引之節點大小係大於底層索引;當接收到用戶之查詢時,先應用時間準則選擇相應之索引結構並將查詢轉發到各該索引結構,每一索引結構中之選擇器將選擇最有效之結合式索引並執行查詢,查詢後所得之候選結果將被傳輸到該資料過濾器以過濾掉不必要的資料,最後從一關鍵值資料庫(key-value storage)中檢索原始資料,並將響應返回給該用戶。
於本發明上述實施例中,各該結合式索引係包含一用於該空間屬
性之R樹(R-tree),二用於該時間屬性與該數值屬性之B
+樹,以及一用於該關鍵字屬性之Hashmap之索引管理,並將該Hashmap設定為第一層索引。
於本發明上述實施例中,各該索引結構中查詢之過程分為四個程
序,包含篩選率估計、效能估計、結合索引查詢與資料過濾,當接收到查詢時,
該選擇器將執行篩選率測試,並根據篩選率估計每一結合式索引之效能後,將選擇最有效之結合式索引來處理實際查詢,最終結果將被傳輸到該資料過濾器中以供進一步確認。
於本發明上述實施例中,該選擇器具有一篩選率估計單元、一效
能訓練單元及一結合式索引選擇單元,該篩選率估計單元係粗略估計每一查詢之篩選率,該效能訓練單元係針對不同索引建立篩選率與效能之間的關係,該結合式索引選擇單元係將該篩選率估計單元之結果與該效能訓練單元之結果相結合,以選擇最有效之結合式索引。
於本發明上述實施例中,該篩選率估計單元建構具有更大節點大
小的所有結合式索引,當接收到查詢時,將提供該選擇器使用這些更大節點大小之結合式索引執行查詢,以估計每一結合式索引之篩選率。
於本發明上述實施例中,該效能訓練單元係計算每一結合式索引
之查詢效能,且決定查詢效能之因素包括該篩選率之索引的輸入與輸出記錄數量、索引類型、節點大小、及樹深。
於本發明上述實施例中,該結合式索引選擇單元提供該選擇器通
過發送訓練查詢以收集不同結合式索引層中每一索引的輸入、輸出與效能之間的關係。
於本發明上述實施例中,該結合式索引係使用上層索引的葉節點
中的記錄來建構下層索引,在該上層索引中處理查詢時,該葉節點中的記錄不會與查詢條件進行比較,該資料過濾器在接收來自該選擇器最有效之結合式索引的輸出後,將應用資料過濾過程來確認每一獨立的記錄都滿足該查詢條件。
為了解決上述僅採取一種固定的索引整合順序設計其結合式索
引(combined index)之問題,本發明嘗試考慮所有可能的結合式索引順序,並根據不同的查詢適應性選出其中最佳之結合式索引。在每個結合式索引中,空間、時間、數值與關鍵字等四種不同的屬性適合不同的索引方式管理。此外,為了實現更好的可擴展性,係將關鍵值資料庫(key-value storage)應用於管理原始資料。
請參閱『第1圖~第3圖』所示,係分別為本發明適應性多屬性
索引結構之整體架構示意圖、本發明KVTS結合式索引之架構示意圖、及本發明選擇器節點大小、準確度與效能之間的關係示意圖。如圖所示:本發明係一種適應性多屬性索引結構,從一主節點設備1開始,其在積累一定數量的資料時負責平衡不同索引結構2的負載。該主節點設備1應用一B
+樹(B
+-tree)來索引每一索引結構2所管理的時間段,其葉節點鏈接到各該索引結構2。每一索引結構2內含各種結合式索引之索引整合順序,各該索引結構都包含一選擇器
21與一資料過濾器22。該選擇器21將根據查詢條件選擇最適合的結合式索引,並使用索引順序來命名每個結合式索引。如第2圖顯示之KVTS結合式索引,其中按關鍵字(keyword)、數值(value)、時間(temporal)與空間(spatial)索引之順序結合索引。由於每一索引都是一單獨的樹結構,因此上一層索引的葉節點將是下一層索引的根節點。
當本結構從用戶接收到查詢時,首先應用時間準則選擇相應之索
引結構2並將查詢轉發到這些索引結構2。每一索引結構2中之選擇器21將
選擇最有效之結合式索引並執行查詢,查詢後所得之候選結果將被傳輸到該資料過濾器22以過濾掉不必要的資料,最後,從一關鍵值資料庫(圖中未示)
中檢索原始資料,並將響應返回給該用戶。如是,藉由上述揭露之結構構成一全新之適應性多屬性索引結構。
本發明針對四種最常見之屬性考慮三種索引。具體來說,將關鍵
字屬性採用Hashmap,空間屬性採用R樹(R-tree),時間屬性採用B
+樹,數值屬性採用另一個B
+樹。傳統係以獨立建構索引,經過單獨處理後整合查詢結果,而本發明所提結合式索引係將索引整合為不同的層,其中上一層索引之葉節點將是下一層索引之根節點。在這種情況下,結合式索引之查詢處理可以得益於以最少化查詢中的中間結果,進而提升查詢效能。
在索引結構中,本發明考慮結合式索引的所有可能順序。每個結
合式索引都包含一個用於空間屬性之R樹,二個用於時間與數值屬性之B
+樹,以及一個用於關鍵字屬性之Hashmap。並且,之所以總是將Hashmap用作第一層索引,係因為與本發明中之其他索引方法相比,其效能不會隨著資料大小的增加而改變太多。因此,通過將Hashmap設置為第一層索引,可以減少下一層索引管理的資料量,從而可以顯著提高查詢效率。
本發明係可將索引結構中查詢之過程分為四個程序,包含篩選率
估計、效能估計、結合索引查詢與資料過濾。當接收到查詢時,該選擇器將執行篩選率測試,並根據篩選率估計每一結合式索引之效能。然後,將選擇最有效之結合式索引來處理實際查詢,最後,結果將被傳輸到該資料過濾器中以供進一步確認。以下將介紹結合式索引、選擇器與資料過濾之詳細資訊。
本發明最重要之技術係選擇最有效之結合式索引。因此,所提選
擇器起著關鍵作用。如第1圖所示,該選擇器21具有一篩選率估計單元
211、一效能訓練單元212及一結合式索引選擇單元213。該篩選率估
計單元211係粗略估計每一查詢之篩選率,該效能訓練單元212係針對不同索引建立篩選率與效能之間的關係,該結合式索引選擇單元213係將該篩選率估計單元211之結果與該效能訓練單元212之結果相結合,以選擇最有效之結合式索引。
索引篩選率表示索引可以過濾掉多少資料。以空間-時間結合式
索引為例,可以設計兩個順列,其中空間索引可以建立在時間索引之前,反之亦然。當使用這兩組結合式索引處理查詢時,最終結果將完全相同,但中間結果將不相同,如此行為可稱為『篩選率差異』。例如,對於一200個記錄的資料集,如果通過空間索引可以過濾100個資料,而時間索引僅能過濾50個資料,則空間索引與時間索引之篩選率分別為50%與25%。在這種情況下,首先處理篩選率高的索引可以減小中間結果的大小,並為下一層索引實現更佳的查詢效能。
篩選率取決於查詢,這代表需要針對每一查詢執行篩選率估計。
然而,精確的篩選率需要執行每一結合式索引,所以將是昂貴的檢索。因此,本發明提出之結構旨在估算粗略之篩選率而非檢索精確之篩選率,可具有更高之效率。為了實現此目標,所提選擇器21以該篩選率估計單元211建構具有更大節點大小的所有結合式索引,以獲得更好的查詢效能。當接收到查詢時,將提供該選擇器21使用這些更大節點大小之結合式索引執行查詢,以估計每一結合式索引之篩選率。
所提選擇器21為了計算每一結合式索引之查詢效能,不能僅估
計每一索引之篩選率,還需要了解每一索引之篩選率與效能之間的關係。以該效能訓練單元212決定查詢效能之因素包括篩選率,即索引的輸入與輸出記錄數量、索引類型、節點大小、及樹深。其中,可將節點大小與樹深之影響結合在一起,因為樹深很大程度上取決於節點大小。更大節點大小,節點越少,
從而導致樹深越小。較小之樹深代表索引只需要在樹中轉發查詢之次數就更少,
從而獲得更好之效能。
在本結構中,係為不同層之索引設計不同之節點大小。頂層索引
之節點大小係大於底層索引。由於頂層索引面對大量記錄,因此使用更大節點大小可以顯著提高查詢效能。而這也代表查詢結果中會保留一些未過濾之記錄,這也是本結構具有資料過濾程序以確認來自結合式索引的結果的主要原因。
另一方面,不同之索引類型具有不同之效能,這導致即使在管理
相同之資料大小時,查詢效能也不相同。例如,與B
+樹相比,R樹之查詢響應時間可以迅速增長,但是Hashmap不受資料大小之顯著影響。此外,篩選率如何影響查詢效能是很簡單的,輸入與輸出記錄之數量越多,索引需要花在查詢處理上之時間就越多。具體而言,本發明還觀察到,輸出記錄之數量比輸入記錄之數量對效能的影響更為嚴重。
基於這些因素,該選擇器21通過該結合式索引選擇單元213
發送訓練查詢以收集不同結合式索引層中每一索引之輸入、輸出與效能之間的關係。具體而言,在資料插入過程中記錄每一屬性之資料範圍。這些範圍被分為幾個大小相等的段,並用作訓練查詢條件。通過對訓練資訊進行雙線性插值,將所收集之訓練資訊用於估計具有已知篩選率(即輸入與輸出)之索引的查詢效能。
最後,通過篩選率估計與效能訓練,可以估計任何結合式索引中
任何索引之效能,這也代表任何結合式索引之效能都是可以估計的。因此,選擇器21係可估計哪個結合式索引可能具有最佳之查詢效能。
如上所述,在結合式索引中,使用上層索引之葉節點中的記錄來
建構下層索引。在上層索引中處理查詢時,葉節點中的記錄不會與查詢條件進行比較。因此,結合式索引之輸出必然包含一些不確定之記錄。因此,該資料
過濾器22在接收來自該選擇器21最有效之結合式索引的輸出後,將應用此
資料過濾過程來確認每一獨立的記錄都滿足該查詢條件。
如第1圖系統架構所示,記錄根據其時間屬性分配到多個索引結
構2,以實現負載平衡與更好的可擴展性。劃分記錄之策略可以基於預定義之時間段(即基於時間)或已定義之記錄大小閾值(即基於記錄),這可以根據資料行為來決定。為了索引由不同索引結構2管理的時間段,將應用B
+樹並將其儲存在主節點設備1中。這種設計還代表著當系統接收到查詢時,主節點設備1將首先應用該B
+樹來查找可能具有所需記錄之索引結構2。
為了優化查詢效能,本發明設計一相當複雜之索引結構。當試圖
考慮多個結合式索引並訓練選擇器選擇最有效之結合式索引時,索引結構的其中一個局限性就是插入效能。因此,將記錄劃分為不同的索引結構有助於保持資料大小的緊湊性。 然而,在一可接受的插入時間下,應設置盡可能大的群聚大小,以使所提的索引結構受益。
與SeaCloudDM相似,本結構也考慮歷史資料與當前資料。歷史
資料係已經插入索引結構中之資料。當前資料係臨時儲存在主節點設備的一傳統資料庫中的資料。在當前資料累積到與上述基於時間或基於記錄的閾值相匹配時,當前資料將被打包成一索引結構。一旦插入過程完成,該當前資料包將從主節點設備中刪除。
與通過上述索引結構管理歷史資料以獲得更好的查詢效能不
同,當前資料是使用多個獨立索引(即傳統的多重屬性索引方法)進行索引。這種設計的主要原因是,獨立索引在資料插入方面具有更好的效能。儘管獨立索引不是最優化之查詢系統,但是對於臨時緩衝之當前資料,相對較小的資料大小可能不會導致查詢處理中的嚴重問題。
以下實施例僅舉例以供了解本發明之細節與內涵,但不用於限制
本發明之申請專利範圍。
本發明考慮四種屬性,包括空間、時間、數值與關鍵字屬性。對
於模擬資料,模擬了三個文本關鍵字,分別佔記錄的10%、40%與50%。時間與
數值屬性在兩個範圍內均等分佈。對於空間屬性,記錄也均勻分佈。另外,100,000個資料用於測試選擇器之準確度,1,000,000個資料用於與PostGIS進行比較。
對於真實資料,係來自台灣開放式物聯網資料資源平台-民生公
共物聯網(Civil IoT Taiwan)之空氣質量資料。以觀察現像作為關鍵字屬性,觀察結果為數值屬性,時間現像為時間屬性,位置用於空間屬性。70個資料流(包括大約100,000條記錄)用於準確度評估,300個資料流(包括超過1,000,000條記錄)用於測試整體效能並與PostGIS進行比較。
在本發明中,選擇器扮演著最重要之角色,負責為每個查詢選擇
最有效之結合式索引。為了測試選擇器之準確度,本次驗證應用了100,000條記錄與1000個隨機查詢。對於表一所示之結果,所有資料都進行了模擬,包括四種均勻分佈之屬性。隨機查詢還包含四個屬性。於一實施例中的查詢為「查詢本週經度121°~122°與緯度23°~24°內20°C以下的所有溫度資料」。在此實施例中,「溫度」係現像也是關鍵字之查詢條件,「20°C以下」係數值屬性,經、緯度條件係空間屬性,「本週」限制係時間條件。對於每種屬性,本發明在資料庫中的最大值與最小值之間隨機選擇一個條件。由於查詢的返回值可能為空,因此僅考慮非空結果之響應時間。
在表一中,1
st到6
th之數值代表所選結合式索引之百分比。以1
st為例,1
st表示與其他結合式索引相比,所選結合式索引實際上是最快的索引。因此,理想的結果是所有結果都屬於1
st,這代表選擇器可以為每個查詢選擇最快的結合式索引。此外,更比較了結合式索引之查詢時間。如果選擇器選擇1
st,則平均查詢時間為3.6毫秒(ms),與6
th相比,平均可節省178.3毫秒。如表一所示模
擬資料下的選擇器準確度,與其他位置相比5
th與6
th相對較慢。一般而言,與僅使
用一個結合式索引相比,本發明有93.7%的機會節省165.4至178.3毫秒。
表一
1 st | 2 nd | 3 rd | 4 th | 5 th | 6 th | |
百分比 (%) | 45.3 | 24.6 | 14.1 | 9.7 | 3.3 | 3.0 |
響應時間 (ms) | 3.6 | 3.9 | 5.7 | 7.0 | 172.4 | 181.9 |
表二為模擬資料下的選擇器準確度的共享,顯示根據結合式索引
類型得出的每個選定結果的百分比。例如,KTVS與KVTS有更多的機會成為最快的索引,因為R樹通常比其他索引花費更多的時間。但是,當R樹的輸出非常小時,其效率會更高,這也是KSTV與KSVT有時表現最佳之原因。由於前端索引對效能之影響更為顯著,因此KTSV之效能與KTVS類似,KVST之效能與KVTS類似。大多數時候,KTVS與KVTS表現最好,其次是KTSV與KVST。
表二
KSTV | KSVT | KTSV | KTVS | KVST | KVTS | |
1 st(%) | 7.1 | 5.1 | 1.6 | 15.0 | 2.2 | 14.3 |
2 nd(%) | 4.9 | 5.8 | 0.2 | 5.1 | 0.9 | 7.1 |
3 rd(%) | 1.8 | 2.2 | 1.3 | 2.5 | 3.4 | 2.9 |
4 th(%) | 1.8 | 2.1 | 0.4 | 1.2 | 0.6 | 3.5 |
5 th(%) | 0.9 | 1.2 | 0 | 0.2 | 0.5 | 0.5 |
6 th(%) | 0.4 | 0.3 | 0.1 | 0.1 | 0 | 1.1 |
對於真實資料之測試,如表三所示真實資料下之選擇器準確度,
其影響結果之主要因素係資料之分佈。在此資料集中,空間屬性與數值屬性趨於彼此接近。由於資料係從現場空氣質量站收集而來,因此當獨立管理各個觀
測值時,大量記錄具有相同之空間屬性。在這種情況下,一旦空間查詢覆蓋了
一個測站,輸出記錄之數量就會突然增加。
表三
1 st | 2 nd | 3 rd | 4 th | 5 th | 6 th | |
百分比 (%) | 47.7 | 28.3 | 19.5 | 4.4 | 0 | 0.1 |
響應時間 (ms) | 3.2 | 4.1 | 6.2 | 9.6 | 153.6 | 188.6 |
表四為真實資料下的選擇器準確度的共享,顯示根據結合式索引
類型得出的每個選定結果的百分比。例如,在本實施例之資料集中,一個測站大約有4000個觀測值。R樹處理單站所有輸出之查詢時間甚至比B
+樹中處理數萬個輸出之查詢時間還要大。因此,在該資料集中不可能將KSTV與KSVT選作最快之結合式索引。與KVST一樣,由於數值彼此接近,因此從第二層轉發到第三層之資料要比KTSV多,這代表第三層之R樹需要處理更多的資料。這是KTSV與KVST都將R樹放在第三層之原因,但是KTSV有更高的機會表現更好。此外,將具有相同數值之資料聚集在一起。數值屬性之索引大小可以很小,從而大幅提高效率。綜上所述,R樹係確定哪個結合式索引更有效之主要因素。同樣,對於彼此接近之屬性,上層索引對效能之影響更為顯著。最後,選擇器結果取決於資料之分佈。
表四
KSTV | KSVT | KTSV | KTVS | KVST | KVTS | |
1 st(%) | 13.4 | 11.5 | 4.0 | 1.4 | 10.5 | 4.2 |
2 nd(%) | 8.2 | 9.6 | 1.3 | 0.2 | 4.8 | 2.2 |
3 rd(%) | 5.3 | 6.2 | 0.6 | 1.2 | 3.6 | 0.7 |
4 th(%) | 3.2 | 2.5 | 0.1 | 0.1 | 2.2 | 0.2 |
5 th(%) | 0.3 | 0.6 | 0 | 0 | 0 | 0.4 |
6 th(%) | 0.5 | 0.6 | 0 | 0 | 0 | 0 |
如前所述,在選擇器之準確度與效能之間需要權衡。選擇器負責
比較六個結合式索引,並在實際查詢之前選擇最有效之索引。由於選擇器之準確度與效能都很重要,因此在可接受之準確度範圍內,其效能應盡可能好。在本發明中,係使用更大節點大小讓選擇器有更好的效能。較大之節點大小會導致較淺的樹具有更好的效能,但不可避免地會犧牲一些準確度。第3圖顯示選擇器節點大小、準確度與效能之間的關係。圖中虛線顯示選擇了5
th與6
th結果,這兩個結果通常具有較差之查詢效能,並顯示準確度下降。圖中實線表示處理篩選率查詢之響應時間。如第3圖所示,當節點大小增加時,準確度變差並且效能變好。然而,效能不會無限提高。通常,為了在準確度與效能之間取得平衡,本發明將選擇器之節點大小設計為實際結合式索引的10倍。
PostGIS為PostgreSQL一應用廣泛之空間資料庫管理系統擴展。
PostGIS能夠支持地理對象並允許空間查詢。另外,建立空間索引之能力也是空間資料庫管理系統之一關鍵特徵。使用空間索引可以大幅提高空間查詢之效能。在此評估中,R樹係空間索引的使用,本發明還為其他屬性(包括時間、關鍵字與數值屬性)建立索引。
將傳統之關聯式資料庫PostGIS與本發明所提之索引框架進行比
較。在表五與PostGIS之效能比較(模擬資料)及表六與PostGIS之效能比較(真實資料)中,本發明所提索引框架之查詢時間分為幾個步驟,包括主節點、選擇器、實際查詢與資料過濾。首先可見,處理不均勻分佈之資料時,本結構與PostGIS之效能都較差。此外,通過適應性選擇最佳結合式索引,其在資料分佈不均勻之情況下也顯示出明顯的優勢。選擇器花費大部分的查詢時間,係因為其需要掃描所有可能的結合式索引順序以選擇最佳的索引。即使如此,本發明也可以在保持選擇器精準確定結合式索引與提高查詢效率方面取得平衡。
表五
表六
本結構 | PostGIS | ||||
主節點 | 選擇器 | 實際查詢 | 資料過濾 | ||
響應時間(ms) | 0.02 | 16.3 | 0.34 | 0.12 | 17.45 |
本結構 | PostGIS | ||||
主節點 | 選擇器 | 實際查詢 | 資料過濾 | ||
響應時間(ms) | 0.15 | 33.43 | 6.66 | 2.23 | 84.64 |
由上述可知,本發明採用四種常見之資料屬性包括時間、空間、
關鍵字(物理量描述)及數值,由於每種屬性適合的索引方式不同,在整合其所有不同的索引架構時,發現其索引整合的順序會對查詢效能有顯著的影響。本發明為一套多重索引框架,考慮所有可能的結合式索引順序,並且根據不同的查詢適應性選出其中最佳之結合式索引。結果顯示,在一百萬筆資料量下,本發明提出的系統架構相較於使用單一順序的索引架構,有百分之99到百分之94的機會節省25到51倍的查詢時間,並且相較於傳統的關聯式資料庫PostGIS,反應時間也快上兩倍。
藉此,本發明建立一套索引架構內含各種結合式索引之索引整合
順序,經訓練瞭解各索引之查詢效能後,此架構可根據個別查詢適應性地選擇最有效率的結合式索引,進而提升資料查詢效能。
整體而言,本發明之特點包含:
1. 可支援各種結合式索引,並根據個別索引挑選最有效率之結合式索引。
2. 相較於僅使用單一順序之結合式索引,本發明之索引架構有百分之99到百分之
94的機會節省25到51倍之查詢時間,並且相較於傳統的關聯式資料庫PostGIS,
反應時間也快上兩倍。
綜上所述,本發明係一種適應性多屬性索引結構,可有效改善習
用之種種缺點,為一套能適應性選擇最有效率之結合式索引之系統架構,藉由估計個別的索引效能以及篩選率來達成;主要概念係利用將篩選率高的索引設計在較優先之位置處理查詢,用以最少化查詢中的中間結果,達到提升資料查詢效能,進而使本發明之產生能更進步、更實用、更符合使用者之所須,確已符合發明專利申請之要件,爰依法提出專利申請。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定
本發明實施之範圍;故,凡依本發明申請專利範圍及發明說明書內容所作之簡
單的等效變化與修飾,皆應仍屬本發明專利涵蓋之範圍內。
1:主節點設備
2的負載:索引結構
21:選擇器
211:篩選率估計單元
212:效能訓練單元
213:結合式索引選擇單元
22:資料過濾器
第1圖,係本發明適應性多屬性索引結構之整體架構示意圖。
第2圖,係本發明KVTS結合式索引之架構示意圖。
第3圖,係本發明選擇器節點大小、準確度與效能之間的關係示意圖。
1:主節點設備
2的負載:索引結構
21:選擇器
211:篩選率估計單元
212:效能訓練單元
213:結合式索引選擇單元
22:資料過濾器
Claims (8)
- 一種適應性多屬性索引結構,係包括: 一主節點設備,用以在積累一定數量的資料時負責平衡數個不同索引結構的負載,該主節點設備應用一B +樹(B + -tree)來索引每一索引結構所管理的時間段,其葉節點鏈接到各該索引結構;以及 該數個索引結構內含各種結合式索引之索引整合順序,各該索引結構係包含一選擇器與一資料過濾器,該選擇器將根據查詢條件選擇最適合的結合式索引,其中該結合式索引之順序係由四種資料屬性,包括關鍵字(keyword)、數值(value)、時間(temporal)與空間(spatial)以不同順序組成各種結合式索引順序,並且每一種結合式索引係將索引整合為不同層的一單獨的樹結構,其中上一層索引的葉節點將是下一層索引的根節點,並且不同層之索引具有不同之節點大小,頂層索引之節點大小係大於底層索引; 當接收到用戶之查詢時,先應用時間準則選擇相應之索引結構並將查詢轉發到各該索引結構,每一索引結構中之選擇器將選擇最有效之結合式索引並執行查詢,查詢後所得之候選結果將被傳輸到該資料過濾器以過濾掉不必要的資料,最後從一關鍵值資料庫(key-value storage)中檢索原始資料,並將響應返回給該用戶。
- 依申請專利範圍第1項所述之適應性多屬性索引結構,其中,各該結合式索引係包含一用於該空間屬性之R樹(R-tree),二用於該時間屬性與該數值屬性之B +樹,以及一用於該關鍵字屬性之Hashmap之索引管理,並將該Hashmap設定為第一層索引。
- 依申請專利範圍第1項所述之適應性多屬性索引結構,其中,各該索引結構中查詢之過程分為四個程序,包含篩選率估計、效能估計、結合索引查詢與資料過濾,當接收到查詢時,該選擇器將執行篩選率測試,並根據篩選率估計每一結合式索引之效能後,將選擇最有效之結合式索引來處理實際查詢,最終結果將被傳輸到該資料過濾器中以供進一步確認。
- 依申請專利範圍第1或3項所述之適應性多屬性索引結構,其中,該選擇器具有一篩選率估計單元、一效能訓練單元及一結合式索引選擇單元,該篩選率估計單元係粗略估計每一查詢之篩選率,該效能訓練單元係針對不同索引建立篩選率與效能之間的關係,該結合式索引選擇單元係將該篩選率估計單元之結果與該效能訓練單元之結果相結合,以選擇最有效之結合式索引。
- 依申請專利範圍第4項所述之適應性多屬性索引結構,其中,該篩選率估計單元建構具有更大節點大小的所有結合式索引,當接收到查詢時,將提供該選擇器使用這些更大節點大小之結合式索引執行查詢,以估計每一結合式索引之篩選率。
- 依申請專利範圍第4項所述之適應性多屬性索引結構,其中,該效能訓練單元係計算每一結合式索引之查詢效能,且決定查詢效能之因素包括該篩選率之索引的輸入與輸出記錄數量、索引類型、節點大小、及樹深。
- 依申請專利範圍第4項所述之適應性多屬性索引結構,其中,該結合式索引選擇單元提供該選擇器通過發送訓練查詢以收集不同結合式索引層中每一索引的輸入、輸出與效能之間的關係。
- 依申請專利範圍第1或3項所述之適應性多屬性索引結構,其中,該結合式索引係使用上層索引的葉節點中的記錄來建構下層索引,在該上層索引中處理查詢時,該葉節點中的記錄不會與查詢條件進行比較,該資料過濾器在接收來自該選擇器最有效之結合式索引的輸出後,將應用資料過濾過程來確認每一獨立的記錄都滿足該查詢條件。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109135558A TWI809320B (zh) | 2020-10-14 | 2020-10-14 | 適應性多屬性索引結構 |
US17/084,847 US11176112B1 (en) | 2020-10-14 | 2020-10-30 | Apparatus of adaptive index for multiple attributes |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109135558A TWI809320B (zh) | 2020-10-14 | 2020-10-14 | 適應性多屬性索引結構 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202215265A true TW202215265A (zh) | 2022-04-16 |
TWI809320B TWI809320B (zh) | 2023-07-21 |
Family
ID=78524013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109135558A TWI809320B (zh) | 2020-10-14 | 2020-10-14 | 適應性多屬性索引結構 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11176112B1 (zh) |
TW (1) | TWI809320B (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140136545A1 (en) * | 2012-10-05 | 2014-05-15 | International Business Machines Corporation | Multi-tier Indexing Methodology for Scalable Mobile Device Data Collection |
US9613068B2 (en) * | 2013-03-15 | 2017-04-04 | Amazon Technologies, Inc. | Scalable analysis platform for semi-structured data |
CN104090949B (zh) * | 2014-07-02 | 2017-03-01 | 河海大学 | 面向水利数据整合与共享的索引方法 |
US20160070754A1 (en) * | 2014-09-10 | 2016-03-10 | Umm Al-Qura University | System and method for microblogs data management |
US10127251B2 (en) * | 2015-07-09 | 2018-11-13 | International Business Machines Corporation | Organizing on-disk layout of index structures to support historical keyword search queries over temporally evolving data |
CN105608224A (zh) * | 2016-01-13 | 2016-05-25 | 广西师范大学 | 一种提高海量数据查询性能的正交多哈希映射索引方法 |
-
2020
- 2020-10-14 TW TW109135558A patent/TWI809320B/zh active
- 2020-10-30 US US17/084,847 patent/US11176112B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
TWI809320B (zh) | 2023-07-21 |
US11176112B1 (en) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102521406B (zh) | 海量结构化数据复杂查询任务的分布式查询方法和系统 | |
CN105488231B (zh) | 一种基于自适应表维度划分的大数据处理方法 | |
CN106528787A (zh) | 一种基于海量数据多维分析的查询方法及装置 | |
US20040225639A1 (en) | Optimizer dynamic sampling | |
US20100030728A1 (en) | Computing selectivities for group of columns and expressions | |
JP2017512344A (ja) | 迅速なデータ解析のためのシステム及び方法 | |
US11003649B2 (en) | Index establishment method and device | |
CN102521405A (zh) | 支持高速加载的海量结构化数据存储、查询方法和系统 | |
CN107515899B (zh) | 数据库联合分片方法、装置以及存储介质 | |
JP2004518226A (ja) | データベースシステムおよびクエリオプティマイザ | |
CN109582758A (zh) | 一种Elasticsearch索引分片优化方法 | |
EP3014488A1 (en) | Incremental maintenance of range-partitioned statistics for query optimization | |
CN104035925B (zh) | 数据存储方法、装置和存储系统 | |
CN106649687A (zh) | 大数据联机分析处理方法及装置 | |
Zilio | Physical database design decision algorithms and concurrent reorganization for parallel database systems. | |
WO2016122891A1 (en) | Workload aware data placement for join-based query processing in a cluster | |
CN103226550B (zh) | 一种基于查询输入的热点事件确定方法和系统 | |
US6732107B1 (en) | Spatial join method and apparatus | |
CN106897281A (zh) | 一种日志分片方法和装置 | |
TWI809320B (zh) | 適應性多屬性索引結構 | |
CN107807793A (zh) | 分布式计算机存储系统中数据副本异构存储与访问方法 | |
WO2023169188A1 (zh) | 一种文件系统中的热度识别方法、装置及计算机设备 | |
CN103793469A (zh) | 一种数据查询统计方法及系统 | |
CN103593409A (zh) | 实时数据库检索方法及检索系统 | |
US9158815B2 (en) | Estimating a number of unique values in a list |