System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及數據處理,具體涉及一種基于大數據量的數據統計方法。
技術介紹
1、關系數據庫是一種基于關系模型的數據庫,它使用行和列的表格結構來組織數據,這種數據庫類型是目前最廣泛使用的數據庫形式之一,但在大數據量的應用領域中,逐漸增長的數據量級對于傳統的關系數據庫的負載壓力較大,導致數據存儲困難,且數據訪問性能較差,不利于數據統計使用,因此為了進一步提高存儲、統計、查詢多對多關系的數據的效率,現有技術一般通過分庫分表的方法,完成數據的存儲,然后通過分庫分表路由使用的?key,進行數據的查詢和統計,如中國專利公開的一種關系數據庫、電網模型數據存儲及檢索方法(公告號:cn110008289b),該專利技術中的關系數據庫包括主節點和從節點;所述主節點包含的數據庫服務為主數據庫,從節點包含的數據庫服務為從數據庫;所述主數據庫用于存儲包括元數據在內的信息,所述從數據庫用于存儲包括模型數據內容在內的信息;所述存儲方法包括如下步驟:將模型數據發送至關系數據庫的主節點;提取模型數據的分片特征字段;根據分片特征字段計算從節點序號;根據分片特征字段值與從節點序號的映射關系將從節點序號存儲至主數據庫中的映射表,將模型數據內容存儲至從節點序號對應的從數據庫中;分布式關系數據庫可以進行高并發分片信息獨立存儲和獨立檢索,但在面對億量級的數據統計時,例如主數據庫為億量級,從數據庫為百萬量級,此時其需要創建的映射表的數量級至少為十億量級,此時基于主數據庫的分片特征字段作為key的核心,實現在從數據庫中的id統計和查詢將會大幅占用系統資源,無法在業務要求的時間內
技術實現思路
1、本專利技術所要解決的技術問題:現有的數據統計方法無法適用于大數據量的數據統計工作,通過分庫分表的方法完成數據的存儲工作將會生成數據量龐大的映射表,數據統計時會占用較大的算力資源,同時也增加了存儲成本和維護成本。
2、為解決上述技術問題,本專利技術采用如下技術方案:一種基于大數據量的數據統計方法,包括以下步驟:
3、s1:定義關系數據庫中不同數據量級的多對多的第一主體表和第二主體表;
4、s2:獲取第一主體表與第二主體表的映射關系,遍歷第二主體表,獲取第一主體表中每項記錄在第二主體表中對應的全部記錄的id,通過遍歷id所在節點到根節點路徑,拼接路徑上節點的id列表,拼接完成后組成數組并存儲至第一主體表中對應的記錄增設的字段中,完成數據映射關系的存儲;
5、s3:完成第一主體表與第二主體表的數據映射關系的存儲以供后續調整、統計或查詢調用。
6、本專利技術工作時,通過分隔符將相關記錄的id進行拼接后存儲至對應的記錄增設的字段中即可實現數據映射關系的存儲,能夠避免產生量級較大的映射表,從而大幅降低數據存儲成本,降低數據維護成本,同時能夠實現對第二主體表的快速查詢,從而實現大數據量的實時統計和查詢,提升系統統計和查詢性能,且不必犧牲數據的實時性和準確性。
7、作為優選,在所述步驟s2中,獲取第一主體表與第二主體表的映射關系,遍歷第二主體表,獲取第一主體表中每項記錄在第二主體表中對應的全部記錄的id,通過遍歷id所在節點到根節點路徑,拼接路徑上節點的id列表,拼接完成后組成數組并存儲至第一主體表中對應的記錄增設的字段中,完成數據映射關系的存儲時,采用以下步驟:
8、a1:分別為第一主體表中若干個記錄增設對應的字段;
9、a2:定義第二主體表中相應記錄為根節點,并遍歷第二主體表,根據第一主體表與第二主體表的映射關系獲取至少一個對應記錄為特定目標節點;
10、a3:獲取從有根的有向無環圖的根節點到達特定目標節點的路徑上的所有記錄的id列表,通過預設的分隔符進行拼接并存儲至第一主體表中對應記錄的字段中,完成數據映射關系的存儲。
11、作為優選,在所述步驟a1中,字段設置為json類型字段,將字段的值設置為json數組結構,字段中包括至少一個有根的有向無環圖的根節點到達特定目標節點的路徑上的所有記錄的id列表。
12、本專利技術工作時,能夠實現第一主體表和第二主體表數據映射關系的存儲,并能夠支持有根的有向無環圖任意層級節點的實時統計,方便進行第二主體表的模糊匹配,實時統計和查詢性能好,能夠進一步提高數據統計效率和數據統計效果。
13、作為優選,在所述步驟s2中,還包括以下步驟,新增、刪除或者更新第一主體表中記錄與第二主體表中記錄的數據映射關系時,同步寫入非關系數據庫,通過第一主體表中對應記錄的id創建唯一標識,對應的值的數據結構與第一主體表中該記錄保持一致。
14、作為優選,在所述步驟s2中,還包括以下步驟,新增、刪除或者更新第一主體表中記錄與第二主體表中記錄的數據映射關系時,同步維護關系數據庫中的數據結構和非關系數據庫中的數據結構。
15、作為優選,在所述步驟s3中,完成第一主體表與第二主體表的數據映射關系的存儲以供后續調整、統計或查詢調用時,采用以下步驟,在統計第二主體表中相應記錄與第一主體表的數據映射關系時,遍歷第二主體表,獲取根節點的到該記錄的所有記錄的id列表,使用分隔符按照順序拼接若干個id后,在非關系數據庫中向后模糊匹配第一主體表的若干個記錄的字段,實現有根的有向無環圖任意層級節點的實時統計。
16、作為優選,在所述步驟s3中,在非關系數據庫中向后模糊匹配第一主體表的若干個記錄的字段時,采用以下步驟,在非關系數據庫中向后模糊匹配時,向后模糊語法設置為前模糊、后模糊和全模糊中的一種。
17、作為優選,在所述步驟a3中,還包括以下步驟,獲取從有根的有向無環圖的根節點到達特定目標節點的路徑上的所有記錄的id列表,通過預設的分隔符進行拼接并存儲至第一主體表中對應記錄的字段中,完成數據映射關系的存儲時,采用以下步驟,通過遞歸找到第二主體表中所有上級節點,通過預設的分隔符進行拼接,將根節點的id布置在最左邊,將特定目標節點的id布置在最右邊,中間順序填充從根節點到特定目標節點的所有記錄的id。
18、作為優選,在所述步驟s4中,還包括以下步驟:
19、b1:新增第一主體表中第一記錄與第二主體表中第二記錄的數據映射關系;
20、b2:查詢第二主體表中第二記錄到根節點所有的id列表,將id列表組裝為數組,查詢第一主體表的第一記錄,讀取第一記錄的字段;
21、b3:遍歷數組的若干個元素,依次判斷第一記錄的字段是否包含數組的若干個元素,當包含時,不插入該元素,當不包含時,在記錄的字段中加入該元素,循環遍歷數組所有的元素后,轉入步驟b4;
22、b4:判斷字段是否有更新,當存在更新時,將更新后的字段同步至第一主體表中第一記錄的字段中,反之,則結束新增操作。
23、作為優選,在所述步驟s4中,還包括以下步驟:
24、c1:刪除第一主體表中第一記錄與第二主體表中第二記錄的數本文檔來自技高網...
【技術保護點】
1.一種基于大數據量的數據統計方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種基于大數據量的數據統計方法,其特征在于:在所述步驟S2中,獲取第一主體表與第二主體表的映射關系,遍歷第二主體表,獲取第一主體表中每項記錄在第二主體表中對應的全部記錄的ID,通過遍歷ID所在節點到根節點路徑,拼接路徑上節點的ID列表,拼接完成后組成數組并存儲至第一主體表中對應的記錄增設的字段中,完成數據映射關系的存儲時,采用以下步驟:
3.根據權利要求2所述的一種基于大數據量的數據統計方法,其特征在于:在所述步驟A1中,字段設置為JSON類型字段,將字段的值設置為JSON數組結構,字段中包括至少一個有根的有向無環圖的根節點到達特定目標節點的路徑上的所有記錄的ID列表。
4.根據權利要求2所述的一種基于大數據量的數據統計方法,其特征在于:在所述步驟S2中,還包括以下步驟,新增、刪除或者更新第一主體表中記錄與第二主體表中記錄的數據映射關系時,同步寫入非關系數據庫,通過第一主體表中對應記錄的ID創建唯一標識,對應的值的數據結構與第一主體表中該記錄保持一致。
>5.根據權利要求4所述的一種基于大數據量的數據統計方法,其特征在于:在所述步驟S2中,還包括以下步驟,新增、刪除或者更新第一主體表中記錄與第二主體表中記錄的數據映射關系時,同步維護關系數據庫中的數據結構和非關系數據庫中的數據結構。
6.根據權利要求4所述的一種基于大數據量的數據統計方法,其特征在于:在所述步驟S3中,完成第一主體表與第二主體表的數據映射關系的存儲以供后續調整、統計或查詢調用時,采用以下步驟,在統計第二主體表中相應記錄與第一主體表的數據映射關系時,遍歷第二主體表,獲取根節點的到該記錄的所有記錄的ID列表,使用分隔符按照順序拼接若干個ID后,在非關系數據庫中向后模糊匹配第一主體表的若干個記錄的字段,實現有根的有向無環圖任意層級節點的實時統計。
7.根據權利要求6所述的一種基于大數據量的數據統計方法,其特征在于:在所述步驟S3中,在非關系數據庫中向后模糊匹配第一主體表的若干個記錄的字段時,采用以下步驟,在非關系數據庫中向后模糊匹配時,向后模糊語法設置為前模糊、后模糊和全模糊中的一種。
8.根據權利要求2所述的一種基于大數據量的數據統計方法,其特征在于:在所述步驟A3中,獲取從有根的有向無環圖的根節點到達特定目標節點的路徑上的所有記錄的ID列表,通過預設的分隔符進行拼接并存儲至第一主體表中對應記錄的字段中,完成數據映射關系的存儲時,采用以下步驟,通過遞歸找到第二主體表中所有上級節點,通過預設的分隔符進行拼接,將根節點的ID布置在最左邊,將特定目標節點的ID布置在最右邊,中間順序填充從根節點到特定目標節點的所有記錄的ID。
9.根據權利要求1所述的一種基于大數據量的數據統計方法,其特征在于:在所述步驟S4中,還包括以下步驟:
10.根據權利要求1所述的一種基于大數據量的數據統計方法,其特征在于:在所述步驟S4中,還包括以下步驟:
...【技術特征摘要】
1.一種基于大數據量的數據統計方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種基于大數據量的數據統計方法,其特征在于:在所述步驟s2中,獲取第一主體表與第二主體表的映射關系,遍歷第二主體表,獲取第一主體表中每項記錄在第二主體表中對應的全部記錄的id,通過遍歷id所在節點到根節點路徑,拼接路徑上節點的id列表,拼接完成后組成數組并存儲至第一主體表中對應的記錄增設的字段中,完成數據映射關系的存儲時,采用以下步驟:
3.根據權利要求2所述的一種基于大數據量的數據統計方法,其特征在于:在所述步驟a1中,字段設置為json類型字段,將字段的值設置為json數組結構,字段中包括至少一個有根的有向無環圖的根節點到達特定目標節點的路徑上的所有記錄的id列表。
4.根據權利要求2所述的一種基于大數據量的數據統計方法,其特征在于:在所述步驟s2中,還包括以下步驟,新增、刪除或者更新第一主體表中記錄與第二主體表中記錄的數據映射關系時,同步寫入非關系數據庫,通過第一主體表中對應記錄的id創建唯一標識,對應的值的數據結構與第一主體表中該記錄保持一致。
5.根據權利要求4所述的一種基于大數據量的數據統計方法,其特征在于:在所述步驟s2中,還包括以下步驟,新增、刪除或者更新第一主體表中記錄與第二主體表中記錄的數據映射關系時,同步維護關系數據庫中的數據結構和非關系數據庫中的數據結構。
6.根據權利要求4所述的一種基于大數據量的數據統計方法,其特征在于...
【專利技術屬性】
技術研發人員:肖璐,趙子初,楊丹,
申請(專利權)人:朝桅杭州科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。