本技術屬于計算機,特別是涉及一種數(shù)據(jù)訪問方法、裝置、電子設備和存儲介質。
背景技術:
1、在大數(shù)據(jù)場景中,存在一些熱點數(shù)據(jù)會被大量重復訪問,例如基礎結果數(shù)據(jù)、關鍵維度表、訓練樣本數(shù)據(jù)等;對這些熱點數(shù)據(jù)進行緩存能夠帶來很大的收益,1)將它們從低性能存儲介質(hdd)緩存到高性能存儲介質(ssd),提高磁盤訪問性能;2)將它們從遠端存儲緩存到近計算存儲,降低專線網(wǎng)絡開銷。
2、業(yè)界已有一些大數(shù)據(jù)緩存方案,例如開源alluxio、阿里云jindofs、百度云rapidfs等,這些方案提供了部署緩存服務和單可用區(qū)(availability?zone,az)場景下的緩存能力,但是在大數(shù)據(jù)跨az存儲場景下,緩存資源將會采用多az多集群方式部署,但涉及多az場景下的緩存機制以及數(shù)據(jù)訪問一致性等問題,業(yè)界目前還沒有標準通用的緩存路由機制,往往存在由于不同緩存服務集群有不同的訪問規(guī)則,業(yè)務直接使用訪問流程復雜的問題。
技術實現(xiàn)思路
1、有鑒于此,本技術提供一種數(shù)據(jù)訪問方法、裝置、電子設備和存儲介質,以解決現(xiàn)有技術中由于不同緩存服務集群有不同的訪問規(guī)則,業(yè)務直接使用訪問流程復雜的問題。
2、本技術第一方面提供一種數(shù)據(jù)訪問方法,所述方法包括:
3、接收攜帶有目標元數(shù)據(jù)的資源訪問請求;
4、基于緩存路由表,確定與所述目標元數(shù)據(jù)對應的目標緩存資源的掛載情況;所述緩存路由表包括:不同可用區(qū)中緩存資源相對應的元數(shù)據(jù)與掛載路徑之間的對應關系;
5、基于與所述掛載情況相匹配的訪問策略對所述目標緩存資源或所述目標元數(shù)據(jù)對應的源數(shù)據(jù)進行訪問。
6、可選地,所述基于與所述掛載情況相匹配的訪問策略對所述目標緩存資源或所述目標元數(shù)據(jù)對應的源數(shù)據(jù)進行訪問,包括:
7、在所述掛載情況為所述目標緩存資源相對應的目標掛載路徑存在于所述緩存路由表時,確定與所述掛載情況相匹配的訪問策略為第一訪問策略,并將所述資源訪問請求轉換為對緩存服務的訪問請求;
8、響應于所述對緩存服務的訪問請求,基于所述第一訪問策略,訪問所述目標緩存資源;所述第一訪問策略為基于查詢到的所述目標掛載路徑在可用區(qū)緩存中訪問所述目標緩存資源;
9、在所述掛載情況為所述目標緩存資源相對應的目標掛載路徑不存在于所述緩存路由表時,確定與所述掛載情況相匹配的訪問策略為第二訪問策略,并將所述資源訪問請求轉換為對底層文件系統(tǒng)的訪問請求;
10、響應于所述對底層文件系統(tǒng)的訪問請求,基于所述第二訪問策略,訪問所述目標元數(shù)據(jù)對應的源數(shù)據(jù);所述第二訪問策略為在所述底層文件系統(tǒng)中訪問所述目標元數(shù)據(jù)對應的源數(shù)據(jù)。
11、可選地,在所述資源訪問請求對應的訪問操作為讀操作時,所述基于查詢到的所述目標掛載路徑在可用區(qū)緩存中訪問所述目標緩存資源,包括:
12、獲取所述底層文件系統(tǒng)中所述目標元數(shù)據(jù)對應的源數(shù)據(jù)所在的第一可用區(qū)、所述目標緩存資源所在的第二可用區(qū)集合以及客戶端所在的第三可用區(qū);
13、在所述第二可用區(qū)集合中包含所述第三可用區(qū)的情況下,基于所述目標掛載路徑以及一致性哈希算法,從所述第三可用區(qū)對應的緩存服務節(jié)點中確定第一緩存服務節(jié)點;
14、在所述第二可用區(qū)集合中不包含所述第三可用區(qū)但包含所述第一可用區(qū)的情況下,基于所述目標掛載路徑以及一致性哈希算法,從所述第一可用區(qū)對應的緩存服務節(jié)點中確定第一緩存服務節(jié)點;
15、基于所述第一緩存服務節(jié)點,在所述第一緩存服務節(jié)點對應的可用區(qū)緩存中對所述目標緩存資源進行讀操作;
16、所述方法還包括:
17、在所述第二可用區(qū)緩存集合中不包含所述第三可用區(qū)以及所述第一可用區(qū)的情況下,在底層文件系統(tǒng)中對所述目標元數(shù)據(jù)對應的源數(shù)據(jù)進行讀操作。
18、可選地,在所述資源訪問請求對應的訪問操作為寫操作時,所述基于查詢到的所述目標掛載路徑在可用區(qū)緩存中訪問所述目標緩存資源,包括:
19、在所述寫操作對應的寫模式非目標寫模式的情況下,獲取所述底層文件系統(tǒng)中所述目標元數(shù)據(jù)對應的源數(shù)據(jù)所在的第一可用區(qū);所述目標寫模式為底層文件系統(tǒng)寫模式;
20、基于所述目標掛載路徑以及一致性哈希算法,從所述第一可用區(qū)對應的緩存服務節(jié)點中確定第二緩存服務節(jié)點;
21、基于所述第二緩存服務節(jié)點,在所述第二緩存服務節(jié)點對應的可用區(qū)緩存中,按照所述寫操作對應的寫模式對所述資源訪問請求攜帶的目標數(shù)據(jù)進行寫操作;
22、所述方法還包括:
23、在所述寫操作對應的寫模式為所述目標寫模式的情況下,在底層文件系統(tǒng)中對所述資源訪問請求攜帶的目標數(shù)據(jù)進行寫操作。
24、可選地,所述方法還包括:
25、在所述寫操作對應的寫模式非目標寫模式且所述第一可用區(qū)緩存中不存在掛載路徑的情況下,針對所述資源訪問請求發(fā)送訪問失敗信息。
26、可選地,所述方法還包括:
27、按照目標周期從跨多個不同可用區(qū)的數(shù)據(jù)集群中獲取所述緩存路由表,其中,所述數(shù)據(jù)集群包括:不同可用區(qū)相對應的緩存資源組,所述緩存路由表是基于所述緩存資源組的元數(shù)據(jù)和存儲方式生成。
28、可選地,所述方法還包括:
29、按照目標周期從任一可用區(qū)中獲取所述緩存路由表,所述緩存路由表是基于任一可用區(qū)中存儲的元數(shù)據(jù)與存儲關系生成,多個不同可用區(qū)之間相互同步元數(shù)據(jù)和存儲關系。
30、可選地,所述方法還包括:
31、按照目標維度對緩存資源進行拆分,將所得到的每個維度的緩存資源存儲到相對應的緩存資源組中。
32、依據(jù)本技術第二方面,提供一種數(shù)據(jù)訪問裝置,所述裝置包括:
33、接收模塊,用于接收攜帶有目標元數(shù)據(jù)的資源訪問請求;
34、查詢模塊,用于基于緩存路由表,確定與所述目標元數(shù)據(jù)對應的目標緩存資源的掛載情況;所述緩存路由表包括:不同可用區(qū)中緩存資源相對應的元數(shù)據(jù)與掛載路徑之間的對應關系;
35、訪問模塊,用于基于與所述掛載情況相匹配的訪問策略對所述目標緩存資源或所述目標元數(shù)據(jù)對應的源數(shù)據(jù)進行訪問。
36、可選地,所述訪問模塊,還用于:
37、在所述掛載情況為所述目標緩存資源相對應的目標掛載路徑存在于所述緩存路由表時,確定與所述掛載情況相匹配的訪問策略為第一訪問策略,并將所述資源訪問請求轉換為對緩存服務的訪問請求;
38、響應于所述對緩存服務的訪問請求,基于所述第一訪問策略,訪問所述目標緩存資源;所述第一訪問策略為基于查詢到的所述目標掛載路徑在可用區(qū)緩存中訪問所述目標緩存資源;
39、在所述掛載情況為所述目標緩存資源相對應的目標掛載路徑不存在于所述緩存路由表時,確定與所述掛載情況相匹配的訪問策略為第二訪問策略,并將所述資源訪問請求轉換為對底層文件系統(tǒng)的訪問請求;
40、響應于所述對底層文件系統(tǒng)的訪問請求,基于所述第二訪問策略,訪問所述目標元數(shù)據(jù)對應的源數(shù)據(jù);所述第二訪問策略為在所述底層文件系統(tǒng)中訪問所述目標元數(shù)據(jù)對應的源數(shù)據(jù)。
41、可選地,在所述資源訪問請求對應的訪問操作為讀操作時,所述訪問模塊,還用于:
42、獲取所述底層文件系統(tǒng)中所述目標元數(shù)據(jù)對應的源數(shù)據(jù)所在的第一可用區(qū)、所述目標緩存資源所在的第二可用區(qū)集合以及客戶端所在的第三可用區(qū);
43、在所述第二可用區(qū)集合中包含所述第三可用區(qū)的情況下,基于所述目標掛載路徑以及一致性哈希算法,從所述第三可用區(qū)對應的緩存服務節(jié)點中確定第一緩存服務節(jié)點;
44、在所述第二可用區(qū)集合中不包含所述第三可用區(qū)但包含所述第一可用區(qū)的情況下,基于所述目標掛載路徑以及一致性哈希算法,從所述第一可用區(qū)對應的緩存服務節(jié)點中確定第一緩存服務節(jié)點;
45、基于所述第一緩存服務節(jié)點,在所述第一緩存服務節(jié)點對應的可用區(qū)緩存中對所述目標緩存資源進行讀操作;
46、在所述第二可用區(qū)緩存集合中不包含所述第三可用區(qū)以及所述第一可用區(qū)的情況下,在底層文件系統(tǒng)中對所述目標元數(shù)據(jù)對應的源數(shù)據(jù)進行讀操作。
47、可選地,在所述資源訪問請求對應的訪問操作為寫操作時,所述訪問模塊,還用于:
48、在所述寫操作對應的寫模式非目標寫模式的情況下,獲取所述底層文件系統(tǒng)中所述目標元數(shù)據(jù)對應的源數(shù)據(jù)所在的第一可用區(qū);所述目標寫模式為底層文件系統(tǒng)寫模式;
49、基于所述目標掛載路徑以及一致性哈希算法,從所述第一可用區(qū)對應的緩存服務節(jié)點中確定第二緩存服務節(jié)點;
50、基于所述第二緩存服務節(jié)點,在所述第二緩存服務節(jié)點對應的可用區(qū)緩存中,按照所述寫操作對應的寫模式對所述資源訪問請求攜帶的目標數(shù)據(jù)進行寫操作;
51、在所述寫操作對應的寫模式為所述目標寫模式的情況下,在底層文件系統(tǒng)中對所述資源訪問請求攜帶的目標數(shù)據(jù)進行寫操作。
52、可選地,所述訪問模塊,還用于:
53、在所述寫操作對應的寫模式非目標寫模式且所述第一可用區(qū)緩存中不存在緩存服務節(jié)點的情況下,針對所述資源訪問請求發(fā)送訪問失敗信息。
54、依據(jù)本技術第三方面,提供一種電子設備,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)上述數(shù)據(jù)訪問方法。
55、依據(jù)本技術第四方面,提供一種計算機可讀存儲介質,所述計算機可讀存儲介質上存儲計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)上述數(shù)據(jù)訪問方法。
56、針對現(xiàn)有技術,本技術具備如下優(yōu)點:
57、本技術提供的一種數(shù)據(jù)訪問方法、裝置,通過在不同可用區(qū)中緩存有緩存資源,從而在接收到客戶端發(fā)送的資源訪問請求時,均可以基于資源訪問請求所攜帶的目標元數(shù)據(jù),在存儲有元數(shù)據(jù)的緩存路由表中查詢緩存資源的掛載路徑來知曉緩存資源的掛載情況,然后針對不同的掛載情況選用適用的訪問策略來對緩存資源或源數(shù)據(jù)進行訪問,使得訪問緩存資源的過程中無需再關注不同可用區(qū)的區(qū)別,僅需要指定所需訪問數(shù)據(jù)的元數(shù)據(jù),通過一套統(tǒng)一的訪問策略即可便捷地實現(xiàn)數(shù)據(jù)的訪問過程,提高數(shù)據(jù)訪問的通用性的同時簡化數(shù)據(jù)的訪問過程,一定程度上提高了數(shù)據(jù)訪問的效率。
58、上述說明僅是本技術技術方案的概述,為了能夠更清楚了解本技術的技術手段,而可依照說明書的內容予以實施,并且為了讓本技術的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本技術的具體實施方式。