單元格數據緩存系統和單元格數據緩存方法
2023-09-18 15:31:55 1
單元格數據緩存系統和單元格數據緩存方法
【專利摘要】本發明提供了一種單元格數據緩存系統和方法,其中,該單元格數據緩存系統包括:驗證單元,驗證接收到的請求表達式的預設信息是否正確;解析單元,在驗證單元判定請求表達式的預設信息正確的情況下,解析請求表達式得到查詢模型;單元格生成單元,根據查詢模型的屬性信息生成單元格,並根據查詢模型在資料庫中查詢單元格的值,根據單元格模型和單元格的值得到單元格數據;緩存單元,根據單元格的屬性信息緩存單元格數據。通過本申請的技術方案,能夠對聯機分析過程中生成的單元格數據進行緩存,便於在以後的分析過程中直接獲取單元格數據,而無需再次與資料庫交互來獲取單元格的值生成單元格數據,提高了聯機分析處理的速度。
【專利說明】單元格數據緩存系統和單元格數據緩存方法
【技術領域】
[0001]本發明涉及數據存儲【技術領域】,具體而言,涉及一種單元格數據緩存系統和一種單元格數據緩存方法。
【背景技術】
[0002]聯機分析處理過程中,核心部分就是對多維數據的分析,現有技術中對於報表數據進行格式化的流程如圖1所示,在生成單元格信息的過程中,表達式解析器可以將查詢表達式解析成查詢模型,表達式計算器則可以根據查詢模型生成單元格模型,並從資料庫中查詢該單元格的值。但是,在從資料庫中獲取到一次單元格的值之後,以後的分析過程中依然需要查詢資料庫,而當多個維度交叉分析,並且維度成員很多時,頻繁與資料庫交互會造成每次分析處理速度都很慢。
【發明內容】
[0003]本發明正是基於上述問題,提出了一種單元格數據緩存技術,能夠對聯機分析過程中生成的單元格數據進行緩存,便於在以後的分析過程中直接獲取單元格數據,而無需再次與資料庫交互來獲取單元格的值,提高了聯機分析處理的速度。
[0004]有鑑於此,本發明提出了一種單元格數據緩存系統,包括:驗證單元,用於驗證接收到的請求表達式的預設信息是否正確;解析單元,在所述驗證單元判定所述請求表達式的預設信息正確的情況下,解析所述請求表達式得到查詢模型;單元格生成單元,用於根據所述查詢模型的屬性信息生成單元格,並根據所述查詢模型在資料庫中查詢所述單元格的值,根據所述單元格模型和所述單元格的值得到單元格數據;緩存單元,用於根據所述單元格的屬性信息緩存所述單元格數據。
[0005]在上述技術方案中,優選的,所述單元格的屬性信息包括維度和指標,則所述緩存單元還用於根據所述維度和所述指標的交叉信息作為鍵值對所述單元格數據進行緩存。
[0006]在上述技術方案中,優選的,還包括:分區單元,用於根據所述請求表達式的用戶信息在緩存中劃分相應分區,其中,所述緩存單元用於將所述單元格數據緩存至所述相應分區中。
[0007]在上述任一技術方案中,優選的,還包括:數據檢測單元,用於檢測緩存中的所述單元格數據的數據量,並在所述數據量大於預設數據量時,刪除所述緩存中的所述單元格數據。
[0008]在上述任一技術方案中,優選的,還包括:數據刪除單元,用於根據預設時間間隔刪除緩存中的所述單元格數據。
[0009]本申請還提出了一種單元格數據緩存方法,包括:步驟202,驗證接收到的請求表達式的預設信息是否正確,若正確,則解析所述請求表達式得到查詢模型;步驟204,根據所述查詢模型的屬性信息生成單元格,並根據所述查詢模型在資料庫中查詢所述單元格的值,根據所述單元格模型和所述單元格的值得到單元格數據;步驟206,根據所述單元格的屬性信息緩存所述單元格數據。
[0010]在上述技術方案中,優選的,所述單元格的屬性信息包括維度和指標,則所述步驟206還包括:根據所述維度和所述指標的交叉信息作為鍵值對所述單元格數據進行緩存。
[0011]在上述技術方案中,優選的,在所述步驟206之前還包括:根據所述請求表達式的用戶信息在緩存中劃分相應分區,則所述步驟206包括:將所述單元格數據緩存至所述相應分區中。
[0012]在上述任一技術方案中,優選的,還包括:檢測緩存中的所述單元格數據的數據量,並在所述數據量大於預設數據量時,刪除所述緩存中的所述單元格數據。
[0013]在上述任一技術方案中,優選的,還包括:根據預設時間間隔刪除緩存中的所述單元格數據。
[0014]通過以上技術方案,能夠對聯機分析過程中生成的單元格數據進行緩存,便於在以後的分析過程中直接獲取單元格數據,而無需再次與資料庫交互來獲取單元格的值,提高了聯機分析處理的速度。
【專利附圖】
【附圖說明】
[0015]圖1示出了相關技術中報表數據格式化的示意流程圖;
[0016]圖2示出了根據本發明的實施例的單元格數據緩存系統的示意框圖;
[0017]圖3示出了根據本發明的實施例的單元格數據緩存方法的示意流程圖;
[0018]圖4示出了根據本發明的實施例的報表數據格式化的示意流程圖。
【具體實施方式】
[0019]為了能夠更清楚地理解本發明的上述目的、特徵和優點,下面結合附圖和【具體實施方式】對本發明進行進一步的詳細描述。需要說明的是,在不衝突的情況下,本申請的實施例及實施例中的特徵可以相互組合。
[0020]在下面的描述中闡述了很多具體細節以便於充分理解本發明,但是,本發明還可以採用其他不同於在此描述的其他方式來實施,因此,本發明的保護範圍並不受下面公開的具體實施例的限制。
[0021]圖2示出了根據本發明的實施例的單元格數據緩存系統的示意框圖。
[0022]如圖2所示,根據本發明的實施例的單元格數據緩存系統100包括:驗證單元102,用於驗證接收到的請求表達式的預設信息是否正確;解析單元104,在驗證單元102判定請求表達式的預設信息正確的情況下,解析請求表達式得到查詢模型;單元格生成單元106,用於根據查詢模型的屬性信息生成單元格,並根據查詢模型在資料庫中查詢單元格的值,根據單元格模型和單元格的值得到單元格數據;緩存單元108,用於根據單元格的屬性信息緩存單元格數據。
[0023]由於商業上的聯機分析處理是針對生產數據進行的,而一般情況下,這些數據在某種粒度下是不會經常變化的,都會保持固定的維度的生產數據進行一段時間的生產。因此在這種情況下,用戶根據需要輸入請求表達式的維度和指標也是不變的,通過分析該表達式生成的單元格模型也就是固定的,進而從資料庫中查詢到的單元格的數值也是固定,從而在生成單元格數據之後,可以將該單元格數據緩存,使得在下次用戶輸入同樣請求時,或者需要再次調用單元格數據時,可以直接將緩存中的單元格數據返回給用戶,而無需再次從資料庫中查詢單元格的值,將少了與資料庫的信息交互,提高了聯機分析處理的速度。
[0024]優選的,單元格的屬性信息包括維度和指標,則緩存單元108還用於根據維度和指標的交叉信息作為鍵值對單元格數據進行緩存。
[0025]用戶根據需要輸入的請求表達式中的維度和指標是不同的,根據請求表達式所得到的單元格的維度和指標也是不同的,因此,針對用戶每次的需要可以生成不同的單元格,比如某個單元格所處的位置是{[門店].[USA],[產品].[FOOD],[銷售金額]},那麼將該單元格的維度和指標進行交叉所得到的信息可以作為鍵值,對該單元格數據進行緩存,具體地,可以是緩存該單元格的值或整個單元格數據(包括維度和指標以及單元格的值),從而在以後需要調用該單元格數據時,可以根據維度和指標快速且準確地查找到相應的單元格的值,進而快速地將單元格數據返回給用戶。
[0026]優選的,還包括:分區單元110,用於根據請求表達式的用戶信息在緩存中劃分相應分區,其中,緩存單元108用於將單元格數據緩存至相應分區中。
[0027]由於不同用戶的需要差異較大,且一般不會存在相同的需求,因此可以將根據不同用戶的請求表達式得到的單元格數據存放在緩存的不同分區中,使得一個用戶的請求操作僅會對相應的緩存區域產生影響,即在相應的緩存區域中生成單元格數據,從該緩存區域中獲取單元格數據,一方面避免了不同用戶的單元格數據發生覆蓋,一方面針對不同的用戶可以在其相應的緩存區域中獲取數據,提高了聯機分析處理的速度。
[0028]優選的,還包括:數據檢測單元112,用於檢測緩存中的單元格數據的數據量,並在數據量大於預設數據量時,刪除緩存中的單元格數據。
[0029]可以在緩存區域中的單元格數據量較大時,將其刪除,以避免無法緩存新得到的單元格數據。
[0030]優選的,還包括:數據刪除單元114,用於根據預設時間間隔刪除緩存中的單元格數據。
[0031]可以按照預設周期刪除緩存區域中的單元格數據,由於緩存中較早存儲的單元格數據一般與當前用戶所需的分析處理維度和指標相差較大,因此可以每隔一段時間刪除一次緩存中的數據,以保證緩存空間充裕。
[0032]圖3示出了根據本發明的實施例的單元格數據緩存方法的示意流程圖。
[0033]如圖3所示,根據本發明的實施例的單元格數據緩存方法包括:步驟202,驗證接收到的請求表達式的預設信息是否正確,若正確,則解析請求表達式得到查詢模型;步驟204,根據查詢模型的屬性信息生成單元格,並根據查詢模型在資料庫中查詢單元格的值,根據單元格模型和單元格的值得到單元格數據;步驟206,根據單元格的屬性信息緩存單元格數據。
[0034]由於商業上的聯機分析處理是針對生產數據進行的,而一般情況下,這些數據在某種粒度下是不會經常變化的,都會保持固定的維度的生產數據進行一段時間的生產。因此在這種情況下,用戶根據需要輸入請求表達式的維度和指標也是不變的,通過分析該表達式生成的單元格模型也就是固定的,進而從資料庫中查詢到的單元格的數值也是固定,從而在生成單元格數據之後,可以將該單元格數據緩存,使得在下次用戶輸入同樣請求時,或者需要再次調用單元格數據時,可以直接將緩存中的單元格數據返回給用戶,而無需再次從資料庫中查詢單元格的值,將少了與資料庫的信息交互,提高了聯機分析處理的速度。
[0035]在上述技術方案中,優選的,單元格的屬性信息包括維度和指標,則步驟206還包括:根據維度和指標的交叉信息作為鍵值對單元格數據進行緩存。
[0036]用戶根據需要輸入的請求表達式中的維度和指標是不同的,根據請求表達式所得到的單元格的維度和指標也是不同的,因此,針對用戶每次的需要可以生成不同的單元格,比如某個單元格所處的位置是{[門店].[USA],[產品].[FOOD],[銷售金額]},那麼將該單元格的維度和指標進行交叉所得到的信息可以作為鍵值,對該單元格數據進行緩存,具體地,可以是緩存該單元格的值或整個單元格數據(包括維度和指標以及單元格的值),從而在以後需要調用該單元格數據時,可以根據維度和指標快速且準確地查找到相應的單元格的值,進而快速地將單元格數據返回給用戶。
[0037]在上述技術方案中,優選的,在步驟206之前還包括:根據請求表達式的用戶信息在緩存中劃分相應分區,則步驟206包括:將單元格數據緩存至相應分區中。
[0038]由於不同用戶的需要差異較大,且一般不會存在相同的需求,因此可以將根據不同用戶的請求表達式得到的單元格數據存放在緩存的不同分區中,使得一個用戶的請求操作僅會對相應的緩存區域產生影響,即在相應的緩存區域中生成單元格數據,從該緩存區域中獲取單元格數據,一方面避免了不同用戶的單元格數據發生覆蓋,一方面針對不同的用戶可以在其相應的緩存區域中獲取數據,提高了聯機分析處理的速度。
[0039]在上述任一技術方案中,優選的,還包括:檢測緩存中的單元格數據的數據量,並在數據量大於預設數據量時,刪除緩存中的單元格數據。
[0040]可以在緩存區域中的單元格數據量較大時,將其刪除,以避免無法緩存新得到的單元格數據。
[0041]在上述任一技術方案中,優選的,還包括:根據預設時間間隔刪除緩存中的單元格數據。
[0042]可以按照預設周期刪除緩存區域中的單元格數據,由於緩存中較早存儲的單元格數據一般與當前用戶所需的分析處理維度和指標相差較大,因此可以每隔一段時間刪除一次緩存中的數據,以保證緩存空間充裕。
[0043]圖4示出了根據本發明的實施例的報表數據格式化的示意流程圖。
[0044]如圖4所示,客戶端發出請求,對客戶端的請求表達式進行聯機分析處理,然後由表達式解析器(相當於解析單元)進行解析,主要校驗表達式的語法,保證其中成員(包括維度成員和指標)對象的正確性,並把表達式解析成後臺分析系統中可識別的查詢模型。
[0045]表達式計算器(相當於單元格生成單元)根據查詢模型加載行列和切片軸上的成員,行列成員和指標交叉後產生單元格模型,然後表達式計算器會根據查詢模型生成資料庫查詢對象,獲得該單元的值。
[0046]然後,緩存系統(相當於緩存單元)會根據產生單元格的維度成員和指標,對單元格的值或者整個單元格數據進行緩存。比如某一個單元格所處位置為{[門店].[USA],[產品].[FOOD],[銷售金額]},則維度和指標的交叉信息會作為鍵值,對單元格的值進行存儲。緩存過程可以由支持並發的哈希表實現,以保證線程安全。
[0047]以上結合附圖詳細說明了本發明的技術方案,考慮到相關技術中,聯機分析處理用戶請求時,在生成單元格並獲取到單元格的值之後,若再次接收到用戶請求,需要再次從資料庫中查詢單元格的值,多次與資料庫交互,導致分析處理速度較慢。通過本申請的技術方案,能夠對聯機分析過程中生成的單元格數據進行緩存,便於在以後的分析過程中直接獲取單元格數據,而無需再次與資料庫交互來獲取單元格的值,提高了聯機分析處理的速度。
[0048]以上所述僅為本發明的優選實施例而已,並不用於限制本發明,對於本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
【權利要求】
1.一種單元格數據緩存系統,其特徵在於,包括: 驗證單元,用於驗證接收到的請求表達式的預設信息是否正確; 解析單元,在所述驗證單元判定所述請求表達式的預設信息正確的情況下,解析所述請求表達式得到查詢模型; 單元格生成單元,用於根據所述查詢模型的屬性信息生成單元格,並根據所述查詢模型在資料庫中查詢所述單元格的值,根據所述單元格模型和所述單元格的值得到單元格數據; 緩存單元,用於根據所述單元格的屬性信息緩存所述單元格數據。
2.根據權利要求1所述的單元格數據緩存系統,其特徵在於,所述單元格的屬性信息包括維度和指標,則所述緩存單元還用於根據所述維度和所述指標的交叉信息作為鍵值對所述單元格數據進行緩存。
3.根據權利要求1所述的單元格數據緩存系統,其特徵在於,還包括: 分區單元,用於根據所述請求表達式的用戶信息在緩存中劃分相應分區, 其中,所述緩存單元用於將所述單元格數據緩存至所述相應分區中。
4.根據權利要求1至3中任一項所述的單元格數據緩存系統,其特徵在於,還包括: 數據檢測單元,用於檢測緩存中的所述單元格數據的數據量,並在所述數據量大於預設數據量時,刪除所述緩存中的所述單元格數據。
5.根據權利要求1至3中任一項所述的單元格數據緩存系統,其特徵在於,還包括: 數據刪除單元,用於根據預設時間間隔刪除緩存中的所述單元格數據。
6.一種單元格數據緩存方法,其特徵在於,包括: 步驟202,驗證接收到的請求表達式的預設信息是否正確,若正確,則解析所述請求表達式得到查詢模型; 步驟204,根據所述查詢模型的屬性信息生成單元格,並根據所述查詢模型在資料庫中查詢所述單元格的值,根據所述單元格模型和所述單元格的值得到單元格數據; 步驟206,根據所述單元格的屬性信息緩存所述單元格數據。
7.根據權利要求6所述的單元格數據緩存方法,其特徵在於,所述單元格的屬性信息包括維度和指標,則所述步驟206還包括:根據所述維度和所述指標的交叉信息作為鍵值對所述單元格數據進行緩存。
8.根據權利要求6所述的單元格數據緩存方法,其特徵在於,在所述步驟206之前還包括:根據所述請求表達式的用戶信息在緩存中劃分相應分區,則所述步驟206包括:將所述單元格數據緩存至所述相應分區中。
9.根據權利要求6至8中任一項所述的單元格數據緩存方法,其特徵在於,還包括:檢測緩存中的所述單元格數據的數據量,並在所述數據量大於預設數據量時,刪除所述緩存中的所述單元格數據。
10.根據權利要求6至8中任一項所述的單元格數據緩存方法,其特徵在於,還包括:根據預設時間間隔刪除緩存中的所述單元格數據。
【文檔編號】G06F12/08GK103488688SQ201310392354
【公開日】2014年1月1日 申請日期:2013年9月2日 優先權日:2013年9月2日
【發明者】霍琦 申請人:用友軟體股份有限公司