TWI710919B - 資料儲存裝置、轉譯裝置及資料庫存取方法 - Google Patents

資料儲存裝置、轉譯裝置及資料庫存取方法 Download PDF

Info

Publication number
TWI710919B
TWI710919B TW108131216A TW108131216A TWI710919B TW I710919 B TWI710919 B TW I710919B TW 108131216 A TW108131216 A TW 108131216A TW 108131216 A TW108131216 A TW 108131216A TW I710919 B TWI710919 B TW I710919B
Authority
TW
Taiwan
Prior art keywords
relational
access
access request
column
field
Prior art date
Application number
TW108131216A
Other languages
English (en)
Other versions
TW202032386A (zh
Inventor
楊志豐
Original Assignee
開曼群島商創新先進技術有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 開曼群島商創新先進技術有限公司 filed Critical 開曼群島商創新先進技術有限公司
Publication of TW202032386A publication Critical patent/TW202032386A/zh
Application granted granted Critical
Publication of TWI710919B publication Critical patent/TWI710919B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/244Grouping and aggregation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Abstract

本揭示內容的一個或多個實施例提供一種資料儲存裝置、轉譯裝置及資料庫存取方法。該資料儲存裝置有包括有利用關係資料表儲存非關係資料模型資料的關係資料庫,非關係資料模型符合非結構化查詢語言(NoSQL)規範。該儲存裝置還包括轉譯模組,將符合所述非結構化查詢語言(NoSQL)規範的第一存取請求轉譯為符合所述關係表模型存取規範的第二存取請求,以實現對所述關係資料表的存取。

Description

資料儲存裝置、轉譯裝置及資料庫存取方法
本發明涉及資料庫領域,尤其涉及一種提供非關係存取的關係資料庫。
目前,關係型資料庫以其原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)) (ACID)的優點在包括金融等各行業得到充足發展與廣泛使用。但是由於傳統的關係型資料庫在應對大資料的儲存、查詢和分析等需求時,出現了性能和規模上的瓶頸,因此各種非關係型資料庫(NoSQL資料庫)應運而生,成為資料儲存和分析領域的一支新生力量。非關係型資料庫的資料儲存不需要固定的表結構,因此可以實現靈活儲存結構,而且可以無需預先定義表模式,有利於快速原型驗證和敏捷開發。 然而對於同一客戶或同一應用而言,同時部署關係資料庫與非關係型資料庫不但增加了成本,而且同步地維護二種類型資料庫也在技術、資料安全上帶來挑戰。
本發明期望提供一種同時支援關係型SQL與非關係NoSQL存取的關係型資料庫,其利用關係資料表來儲存非關係資料庫類型的資料,因此不但具有比傳統資料庫更好的可擴展性,而且讓NoSQL應用擁有了關係型資料庫所帶來的金融級資料安全和高可用的服務。 根據本發明的一個方面,提供一種資料儲存裝置,包括:關係資料庫,用於儲存與非關係資料模型對應的關係表模型的關係資料表,其中所述非關係資料模型符合非結構化查詢語言(SQL)規範;轉譯模組,用於將與所述符合非結構化查詢語言(SQL)規範的第一存取請求轉譯為符合所述關係表模型存取規範的第二存取請求,以實現對所述關係資料表的存取。 根據本發明的一個方面,提供一種用於關係資料庫的存取方法,其中所述關係資料庫可儲存與非關係資料模型對應的關係表模型的關係資料表,其中所述非關係資料模型符合非結構化查詢語言(SQL)規範,該方法包括:接收來自客戶端的符合所述非結構化查詢語言(SQL)規範的第一存取請求;將所述第一存取請求轉譯為符合所述關係表模型存取規範的第二存取請求,以實現對所述關係資料表的存取;將所述第二存取請求轉發至所述關係資料庫。 根據本發明的一個方面,提供一種可提供關係資料庫存取的轉譯裝置,其中所述關係資料庫用於儲存與寬表模型對應的關係表模型的關係資料表,該轉譯裝置包括:第一介面,用於接收符合非結構化查詢語言(SQL)規範的第一存取請求,所述第一存取請求包括與寬表有關的第一事件特徵以及第一屬性特徵,其中該第一屬性特徵包括所述寬表的列族特徵;解析模組,用於對所述第一存取請求進行解析以產生符合所述關係表模型存取規範的第二存取請求,其中所述第二存取請求包括與所述第一事件特徵對應的第二事件特徵以及與所述第一屬性特徵對應的第二屬性特徵,其中第二屬性特徵包括:與所述寬表的列族對應的列族字段,用於儲存所述寬表中的列族下的各列字段的名稱;數值字段,用於儲存所述寬表中的列族下的各列字段的字段值;第二介面,用於將所述第二存取請求轉發至所述關係資料庫,以實現對所述關係資料表的存取。 此外,根據本發明,還提供一種具有指令的電腦可讀媒體,所述指令在被一個或多個計算系統執行時,使所述計算系統執行根據本發明的方法。 此外,根據本發明,還提供一種計算設備,包括:儲存有碼的記憶體,以及處理器,其中所述處理器配置為執行所述碼以實現本發明的方法。 利用本發明的方案,在成熟的關係資料表基礎之上,只需要提供用於寬表存取的伺服端即轉譯模組或介面,結合客戶端,就可以把關係資料庫轉變為一個寬表資料庫。當實現在同一個系統中時,根據本發明的關係資料庫相當於一個同時支援關係模型和寬表模型的多模型資料庫。
下面詳細描述本發明的實施例,透過參考圖式描述的實施例是示例性的,旨在用於解釋本發明,而不能理解為對本發明的限制。 圖1示出了可提供非關係資料庫類型存取的儲存裝置100的示意圖。如圖所示,該儲存裝置100包括關係資料庫101,轉譯模組102。在關係資料庫101中可維護與非關係資料庫模型對應的關係表模型的關係資料表。關係資料庫101可以是目前已知的任何類型的資料庫,例如oracle, sysbase, MySQL等,均支援關係資料模型儲存。目前關係資料庫通常支援對關係資料模型的二種存取規範,其中一種是透過標準SQL(結構化查詢語言)語言規範,而另一種則是透過提供底層函數即應用編程介面(API)來提供對底層的關係資料表的直接存取。而非關係資料模型,例如現有產品Hbase, bigtable, Cassandra等資料庫中廣泛支援的寬表模型,作為一種NoSQL資料庫模型,它無需預先定義列及其屬性,允許同一個表中每一行擁有不同的列,因此具有與關係資料模型完全不同的特性,對非關係資料模型的存取採用的是與關係資料模型完全不同的規範,在此稱為非結構化查詢語言規範。在本發明中,將現有的NoSQL資料庫模型所支援的NoSQL標準語言或應用編程介面(API)統一稱為非結構化查詢語言規範。 關係資料庫101可以透過轉譯模組102支援來自用戶客戶端200的例如寬表類型的資料庫存取操作,實現非關係資料庫類型的資料在關係資料庫101中的儲存與存取。同時,該關係資料庫101還允許其它的使用關係表模型存取規範的其它客戶端300直接對關係資料庫101中的資料表的存取,包括以SQL標準語言存取或直接以API函數呼叫的形式直接存取關係資料表。 為了使關係資料庫101能支援寬表資料庫的存取操作,在該轉譯模組102內提供一套符合關係資料模型的API或標準SQL語言庫,用於提供對關係資料庫101中的關係型資料表的存取;還提供有符合多種非結構化查詢語言規範的應用程式介面(API)庫或NoSQL語言庫,從而可以對接收的符合非結構化查詢語言規範的存取請求或命令進行解釋,進而轉譯模組102可以將該存取請求轉譯成符合關係表模型存取規範的存取請求。在以下說明中,以寬表模型作為非關係資料模型的一個示例予以說明。 為了在關係資料庫中實現對非結構化查詢語言規範客戶端應用的支援,對於非關係資料庫中的具有列族形式的寬表儲存結構,在關係資料庫101中提供了與其對應的關係型資料表,以支援Non-SQL形式的存取。圖2A和圖2B示出了寬表與關係型資料表的映射圖。 圖2A示出一個示例性的寬表hbase_100的結構,如圖所示,該寬表包括一個主鍵字段ID, 用於儲存寬表中作為主鍵(rowkey)的序號,該寬表還包括一個列族CF1,在該列族CF1下存在多個列字段,分別name(姓名)與gender (性別)。在該示例的寬表中存在二條寬表記錄,其中對於第001號,其name(姓名)與gender(性別)字段的字段值分別為“Tom”和“man”(男),對於第002號,其name(姓名)與gender(性別)字段的字段值分別為“June”和“girl”(女)。 為了在關係資料庫中儲存圖2A所示的寬表資料,如圖2B所示,對於寬表中的列族,定義一個如下形式的關係資料表hbase_100&CF1作為儲存模型,其中關係資料表hbase_100&CF1包括字段ID,用於儲存寬表的Rowkey,在本例中為序列號;一個列族字段CF1,在該列族字段下以多條記錄形式儲存該列族下的所有列字段名稱,如圖2A所示,列族CF1具有二個列字段name與gender,因此,在關係表hbase_100&CF1為同一rowkey建立了二條記錄,分別儲存列字段內容‘name’與‘gender’。關係表hbase_100&CF1還包括數值字段Value,用於儲存寬表中每個列字段下‘name’與‘gender’的對應值。由此,實現了利用關係資料表來儲存寬表資料,關係資料庫對於用戶來說是透明的,關係資料庫轉變為一個‘虛擬的’寬表資料庫。 以下結合圖1所示的儲存有關係資料庫的儲存裝置100的結構來說明使用NoSQL語言規範的客戶端對‘虛擬’寬表資料庫的操作如何轉換為關係資料庫的操作。 如前所述,透過為關係資料庫101設置寬表轉譯模組102,可以使關係資料庫101支援客戶端採用NoSQL語言對虛擬寬表的存取,而寬表資料則物理地儲存在關係資料表中。對寬表的存取包括寬表的創建、修改以及刪除等。 如圖1所示,該轉譯模組102包括第一介面1021,解析模組1022以及第二介面1023。第一介面1021接收來自NoSQL客戶端的寬表存取請求NoSQL_Access,在該寬表存取請求中包括符合非結構化查詢語言(NoSQL)規範的事件特徵NEventID以及屬性特徵NAttField。這裡的事件特徵NEventID定義了期望對寬表的操作事件,例如是創建寬表,還是刪除或修改或查詢資料等,而屬於特徵NAttField定義了事件NEventID所針對的字段對象,包括所述寬表的列族特徵。 在從第一介面1021接收到寬表存取請求NoSQL_Access後,解析模組1023基於內部儲存的多種編程語言的客戶端庫(例如符合Hbase, bigtable, Cassandra資料庫標準的語言庫)對該寬表存取請求NoSQL_Access進行解析以產生用於存取關係資料庫101的關係表存取請求Relation_Access,其中所述存取請求Relation_Access包括用於存取關係資料庫的事件特徵EventID以及與所述寬表屬性特徵NAttField對應的屬性特徵AttField。這裡的事件特徵EventID定義了期望對關係資料表的操作事件,例如是創建、刪除、修改或查詢資料等,而屬性特徵AttField定義了事件EventID所涉及的字段對象,包括:與所述寬表的列族對應的列族字段,用於儲存所述寬表中的列族下的各列字段的名稱;以及數值字段,用於儲存所述寬表中的列族下的各列字段的字段值。 第二介面1023將解析模組1022產生的存取請求Relation_Access轉發至關係資料庫1023,而實現對關係資料表的操作。 以下仍以圖2A所示的寬表的創建、記錄增加等事件為例說明轉譯模組102的操作,其中以客戶端使用HBase資料庫語言規範、並且對關係資料庫的存取是以標準SQL語言為例來說明。 寬表的創建 當用戶希望建立一個如圖2A所示的寬表來儲存資料時,可以透過客戶端發出建立寬表的寬表存取請求NoSQL_Access,例如該存取請求具有如下格式的NoSQL標準語言:
Figure 02_image001
在轉譯模組102內儲存有支援NoSQL存取規範的客戶端庫,因此在轉譯模組102透過第一介面1021接收到該寬表存取請求NoSQL_Access後,按照NoSQL規範對該NoSQL_Access請求進行解析,確定在該寬表存取請求包含的事件特徵,即建表“creat”,其屬性特徵包括:寬表名稱為‘hbase_100’,以及在該寬表中所涉及的主鍵(rowkey)字段的名稱為‘ID’以及列族為‘CF1’。 因此,為了實現在關係資料庫101中建立關係資料表來儲存寬表‘hbase_100’的資料,解析模組1022按照標準SQL語言規範產生在關係資料庫建立關係表的關係表存取請求Relation_Access,在本例中,Relation_Access以SQL_Access來表示。作為一個示例,該關係表存取請求SQL_Access示例如下:
Figure 02_image003
其中, ID列儲存‘hbase_100’表的rowkey CF1列用於儲存在列族“CF1”下各列字段(column qualifier)的名稱; Value列儲存了對應各列字段(column qualifier)的字段值。 同時為了實現關係表‘hbase_100’的唯一存取,在所創建的關係表中指定(ID, CF1)為索引主鍵。透過這樣的方式,圖2B所示寬表中每一行的若干列資料,在圖2A所示關係表中儲存為相鄰的若干行,每一行儲存寬表的一個單元。這裡所創建的關係表hbase_100$CF1對於用戶來說是透明的,即用戶所‘看到’的一張如表2A所示的虛擬寬表。 按照本發明一個示例,客戶端所希望建立的寬表‘hbase_100’與在關係資料庫101中建立的關係資料庫‘hbase_100$CF1’的對應關係可以作為元資訊另外地儲存於關係資料庫101中的元資訊表中。可選地,轉譯模組102也可以按照預設的命名規則,根據接收到的寬表請求中包含的寬表名‘hbase_100’而確定對應的關係資料表‘hbase_100$CF1’。 在寬表類型的資料庫中,對於每一行的記錄通常具有時間維度字段,用於儲存每行資料的時間戳記資訊。對於該時間維度特徵,同樣可以傳送到關係資料表中。例如關係資料庫101可以基於轉譯模組102產生的如下存取請求SQL_Access建立關係資料表:
Figure 02_image005
其中T列儲存時間戳記版本timestamp,一般為自某一時間點(例如January 1, 1970 UTC)後的毫秒。 增加記錄 當用戶希望向寬表hbase_100增加一條記錄時,例如該記錄涉及某班級的花名冊,則可以在列族CF1下增加了姓名‘name’與性別“gender”二個列字段,以實現對全班同學的登記。為此,用戶可以分別發出如下形式的二個NoSQL標準語言存取請求:
Figure 02_image007
上述二個存取請求是對寬表的同一記錄‘001’的操作。 在收到增加姓名列的NoSQL請求:
Figure 02_image009
後, 解析模組1022可以確定在該請求中,事件特徵‘put’為增加記錄操作,並且涉及的屬性特徵為在列族下增加的一個列字段name。同時該NoSQL請求還包括值特徵,在本例中為列字段‘name’對應的字段值‘tom’。在解析出該請求後,解析模組1022產生用於存取關係資料表的存取請求SQL_Access,以在資料表中增加一條記錄,作為一個示例,該SQL_Access請求為:
Figure 02_image011
。 在存取請求SQL_Access中,包括的事件特徵為已經轉譯為符合SQL語言規範的‘insert’,並且是按照所創建的關係表的各字段的順序‘ID’、‘CF1’、‘Value’分別對這些字段賦值以建立新的記錄,即賦值順序代表了關係表中的各字段,即屬性特徵。同時,在存取請求SQL_Access中還包括了數值特徵,該數值特徵除了存取請求NoSQL_Access中的數值特徵‘001’、‘Tom’之外,解析模組1022還利用NoSQL_Access中屬性特徵‘name’形成了新的數值特徵 ‘name’,作為字段值賦與關係表hbase_100$CF1中的CF1字段。 類似地,對於收到的增加性別的列請求:
Figure 02_image013
, 解析模組1022可以確定在該請求中,事件特徵‘put’為增加記錄操作,並且涉及的屬性特徵為在列族下增加了一個列字段‘gender’,並且對應的字段值為man。在解析出該請求後,解析模組1022產生用於存取關係資料表的存取請求SQL_Access,以在資料表中增加另一條記錄,作為一個示例,該SQL_Access請求為:
Figure 02_image015
在上面實施例中,轉譯模組102是將NoSQL存取請求轉譯為符合標準SQL語言的SQL_Access存取請求為例予以說明的。如前所述,關係資料庫101不但支援標準SQL語言透過SQL層對關係資料表的存取,還提供底層API介面函數而直接對關係資料表的存取。因此,按照本發明的另一實施例,轉譯模組102在接收到來處客戶端的NoSQL存取請求後,可以將NoSQL存取請求即NoSQL_Access轉譯為關係資料庫101所支援的API函數呼叫請求形式的Relation_Access,在本例中以API_Access來表示Relation_Access,從而繞過SQL層以對關係資料表直接存取。例如,如上例,在接收到NoSQL標準語言命令put 'hbase_100', '001','CF1:name','Tom'的寬表存取請求以增加寬表資料時,經轉譯模組102解析處理後,產生如下關係表模型的API_Access:
Figure 02_image017
轉譯模組102透過第二介面1023將上述函數呼叫形式的API_Access發送到關係資料庫101,關係資料庫101透過執行該API_Access而實現對關係資料表"hbase_100$CF1"的直接操作。 此外,在上面實施例中,NoSQL存取請求即NoSQL_Access是以NoSQL標準語言命令形式說明的,如前所述,非結構化查詢語言規範還包括NoSQL資料庫所支援的API,根據本發明的轉譯模組102同樣可以對客戶端發出的NoSQL資料庫所支援的API形式的存取請求進行解析,並轉化為關係資料庫所支援的存取規範即SQL標準語言或API。同樣以上例中的增加寬表資料為例,除了標準NoSQL語言命令:
Figure 02_image019
之外, 客戶端還可以選擇發出寬表API呼叫格式的存取請求NoSQL_Access,即
Figure 02_image021
轉譯模組102在接收該寬表函數API呼叫格式的存取請求NoSQL_Access後,可以選擇將共轉譯成符合SQL標準語言規範的請求SQL_Access,即,
Figure 02_image023
。 還可以如上例,將其轉譯關係資料庫所支援的API函數呼叫格式的存取請求API_Access,即:
Figure 02_image025
。 這裡需要指出的是,轉譯模組102在接收到來自客戶端的NoSQL_Access時,具體地轉譯成SQL標準語言還是函數API呼叫形式的存取請求,則取決於當前NoSQL_Access所要執行的具體操作或事件,例如可以將建立寬表的NoSQL_Access請求轉化為標準SQL語言形式的SQL_Access,而將其它寬表操作請求轉譯為API_Access請求。可選地,也可以將來自客戶端的所有NoSQL_Access統一轉化為API_Access或SQL_Access。為便於描述,在以下說明中,仍以SQL_Access為例。 在上面實施例中,針對的寬表中僅包含一個列族的情況,對於包含二個或以上的情況,則按照本發明的實施例,則分別為每個列族建立單獨的關係表。圖3A示意性示出了具有二個列族的寬表hbase_101,其在hbase_100的基礎上增加了學生學習成績的列族CF2。為此,當轉譯模組1022透過第一介面1021接到客戶端的建立如圖3A所示的寬表的請求NoSQL_Access後,對該請求進行解析處理,例如,仍以Hbase資料庫語言為例,該NoSQL_Access請求為:
Figure 02_image027
解析模組1022從該NoSQL_Access請求中可以確定本請求是一個建立寬表事件,並且獲取了屬性特徵,即包括寬表名'hbase_101',rowkey名‘ID’以及該寬表下具有二個列族且列族名為'CF1'與'CF2'。為此,根據這些特徵,解析模組創建符合SQL語言規範的二個SQL_Access請求,其中第一個SQL_Access請求為建立hbase_101$CF1表:
Figure 02_image029
。 與參照圖2A的寬表建立的關係表相同,依據該第一個SQL_Access請求,在關係資料庫101中建立的關係表hbase_101$CF1仍為如圖2B所示的表。 第二個SQL_Access請求為建立hbase_101$CF2表,如下:
Figure 02_image031
依據該第二個SQL_Access請求,在關係資料庫101中建立的關係表hbase_101$CF2如圖3B所示。如前所述,寬表hbase_101與關係資料表hbase_101$CF1與hbase_101$CF2的關聯作為元資訊儲存在關係資料庫101中,供轉譯模組102存取。 由此在資料庫101中建立二個關係資料表hbase_101$CF1與hbase_101$CF2,用於儲存擬建立的寬表hbase_101資料。透過轉譯模組1022,可以將客戶端對寬表hbase_101的操作選擇性地轉化為對關係表hbase_101$CF1與 hbase_101$CF2中的一個或二者的操作。通常向寬表中添加資料或修改資料時,由於均是一列一列的操作,因此,來自客戶端的對寬表的每行每列的操作,轉化為對其中一個關係資料表中同一rowkey下的一行或多行的操作。 例如,對於資料庫中經常應用的寬表查詢操作,轉譯模組1022可以將關係資料表提供的響應資料從關係資料表類型轉化為寬表模式,並提供給客戶端,因此所建立的關係表對於用戶來說是透明的,用戶可以看到是虛擬的‘寬表’查詢輸出。以下以對上例中寬表hbase_101的資料查詢為例予以說明。 在用戶創建了寬表'hbase_101'後,當希望獲取序號為‘001’的學生資訊時,可發送如下NoSQL_Access請求:
Figure 02_image033
轉譯模組102透過第一介面1021接收到該請求後,由解析模組1022確定出本次請求的事件是查詢(get),並且所包含的屬性特徵包括:表名'hbase_101'以及行鍵字段ID (ID=001),由此轉譯模組102可基於事先儲存的元資訊(或者基於預定的命令規則),確定寬表'hbase_101'在資料庫101中儲存二個關係資料表即‘hbase_101$CF1’與‘hbase_101$CF1’,因此,解析模組將該NoSQL_Access請求轉譯為用於查詢資料表hbase_101$CF1與hbase_101$CF2的SQL_Access請求,在標準SQL語言下,例如該請求可以是:
Figure 02_image035
。 如示例所示,該SQL_Access請求符合SQL語言格式,其中事件特徵已經譯為select,並且指定的新的屬性特徵是名稱為hbase_101$CF2和hbase_101$CF2的關係表,並且按照行鍵字段ID查詢。 關係資料庫101接收到上述二個請求後,分別響應select命令查詢出同一ID=001下的姓名與性別資訊以及語言與數學成績資訊,並且作為對SQL_Access請求的響應而輸出這些查詢結果。 在第二介面1023從關係資料庫101接收響應於上述二個查詢請求的響應結果後,解析模組1022按同一ID值即寬表的rowkey組織這二個查詢結果,其中基於發出該查詢結果的關係表名(hbase_101$CF2或hbase_101$CF1)、查詢結果中包含的屬於特徵CF1、CF2與數值特徵gender、name、chinese、math以及man, Tom, 80, 81,產生符合寬表格式的查詢結果,並作為NoSQL查詢請求的響應透過第一介面1021發送給客戶端,從而在用戶的客戶端上以寬表格式顯示查詢結果:
Figure 02_image037
這裡需要指出的是,這裡所示的顯示結果僅僅是說明目的,而忽略了其它一些顯示資訊。 按照本發明一個或多個實施例,正是借助於關係資料表來實現寬表資料的儲存,因此,可以在寬表應用上體現出關係資料庫的優點。例如,由於寬表的優點在於可以實現對資料的快速查詢與存取,並且便於資料分析,透過一張記錄就可以看到該記錄用戶的全部資訊;但在資料的管理方面則沒有關係資料庫強大。而按照本發明,透過對寬表資料使用關係資料庫儲存,可以利用關係資料庫的原則對所儲存的資料進行以下處理。 一、根據業務需求,選擇分區方式。 (1)Key分區 如果用戶業務中很少發生全範圍掃描Scan事件,或者說只需要查詢事件get,那麼按照一個實施例,可以對所建立的關係表使用Key分區,從而使得資料分佈均勻不會出現資料傾斜和熱點。例如:可以對創建的關係表Ttable1$Family1執行如下分區:
Figure 02_image039
其中, +K列儲存Ttable1$Family1表的rowkey +Q對應於寬表table1中的列族名family1,用於按列儲存在列族family1下各列字段(column qualifier)的內容或名稱; +T代表時間維度,按列儲存時間戳記版本timestamp,一般為自某一時間點(通常January 1, 1970 UTC)後的毫秒; +V列儲存對應於各列字段(column qualifier)的值value K, Q, T組成關係表的聯合主鍵,在關係表內唯一,其中T字段逆序(如果T字段在關係表中是增序排列的話,則儲存為負數),這樣可以最佳化讀取最新資料的操作(需最新資料排列在最前面)。 (2)虛擬列結合Key分區 如果業務中必須使用Scan,但是掃描範圍總是rowkey的一個定長前綴(前綴掃描),可以在K上定義一個虛擬列,然後對這個虛擬列進行Key分區。透過這樣的方式,可以保證每次掃描只涉及一個分區。除非前綴資料有傾斜,這種分區方式也有利於避免熱點。例如:
Figure 02_image041
其中,函數substring(K, 1, 4)表示取K(即寬表中的rowkey)的前4個字節為子串,這裡的“4”僅是示例性的,可以根據業務rowkey特點,替換為相應的前綴長度。 (3)Range分區 如果業務不僅需要前綴掃描和get,那麼必須建立range分區。如果底層關係資料庫不支援自動range管理,則需要預先對rowkey的分佈進行估計或採樣,選定range分區的分割點。如果預估不合理,這種分區方式很容易造成資料傾斜和熱點,因儘量避免採用這種方式。例如:
Figure 02_image043
。 這裡需要指出的是,K,Q,T,V等關係表的列名以及列類型的具體化都是為了方便敘述方案,實際上可以是任何相似的列名和列類型(例如varbinary類型可以是任何字符串類型,bigint類型可以是任何能用來表達版本資料的類型),表的分區方式,主鍵定義的排序方式,都可以有其他選擇。這些變化都應該視為本方案相同的方案,受到保護。 二、多列簇支援 在Non_SQL資料庫中,有些寬表系統支援多列簇(column family),把同一行的不同列進行劃分,屬於同一列簇的資料在底層儲存的時候聚集在一起,從而在某些情況下最佳化讀取資料時候的I/O開銷。­為了進一步最佳化性能,需要降低分散式事務的開銷,在為寬表創建關係資料表時,可以把同一個寬表的多個列簇聚集在相同的服務器上,可以避免多機事務。例如假設一個寬表:Table1有兩個列簇Family1和Family2,則定義
Figure 02_image045
。 在上面實施例中,轉譯模組102是以關係資料庫101的介面形式與資料庫101整合在一起。而在本發明的另一實施例中,轉譯模組102也可以位於客戶端或者雲端。例如,用戶透過存取雲端,實現寬表資料在遠程關係資料庫上的儲存與存取。因此,該轉譯模組102既可以作一個單獨中間件存在,也可以作為資料庫的一部分而存在。 不難理解,這裡針對寬表模型建立的關係資料表是符合標準關係資料規範的,因此關係資料庫101支援關係資料庫客戶端對資料庫的直接查詢與存取,因此根據本發明實施例的儲存裝置實現利用NoSQL和SQL交互操作同一份資料而和諧共處。 圖4示出了根據本發明一個實施例的存取關係資料庫的方法流程圖,其中所述關係資料庫可儲存與非關係資料模型對應的關係表模型的關係資料表,其中所述非關係資料模型符合非結構化查詢語言(NoSQL)規範。 如圖所示,在步驟402,接收來自客戶端的符合所述非結構化查詢語言(NoSQL)規範的NoSQL存取請求。在步驟404,將NoSQL存取請求轉譯為符合關係資料庫支援的存取規範的Relation_Access存取請求,以實現對所述關係資料表的存取。在本發明的一個實施例中,在非關係資料模型為寬表模型的情況下,NoSQL存取請求包括與寬表有關的第一事件特徵以及第一屬性特徵,其中該第一屬性特徵包括所述寬表的列族特徵。由此,當在步驟404接收到NoSQL存取請求後,首先對NoSQL存取請求進行解析以產生Relation_Access存取請求,其中Relation_Access存取請求包括與第一事件特徵對應的第二事件特徵以及與所述第一屬性特徵對應的第二屬性特徵,其中第二屬性特徵包括:與所述寬表的列族對應的列族字段,用於儲存所述寬表中的列族下的各列字段的名稱;資料值字段,用於儲存所述寬表中的列族下的各列字段的字段值。此外,在第一屬性特徵還包括寬表模型的其它字段情況下,這些其它字段及其策略同樣複製到SQL存取請求中。 在產生了Relation_Access存取請求後,在步驟406,將其轉發至所述關係資料庫,從而按照所請求的事件特徵實現對關係資料庫的操作。 如果客戶端發送的NoSQL請求需要響應結果,則在步驟408,從關係資料庫接收執行Relation_Access請求的響應結果,隨後在步驟410,對返回的響應結果按照寬表模式進行格式轉換,這種轉換包括將關係資料庫中按行顯示的結果轉換為寬表中按列顯示,以及在從多個關係表獲得響應的情況下,組合不同的響應結果並轉換為寬表模式。然後在步驟412將組合結果發送給客戶端。 這裡需要指出的是,雖然結合上述較佳實施例描述了本發明,但顯然本發明不限於此。技術人員還將認識到的是,結合本文揭示內容描述的各種說明性的邏輯方塊、模組和方法步驟可以實現為電子硬體、電腦軟體或二者的組合。以軟體實現為例,作為一個邏輯意義上的設備,是透過處理器將非揮發性記憶體中對應的電腦程式指令讀取記憶體中運行形成的。從硬體層面而言,如圖5所示,在一種實現方式中,根據本發明的轉譯模組可以由一個或多個計算設備實現,例如計算設備是一個客戶端設備。需要注意的是,除了圖5所示的處理器、記憶體、網路介面以及非揮發性記憶體之外,實施例中實現轉譯功能的計算設備通常根據其實際功能 ,還可以包括其它硬體,對此不再贅述。 本發明另一實施例提供的機器可讀媒體上儲存有機器可讀指令,該機器可讀指令在被電腦執行時,使電腦執行本文揭示的前述的任一種方法。在這種情況下,從機器可讀媒體讀取的程式碼本身可實現上述實施例中任何一項實施例的功能,因此機器可讀碼和儲存機器可讀碼的機器可讀媒體構成了本發明的一部分。 需要說明的是,上述各流程和設備的結構圖中不是所有的步驟或模組都是必須的,可以根據實際的需要忽略某些步驟或模組。各步驟的執行順序不是固定的,可以根據需要進行調整。上述各實施例中描述的系統結構可以是物理結構,也可以是邏輯結構,即,有些模組可能由同一物理實體實現,或者,有些模組可能分由多個物理實體實現,或者,可以由多個獨立設備中的某些部件共同實現。 上文透過圖式和較佳實施例對本發明進行了詳細展示和說明,然而本發明不限於這些已揭示的實施例,基與上述多個實施例本領域技術人員可以知曉,可以組合上述不同實施例中的碼審核手段得到本發明更多的實施例,這些實施例也在本發明的保護範圍之內。
100:儲存裝置 101:關係資料庫 102:轉譯模組 200:用戶客戶端 300:其它客戶端 1021:第一介面 1022:解析模組 1023:第二介面 402、404、406、408、410、412:步驟
圖1示出可提供非關係資料庫類型存取的儲存裝置100的示意圖; 圖2A和2B示出根據本發明一個示例性的寬表與關係資料表的示意圖; 圖3A和3B示出根據本發明另一個示例的寬表與關係資料表的示意圖; 圖4示出了根據本發明一個實施例的存取資料庫的方法流程圖; 圖5示出了根據本發明一個實施例的計算設備的示意圖。
100:儲存裝置
101:關係資料庫
102:轉譯模組
200:用戶客戶端
300:其它客戶端
1021:第一介面
1022:解析模組
1023:第二介面

Claims (23)

  1. 一種資料儲存裝置,包括:關係資料庫,用於儲存與非關係資料模型對應的關係表模型的關係資料表,其中所述非關係資料模型符合非結構化查詢語言(NoSQL)規範;轉譯模組,用於將符合所述非結構化查詢語言(NoSQL)規範的第一存取請求轉譯為符合所述關係表模型存取規範的第二存取請求,以實現對所述關係資料表的存取,其中所述非關係資料模型為寬表模型,所述轉譯模組包括:第一介面,用於接收所述第一存取請求,所述第一存取請求包括與寬表有關的第一事件特徵以及第一屬性特徵,其中該第一屬性特徵包括所述寬表的列族特徵;解析模組,用於對所述第一存取請求進行解析以產生所述第二存取請求,其中所述第二存取請求包括與所述第一事件特徵對應的第二事件特徵以及與所述第一屬性特徵對應的第二屬性特徵,其中第二屬性特徵包括:與所述寬表的列族對應的列族字段,用於儲存所述寬表中的列族下的各列字段的名稱;數值字段,用於儲存所述寬表中的列族下的各列字段的字段值;第二介面,用於將所述第二存取請求轉發至所述關 係資料庫;其中所述第一存取請求還包括第一數值特徵,該第一數值特徵包括所述寬表中的列族下的各列字段的字段值;其中所述第一屬性特徵包括所述寬表模型的行鍵特徵與時間維度特徵,所述第二屬性特徵包括用於儲存所述寬表模型的行鍵的行鍵字段和用於儲存所述寬表模型的時間維度值的時間字段;其中所述關係資料庫以所述行鍵字段、列族字段以及時間字段作為組合索引主鍵。
  2. 如申請專利範圍第1項的資料儲存裝置,其中所述第一屬性特徵包括所述寬表模型的第一列族與第二列族特徵,其中所述解析模組基於所述第一存取請求產生分別與所述第一列族與第二列族對應的二個第二存取請求;所述第二介面將所述至少二個第二存取請求轉發至所述關係資料庫,以存取與所述第一列族與第二列族對應的第一關係表與第二關係表。
  3. 如申請專利範圍第1項的資料儲存裝置,其中所述第二介面接收來自所述關係資料庫對所述第二存取請求的響應,所述解析模組按照所述非關係資料模型將所述響應轉譯成對所述第一請求的響應並透過所述第一介面發送。
  4. 如申請專利範圍第1項的資料儲存裝置,其中所述第一事件特徵包括對所述寬表的每行記錄的創建以及修改和讀取;所述第二事件特徵包括對所述關係資料表的創建以及與所述多個列字段的數量對應的多行記錄的修改和讀取。
  5. 如申請專利範圍第4項的資料儲存裝置,其中所述關係資料庫按照所述行鍵字段對所述關係資料表進行分區。
  6. 如申請專利範圍第4項的資料儲存裝置,其中所述關係資料庫按照所述行鍵的前綴對所述關係資料表進行分區。
  7. 如申請專利範圍第4項的資料儲存裝置,其中所述關係資料庫按照對所述行鍵的分佈進行估計而確定的分割點來對所述關係資料表進行分區。
  8. 如申請專利範圍第2項的資料儲存裝置,其中所述第一與第二關係資料表相關聯地聚集在所述儲存裝置上。
  9. 如申請專利範圍第4項的資料儲存裝置,還包括另一轉譯模組,用於將與另一個資料儲存模型相關的存取請求轉譯為符合所述關係表模型存取規範的存取請求,以實現對所述關係資料表的存取。
  10. 一種用於關係資料庫的存取方法,其中所述關係資料庫可儲存與非關係資料模型對應的關係表模型的關係資料表,其中所述非關係資料模型符合非結構化查詢語言(NoSQL)規範,該方法包括:接收來自客戶端的符合所述非結構化查詢語言(NoSQL)規範的第一存取請求;將所述第一存取請求轉譯為符合所述關係表模型存取規範的第二存取請求,以實現對所述關係資料表的存取;將所述第二存取請求轉發至所述關係資料庫;其中所述非關係資料模型為寬表模型,所述第一存取請求包括與寬表有關的第一事件特徵以及第一屬性特徵,其中該第一屬性特徵包括所述寬表的列族特徵;其中所述將所述第一存取請求轉譯為符合所述關係表模型存取規範的第二存取請求包括:對所述第一存取請求進行解析以產生所述第二存取請求,其中所述第二存取請求包括與所述第一事件特徵對應的第二事件特徵以及與所述第一屬性特徵對應的第二屬性特徵,其中第二屬性特徵包括:與所述寬表的列族對應的列族字段,用於儲存所述寬表中的列族下的各列字段的名稱;資料值字段,用於儲存所述寬表中的列族下的各列字段的字段值;其中所述第一存取請求還包括第一數值特徵,該第一 數值特徵包括所述寬表中的列族下的各列字段的字段值;其中所述第一屬性特徵包括所述寬表模型的行鍵特徵與時間維度特徵,所述第二屬性特徵包括用於儲存所述寬表模型的行鍵的行鍵字段和用於儲存所述寬表模型的時間維度值的時間字段;其中所述關係資料庫以所述行鍵字段、列族字段以及時間字段作為組合索引主鍵。
  11. 如申請專利範圍第10項的存取方法,其中所述第一屬性特徵包括所述寬表模型的第一列族與第二列族特徵,其中所述將所述第一存取請求轉譯為符合所述關係表模型存取規範的第二存取請求進一步包括:基於所述第一存取請求產生分別與所述第一列族與第二列族對應的二個第二存取請求;其中所述至少二個第二存取請求被轉發至所述關係資料庫,以分別存取與所述第一列族與第二列族對應的第一關係表與第二關係表。
  12. 如申請專利範圍第10項的存取方法,進一步包括:接收來自所述關係資料庫對所述第二存取請求的響應,按照所述非關係資料模型將所述響應轉譯成對所述第一存取請求的響應併發送給所述客戶端。
  13. 如申請專利範圍第10項的存取方法,其中所述第一事件特徵包括對所述寬表的每行記錄的創建以及修改和讀取;所述第二事件特徵包括對所述關係資料表的創建以及與所述多個列字段的數量對應的多行記錄的修改和讀取。
  14. 如申請專利範圍第13項的存取方法,進一步包括按照所述行鍵字段對所述關係資料表進行分區。
  15. 如申請專利範圍第13項的存取方法,進一步包括按照所述行鍵的前綴對所述關係資料表進行分區。
  16. 如申請專利範圍第13項的存取方法,進一步包括按照對所述行鍵的分佈進行估計而確定的分割點來對所述關係資料表進行分區。
  17. 如申請專利範圍第11項的存取方法,其中所述第一與第二關係資料表相關聯地聚集在所述儲存裝置上。
  18. 一種可提供關係資料庫存取的轉譯裝置,其中所述關係資料庫用於儲存與寬表模型對應的關係表模型的關係資料表,該轉譯裝置包括:第一介面,用於接收符合非結構化查詢語言(NoSQL)規範的第一存取請求,所述第一存取請求包括與寬表有關 的第一事件特徵以及第一屬性特徵,其中該第一屬性特徵包括所述寬表的列族特徵;解析模組,用於對所述第一存取請求進行解析以產生符合所述關係表模型存取規範的第二存取請求,其中所述第二存取請求包括與所述第一事件特徵對應的第二事件特徵以及與所述第一屬性特徵對應的第二屬性特徵,其中第二屬性特徵包括:與所述寬表的列族對應的列族字段,用於儲存所述寬表中的列族下的各列字段的名稱;數值字段,用於儲存所述寬表中的列族下的各列字段的字段值;第二介面,用於將所述第二存取請求轉發至所述關係資料庫,以實現對所述關係資料表的存取;其中所述第一存取請求還包括第一數值特徵,該第一數值特徵包括所述寬表中的列族下的各列字段的字段值;其中所述第一屬性特徵包括所述寬表模型的行鍵特徵與時間維度特徵,所述第二屬性特徵包括用於儲存所述寬表模型的行鍵的行鍵字段和用於儲存所述寬表模型的時間維度值的時間字段;其中所述關係資料庫以所述行鍵字段、列族字段以及時間字段作為組合索引主鍵。
  19. 如申請專利範圍第18項的轉譯裝置,其中所述第一屬性特徵包括所述寬表模型的第一列族與第二列族特徵, 其中所述解析模組基於所述第一存取請求產生分別與所述第一列族與第二列族對應的二個第二存取請求;所述第二介面將所述至少二個第二存取請求轉發至所述關係資料庫,以存取與所述第一列族與第二列族對應的第一關係表與第二關係表。
  20. 如申請專利範圍第18項之一的轉譯裝置,其中所述第二介面接收來自所述關係資料庫對所述第二存取請求的響應,所述解析模組按照所述非關係資料模型將所述響應轉譯成對所述第一請求的響應並透過所述第一介面發送。
  21. 一種資料儲存裝置,包括:關係資料庫,用於儲存與非關係資料模型對應的關係表模型的關係資料表,其中所述非關係資料模型符合非結構化查詢語言(NoSQL)規範;用於執行申請專利範圍第10至13項之一的方法的轉譯模組。
  22. 一種電腦可讀媒體,其上儲存有碼,其中所述碼在由機器執行時,使得所述機器執行如申請專利範圍第1至9項所述的方法中的任何一個。
  23. 一種計算設備,包括:儲存有碼的記憶體, 處理器,配置為執行所述碼以實現如申請專利範圍第1至9項之一的方法。
TW108131216A 2019-02-02 2019-08-30 資料儲存裝置、轉譯裝置及資料庫存取方法 TWI710919B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910107394.3A CN110032604B (zh) 2019-02-02 2019-02-02 数据存储装置、转译装置及数据库访问方法
CN201910107394.3 2019-02-02

Publications (2)

Publication Number Publication Date
TW202032386A TW202032386A (zh) 2020-09-01
TWI710919B true TWI710919B (zh) 2020-11-21

Family

ID=67235636

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108131216A TWI710919B (zh) 2019-02-02 2019-08-30 資料儲存裝置、轉譯裝置及資料庫存取方法

Country Status (5)

Country Link
US (3) US10853363B2 (zh)
EP (1) EP3857400B1 (zh)
CN (1) CN110032604B (zh)
TW (1) TWI710919B (zh)
WO (1) WO2020160265A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110032604B (zh) 2019-02-02 2021-12-07 北京奥星贝斯科技有限公司 数据存储装置、转译装置及数据库访问方法
US11481391B1 (en) * 2019-11-25 2022-10-25 Amazon Technologies, Inc. Query language operations using a scalable key-item data store
JP7458259B2 (ja) * 2020-07-15 2024-03-29 株式会社日立製作所 データ管理装置及びデータ管理方法
CN111984745B (zh) * 2020-08-18 2024-04-16 平安国际智慧城市科技股份有限公司 数据库字段动态扩展方法、装置、设备及存储介质
CN112347104B (zh) * 2020-11-06 2023-09-29 中国人民大学 一种基于深度强化学习的列存储布局优化方法
CN112395294B (zh) * 2020-11-27 2023-07-18 浪潮云信息技术股份公司 一种数据库数据管理方法及系统、数据库
CN112434069A (zh) * 2020-12-01 2021-03-02 天津市鑫联兴科技有限公司 一种多源异构数据库访问适配方法及适配器
CN112395360B (zh) * 2020-12-01 2023-06-23 中国联合网络通信集团有限公司 基于非关系型数据库的数据同步方法、设备、装置和介质
CN112765169A (zh) * 2021-01-11 2021-05-07 北京众享比特科技有限公司 数据处理方法、装置、设备及存储介质
CN112910980B (zh) * 2021-01-27 2022-11-15 中国银联股份有限公司 一种数据库访问系统和方法
CN113254519B (zh) * 2021-05-28 2021-10-08 北京奇岱松科技有限公司 多源异构数据库的访问方法、装置、设备和存储介质
US20230138283A1 (en) * 2021-10-29 2023-05-04 Sap Se Transformation of property-value table to facilitate search
CN115599790B (zh) * 2022-11-10 2024-03-15 星环信息科技(上海)股份有限公司 一种数据存储系统、数据处理方法、电子设备和存储介质
CN116821139B (zh) * 2023-08-25 2024-01-23 南方电网数字电网研究院有限公司 基于分布式数据库的分区表设计的混合负载方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103744952A (zh) * 2014-01-02 2014-04-23 北京集奥聚合网络技术有限公司 NoSQL数据库多表特性的实现方法及系统
TW201530328A (zh) * 2014-01-20 2015-08-01 Alibaba Group Services Ltd 爲半結構化資料構建NoSQL資料庫索引的方法及裝置
CN106326309A (zh) * 2015-07-03 2017-01-11 阿里巴巴集团控股有限公司 一种数据查询方法和装置
US20180267969A1 (en) * 2010-09-28 2018-09-20 Redis Labs Ltd. Systems, methods, and media for managing an in-memory nosql database

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7567968B2 (en) * 2005-01-31 2009-07-28 Microsoft Corporation Integration of a non-relational query language with a relational data store
US8375044B2 (en) * 2008-06-24 2013-02-12 Microsoft Corporation Query processing pipelines with single-item and multiple-item query operators
CN103514201B (zh) * 2012-06-27 2017-05-03 阿里巴巴集团控股有限公司 一种非关系型数据库的数据查询方法和装置
CN103823815B (zh) * 2012-11-19 2017-05-17 中国联合网络通信集团有限公司 服务器及数据库访问方法
US9189531B2 (en) * 2012-11-30 2015-11-17 Orbis Technologies, Inc. Ontology harmonization and mediation systems and methods
US20140214897A1 (en) * 2013-01-31 2014-07-31 Yuankai Zhu SYSTEMS AND METHODS FOR ACCESSING A NoSQL DATABASE USING BUSINESS INTELLIGENCE TOOLS
US10176235B2 (en) * 2013-11-15 2019-01-08 Salesforce.Com, Inc. Techniques for data retention
US20150293764A1 (en) * 2014-04-10 2015-10-15 Omprakash VISVANATHAN Method and system to compose and execute business rules
US9430554B2 (en) * 2014-08-28 2016-08-30 Weebly, Inc. Object-relational mapping based on virtual columns
US10176153B1 (en) * 2014-09-25 2019-01-08 Amazon Technologies, Inc. Generating custom markup content to deter robots
CN106294499A (zh) * 2015-06-09 2017-01-04 阿里巴巴集团控股有限公司 一种数据库数据查询方法和设备
CN106326248B (zh) * 2015-06-23 2019-08-27 阿里巴巴集团控股有限公司 数据库数据的存储方法和装置
US9607063B1 (en) * 2015-12-10 2017-03-28 International Business Machines Corporation NoSQL relational database (RDB) data movement
CN106897322B (zh) * 2015-12-21 2019-10-29 中国移动通信集团山西有限公司 一种数据库和文件系统的访问方法和装置
CN105938479B (zh) * 2016-03-31 2019-10-22 华南师范大学 一种关系表与非关系表的结构转换方法
CN105681477B (zh) * 2016-04-08 2018-11-16 四川师范大学 一种数据访问方法和一种服务器
CN105868411B (zh) * 2016-04-27 2019-07-19 国网上海市电力公司 一种非关系型与关系型数据库一体化数据查询方法与系统
CN106126644A (zh) * 2016-06-22 2016-11-16 中国南方电网有限责任公司 基于NoSQL数据库的录波文件存储方法
US10838940B1 (en) * 2016-08-11 2020-11-17 MuleSoft, Inc. Balanced key range based retrieval of key-value database
CN106383850A (zh) * 2016-08-31 2017-02-08 东软集团股份有限公司 数据处理方法及装置
CN107169033B (zh) * 2017-04-17 2020-03-31 东北大学 基于数据模式转换和并行框架的关系数据查询优化方法
CN107193968A (zh) * 2017-05-25 2017-09-22 努比亚技术有限公司 一种位置信息存储的方法、装置及计算机可读存储介质
US10216823B2 (en) * 2017-05-31 2019-02-26 HarperDB, Inc. Systems, methods, and apparatus for hierarchical database
CN108932313B (zh) * 2018-06-20 2021-06-04 斑马网络技术有限公司 数据处理方法、装置、电子设备及存储介质
CN110032604B (zh) 2019-02-02 2021-12-07 北京奥星贝斯科技有限公司 数据存储装置、转译装置及数据库访问方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180267969A1 (en) * 2010-09-28 2018-09-20 Redis Labs Ltd. Systems, methods, and media for managing an in-memory nosql database
CN103744952A (zh) * 2014-01-02 2014-04-23 北京集奥聚合网络技术有限公司 NoSQL数据库多表特性的实现方法及系统
TW201530328A (zh) * 2014-01-20 2015-08-01 Alibaba Group Services Ltd 爲半結構化資料構建NoSQL資料庫索引的方法及裝置
CN106326309A (zh) * 2015-07-03 2017-01-11 阿里巴巴集团控股有限公司 一种数据查询方法和装置

Also Published As

Publication number Publication date
US20220138197A1 (en) 2022-05-05
CN110032604B (zh) 2021-12-07
CN110032604A (zh) 2019-07-19
US20200250190A1 (en) 2020-08-06
US10853363B2 (en) 2020-12-01
US20210081416A1 (en) 2021-03-18
US11797533B2 (en) 2023-10-24
TW202032386A (zh) 2020-09-01
EP3857400A1 (en) 2021-08-04
EP3857400B1 (en) 2023-05-24
WO2020160265A1 (en) 2020-08-06
US11226961B2 (en) 2022-01-18

Similar Documents

Publication Publication Date Title
TWI710919B (zh) 資料儲存裝置、轉譯裝置及資料庫存取方法
US10831753B2 (en) Query plan generation and execution in a relational database management system with a temporal-relational database
US11475034B2 (en) Schemaless to relational representation conversion
CN107402988B (zh) 一种分布式NewSQL数据库系统和半结构化数据查询方法
CN108369598B (zh) 对于半结构化数据的列状数据布置
EP3828723B1 (en) Transparent discovery of semi-structured data schema
WO2020228801A1 (zh) 一种多语言融合查询方法及多模数据库系统
JP3851493B2 (ja) データベース検索方法及びデータベース検索システム並びにデータベース検索プログラムを記録したコンピュータ読み取り可能な記録媒体
US7421443B2 (en) Filestream data storage attribute
US20080281784A1 (en) Query handling in databases with replicated data
WO2016000156A1 (en) Managing data with flexible schema
KR20060048418A (ko) 사용자 정의 형식의 지정 멤버의 지연 인출을 위한시스템과 방법
CN103810219A (zh) 一种基于行存储数据库的数据处理方法及装置
JP3786233B2 (ja) 情報検索方法および情報検索システム
US20050060307A1 (en) System, method, and service for datatype caching, resolving, and escalating an SQL template with references
KR100984976B1 (ko) 이질적인 2차원 테이블의 데이터를 통합하여 검색하는 방법
EP1452980A2 (en) System and method for generating a request for information about selected objects
JP2022018435A (ja) データ管理装置及びデータ管理方法
JP2002063165A (ja) 情報検索方法および情報検索システムおよび情報検索プログラムおよび情報検索プログラムを記録した記録媒体
CN112732704B (zh) 一种数据处理方法、装置及存储介质
JP2001067369A (ja) 情報検索システム、情報検索方法および情報検索用プログラムを記録した記録媒体
CN112286892B (zh) 后关系型数据库的数据实时同步方法及装置、存储介质、终端
CN113742346A (zh) 资产大数据平台架构优化方法
JPH0582615B2 (zh)
JPH1196187A (ja) マルチメディアファイルサーバ