TW201530328A - 爲半結構化資料構建NoSQL資料庫索引的方法及裝置 - Google Patents
爲半結構化資料構建NoSQL資料庫索引的方法及裝置 Download PDFInfo
- Publication number
- TW201530328A TW201530328A TW103118601A TW103118601A TW201530328A TW 201530328 A TW201530328 A TW 201530328A TW 103118601 A TW103118601 A TW 103118601A TW 103118601 A TW103118601 A TW 103118601A TW 201530328 A TW201530328 A TW 201530328A
- Authority
- TW
- Taiwan
- Prior art keywords
- primary key
- structured
- value
- key
- data
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/81—Indexing, e.g. XML tags; Data structures therefor; Storage structures
-
- 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/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/319—Inverted lists
Abstract
本發明提供一種為半結構化資料構建NoSQL資料庫索引的方法,包括:將半結構化來源資料進行預處理;將預處理後的文本段儲存至資料表中,資料表包括結構化線索主鍵和序列值主鍵的第一組合主鍵,結構化線索以確定的順序被分割為若干連續區間,每一區間分配一個特定的鍵值作為結構化線索主鍵的鍵值;對預處理後的文本段建立倒排索引表,倒排索引表包括結構化線索主鍵和關鍵字主鍵的第二組合主鍵,對應上述各個主鍵的鍵值,記錄相關的文本段序列標識作為索引值;關鍵字主鍵相同,但具有不同的結構化線索主鍵鍵值的索引值,在倒排索引表中位於不同的行;以提高資料庫索引的查詢效率,並便於更新。另外,本發明還提供一種為半結構化資料構建NoSQL資料庫索引的裝置。
Description
本發明係關於電腦應用技術領域,特別係關於一種為半結構化資料構建NoSQL資料庫索引的方法及裝置。
資料庫管理系統(database management system)是一種操縱和管理資料庫的方式,用於建立、使用和維護資料庫。它對資料庫進行統一的管理和控制,以保證資料庫的安全性和完整性。
隨著大資料時代的到來,交易和交互資料也隨之不斷增大。其中,對TB資料級的處理,已經成為基本配置;而資料類型也由單一性變為多樣性,例如:結構化資料、非結構化資料、半結構化資料等,其中結構化資料通常是指企業ERP、財務系統等資料資訊;非結構化資料是指語音、圖像、視頻等資料;半結構化資料是指結構隱含但不嚴謹的自我描述型資料,如:郵件、HTML、報表、資源庫等資料。
傳統的關係型數據庫管理系統在面對上述大規模及多樣性的資料時,存在一定的局限性,尤其是對於處理非結
構化資料和半結構化資料時顯得力不從心。為此,提出了NoSQL的概念。
NoSQL是指非關聯式的資料庫,或者稱為:非結構化資料儲存的資料庫。NoSQL儲存中的列式儲存(如Hbase,OTS)是基於列的資料庫,以方便讀寫大資料內容。NoSQL儲存模型可以表示為一個表,每個表由很多行組成,每行又有很多列。表創建時需要指定行的主鍵列,該主鍵列通常被用來劃分資料,相鄰主鍵的行通常被組織在一起。對NoSQL資料庫進行查詢的方式是為其建立索引。
索引是對資料庫表中一列或多列的值進行排序的一種結構,使用索引可快速存取資料庫表中的特定資訊。因此,可以通過為資料庫建立索引查找到所需要的資訊。
倒排索引是NoSQL資料庫最常用的資料結構之一,所謂倒排索引(Inverted index),是根據屬性的值來查找記錄,在倒排索引表中的每一項都包括一個屬性值和具有該屬性值的各記錄的位址。由於不是由記錄來確定屬性值,而是由屬性值來確定記錄的位址,所以稱之為倒排索引。以常用的NoSQL資料庫類型--文檔檢索系統為例,如果要為儲存在硬碟上的文字檔建立倒排索引,則所述屬性值就是文檔中的關鍵字,倒排索引表中對應每個關鍵字記錄包含該關鍵字的文字檔所在的硬碟儲存位置,該硬碟儲存位置稱為索引值。
對上述文檔檢索系統為例,需要為大量文檔建立資料
庫索引時,可以將文檔和索引存入NoSQL資料庫的資料表和倒排索引表中,資料表主鍵是文檔ID,值是文檔內容;倒排索引表主鍵是關鍵字,值是包含該關鍵字的文檔清單,通過倒排索引表的關鍵字主鍵可以查找包含該關鍵字的所有文檔的文檔ID,使用這些文檔ID,再通過資料表,可以查找到對應的文檔內容,通過上述方式,就可以實現從海量的資訊中快速地提取出用戶需求的資訊,實現為NoSQL資料庫建立索引的目的。
然而,現有基於NoSQL對資料建立的倒排索引,其查詢效率很低。原因在於,用戶在根據關鍵字進行查詢時,需要在整個倒排索引表中查找相應關鍵字,該查找時間隨資料量指數增長,導致查詢效率低。
此外,現有的NoSQL資料庫索引的更新效率過低。以上述文檔檢索系統為例,現有的NoSQL系統中,當增加新文檔的資料時,需要先讀取原有的倒排索引表,找出該新文檔的關鍵字在倒排索引表中的位置,然後,再將該新文檔的文檔ID對應這些關鍵字寫入倒排索引表;由於需要先讀取倒排索引表的內容,顯著降低了資料庫索引的更新速度,當資料庫很大時,更新速度將達到無法接收的地步。
綜上,由於現有技術中基於NoSQL儲存資料構建索引的方式,存在查詢效率和更新效率過低的問題,因此,導致系統輸送量低,無法處理TB規模文檔的寫入與查詢。
所以,如何能夠構建一種具有更高吞吐能力的NoSQL資料庫索引方法,成為極待解決的技術問題。
本發明提供一種為半結構化資料構建NoSQL資料庫索引的方法,所述資料庫索引具有更高的查詢效率,以及更便於更新。
本發明同時提供一種為半結構化資料構建NoSQL資料庫索引的裝置。
為解決上述技術問題,本發明提供一種為半結構化資料構建NoSQL資料庫索引的方法,包括:將半結構化來源資料進行預處理,獲得若干待存入資料庫的文本段;將所述預處理後的文本段儲存至資料表中,所述資料表具有第一組合主鍵,每個文本段對應所述第一組合主鍵儲存至相應的記錄中;所述第一組合主鍵包括結構化線索主鍵和序列值主鍵;所述結構化線索主鍵標識結構化線索,所述結構化線索以確定的順序被分割為若干連續區間,每一區間分配一個特定的鍵值作為結構化線索主鍵的鍵值;所述序列值主鍵,是為每個文本段賦予唯一對應所述文本段的序列值;對所述預處理後的文本段建立倒排索引表,所述倒排索引表的主鍵為第二組合主鍵,所述第二組合主鍵包含結構化線索主鍵和關鍵字主鍵;所述倒排索引表中,對應上述各個主鍵的鍵值,記錄相關的文本段序列標識作為索引值;關鍵字主鍵相同,但具有不同的結構化線索主鍵
鍵值的索引值,在所述倒排索引表中位於不同的行。
較佳地,所述第一組合主鍵包括資料來源主鍵,所述資料來源主鍵標識文本段的資料來源;所述第二組合主鍵同樣包含上述資料來源主鍵,具有不同的資料來源主鍵鍵值的索引值,在所述倒排索引表中位於不同的行。
較佳地,對這些文本段建立所述資料表和倒排索引表時,一次性讀取同一資料來源的具有相同結構化線索主鍵鍵值的所有文本段。
較佳地,所述第一組合主鍵中,所述資料來源主鍵,具體採用文本段的資料來源加上文本段的結構化線索原始值的雜湊值;和/或在所述第二組合主鍵中,所述資料來源主鍵,具體採用文本段的資料來源加上關鍵字的雜湊值。
較佳地,所述結構化線索為文本段的來源資料生成時間。
較佳地,所述結構化線索以確定的順序被分割為若干連續區間,是將文本段的來源資料生成時間分為若干時間段;所述每一區間分配一個特定的鍵值作為結構化線索主鍵的鍵值,是以所述時間段的起點、終點、中點或者所述時間段內的任意一點的時間值作為所述特定的鍵值,或者為所述時間段確定一個唯一的識別字號作為所述特定的鍵值。
較佳地,所述序列值以基值加偏移值的方式表示;所述基值與所述結構化線索主鍵鍵值對應,即,相同的結構
化線索主鍵鍵值對應同一個基值;所述偏移值以如下方式獲得:對應同一個結構化線索主鍵鍵值的每個文本段,以所述結構化線索原始值的順序為依據,按照順序賦予相應的偏移值。
較佳地,所述倒排索引表中,記錄相關文本段標識作為索引值的具體方法是:為對應同一個資料來源主鍵鍵值,並且結構化線索主鍵鍵值相同的所有文本段,提供一個基值;同時,為這些文本段提供一個二進位位元陣列,所述位元陣列中,以第i位元二進位數字標識第i個文本段是否包含所在記錄的關鍵字主鍵中所列的關鍵字。
較佳地,若對應同一個資料來源主鍵並且具有相同的結構化線索主鍵的所有文本段,均包括某個關鍵字,則在倒排索引表對應所述關鍵字主鍵的記錄中,其索引值記錄為一個特殊符號,所述特殊符號表示所有文本段均包含所述關鍵字;或者,若對應同一個資料來源主鍵並且具有相同的結構化線索主鍵的少量文本段,包括某個關鍵字,則直接記錄以整數表示的文本段偏移值。
本發明還提供一種為半結構化資料構建NoSQL資料庫索引的裝置,包括:預處理單元,將半結構化來源資料進行預處理,獲得若干待存入資料庫的文本段;資料表建立單元,用於建立將所述預處理後的文本段儲存至資料表中;所述資料表具有第一組合主鍵,每個文本段對應所述第一組合主鍵儲存至相應的記錄中;所述第一組合主鍵包括結構化線索主鍵和序列值主鍵;所述結構化線索主鍵標
識結構化線索,所述結構化線索以確定的順序被分割為若干連續區間,每一區間分配一個特定的鍵值作為結構化線索主鍵的鍵值;所述序列值主鍵,是為每個文本段賦予唯一對應所述文本段的序列值;倒排索引表建立單元,用於對所述預處理後的文本段建立倒排索引表;所述倒排索引表的主鍵為第二組合主鍵,所述第二組合主鍵包含結構化線索主鍵和關鍵字主鍵;所述倒排索引表中,對應上述各個主鍵的鍵值,記錄相關的文本段序列標識作為索引值;關鍵字主鍵相同,但具有不同的結構化線索主鍵鍵值的索引值,在所述倒排索引表中位於不同的行。
較佳地,所述第一組合主鍵包括資料來源主鍵,所述資料來源主鍵標識文本段的資料來源;所述第二組合主鍵同樣包含上述資料來源主鍵,具有不同的資料來源主鍵鍵值的索引值,在所述倒排索引表中位於不同的行。
較佳地,對這些文本段建立所述資料表和倒排索引表時,一次性讀取同一資料來源的具有相同結構化線索主鍵鍵值的所有文本段。
較佳地,所述第一組合主鍵中,所述資料來源主鍵,具體採用文本段的資料來源加上文本段的結構化線索原始值的雜湊值;和/或在所述第二組合主鍵中,所述資料來源主鍵,具體採用文本段的資料來源加上關鍵字的雜湊值。
較佳地,所述結構化線索為文本段的來源資料生成時間。
較佳地,所述結構化線索以確定的順序被分割為若干連續區間,是將文本段的來源資料生成時間分為若干時間段;所述每一區間分配一個特定的鍵值作為結構化線索主鍵的鍵值,是以所述時間段的起點、終點、中點或者所述時間段內的任意一點的時間值作為所述特定的鍵值,或者為所述時間段確定一個唯一的識別字號作為所述特定的鍵值。
較佳地,所述序列值以基值加偏移值的方式表示;所述基值與所述結構化線索主鍵鍵值對應,即,相同的結構化線索主鍵鍵值對應同一個基值;所述偏移值以如下方式獲得:對應同一個結構化線索主鍵鍵值的每個文本段,以所述結構化線索原始值的順序為依據,按照順序賦予相應的偏移值。
較佳地,所述倒排索引表中,記錄相關文本段標識作為索引值的具體方法是:為對應同一個資料來源主鍵鍵值、並且結構化線索主鍵鍵值相同的所有文本段,提供一個基值;同時,為這些文本段提供一個二進位位元陣列,所述位元陣列中,以第i位元二進位數字標識第i個文本段是否包含所在記錄的關鍵字主鍵中所列的關鍵字。
較佳地,若對應同一個資料來源主鍵並且具有相同的結構化線索主鍵的所有文本段,均包括某個關鍵字,則在倒排索引表對應所述關鍵字主鍵的記錄中,其索引值記錄為一個特殊符號,所述特殊符號表示所有文本段均包含所述關鍵字;或者,若對應同一個資料來源主鍵並且具有相
同的結構化線索主鍵的少量文本段,包括某個關鍵字,則直接記錄以整數表示的文本段偏移值。
與現有技術相比,本發明的特點在於:本發明提供一種為半結構化資料構建NoSQL資料庫索引的方法。該方法首先在對半結構化來源資料進行預處理,獲得若干待存入資料庫的文本段,以資料來源、結構化線索和序列值為主鍵,將文本段儲存至與主鍵相對應的行中,形成資料表;然後,以資料來源、結構化線索和關鍵字為主鍵,記錄相關的文本段序列標識作為索引值。由於倒排索引是對應資料來源、結構化線索和關鍵字建立,所以,查詢時,是將資料來源、結構化線索和關鍵字相結合,進行查詢,因此,查詢時僅需解析關鍵字在該資料來源和結構化線索下,所對應的文本段的序列值即可,使得解析時間與資料來源和結構化線索的某一個鍵值內的資料量成正比,而與系統內總數據量無關,因此,可以顯著提高查詢效率。
另外,本發明的較佳實施例中,對文本段建立所述資料表和倒排索引表時,一次性讀取來自同一個資料來源並具有相同結構化線索主鍵鍵值的所有文本段,並為它們建立資料表和倒排索引表;在後續為資料來源或者結構化線索主鍵鍵值不同的文本段建立資料表和倒排索引表時,不需要再讀取原來的倒排索引表,直接插入新的倒排索引記錄即可。因此,使用該較佳的方案後,在建立或者更新NoSQL資料庫索引時,無需讀取原有的倒排索引表。由於倒排索引表的讀操作比寫操作更費時,因此,該方法能
夠有效提高資料庫索引系統的更新效率,提高整個資料庫系統的輸送量。
201‧‧‧預處理單元
202‧‧‧資料表建立單元
203‧‧‧倒排索引表建立單元
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的圖式作簡單地介紹,顯而易見地,下面描述中的圖式僅僅是本發明中記載的一些實施例,對於本領域普通技術人員來講,還可以根據這些圖式獲得其他的圖式。
圖1為本發明提供的一種半結構化資料基於NoSQL構建索引的方法流程圖;圖2為本發明提供的一種半結構化資料基於NoSQL構建索引裝置的結構單元框圖。
下面將結合本發明實施例中的圖式,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員所獲得的所有其他實施例,都屬於本發明保護的範圍。
請參閱圖1,其為本發明一種半結構化資料基於NoSQL構建索引的方法第一實施例流程圖。該實施例的應用環境是對具有多個伺服器的網站的日誌構建NoSQL資料庫索引。對於伺服器日誌而言,其結構化線索就是日
誌生成時間。
在本實施例中,包括如下步驟:步驟S110:將各個伺服器產生的包含生成時間和日誌源資訊的日誌文本進行預處理,獲得若干待存入資料庫的文本段。
每個伺服器均不斷處理各種網路業務,對這些網路業務,都需要進行記錄,這些記錄稱為日誌。
以下是一條伺服器生成的日誌的實例。
上述日誌文本來自某個日誌源,例如某個帳戶;該日誌還記錄了生成該日誌的時間,即[01/Mar/2012:16:12:07+0800]。
這些原始的日誌即為來源資料。這些來源資料記錄形式主要是考慮伺服器進行日誌記錄的需要,不符合NoSQL資料庫記錄的需要,為此,需要將其處理為符合需要的鍵值對形式的記錄,該處理過程稱為預處理。以下是經過預處理後的待存入資料庫的文本段。
需要說明的是,所述半結構化資料是介於結構化的資料和完全無結構的資料之間的資料形式,本實施例中的日誌就是一種半結構化資料形式;半結構資料具有至少一個結構化線索,在本實施例中,就是日誌生成時間。對於每個資料來源而言,一個具體的時間點上可能產生很多日誌;此時,可以根據後續的Index的序號來區分不同的日誌。
步驟S120:將在所述步驟S110中預處理後的文本段,儲存至與第一組合主鍵相對應的行中,形成資料表;所述第一組合主鍵包含資料來源主鍵、結構化線索主鍵和序列值主鍵;所述資料來源主鍵標識文本段的資料來源;所述結構化線索主鍵標識結構化線索,該結構化線索以確定的順序被分割為若干連續區間,每一區間分配一個特定的鍵值作為結構化線索主鍵的鍵值;所述序列值主鍵,是為每個文本段賦予唯一對應該文本段的序列值。
本實施例提供的為半結構化資料構建NoSQL資料庫索引的方法中,需要建立兩個表格,第一個是用於儲存預處理後的文本段的資料表,第二個是倒排索引表。本步驟即為建立資料表。以下就是該資料表的一個示例。
以下結合上述示例對該資料表進行說明。
建立資料表時,首先需要確定建立資料表的主鍵。本實施例中,為該資料表選擇的主鍵需要考慮多方面的因素,其主鍵為組合主鍵,為與後續倒排索引表的組合主鍵相區別,該組合主鍵稱為第一組合主鍵。
從上述資料表可以看出,所述第一組合主鍵中包含三個主鍵,第一主鍵為Hash=雜湊(日誌源資訊+時間),第二主鍵為Time,即結構化線索主鍵,在本實施例中即為時間主鍵,第三主鍵為「序號」,即對應文本段的序列值主鍵。
所述第一主鍵Hash為每個文本段提供一個對應的ID號碼,提供該ID號碼的方式是,將文本段的日誌源資訊加上時間的雜湊值生成該第一主鍵的鍵值。所述日誌源資訊,在本實施例中即生成該日誌的帳戶;所述時間,即該文本段的來源資料的生成時間(由於文本段已經經過預處理,為了將文本段預處理的時間和文本段所代表的日誌的生成時間區別開,將後者稱為文本段的來源資料的生成時間)。每個文本段均具有日誌源資訊以及生成時間。引入日誌源,是為了能夠在一張資料表中支援多個不同的應用,這些應用之間可以共用儲存;當進行查詢和儲存時通過標示不同的日誌源,就能做到資料之間的隔離。通過加入時間,可以將同一個日誌源的日誌離散開,使其分佈在不同的伺服器,獲得負載均衡的效果。同一個日誌源在同一時間可能產生很多日誌,此時,可以進一步依靠後續的
序列值主鍵(表中的「序號」)區別,當然,這種情況一般不會出現。此外,通過考慮來源資料生成時間,並經過雜湊方式離散後,還能夠將來自同一個帳戶的日誌的記錄位置被分散到不同的伺服器上,在硬體上獲得負載均衡化的效果。舉例來說,若資料分片輸送量的上線為8M/s,當採用資料來源加文本段產生時間的雜湊值作為主鍵之一,同一資料來源不同時間段能夠將文本段分發到不同的資料分片上,若採用8個分片,則輸送量能達到64M/s,因此,採用資料來源加文本段產生時間對文本段進行劃分,能夠進一步提升資料庫系統的輸送量。
所述第二主鍵為時間主鍵(表中的Time),該主鍵表徵該文本段的結構化線索。但是,該主鍵的鍵值並不是直接使用日誌生成時間,而是將日誌生成時間在一個連續時間段內的所有日誌源均賦予相同的鍵值。舉例而言,將某日清晨零點到清晨零點十分產生的日誌均以該時間段的起點,即某日清晨零點作為其鍵值,採取這樣的方式,可以實現對日誌記錄的批次處理化,這一點在後續倒排索引表建立的過程中予以詳細說明。需要說明的是,對日誌生成時間分段取鍵值的方式顯然還可以採用其他方式,關鍵是能夠唯一標識該段日誌生成時間。例如,可以採用這段時間的終點時間,中點時間,乃至這段時間內的任意一點的時間,也可以為該段時間以某種方式提供一個唯一的識別字號作為該特定的鍵值。但無論採用何種方式,在整個處理過程中應當始終保持生成時間鍵值方式的一致性,避
免賦值混亂。
所述第三主鍵為對應文本段的序列值主鍵(表中的「序號」)。該主鍵標識該文本段在資料表中的順序,依據該主鍵,即可依序查找到文本段在該資料表中的位置。在本實施例中,所述序列值包含一個對應所述時間段主鍵鍵值的基值(表中表示為Index),對應同一個時間段主鍵鍵值的每個文本段,以日誌生成時間的原始值為順序依據,賦予相應的偏移值。使用上述基質加上偏移值的方式記錄文本段的序列值,相比記錄絕對序列值,可大幅節省儲存開銷。
步驟S130:對所述預處理後的文本段建立倒排索引表,該倒排索引表的主鍵為第二組合主鍵,該第二組合主鍵包含資料來源主鍵、結構化線索主鍵和關鍵字主鍵;該倒排索引表中,對應上述各個主鍵的鍵值,記錄相關的文本段序列標識作為索引值;關鍵字主鍵相同,但具有不同的資料來源或者不同的結構化線索主鍵鍵值的索引值,在該倒排索引表中位於不同的行。
該步驟S130中的倒排索引表是基於步驟S110預處理後的文本段建立,也不排除基於步驟S120建立的資料表建立;該步驟同樣需要採用文本段生成時間作為結構化線索。以下是一個具體的倒排索引表的示例。
可以看出,該倒排索引表同樣使用多個主鍵組成組合主鍵。為了與上述資料表的組合主鍵相區別,該倒排索引表的組合主鍵稱為第二組合主鍵。從上述倒排索引表可以看出,第二組合主鍵包含的三個主鍵,分別為第一主鍵PartitionId、第二主鍵TermHash即關鍵字主鍵、第三主鍵Time,即時間主鍵。
所述第一主鍵PartitionID=雜湊(日誌源資訊+關鍵字),該主鍵的作用相當於為每一個記錄提供一個標識。該標識採用(日誌源資訊+關鍵字)的雜湊值獲得。引入日誌源作為主鍵,是為了能夠在該倒排索引表中支援多個不同的應用,這些應用之間可以共用儲存,當進行查詢和儲存時,通過標識不同的日誌源,就能做到資料之間的隔離;引入關鍵字作為主鍵資訊,可以將不同關鍵字的倒排索引均勻分佈到不同機器上。在不同時間主鍵鍵值下,可能出現完全相同的(日誌源資訊+關鍵字),則依賴所述時間主鍵區分這些完全相同的PartitionID。
所述第二主鍵TermHash為關鍵的雜湊值,該主鍵可
以作為查找關鍵字的依據,是倒排索引表必須具備的主鍵。
所述第三主鍵Time即時間主鍵,為結構化線索主鍵。該主鍵的鍵值取值方式和上述資料表的時間主鍵完全相同,其鍵值並不是直接使用日誌生成時間,而是將日誌生成時間在一個連續時間段內的所有日誌均賦予相同的鍵值。並且,對應於同樣一段時間範圍,其鍵值取值和上述資料表的取值應當相同,以便兩個表能夠對應使用。
在上述倒排索引表中,對應上述主鍵記錄的索引值分為兩列,分別為基準序號和位元陣列。所述基準序號,即對應某個時間主鍵鍵值的基值,和上述資料表的相同時間主鍵的基值應當相同。所述位元陣列,是為具有相同基值的所有文本段提供一個二進位位元陣列,該位元陣列中,以第i位元二進位數字標識第i個文本段是否包含所在記錄的關鍵字主鍵中所列的關鍵字,例如,以第i為1,標識具有時間主鍵鍵值的所有文本段中的第i個文本段包含該記錄關鍵字主鍵對應的關鍵字。這樣,通過基值加位元陣列,就可以確定該資料來源的該時間段內產生的所有文本段中,哪幾個文本段具有該記錄對應的關鍵字。由於對應一個時間鍵值的所有文本段的數量一般是有限的,可以以一個一定位數的二進位數字即可完成對所有文本段是否包含某個關鍵字的記錄,節省大量的空間。
對於上述倒排索引表可以進行如下解讀。如果需要查找某個日誌源在某一個時間段內,某個關鍵字出現在哪些
文本中。則可以日誌源資訊和時間資訊,確定其日誌源主鍵和時間主鍵鍵值,根據所需查找的關鍵字,確定關鍵字主鍵鍵值,這樣,就可以根據該倒排索引表查找到對應的基值和位元陣列,結合兩者即可獲得所需文本段的序號,根據該序號即可從與該倒排索引表相配合的資料表中獲得包含該關鍵字的所有文本段。
為了壓縮數索引記錄的資料量,在一些特殊情況下,所述索引值中的位元陣列可以以下述方式替代:當某個關鍵字在該資料來源、該時間段內的所有文本中都存在時,可以為其設置一個特殊符合,該特殊符號表示所有文本段均包含該關鍵字。例如,可以記錄為“ALL”;當某個關鍵字在該資料來源、該時間段內的只有少數文本中存在時,可以直接記錄以整數表示的文本段偏移值;通過上述兩種方法,在關鍵字在各個文本中的分佈極端稠密或者極端稀疏的情況下,均可以節約儲存空間。
通過上述步驟110-130可以獲知,由於本實施例通過以日誌生成時間和文本段序列值為主鍵建立資料表,並建立以日誌生成時間和關鍵字為主鍵的倒排索引表,所以,當用戶以日誌生成產生時間進行查詢時,只需要解析相關日誌源和相關時間段的倒排索引表即可,根據倒排索引表所提供的索引結果,在對應資料表可獲得文本段內容,這樣,就顯著提高了查詢效率,也就是說,查詢時僅需要解
析關鍵字所在時間段內的所有文本段,而無需將系統內的所有資料進行解析。
並且,基於上述資料表和倒排索引表,當需要對後續資料資訊建立倒排索引時,即,根據新增資料對資料庫索引進行更新的過程中,始終以時間主鍵為線索。具體而言,在倒排索引表中,只需要以資料來源、關鍵字和時間段為主鍵,直接插入新的記錄即可,不需要讀取原有的倒排索引表,這樣就節約了讀取倒排索引表的時間,對於資料量較大的倒排索引表而言,讀取倒排索引表所需要的時間比寫入的時間更長,因此,該方案可以顯著提高更新資料庫索引的效率。
如果新增文本段的資料來源和產生時間位於某個已經記錄的資料來源和時間主鍵的鍵值標識的範圍內,則根據其中的關鍵字在該主鍵的鍵值標識中進行更新。如果某個關鍵字在該時間鍵值的所有記錄範圍內已經存在,則更改位元陣列中的相應位元即可。如果某個關鍵字在該資料來源和時間鍵值的所有記錄範圍內不存在,則在該時間鍵值下新增該關鍵字主鍵。
如果資料庫尚不存在包含該資料來源以及時間的鍵值,則建立對應該時間的時間鍵值記錄,再根據文本段中的關鍵字分別記錄關鍵字對應的記錄。
以上方法是對資料進行更新的通用方法,顯然,和不具有結構化線索的NoSQL資料庫索引相比,該方法只需要對具有相同的時間主鍵的記錄進行讀取,即可更新倒排
索引表。而現有技術下要更新倒排索引表需要讀取整個倒排索引表,而讀取倒排索引表的時間一般比寫入倒排索引表花費的時間更長,並且讀取時間和倒排索引表的資料量正相關;因此,本實施例能夠顯著降低生成資料庫索引的更新時間。
但在本實施例的應用場合,需要建立資料庫索引的是網路服務不斷產生的日誌,並且,這些日誌在生成後立刻湧向資料庫,資料庫索引的更新即時進行。對於這種典型的應用場景,資料庫索引一般是一次建立,後續不會出現更新。對於資料庫索引的建立方式,採用如下方式。
首先,對所有產生的日誌進行步驟S110的預處理。
其次,將對應同一個資料來源並且在一個時間主鍵鍵值的時間段範圍內的所有預處理後的文本段一次性讀入,並進行步驟S120和步驟S130的處理。例如,一個時間鍵值對應的時間段長度為十分鐘,某日清晨零點到零點十分的來自帳戶A的所有資料全部預處理後,一次性讀入,這些文本段均賦予相同的基值,並按照讀入順序賦予每個文本段偏移值。在建立倒排索引表時,一次性對這些文本段劃分關鍵字,並建立倒排索引。在倒排索引表中,所有的記錄具有相同的時間鍵值,其記錄的索引值中,具有相同的基值;在位元陣列中,則一次性將含有關鍵字的文本段置位元。通過上述一次性讀入一個時間段的所有日誌,可以使建立資料庫索引的過程只包括寫操作,而完全不用讀操作,這樣就節省了大量讀取倒排索引表的時間,
為便於說明本發明所提供的一種半結構化資料基於NoSQL構建索引的方法具體實現過程,結合上述實施例,通過以nginx伺服器(10.249.201.117)的日誌為例子說明採用上述建立的倒排索引,實現查詢的過程。
根據上述實施例建立的倒排索引表和資料表,用戶所要查詢的內容譬如為:ip是10.1.168.193的機器報告在時間t存取nginx伺服器(10.249.201.117)失敗,要求調查一下原因。
已知資訊是日誌源,t所屬的時間段為t1,需要查詢ip為10.1.168.193但status不是200的日誌。先以關鍵字10.1.168.193查詢,得到基準序號為INDEX,倒排索引為bit_array(0,1)(該符號表示該位元數的0、1位被置位為1),再以關鍵字200進行查詢,得到基準序號為INDEX,倒排索引為bit_array(0,2),兩者取差集結果基準序號為INDEX,反向索引為bit_array(1)。最後由日誌源,時間段t1,序號INDEX+1,可以獲得原始日誌,從中發現是SERVER 500錯誤導致存取失敗。
以下對採用位元陣列記錄索引值的優點進行說明。
上述按照日誌源、時間劃分主鍵的資料庫索引方法,本身可能存在資料膨脹的問題,但是,結合位元陣列記錄索引值的方法,則可以在資料庫索引的更新、查詢效率和資料庫索引的資料規模方面獲得較好的平衡。
具體而言,在建立上述資料庫時,將具有相同時間主鍵鍵值並且具有相同日誌源的所有文本段視為一個長文
檔,一次性讀入並對其建立索引。這一時間範圍內的所有日誌用一個基準序號Index和一個位元陣列表示,第i位元位為1代表第(Index+i)條日誌包含關鍵字。因此,這樣記錄的倒排索引只有原始日誌資料一半多一點的大小,其具體的效果可以通過以下計算表現:假設我們將N條原始日誌合併為一條建立索引,這N條日誌共有T個關鍵字,平均每個關鍵字在其中M條出現,PartitionId,TermHash,Time均為4byte,INDEX為8byte,則:
若取N=300,M=50,則比值為17.4,可見優化後索引大小能下降一兩個數量級。以實際觀察的某一日的資料為例,當天處理的原始日誌大小為1.16TB,生成的索引大小為0.69TB,索引日誌比為0.59,可見該資料庫索引系統能有效的解決索引大小膨脹的問題。
將多條資料資訊合併建立倒排索引不僅能壓縮倒排索引大小,提升系統處理的資料量,而且能夠提升系統的輸送量。原因是:原本對於N條資料資訊,平均每一個關鍵字出現在M條資料資訊中,則每個關鍵字需要M次讀寫NoSQL資料庫,將N條資料資訊合併成一條整體資料資訊建立倒排索引後,則每個關鍵字只需插入新的一行,即一次寫操作。
位元陣列的方法適用於一般情況,若關鍵字在N條資
料資訊中出現的很稀疏或很密集,能夠進一步壓縮儲存空間時,對應稀疏的情況,可以採用前面介紹的整數陣列記錄倒排索引資訊,陣列中每個整數I代表第(Index+I)條資料資訊包含該關鍵字;若關鍵字在所有記錄中出現,則可以使用ALL標誌表示。這些方法,也都便於降低資料庫索引的資料規模。
在上述實施例中,以日誌生成時間作為資料庫索引的結構化線索,實際上,也可能存在別的結構化線索,例如,對一個硬碟上的所有檔建立NoSQL資料庫索引,則可以將字母順序作為結構化線索,將一定字母排序範圍的資料集中記錄。
另外,該實施例中將不同的資料來源分開記錄在不同的位置,在某些情況下,也不排除所有資料來源的記錄統一記錄,僅僅以所述結構化線索為該資料庫索引提供索引線索。
與前述一種為半結構化資料構建NoSQL資料庫索引的方法實施例相對應,本發明還公開了一種為半結構化資料構建NoSQL資料庫索引的裝置實施例,請參看圖2,其為本發明一種為半結構化資料構建NoSQL資料庫索引的裝置實施例示意圖。由於裝置實施例基本相似於方法實施例,所建立的資料表以及倒排索引表也與方法實施例中相同,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。下述描述的裝置實施例僅僅是示意性的。
所述半結構化資料基於NoSQL構建索引的裝置包
括:
預處理單元201,用於將半結構化原資料進行預處理,獲得若干待存入資料庫的文本段;所述預處理可以採用以時間為序列的鍵值對形式,表示資料資訊內容。
資料表建立單元202,用於建立將所述預處理後的文本段儲存至資料表中,該資料表具有第一組合主鍵,每個文本段對應該第一組合主鍵儲存至相應的記錄中;所述第一組合主鍵包括資料來源主鍵、結構化線索主鍵和序列值主鍵;所述資料來源主鍵標識文本段的資料來源;所述結構化線索主鍵標識結構化線索,該結構化線索以確定的順序被分割為若干連續區間,每一區間分配一個特定的鍵值作為結構化線索主鍵的鍵值;所述序列值主鍵,是為每個文本段賦予唯一對應該文本段的序列值。
倒排索引表建立單元203,用於對所述預處理後的文本段建立倒排索引表;該倒排索引表的主鍵為第二組合主鍵,該第二組合主鍵包含資料來源主鍵、結構化線索主鍵和關鍵字主鍵;該倒排索引表中,對應上述各個主鍵的鍵值,記錄相關的文本段標識作為索引值;關鍵字主鍵相同,但具有不同的資料來源或者不同的結構化線索主鍵鍵值的索引值,在該倒排索引表中位於不同的行。
本發明雖然以較佳實施例公開如上,但其並不是用來限定本發明,任何本領域技術人員在不脫離本發明的精神和範圍內,都可以做出可能的變動和修改,因此本發明的保護範圍應當以本發明申請專利範圍所界定的範圍為準。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀介質中的非永久性記憶體,隨機存取記憶體(RAM)和/或非易失性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀介質的示例。
1、電腦可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存介質的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可程式設計唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁片儲存或其他磁性存放裝置或任何其他非傳輸介質,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀介質不包括非暫存電腦可讀媒體(transitory media),如調製的資料信號和載波。
2、本領域技術人員應明白,本發明的實施例可提供為方法、系統或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含
有電腦可用程式碼的電腦可用儲存介質(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
Claims (15)
- 一種為半結構化資料構建NoSQL資料庫索引的方法,其特徵在於,包括以下步驟:將半結構化來源資料進行預處理,獲得若干待存入資料庫的文本段;將所述預處理後的文本段儲存至資料表中,所述資料表具有第一組合主鍵,每個文本段對應所述第一組合主鍵儲存至相應的記錄中;所述第一組合主鍵包括結構化線索主鍵和序列值主鍵;所述結構化線索主鍵標識結構化線索,所述結構化線索以確定的順序被分割為若干連續區間,每一區間分配一個特定的鍵值作為結構化線索主鍵的鍵值;所述序列值主鍵,是為每個文本段賦予唯一對應所述文本段的序列值;對所述預處理後的文本段建立倒排索引表,所述倒排索引表的主鍵為第二組合主鍵,所述第二組台主鍵包含結構化線索主鍵和關鍵字主鍵;所述倒排索引表中,對應上述各個主鍵的鍵值,記錄相關的文本段序列標識作為索引值;關鍵字主鍵相同,但具有不同的結構化線索主鍵鍵值的索引值,在所述倒排索引表中位於不同的行。
- 根據申請專利範圍第1項所述的為半結構化資料構建NoSQL資料庫索引的方法,其中:所述第一組合主鍵包括資料來源主鍵,所述資料來源主鍵標識文本段的資料來源;所述第二組合主鍵同樣包含上述資料來源主鍵,具有 不同的資料來源主鍵鍵值的索引值,在所述倒排索引表中位於不同的行。
- 根據申請專利範圍第2項所述的為半結構化資料構建NoSQL資料庫索引的方法,其中,對這些文本段建立所述資料表和倒排索引表時,一次性讀取同一資料來源的具有相同結構化線索主鍵鍵值的所有文本段。
- 根據申請專利範圍第2項所述的為半結構化資料構建NoSQL資料庫索引的方法,其中,所述第一組合主鍵中,所述資料來源主鍵,具體採用文本段的資料來源加上文本段的結構化線索原始值的雜湊值;和/或在所述第二組合主鍵中,所述資料來源主鍵,具體採用文本段的資料來源加上關鍵字的雜湊值。
- 根據申請專利範圍第1項至第4項中任意一項所述的為半結構化資料構建NoSQL資料庫索引的方法,其中,所述結構化線索為文本段的來源資料生成時間。
- 根據申請專利範圍第5項所述的為半結構化資料構建NoSQL資料庫索引的方法,其中,所述結構化線索以確定的順序被分割為若干連續區間,是將文本段的來源資料生成時間分為若干時間段;所述每一區間分配一個特定的鍵值作為結構化線索主鍵的鍵值,是以所述時間段的起點、終點、中點或者所述時間段內的任意一點的時間值作為所述特定的鍵值,或者為所述時間段確定一個唯一的識別字號作為所述特定的鍵值。
- 根據申請專利範圍第1項所述的為半結構化資料 構建NoSQL資料庫索引的方法,其中,所述序列值以基值加偏移值的方式表示;所述基值與所述結構化線索主鍵鍵值對應,即,相同的結構化線索主鍵鍵值對應同一個基值;所述偏移值以如下方式獲得:對應同一個結構化線索主鍵鍵值的每個文本段,以所述結構化線索原始值的順序為依據,按照順序賦予相應的偏移值。
- 根據申請專利範圍第1項所述的為半結構化資料構建NoSQL資料庫索引的方法,其中,所述倒排索引表中,記錄相關文本段標識作為索引值的具體方法是:為對應同一個資料來源主鍵鍵值,並且結構化線索主鍵鍵值相同的所有文本段,提供一個基值;同時,為這些文本段提供一個二進位位元陣列,所述位元陣列中,以第i位元二進位數字標識第i個文本段是否包含所在記錄的關鍵字主鍵中所列的關鍵字。
- 根據申請專利範圍第1項所述的為半結構化資料構建NoSQL資料庫索引的方法,其中,若對應同一個資料來源主鍵並且具有相同的結構化線索主鍵的所有文本段,均包括某個關鍵字,則在倒排索引表對應所述關鍵字主鍵的記錄中,其索引值記錄為一個特殊符號,所述特殊符號表示所有文本段均包含所述關鍵字;或者,若對應同一個資料來源主鍵並且具有相同的結構化線索主鍵的少量文本段,包括某個關鍵字,則直接記錄以整數表示的文本段偏移值。
- 一種為半結構化資料構建NoSQL資料庫索引的 裝置,其特徵在於,包括以下步驟:預處理單元,將半結構化來源資料進行預處理,獲得若干待存入資料庫的文本段;資料表建立單元,用於建立將所述預處理後的文本段儲存至資料表中;所述資料表具有第一組合主鍵,每個文本段對應所述第一組合主鍵儲存至相應的記錄中;所述第一組合主鍵包括結構化線索主鍵和序列值主鍵;所述結構化線索主鍵標識結構化線索,所述結構化線索以確定的順序被分割為若干連續區間,每一區間分配一個特定的鍵值作為結構化線索主鍵的鍵值;所述序列值主鍵,是為每個文本段賦予唯一對應所述文本段的序列值;倒排索引表建立單元,用於對所述預處理後的文本段建立倒排索引表;所述倒排索引表的主鍵為第二組合主鍵,所述第二組合主鍵包含結構化線索主鍵和關鍵字主鍵;所述倒排索引表中,對應上述各個主鍵的鍵值,記錄相關的文本段序列標識作為索引值;關鍵字主鍵相同,但具有不同的結構化線索主鍵鍵值的索引值,在所述倒排索引表中位於不同的行。
- 根據申請專利範圍第10項所述的為半結構化資料構建NoSQL資料庫索引的裝置,其中:所述第一組合主鍵包括資料來源主鍵,所述資料來源主鍵標識文本段的資料來源;所述第二組合主鍵同樣包含上述資料來源主鍵,具有不同的資料來源主鍵鍵值的索引值,在所述倒排索引表中 位於不同的行。
- 根據申請專利範圍第10項所述的為半結構化資料構建NoSQL資料庫索引的裝置,其中,對這些文本段建立所述資料表和倒排索引表時,一次性讀取同一資料來源的具有相同結構化線索主鍵鍵值的所有文本段。
- 根據申請專利範圍第10項所述的為半結構化資料構建NoSQL資料庫索引的裝置,其中,所述第一組合主鍵中,所述資料來源主鍵,具體採用文本段的資料來源加上文本段的結構化線索原始值的雜湊值;和/或在所述第二組合主鍵中,所述資料來源主鍵,具體採用文本段的資料來源加上關鍵字的雜湊值。
- 根據申請專利範圍第10項至第13項中任意一項所述的為半結構化資料構建NoSQL資料庫索引的裝置,其中,所述結構化線索為文本段的來源資料生成時間。
- 根據申請專利範圍第14項所述的為半結構化資料構建NoSQL資料庫索引的裝置,其中,所述結構化線索以確定的順序被分割為若干連續區間,是將文本段的來源資料生成時間分為若干時間段;所述每一區間分配一個特定的鍵值作為結構化線索主鍵的鍵值,是以所述時間段的起點、終點、中點或者所述時間段內的任意一點的時間值作為所述特定的鍵值,或者為所述時間段確定一個唯一的識別字號作為所述特定的鍵值。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410025080.6A CN104794123B (zh) | 2014-01-20 | 2014-01-20 | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201530328A true TW201530328A (zh) | 2015-08-01 |
Family
ID=53542423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103118601A TW201530328A (zh) | 2014-01-20 | 2014-05-28 | 爲半結構化資料構建NoSQL資料庫索引的方法及裝置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9953102B2 (zh) |
CN (1) | CN104794123B (zh) |
HK (1) | HK1207708A1 (zh) |
TW (1) | TW201530328A (zh) |
WO (2) | WO2015109250A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI703459B (zh) * | 2019-07-25 | 2020-09-01 | 中華電信股份有限公司 | 用於可定址索引之搜尋系統及搜尋方法 |
TWI706260B (zh) * | 2018-05-29 | 2020-10-01 | 香港商阿里巴巴集團服務有限公司 | 基於行動端NoSQL資料庫的索引建立方法及裝置 |
TWI710919B (zh) * | 2019-02-02 | 2020-11-21 | 開曼群島商創新先進技術有限公司 | 資料儲存裝置、轉譯裝置及資料庫存取方法 |
CN115168606A (zh) * | 2022-07-01 | 2022-10-11 | 北京理工大学 | 一种面向半结构化工艺数据的映射模板知识抽取方法 |
Families Citing this family (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9607029B1 (en) * | 2014-12-17 | 2017-03-28 | Amazon Technologies, Inc. | Optimized mapping of documents to candidate duplicate documents in a document corpus |
US10135703B1 (en) | 2015-09-18 | 2018-11-20 | Amazon Technologies, Inc. | Generating creation performance metrics for a secondary index of a table |
US10191944B2 (en) * | 2015-10-23 | 2019-01-29 | Oracle International Corporation | Columnar data arrangement for semi-structured data |
CN105426421A (zh) * | 2015-11-03 | 2016-03-23 | 武汉地大信息工程股份有限公司 | 一种时态监测数据快速可视化方法及系统 |
MX2018007269A (es) * | 2015-12-19 | 2019-05-16 | Swvl Inc | Metodo y dispositivo para correlacionar multiples tablas en un entorno de base de datos. |
CN105681414B (zh) * | 2016-01-14 | 2019-01-01 | 深圳市博瑞得科技有限公司 | 一种避免Hbase数据热点的方法及系统 |
CN107239454B (zh) * | 2016-03-28 | 2020-11-17 | 福建天晴数码有限公司 | 基于文本数据库的检索方法及系统 |
US10185731B2 (en) * | 2016-03-31 | 2019-01-22 | Arm Limited | Indexing entries of a storage structure shared between multiple threads |
CN105930521B (zh) * | 2016-05-25 | 2019-10-29 | 努比亚技术有限公司 | 一种数据库管理装置和方法 |
CN107562762B (zh) * | 2016-07-01 | 2020-10-27 | 中国联合网络通信集团有限公司 | 数据索引构建方法及装置 |
CN107577531B (zh) * | 2016-07-05 | 2020-12-04 | 阿里巴巴集团控股有限公司 | 负载均衡方法及装置 |
CN106446153A (zh) * | 2016-09-21 | 2017-02-22 | 广州特道信息科技有限公司 | 一种分布式newSQL数据库系统及方法 |
CN106776795B (zh) * | 2016-11-23 | 2020-05-12 | 黄健文 | 基于Hbase数据库的数据写入方法及装置 |
CN108427675B (zh) * | 2017-02-13 | 2022-09-02 | 阿里巴巴集团控股有限公司 | 构建索引的方法及设备 |
WO2018182060A1 (ko) * | 2017-03-28 | 2018-10-04 | ㈜리얼타임테크 | 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 방법 |
US10565126B2 (en) | 2017-07-14 | 2020-02-18 | Arm Limited | Method and apparatus for two-layer copy-on-write |
US10489304B2 (en) | 2017-07-14 | 2019-11-26 | Arm Limited | Memory address translation |
US10613989B2 (en) | 2017-07-14 | 2020-04-07 | Arm Limited | Fast address translation for virtual machines |
US10592424B2 (en) | 2017-07-14 | 2020-03-17 | Arm Limited | Range-based memory system |
US10534719B2 (en) | 2017-07-14 | 2020-01-14 | Arm Limited | Memory system for a data processing network |
US10467159B2 (en) | 2017-07-14 | 2019-11-05 | Arm Limited | Memory node controller |
US10353826B2 (en) | 2017-07-14 | 2019-07-16 | Arm Limited | Method and apparatus for fast context cloning in a data processing system |
US10592153B1 (en) * | 2017-09-05 | 2020-03-17 | Amazon Technologies, Inc. | Redistributing a data set amongst partitions according to a secondary hashing scheme |
US10819736B2 (en) | 2017-11-29 | 2020-10-27 | Arm Limited | Encoding of input to branch prediction circuitry |
US11126714B2 (en) | 2017-11-29 | 2021-09-21 | Arm Limited | Encoding of input to storage circuitry |
CN108133043B (zh) * | 2018-01-12 | 2022-07-29 | 福建星瑞格软件有限公司 | 一种基于大数据的服务器运行日志结构化存储方法 |
CN108427736B (zh) * | 2018-02-28 | 2020-01-17 | 华为技术有限公司 | 一种用于查询数据的方法 |
AU2019257630A1 (en) * | 2018-04-24 | 2020-12-10 | The Von Drakk Corporation | Improved method and device for correlating multiple tables in a database environment |
CN110569217A (zh) * | 2018-05-16 | 2019-12-13 | 杭州海康威视系统技术有限公司 | 流式文件系统中的索引数据更新方法、装置 |
US10884850B2 (en) | 2018-07-24 | 2021-01-05 | Arm Limited | Fault tolerant memory system |
US11461302B1 (en) | 2018-08-14 | 2022-10-04 | Amazon Technologies, Inc. | Storing multiple instances of data items to implement key overloading in database tables |
US11157466B2 (en) | 2018-09-04 | 2021-10-26 | Salesforce.Com, Inc. | Data templates associated with non-relational database systems |
CN109284340B (zh) * | 2018-09-14 | 2020-11-20 | 清华大学 | 资源受限智能对象中关系型数据的存储及检索方法 |
US11030242B1 (en) * | 2018-10-15 | 2021-06-08 | Rockset, Inc. | Indexing and querying semi-structured documents using a key-value store |
CN111352983A (zh) * | 2018-12-24 | 2020-06-30 | 深圳市优必选科技有限公司 | 业务属性动态扩展方法、装置、计算机设备及存储介质 |
CN109800336B (zh) * | 2019-01-30 | 2020-12-25 | 百度在线网络技术(北京)有限公司 | 基于键值对存储系统的表格实现方法、装置、设备和介质 |
US11321392B2 (en) | 2019-02-19 | 2022-05-03 | International Business Machines Corporation | Light weight index for querying low-frequency data in a big data environment |
WO2021012211A1 (zh) * | 2019-07-24 | 2021-01-28 | 华为技术有限公司 | 一种为数据建立索引的方法以及装置 |
CN112559514B (zh) * | 2019-09-25 | 2023-04-25 | 上海哔哩哔哩科技有限公司 | 一种信息处理方法及系统 |
CN110647512B (zh) * | 2019-09-29 | 2022-05-24 | 北京思维造物信息科技股份有限公司 | 一种数据存储和分析方法、装置、设备和可读介质 |
CN111078682A (zh) * | 2019-10-17 | 2020-04-28 | 贝壳技术有限公司 | 一种业务数据索引构建方法及系统 |
CN110825748B (zh) * | 2019-11-05 | 2023-05-16 | 平凯星辰(北京)科技有限公司 | 利用差异化索引机制的高性能和易扩展的键值存储方法 |
CN111782645A (zh) * | 2019-11-29 | 2020-10-16 | 北京沃东天骏信息技术有限公司 | 数据处理方法和装置 |
CN112905587A (zh) * | 2019-12-04 | 2021-06-04 | 北京金山云网络技术有限公司 | 数据库的数据管理方法、装置及电子设备 |
CN111259012B (zh) * | 2020-01-20 | 2024-03-12 | 中国平安人寿保险股份有限公司 | 数据均匀化方法、装置、计算机设备及存储介质 |
CN111464496B (zh) * | 2020-03-05 | 2022-07-05 | 奇安信科技集团股份有限公司 | 数据传输方法及装置、系统、存储介质、电子装置 |
CN111353012B (zh) * | 2020-03-09 | 2023-10-17 | 咪咕文化科技有限公司 | 空间文本数据缓存处理方法、装置、电子设备及存储介质 |
CN111881323B (zh) * | 2020-06-19 | 2022-05-20 | 四川新网银行股份有限公司 | 基于排序字段与时间路由的表分离方法 |
CN112148698A (zh) * | 2020-09-10 | 2020-12-29 | 深圳供电局有限公司 | 一种大数据平台的日志审计方法及系统 |
US11762859B2 (en) | 2020-09-28 | 2023-09-19 | International Business Machines Corporation | Database query with index leap usage |
CN112579649A (zh) * | 2020-12-24 | 2021-03-30 | 成都中科大旗软件股份有限公司 | 一种基于索引技术实现k-v逆转检索方法 |
US11308058B1 (en) | 2021-01-04 | 2022-04-19 | International Business Machines Corporation | Building and using combined multi-type sub-indices to search NoSQL databases |
CN113127490B (zh) * | 2021-04-23 | 2023-02-24 | 山东英信计算机技术有限公司 | 一种键名称生成方法、装置和计算机可读存储介质 |
CN113282616A (zh) * | 2021-05-19 | 2021-08-20 | 华润电力技术研究院有限公司 | 一种增量的时序数据冲突检测方法、装置和存储介质 |
CN113220943B (zh) * | 2021-06-04 | 2022-09-30 | 上海天旦网络科技发展有限公司 | 一种半结构化流量数据中的目标信息定位方法及系统 |
CN114510534B (zh) * | 2022-01-28 | 2022-09-06 | 广东航宇卫星科技有限公司 | 数据同步方法、装置、设备及存储介质 |
CN117120995A (zh) * | 2022-03-24 | 2023-11-24 | 维萨国际服务协会 | 有效连接时间序列数据表的系统、方法和计算机程序产品 |
CN114490674B (zh) * | 2022-04-18 | 2022-07-05 | 北京奥星贝斯科技有限公司 | 分区表建立、针对分区表的数据写入、读取方法及装置 |
US11928099B1 (en) | 2022-12-16 | 2024-03-12 | Amazon Technologies, Inc. | Time and value ordered data objects for a backup of a data set |
CN116541427B (zh) * | 2023-06-30 | 2023-11-14 | 腾讯科技(深圳)有限公司 | 数据查询方法、装置、设备及存储介质 |
CN116719822B (zh) * | 2023-08-10 | 2023-12-22 | 深圳市连用科技有限公司 | 一种海量结构化数据的存储方法及系统 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6591272B1 (en) | 1999-02-25 | 2003-07-08 | Tricoron Networks, Inc. | Method and apparatus to make and transmit objects from a database on a server computer to a client computer |
US20080077570A1 (en) * | 2004-10-25 | 2008-03-27 | Infovell, Inc. | Full Text Query and Search Systems and Method of Use |
CN101620617B (zh) * | 2009-07-28 | 2011-07-13 | 中兴通讯股份有限公司 | 日志文件的查询和处理的方法及装置 |
US8566324B1 (en) * | 2010-09-12 | 2013-10-22 | Giovanni M Sacco | Inverted index and inverted list process for storing and retrieving information |
CN101944115B (zh) * | 2010-09-14 | 2012-07-25 | 杭州海康威视数字技术股份有限公司 | 一种日志搜索方法和系统 |
US9436710B2 (en) * | 2010-09-28 | 2016-09-06 | Redis Labs Ltd. | Systems, methods, and media for managing an in-memory NoSQL database |
US20130144863A1 (en) * | 2011-05-25 | 2013-06-06 | Forensic Logic, Inc. | System and Method for Gathering, Restructuring, and Searching Text Data from Several Different Data Sources |
US8930320B2 (en) | 2011-09-30 | 2015-01-06 | Accenture Global Services Limited | Distributed computing backup and recovery system |
US20130124545A1 (en) * | 2011-11-15 | 2013-05-16 | Business Objects Software Limited | System and method implementing a text analysis repository |
US9135647B2 (en) | 2012-06-18 | 2015-09-15 | Amdocs Software Systems Limited | Methods and systems for flexible and scalable databases |
US9378263B2 (en) | 2012-06-19 | 2016-06-28 | Salesforce.Com, Inc. | Method and system for creating indices and loading key-value pairs for NoSQL databases |
CN102929936B (zh) * | 2012-09-26 | 2016-08-24 | 东软集团股份有限公司 | 日志记录方法、日志查询方法及系统 |
US8775464B2 (en) | 2012-10-17 | 2014-07-08 | Brian J. Bulkowski | Method and system of mapreduce implementations on indexed datasets in a distributed database environment |
US9111012B2 (en) | 2012-11-26 | 2015-08-18 | Accenture Global Services Limited | Data consistency management |
US10496640B2 (en) | 2012-12-19 | 2019-12-03 | Salesforce.Com, Inc. | Querying a not only structured query language (NoSQL) database using structured query language (SQL) commands |
CN103020325A (zh) * | 2013-01-17 | 2013-04-03 | 中国科学院计算机网络信息中心 | 基于NoSQL数据库的分布式遥感数据组织查询方法 |
CN103473324A (zh) * | 2013-09-13 | 2013-12-25 | 国家电网公司 | 基于非结构化数据存储的多维业务属性检索装置及方法 |
-
2014
- 2014-01-20 CN CN201410025080.6A patent/CN104794123B/zh active Active
- 2014-05-28 TW TW103118601A patent/TW201530328A/zh unknown
-
2015
- 2015-01-16 US US14/599,296 patent/US9953102B2/en active Active
- 2015-01-16 WO PCT/US2015/011844 patent/WO2015109250A1/en active Application Filing
- 2015-01-16 WO PCT/CN2015/070861 patent/WO2015106711A1/zh active Application Filing
- 2015-08-26 HK HK15108267.2A patent/HK1207708A1/zh unknown
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI706260B (zh) * | 2018-05-29 | 2020-10-01 | 香港商阿里巴巴集團服務有限公司 | 基於行動端NoSQL資料庫的索引建立方法及裝置 |
TWI710919B (zh) * | 2019-02-02 | 2020-11-21 | 開曼群島商創新先進技術有限公司 | 資料儲存裝置、轉譯裝置及資料庫存取方法 |
US10853363B2 (en) | 2019-02-02 | 2020-12-01 | Alibaba Group Holding Limited | Data storage apparatus, translation apparatus, and database access method |
US11226961B2 (en) | 2019-02-02 | 2022-01-18 | Beijing Oceanbase Technology Co., Ltd. | Data storage apparatus, translation apparatus, and database access method |
US11797533B2 (en) | 2019-02-02 | 2023-10-24 | Beijing Oceanbase Technology Co., Ltd. | Data storage apparatus, translation apparatus, and database access method |
TWI703459B (zh) * | 2019-07-25 | 2020-09-01 | 中華電信股份有限公司 | 用於可定址索引之搜尋系統及搜尋方法 |
CN115168606A (zh) * | 2022-07-01 | 2022-10-11 | 北京理工大学 | 一种面向半结构化工艺数据的映射模板知识抽取方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2015106711A1 (zh) | 2015-07-23 |
WO2015109250A1 (en) | 2015-07-23 |
CN104794123A (zh) | 2015-07-22 |
CN104794123B (zh) | 2018-07-27 |
US20150205885A1 (en) | 2015-07-23 |
HK1207708A1 (zh) | 2016-02-05 |
US9953102B2 (en) | 2018-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015106711A1 (zh) | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 | |
Ali et al. | Comparison between SQL and NoSQL databases and their relationship with big data analytics | |
CN107402995B (zh) | 一种分布式newSQL数据库系统及方法 | |
Parker et al. | Comparing nosql mongodb to an sql db | |
US10176225B2 (en) | Data processing service | |
Makris et al. | A classification of NoSQL data stores based on key design characteristics | |
US8468171B2 (en) | Attributed key-value-store database system | |
US8924365B2 (en) | System and method for range search over distributive storage systems | |
US10061834B1 (en) | Incremental out-of-place updates for datasets in data stores | |
US20150234870A1 (en) | Dynamic mapping of extensible datasets to relational database schemas | |
Wang et al. | Distributed storage and index of vector spatial data based on HBase | |
CN111680017A (zh) | 一种数据同步的方法及装置 | |
Anusha et al. | Comparative Study of MongoDB vs Cassandra in big data analytics | |
Huang et al. | R-HBase: A multi-dimensional indexing framework for cloud computing environment | |
CN111680030A (zh) | 数据融合方法及装置,基于元信息的数据处理方法和装置 | |
Kang et al. | Reducing i/o cost in olap query processing with mapreduce | |
CN111221814B (zh) | 二级索引的构建方法、装置及设备 | |
CN108121807B (zh) | Hadoop环境下多维索引结构OBF-Index的实现方法 | |
CN102597969A (zh) | 带属性的键值存储的数据库管理装置及其键值存储结构的高速缓存装置 | |
Ahamed | Benchmarking top nosql databases | |
Singh | NoSQL: A new horizon in big data | |
Chai et al. | A document-based data warehousing approach for large scale data mining | |
Punia et al. | Implementing Information System Using MongoDB and Redis | |
US11609909B2 (en) | Zero copy optimization for select * queries | |
Ghosh et al. | NoSQL Database: An Advanced Way to Store, Analyze and Extract Results From Big Data |