[發明專利]一種基于實時查詢的數據交互方法及裝置有效
| 申請號: | 202011375913.3 | 申請日: | 2020-11-30 |
| 公開(公告)號: | CN112650915B | 公開(公告)日: | 2023-03-10 |
| 發明(設計)人: | 朱蔚林;木偉民;遲磊;金宗澤;張云;王偉平 | 申請(專利權)人: | 中國科學院信息工程研究所 |
| 主分類號: | G06F16/9532 | 分類號: | G06F16/9532;G06F16/242;G06F16/27 |
| 代理公司: | 北京君尚知識產權代理有限公司 11200 | 代理人: | 余功勛 |
| 地址: | 100093 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 實時 查詢 數據 交互 方法 裝置 | ||
1.一種基于實時查詢的數據交互方法,其步驟包括:
1)解析接收的客戶端數據查詢請求,獲取查詢請求中的用戶id、sql語句、長短查詢標識、請求唯一標識,并將相應的字段封裝為DataProxyRequest對象;
2)基于所述DataProxyRequest對象中的長短查詢標識,判斷所述客戶端數據查詢請求為長查詢或短查詢;
3)在所述客戶端數據查詢請求為長查詢的情況下,依據生成的查詢記錄對數據庫進行查詢,并將長查詢結果存儲至分布式文件系統中;其中,所述依據生成的查詢記錄對數據庫進行查詢,包括:
將原始sql語句轉換為系統sql語句及系統sql語句中各字段與輸出時外部字段的映射關系;
依據長短查詢標識和當前時間戳生成的任務id;
根據任務id和用戶id,將獲取的數據庫配置信息、消息隊列ip、消息隊列的隊列名、分布式文件系統ip、分布式文件系統中存儲的絕對路徑、元數據服務的url、啟動docker任務所需的容器名和啟動docker任務所需的任務名封裝,得到封裝后的數據;
通過http協議對封裝后的數據編碼,得到查詢記錄;
通過http協議對查詢記錄解碼,得到封裝后的數據;
依據啟動docker任務所需的容器名和啟動docker任務所需的任務名,啟動一個docker實例,并將系統sql語句、元數據服務的url、分布式文件系統ip和分布式文件系統中存儲的絕對路徑傳至該docker實例;
根據數據庫配置信息,使用docker實例中的系統sql語句對數據庫進行查詢,得到長查詢結果;
4)在所述客戶端數據查詢請求為短查詢的情況下,根據sql解析服務將所述sql語句轉換為系統內使用的字段的sql,并使用轉換后的sql對數據庫進行查詢,得到短查詢結果;
5)將所述長查詢結果或所述短查詢結果返回至客戶端。
2.如權利要求1所述的方法,其特征在于,客戶端發送客戶端數據查詢請求的方法包括:post方法。
3.如權利要求1所述的方法,其特征在于,所述客戶端數據查詢請求包括:用戶id、原始sql語句、長短查詢標識、請求唯一標識。
4.如權利要求3所述的方法,其特征在于,通過長短查詢標識,判斷所述客戶端數據查詢請求為長查詢或短查詢。
5.如權利要求1所述的方法,其特征在于,所述數據庫配置信息包括:數據庫ip、數據庫庫名、登入數據庫的用戶名和登入數據庫的密碼。
6.如權利要求1所述的方法,其特征在于,所述分布式文件系統包括:龍存。
7.如權利要求1所述的方法,其特征在于,將接收客戶端數據查詢請求到返回長查詢結果或短查詢結果之間的用時,返回客戶端。
8.一種基于實時查詢的數據交互裝置,包括:
接口模塊,用以接收客戶端數據查詢請求;獲取查詢請求中的用戶id、sql語句、長短查詢標識、請求唯一標識,并將相應的字段封裝為DataProxyRequest對象;將長查詢結果或短查詢結果返回至客戶端;
服務代理模塊,用以基于所述DataProxyRequest對象中的長短查詢標識,判斷所述客戶端數據查詢請求為長查詢或短查詢;
任務執行模塊,用以執行數據查詢;其中,
在所述客戶端數據查詢請求為長查詢的情況下,依據生成的查詢記錄對數據庫進行查詢,并將長查詢結果存儲至分布式文件系統中;其中,所述依據生成的查詢記錄對數據庫進行查詢,包括:
將原始sql語句轉換為系統sql語句及系統sql語句中各字段與輸出時外部字段的映射關系;
依據長短查詢標識和當前時間戳生成的任務id;
根據任務id和用戶id,將獲取的數據庫配置信息、消息隊列ip、消息隊列的隊列名、分布式文件系統ip、分布式文件系統中存儲的絕對路徑、元數據服務的url、啟動docker任務所需的容器名和啟動docker任務所需的任務名封裝,得到封裝后的數據;
通過http協議對封裝后的數據編碼,得到查詢記錄;
通過http協議對查詢記錄解碼,得到封裝后的數據;
依據啟動docker任務所需的容器名和啟動docker任務所需的任務名,啟動一個docker實例,并將系統sql語句、元數據服務的url、分布式文件系統ip和分布式文件系統中存儲的絕對路徑傳至該docker實例;
根據數據庫配置信息,使用docker實例中的系統sql語句對數據庫進行查詢,得到長查詢結果;
在所述客戶端數據查詢請求為短查詢的情況下,根據sql解析服務將所述sql語句轉換為系統內使用的字段的sql,并使用轉換后的sql對數據庫進行查詢,得到短查詢結果。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院信息工程研究所,未經中國科學院信息工程研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011375913.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種儲能調度方法及系統
- 下一篇:一種大型工件機械手裝置
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





