本發(fā)明屬于信息處理技術領域,尤其涉及一種金融數據的存取方法及存取裝置。
背景技術:
目前,在金融數據的訪問過程中,通常是基于固定的數據結構定義按行進行的。然而,按固定的數據結構以行方式訪問品種繁多、結構多樣的金融數據,會導致大量的數據結構和接口定義。隨著業(yè)務的擴張,數據結構和接口的數量會越來越多,對于動輒上千張數據庫表的系統(tǒng)來說其復雜性不言而喻,非常不利于下游系統(tǒng)和用戶使用。同時,由于數據結構和接口已經確立便不能隨意修改以免影響既有系統(tǒng)(上述數據結構和接口所在的系統(tǒng)),系統(tǒng)的擴展性和靈活性非常受限。
故,有必要提出一種新的技術方案,以解決上述技術問題。
技術實現要素:
鑒于此,本發(fā)明實施例提供一種金融數據的存取方法及存取裝置,以較少的接口滿足下游系統(tǒng)及用戶的應用需求,并提高系統(tǒng)的擴展性和靈活性。
本發(fā)明實施例的第一方面,提供一種金融數據的存取方法,所述存取方法包括:
獲取多個金融數據模型;
根據預設條件對所述多個金融數據模型中的金融數據進行分類,并對每個分類設置相應的接口;
對每個接口所支持的金融數據進行預處理,以獲取所述每個接口所支持的數據字段名字典,所述數據字段名字典包括多個數據字段名;
根據所述每個接口所支持的數據字段名字典、用戶輸入的數據字段名以及查詢參數,獲取所要訪問的金融數據。
本發(fā)明實施例的第二方面,提供一種金融數據的存取裝置,所述存取裝置包括:
模型獲取模塊,用于獲取多個金融數據模型;
分類模塊,用于根據預設條件對所述多個金融數據模型中的金融數據進行分類,并對每個分類設置相應的接口;
預處理模塊,用于對每個接口所支持的金融數據進行預處理,以獲取所述每個接口所支持的數據字段名字典,所述數據字段名字典包括多個數據字段名;
數據獲取模塊,用于根據所述每個接口所支持的數據字段名字典、用戶輸入的數據字段名以及查詢參數,獲取所要訪問的金融數據。
本發(fā)明實施例與現有技術相比存在的有益效果是:本發(fā)明實施例通過獲取多個金融數據模型,根據預設條件對所述多個金融數據模型中的金融數據進行分類,并對每個分類設置相應的接口,對每個接口所支持的金融數據進行預處理,以獲取所述每個接口所支持的數據字段名字典,根據所述每個接口所支持的數據字段名字典、用戶輸入的數據字段名以及查詢參數,獲取所要訪問的金融數據。本發(fā)明實施例以一個接口實現一類金融數據的訪問,從而能夠以為數不多的接口滿足下游系統(tǒng)及用戶的應用需求,且每個接口所支持的金融數據可在不影響系統(tǒng)的前提下靈活擴展,提高了系統(tǒng)的兼容性和擴展性。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例一提供的一種金融數據的存取方法的實現流程圖;
圖2是本發(fā)明實施例二提供的一種金融數據的存取方法的實現流程圖;
圖3是本發(fā)明實施例三提供的一種金融數據的存取裝置的組成示意圖。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
實施例一:
圖1示出了本發(fā)明實施例一提供的一種金融數據的存取方法的實現流程,所述實現流程詳述如下:
步驟S101,獲取多個金融數據模型。
在本發(fā)明實施例中,可以根據實際需求獲取某些類型的金融數據模型(例如TeraData金融數據模型、Oracle金融數據模型等,在此不作限定),為了更全面地滿足用戶的訪問需求,也可以獲取現有的所有金融數據模型。
步驟S102,根據預設條件對所述多個金融數據模型中的金融數據進行分類,并對每個分類設置相應的接口。
在本發(fā)明實施例中,所述預設條件可以是指業(yè)務需求。即根據業(yè)務需求對所述多個金融數據模型中的金融數據所組成的金融數據集進行分類,并對每個分類設置一個相應的接口。其中,所述業(yè)務需求包括但不限于股票、基金、債券、權證、銀行等。將上述金融數據集分成幾類,就需要設置幾個接口,例如為所有的股票數據設置一個接口A,所有的基金數據設置一個接口B,所有的債券數據設置一個接口C等。
步驟S103,對每個接口所支持的金融數據進行預處理,以獲取所述每個接口所支持的數據字段名字典,所述數據字段名字典包括多個數據字段名。
在本發(fā)明實施例中,所述每個接口所支持的金融數據是指所述每個接口所對應的分類中的金融數據。由于每個分類中的金融數據又可以細化為多種類型的金融數據,并為每個分類中每種類型的金融數據命名一個數據字段名,每個分類中的多種類型的金融數據的數據字段名組成該分類的數據字段名字典,即與該分類對應的接口所支持的數據字段名字典。例如,債券的多個數據字段名可以為開盤價和收盤價等。
需要說明的是,若每個接口所支持的數據字段名字典中的每個數據字段名所對應的金融數據的數量過大,則可以將該金融數據按照預設條件存儲在多個數據庫中。例如將2001至2005年的開盤價存儲在數據庫A中,將2006年至2010年的開盤價存儲在數據庫B中。
可選的,所述對每個接口所支持的金融數據進行預處理包括:
對所述每個接口所支持的金融數據進行統(tǒng)一的編碼、映射和命名。
在本發(fā)明實施例中,在所述多個金融數據模型中屬于同一分類的金融數據的名稱可能不同,為了向用戶提供標準統(tǒng)一的金融數據,需要在存儲每一分類的金融數據時,先對每一分類中的金融數據進行統(tǒng)一的編碼,映射和命名。所述映射是指統(tǒng)一編碼前的金融數據與統(tǒng)一編碼后的金融數據之間的對應關系,所述統(tǒng)一編碼前的金融數據與對應的統(tǒng)一編碼后的金融數據實質上是指同一金融數據,例如將金融數據A編碼為金融數據B,則該映射是指金融數據A與金融數據B之間的對應關系。所述命名是指按照統(tǒng)一的標準對每一分類中的金融數據進行命名,便于用戶識別。
步驟S104,根據所述每個接口所支持的數據字段名字典、用戶輸入的數據字段名以及查詢參數,獲取所要訪問的金融數據。
在本發(fā)明實施例中,所述查詢參數是指對金融數據的篩選條件,例如時間區(qū)間,市場類型等,在此不作限定。需要說明的是,其他可以對金融數據進行篩選的參數均在本發(fā)明的保護范圍內。
可選的,所述根據所述每個接口所支持的數據字段名字典、用戶輸入的數據字段名以及查詢參數,獲取所要查詢的金融數據包括:
根據所述每個接口所支持的數據字段名字典,查找用戶輸入的數據字段名所屬的接口;
根據所述查詢參數,從該接口所支持的金融數據中獲取所要訪問的金融數據。
在本發(fā)明實施例中,所述用戶輸入的數據字段名可以是指用戶在金融數據的查詢頁面通過觸控鍵盤或者虛擬鍵盤輸入的數據字段名,也可以是指用戶在金融數據的查詢頁面點擊下拉按鈕,顯示數據字段名列表,從該列表中點擊選擇數據字段名。
需要說明的是,在步驟S104中獲取所要訪問的金融數據后,將該金融數據返回給用戶,便于用戶查看;若在所有接口所支持的數據字段名字典中,均未查找到用戶輸入的數據字段名,則可以向用戶返回提示信息,以提示用戶輸入的字段名錯誤或該字段名不存在。
在本發(fā)明實施例中,每個接口按其所支持的數據字段名字典提供服務,數據訪問時不以固定的數據結構進行,而是根據用戶任意指定或輸入的數據字段名,結合必要的查詢參數進行,從而使得每個接口所支持的數據字段名可在不影響系統(tǒng)的前提下靈活擴展,提高了系統(tǒng)的兼容性和擴展性。
本發(fā)明實施例以一個接口實現一類金融數據的訪問,從而能夠以為數不多的接口滿足下游系統(tǒng)及用戶的應用需求,且每個接口所支持的金融數據可在不影響系統(tǒng)的前提下靈活擴展,提高了系統(tǒng)的兼容性和擴展性。
實施例二:
圖2示出了本發(fā)明實施例二提供的一種金融數據的存取方法的實現流程,所述實現流程詳述如下:
步驟S201,獲取多個金融數據模型。
該步驟與步驟S101相同,具體可參見步驟S101的相關描述,在此不再贅述。
步驟S202,根據預設條件對所述多個金融數據模型中的金融數據進行分類,并對每個分類設置相應的接口。
該步驟與步驟S102相同,具體可參見步驟S102的相關描述,在此不再贅述。
步驟S203,對每個接口所支持的金融數據進行預處理,以獲取所述每個接口所支持的數據字段名字典,所述數據字段名字典包括多個數據字段名。
該步驟與步驟S103相同,具體可參見步驟S103的相關描述,在此不再贅述。
可選的,本發(fā)明實施例還包括:
將所述每個接口所支持的數據字段名字典中每個數據字段名所對應的金融數據,以列式數據格式進行存取,其中,一個數據字段名對應一個數據列。
具體地,在存儲所述每個接口所支持的數據字段名字典中每個數據字段名所對應的金融數據時,可以以列式數據格式進行存儲(即步驟S204);在提取所述每個接口所支持的數據字段名字典中每個數據字段名所對應的金融數據時,可以以列式數據格式進行提取(即步驟S205)。所述列式數據格式是指按列存儲數據。一個數據字段名所對應的金融數據存儲在一個數據列中,所述每列數據包含完整的定義信息,如字段名、數據類型、數據長度以及實際的數據列等,以保證每列數據可以獨立的進行解析和使用。
可選的,在將所述每個接口所支持的數據字段名字典中每個數據字段名所對應的金融數據,以列式數據格式進行存取之后,還包括:
獲取列式數據的長度;
若所述列式數據的長度超過預設長度,則對所述列式數據進行壓縮處理。
在本發(fā)明實施例中,所述列式數據是指以列式數據格式存儲的金融數據和以列式數據格式提取的金融數據。若以列式數據格式存儲的金融數據的長度超過預設長度,則對該金融數據進行壓縮處理;若以列式數據格式提取的金融數據的長度超過預設長度,則對該金融數據進行壓縮處理。對超過預設長度的列式數據進行壓縮處理,可降低傳輸帶寬和存儲空間的占用,且列式數據可以充分利用金融歷史數據的相關性(每個列式數據是指在不同時間點上的同一數據字段名下的金融數據,例如一個列式數據是2001至2010的開盤價)支持更加的壓縮傳輸效率。其中,所述預設長度可以根據實際需要自行設定。
步驟S204,將所述每個接口所支持的數據字段名字典中的每個數據字段名所對應的金融數據以列式數據格式進行存儲。
步驟S205,根據所述每個接口所支持的數據字段名字典、用戶輸入的數據字段名以及查詢參數,獲取所要訪問的金融數據,并以列式數據格式提取所要訪問的金融數據。
需要說明的是,對于海量數據,支持列式數據的分段傳輸,即每次出傳輸指定長度的數據,經多次交互完成整個數據的傳輸,以降低對系統(tǒng)造成的壓力和帶寬的占用。
本發(fā)明實施例在實施例一的基礎上增加了“將所述每個接口所支持的數據字段名字典中每個數據字段名所對應的金融數據,以列式數據格式進行存取”,列式數據可實現更高效的數據壓縮和數組式直接高效訪問。
實施例三:
圖3示出了本發(fā)明實施例三提供的一種金融數據的存取裝置的組成示意圖,為了便于說明,僅示出了與本發(fā)明實施例相關的部分,詳述如下:
所述存取裝置包括:
模型獲取模塊31,用于獲取多個金融數據模型;
分類模塊32,用于根據預設條件對所述多個金融數據模型中的金融數據進行分類,并對每個分類設置相應的接口;
預處理模塊33,用于對每個接口所支持的金融數據進行預處理,以獲取所述每個接口所支持的數據字段名字典,所述數據字段名字典包括多個數據字段名;
數據獲取模塊34,用于根據所述每個接口所支持的數據字段名字典、用戶輸入的數據字段名以及查詢參數,獲取所要訪問的金融數據。
可選的,所述預處理模塊33用于:
對所述每個接口所支持的金融數據進行統(tǒng)一的編碼、映射和命名。
可選的,所述數據獲取模塊34包括:
查詢單元341,用于根據所述每個接口所支持的數據字段名字典,查找用戶輸入的數據字段名所屬的接口;
獲取單元342,用于根據所述查詢參數,從該接口所支持的金融數據中獲取所要訪問的金融數據。
所述存取裝置還包括:
存取模塊35,用于將所述每個接口所支持的數據字段名字典中每個數據字段名所對應的金融數據,以列式數據格式進行存取,其中,一個數據字段名對應一個數據列。
所述存取裝置還包括:
長度獲取模塊36,用于獲取列式數據的長度;
壓縮模塊37,用于若所述列式數據的長度超過預設長度,則對所述列式數據進行壓縮處理。
需要說明的是,所述存取模塊35在以列式數據格式對金融數據進行存儲時,所述長度獲取模塊36獲取列式數據的長度,若該列式數據的長度超過預設長度,則所述壓縮模塊37對該列式數據進行壓縮處理。其中,該列式數據是指以列式數據格式進行存儲的金融數據。
在所述數據獲取模塊34獲取所要訪問的金融數據過程中,所述存取模塊35在以列式數據格式對金融數據進行提取時,所述長度獲取模塊36獲取列式數據的長度,若該列式數據的長度超過預設長度,則所述壓縮模塊37對該列式數據進行壓縮處理,并將壓縮處理后的列式數據返回給用戶。其中,該列式數據是指以列式數據格式進行提取的金融數據。
本發(fā)明實施例提供的金融數據的存取裝置可以使用在前述對應的方法實施例一和實施例二中,詳情參見上述實施例一和實施例二的描述,在此不再贅述。
所述領域的技術人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模塊完成,即所述裝置的內部結構劃分成不同的功能模塊,上述功能模塊既可以采用硬件的形式實現,也可以采用軟件的形式實現。另外,各功能模塊的具體名稱也只是為了便于相互區(qū)別,并不用于限制本申請的保護范圍。
綜上所述,本發(fā)明實施例以一個接口實現一類金融數據的訪問,從而能夠以為數不多的接口滿足下游系統(tǒng)及用戶的應用需求,且每個接口所支持的金融數據可在不影響相關系統(tǒng)的前提下靈活擴展,提高了系統(tǒng)的兼容性和擴展性。
本領域普通技術人員還可以理解,實現上述實施例方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,所述的程序可以在存儲于一計算機可讀取存儲介質中,所述的存儲介質,包括ROM/RAM、磁盤、光盤等。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。