The invention discloses a streaming data storage method and device, the method includes: raw data acquisition data to be stored and the value of the data length of the data, determine the file storage and management of file management; look in the file data meet the requirement of continuous length of at least one labeled as a unit storage space management ID is not occupied the original data values to store at least find a marker for at least one unit of storage space for storing files not occupied state corresponding to the identity of the management unit of storage space, and access to raw data values in the storage of the storage location; at least one unit of storage space management identification marker the unoccupied state is modified; get a new data storage file contains the identification, location and data length value, according to the original data and the new data value key, Constructing instance data in the form of data key values, and writing instance data into the database. The technical scheme saves storage space and improves the efficiency of data processing.
【技術實現步驟摘要】
流式數據存儲方法及裝置
本專利技術涉及互聯網
,具體涉及一種流式數據存儲方法及裝置。
技術介紹
在互聯網的很多應用場景中,例如消息推送和網絡直播等,均會使用到流式數據。流式數據的特點是每時每刻都有數據產生,而且數據到達時間也不是勻速的?,F有技術中,大多是利用消息隊列來解決對流式數據的存儲問題。在實際應用場景中,所產生的流式數據的數據量可能是海量的。然而,消息隊列在面臨高并發大量數據時,將無法快速地完成數據處理。因此,現有的流式數據存儲方案中存在著數據處理效率較低的問題。
技術實現思路
鑒于上述問題,提出了本專利技術以便提供一種克服上述問題或者至少部分地解決上述問題的流式數據存儲方法及裝置。根據本專利技術的一個方面,提供了一種流式數據存儲方法,該方法包括:獲取待存儲的數據以及數據的原數據值的數據長度,確定用于存儲原數據值的存儲文件以及用于管理存儲文件的管理文件;其中,管理文件存儲有多個單位存儲空間管理標識,每個單位存儲空間管理標識用于標記存儲文件的對應的單位存儲空間的已占用狀態或未占用狀態;在管理文件中查找滿足數據長度要求的連續的至少一個標記為未占用狀態的單位存儲空間管理標識,將原數據值存儲至所查找到的至少一個標記為未占用狀態的單位存儲空間管理標識對應的存儲文件的至少一個單位存儲空間,并獲取原數據值在存儲文件中的存儲位置;將至少一個標記為未占用狀態的單位存儲空間管理標識進行修改,修改后的單位存儲空間管理標識被標記為已占用狀態;得到包含存儲文件的標識、存儲位置和數據長度的新數據值,根據數據的原數據鍵和新數據值,構建數據鍵值對形式的實例數據,將實例數據寫入數據 ...
【技術保護點】
一種流式數據存儲方法,包括:獲取待存儲的數據以及所述數據的原數據值的數據長度,確定用于存儲所述原數據值的存儲文件以及用于管理所述存儲文件的管理文件;其中,所述管理文件存儲有多個單位存儲空間管理標識,每個單位存儲空間管理標識用于標記所述存儲文件的對應的單位存儲空間的已占用狀態或未占用狀態;在所述管理文件中查找滿足數據長度要求的連續的至少一個標記為未占用狀態的單位存儲空間管理標識,將所述原數據值存儲至所查找到的至少一個標記為未占用狀態的單位存儲空間管理標識對應的所述存儲文件的至少一個單位存儲空間,并獲取所述原數據值在所述存儲文件中的存儲位置;將所述至少一個標記為未占用狀態的單位存儲空間管理標識進行修改,修改后的單位存儲空間管理標識被標記為已占用狀態;得到包含所述存儲文件的標識、所述存儲位置和所述數據長度的新數據值,根據所述數據的原數據鍵和新數據值,構建數據鍵值對形式的實例數據,將所述實例數據寫入數據庫中。
【技術特征摘要】
1.一種流式數據存儲方法,包括:獲取待存儲的數據以及所述數據的原數據值的數據長度,確定用于存儲所述原數據值的存儲文件以及用于管理所述存儲文件的管理文件;其中,所述管理文件存儲有多個單位存儲空間管理標識,每個單位存儲空間管理標識用于標記所述存儲文件的對應的單位存儲空間的已占用狀態或未占用狀態;在所述管理文件中查找滿足數據長度要求的連續的至少一個標記為未占用狀態的單位存儲空間管理標識,將所述原數據值存儲至所查找到的至少一個標記為未占用狀態的單位存儲空間管理標識對應的所述存儲文件的至少一個單位存儲空間,并獲取所述原數據值在所述存儲文件中的存儲位置;將所述至少一個標記為未占用狀態的單位存儲空間管理標識進行修改,修改后的單位存儲空間管理標識被標記為已占用狀態;得到包含所述存儲文件的標識、所述存儲位置和所述數據長度的新數據值,根據所述數據的原數據鍵和新數據值,構建數據鍵值對形式的實例數據,將所述實例數據寫入數據庫中。2.根據權利要求1所述的方法,所述確定用于存儲所述原數據值的存儲文件以及用于管理所述存儲文件的管理文件進一步包括:對所述數據的原數據鍵進行計算,得到原數據鍵對應的哈希值;根據計算得到的哈希值,確定用于存儲所述原數據值的存儲文件以及用于管理所述存儲文件的管理文件。3.根據權利要求1所述的方法,在所述獲取待存儲的數據以及所述數據的原數據值的數據長度之前,所述方法還包括:預先創建存儲文件和管理文件,并在系統內存中預先創建分別與存儲文件和管理文件相映射的內存塊。4.根據權利要求1所述的方法,所述存儲文件包括:第一存儲文件和與第一存儲文件對應的第二存儲文件;所述管理文件包括:第一管理文件和與第一管理文件對應的第二管理文件;其中,所述第一存儲文件和與第一存儲文件對應的所述第二存儲文件具有相同的標識;所述第一管理文件和與第一管理文件對應的所述第二管理文件具有相同的標識;所述第一管理文件用于管理所述第一存儲文件;所述第二管理文件用于管理所述第二存儲文件。5.根據權利要求4所述的方法,所述在所述管理文件中查找滿足數據長度要求的連續的至少一個標記為未占用狀態的單位存儲空間管理標識,將所述原數據值存儲至所查找到的至少一個標記為未占用狀態的單位存儲空間管理標識對應的所述存儲文件的至少一個單位存儲空間,并獲取所述原數據值在所述存儲文件中的存儲位置進一步包括:在所述第一管理文件中查找是否存在滿足數據長度要求的連續的至少一個標記為未占用狀態的單位存儲空間管理標識;若在所述第一管理文件中查找到滿足數據長度要求的連續的至少一個標記為未占用狀態的單位存儲空間管理標識,則將所述原數據值存儲至所查找到的至少一個標記為未占用狀態的單位存儲空間管理標識對應的所述第一存儲文件的至少...
【專利技術屬性】
技術研發人員:徐銳波,
申請(專利權)人:北京奇虎科技有限公司,
類型:發明
國別省市:北京,11
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。