System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及關系型數據庫,具體涉及一種面向數據集的數據存儲和查詢方法、裝置、設備及介質。
技術介紹
1、在關系型數據庫中,對于有序數據集(例如時序數據)的高效存儲和分析查詢一直是一個挑戰。傳統的存儲引擎在高速插入和查詢方面存在性能瓶頸,而且在事務性處理和元數據管理上有一定的復雜性。
2、傳統的存儲引擎如postgresql(對象-關系型數據庫管理系統)的heap(堆內存)存儲在解決有序數據訪問時,在元數據管理和動態邏輯塊劃分方面存在一些瓶頸,導致了在高速插入和查詢時的性能問題。列式存儲引擎,列式存儲引擎在分析查詢方面有優勢,但在高速插入和事務處理方面可能存在一些挑戰。rowstore(行存儲)設計,一些數據庫系統采用rowstore設計,可以提供高速插入和查詢的性能,但在處理有序數據集時仍需進一步優化。lsmtree存儲數據的刪除,采用在關系型數據庫中,數據的合并增大了刪除的復雜度,通常所采用的標記刪除策略占用的空間較多,維護的代價較高。
3、因此,針對有序的數據集,需要一種聚集存儲方法,以滿足在有序數據集背景下的高速插入、快速分析查詢和事務處理的需求。
技術實現思路
1、有鑒于此,本申請實施例提供一種面向數據集的數據存儲和查詢方法、裝置、設備及介質,以滿足在有序數據集背景下的高速插入、快速分析查詢和事務處理的需求。
2、本申請實施例提供以下技術方案:一種面向數據集的數據存儲方法,包括:
3、接收待存儲數據集,將所述待存儲數據集存儲
4、將所述待存儲數據集按照設定的寫入時間段分別劃分至所述level數組中的多個level集合中,其中,將每個所述level集合的元數據分別存儲至該level集合的第二數據塊中;
5、將每個所述level集合中的多個待存儲數據集按照時間順序分別存儲至多個run集合中,其中,在所述第二數據塊中,將每個所述run集合的元數據分別存儲為按時間順序排序的序號。
6、根據本申請一種實施例,所述方法還包括:將每個所述run集合對應的數據集中的數據按照行存儲和列存儲混用的方式進行存儲,其中,將多行數據按照時間順序分別保存至多個邏輯塊range中,將同一列數據的物理地址連續存儲。
7、根據本申請一種實施例,所述方法還包括:對所述run集合中的每條記錄分別設置一個唯一標識,所述唯一標識包括該run集合在所述第二數據塊中的排序序號和當前記錄在該run集合中的邏輯塊range的位置序號;
8、將所述唯一標識保存至所述run集合中的一個邏輯塊tuplelink中,根據獲取的數據刪除請求或數據修改請求,在所述邏輯塊tuplelink中進行查詢,獲得待刪除或修改的數據記錄對應的所述唯一標識,根據所述唯一標識,對所述待刪除或修改的數據記錄進行刪除或修改操作。
9、根據本申請一種實施例,根據所述唯一標識,對所述待刪除或修改的數據記錄進行刪除或修改操作,包括:
10、根據所述唯一標識,確定所述待刪除或修改的數據記錄對應的run集合是否進行了合并操作;
11、若否,則在該run集合中,根據所述唯一標識,對所述待刪除或修改的數據記錄進行刪除或修改操作。
12、根據本申請一種實施例,根據所述唯一標識,確定所述待刪除或修改的數據記錄對應的run集合是否進行了合并操作,還包括:
13、若所述待刪除或修改的數據記錄對應的run集合開始了合并操作或者已經完成了合并操作,則將待刪除或修改的數據記錄對應的所述唯一標識在原run集合的所述邏輯塊tuplelink中進行標記,同時將待刪除或修改的數據記錄在原run集合的delta文件中進行記錄;
14、根據原run集合的所述邏輯塊tuplelink中標記的所述唯一標識和記錄的delta文件,在合并后的新run集合中進行查詢,獲得所述待刪除或修改的數據記錄在新run集合中的位置,對該數據記錄進行刪除或修改操作。
15、本申請還提供一種面向數據集的數據查詢方法,包括:
16、接收并解析數據查詢請求,所述數據查詢請求包括待查詢數據的鍵和索引;
17、根據所述鍵在關系型數據庫的level數組的第一數據塊中進行查詢,獲得待查詢數據對應的level集合;其中,所述關系型數據庫中的數據集存儲至一個level數組中,所述數據集的基礎元數據存儲至所述level數組中的第一數據塊中,所述數據集按照設定的寫入時間段分別劃分至所述level數組中的多個level集合中,每個所述level集合的元數據分別存儲至該level集合的第二數據塊中;
18、根據所述鍵在待查詢數據對應的level集合的所述第二數據塊中進行查詢,獲得待查詢數據對應的run集合;其中,每個所述level集合中的多個數據集按照時間順序分別保存至多個run集合中,且在所述第二數據塊中,每個所述run集合的元數據分別存儲為按時間順序排序的序號;
19、根據所述索引在待查詢數據對應的run集合中進行查詢,輸出查詢數據。
20、本申請還提供一種面向數據集的數據存儲裝置,包括:
21、數據接收模塊,用于接收待存儲數據集,將所述待存儲數據集存儲至一個level數組中,其中,將所述待存儲數據集的基礎元數據存儲至所述level數組中的第一數據塊中;
22、第一存儲模塊,用于將所述待存儲數據集按照設定的寫入時間段分別劃分至所述level數組中的多個level集合中,其中,將每個所述level集合的元數據分別存儲至該level集合的第二數據塊中;
23、第二存儲模塊,用于將每個所述level集合中的多個待存儲數據集按照時間順序分別存儲至多個run集合中,其中,在所述第二數據塊中,將每個所述run集合的元數據分別存儲為按時間順序排序的序號。
24、本申請還提供一種面向數據集的數據查詢裝置,包括:
25、查詢請求接收模塊,用于接收并解析數據查詢請求,所述數據查詢請求包括待查詢數據的鍵和索引;
26、第一查詢模塊,用于根據所述鍵在關系型數據庫的level數組的第一數據塊中進行查詢,獲得待查詢數據對應的level集合;其中,所述關系型數據庫中的數據集存儲至一個level數組中,所述數據集的基礎元數據存儲至所述level數組中的第一數據塊中,所述數據集按照設定的寫入時間段分別劃分至所述level數組中的多個level集合中,每個所述level集合的元數據分別存儲至該level集合的第二數據塊中;
27、第二查詢模塊,用于根據所述鍵在待查詢數據對應的level集合的所述第二數據塊中進行查詢,獲得待查詢數據對應的run集合;其中,每個所述level集合中的多個數據集按照時間順序分別保存至多個run集合中,且在所述第二數據塊中,每個所述run集合的元數本文檔來自技高網...
【技術保護點】
1.一種面向數據集的數據存儲方法,其特征在于,包括:
2.根據權利要求1所述的面向數據集的數據存儲方法,其特征在于,所述方法還包括:將每個所述Run集合對應的數據集中的數據按照行存儲和列存儲混用的方式進行存儲,其中,將多行數據按照時間順序分別保存至多個邏輯塊Range中,將同一列數據的物理地址連續存儲。
3.根據權利要求2所述的面向數據集的數據存儲方法,其特征在于,所述方法還包括:對所述Run集合中的每條記錄分別設置一個唯一標識,所述唯一標識包括該Run集合在所述第二數據塊中的排序序號和當前記錄在該Run集合中的邏輯塊Range的位置序號;
4.根據權利要求3所述的面向數據集的數據存儲方法,其特征在于,根據所述唯一標識,對所述待刪除或修改的數據記錄進行刪除或修改操作,包括:
5.根據權利要求4所述的面向數據集的數據存儲方法,其特征在于,根據所述唯一標識,確定所述待刪除或修改的數據記錄對應的Run集合是否進行了合并操作,還包括:
6.一種面向數據集的數據查詢方法,其特征在于,包括:
7.一種面向數據集的數據存儲
8.一種面向數據集的數據查詢裝置,其特征在于,包括:
9.一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,其特征在于,所述處理器執行所述計算機程序時實現權利要求1至5中任一項所述的面向數據集的數據存儲方法和/或權利要求6所述的面向數據集的數據查詢方法。
10.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質存儲有執行權利要求1至5中任一項所述的面向數據集的數據存儲方法和/或權利要求6所述的面向數據集的數據查詢方法的計算機程序。
...【技術特征摘要】
1.一種面向數據集的數據存儲方法,其特征在于,包括:
2.根據權利要求1所述的面向數據集的數據存儲方法,其特征在于,所述方法還包括:將每個所述run集合對應的數據集中的數據按照行存儲和列存儲混用的方式進行存儲,其中,將多行數據按照時間順序分別保存至多個邏輯塊range中,將同一列數據的物理地址連續存儲。
3.根據權利要求2所述的面向數據集的數據存儲方法,其特征在于,所述方法還包括:對所述run集合中的每條記錄分別設置一個唯一標識,所述唯一標識包括該run集合在所述第二數據塊中的排序序號和當前記錄在該run集合中的邏輯塊range的位置序號;
4.根據權利要求3所述的面向數據集的數據存儲方法,其特征在于,根據所述唯一標識,對所述待刪除或修改的數據記錄進行刪除或修改操作,包括:
5.根據權利要求4所述的面向數據集...
【專利技術屬性】
技術研發人員:王勇,唐鵬洲,姚延棟,翁巖青,
申請(專利權)人:北京四維縱橫數據技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。