JP7495269B2 - Data management system and method - Google Patents
Data management system and method Download PDFInfo
- Publication number
- JP7495269B2 JP7495269B2 JP2020075064A JP2020075064A JP7495269B2 JP 7495269 B2 JP7495269 B2 JP 7495269B2 JP 2020075064 A JP2020075064 A JP 2020075064A JP 2020075064 A JP2020075064 A JP 2020075064A JP 7495269 B2 JP7495269 B2 JP 7495269B2
- Authority
- JP
- Japan
- Prior art keywords
- database
- query
- unit
- program
- data management
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000013523 data management Methods 0.000 title claims description 30
- 238000000034 method Methods 0.000 title claims description 27
- 238000012545 processing Methods 0.000 claims description 66
- 238000004458 analytical method Methods 0.000 claims description 24
- 238000010586 diagram Methods 0.000 description 19
- 238000006243 chemical reaction Methods 0.000 description 16
- 230000008707 rearrangement Effects 0.000 description 12
- 238000007726 management method Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000007796 conventional method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、データ管理システムおよびデータ管理方法に関する。 The present invention relates to a data management system and a data management method.
近年のデータベース技術の発展により、従来のようなリレーショナルモデルだけではなく、データ特性に応じて、種々のデータベースモデル(キーバリュー、グラフ等)が使われるようになってきた。一方で、複数のデータベースモデルをそれぞれ別々のデータベースとして扱うことの難しさから、それらを統合的に扱うことのできるマルチモデルデータベースが開発されている。例えば、特許文献1では、インメモリのキーバリューストアに、RDB(Relational Database)に格納されたデータ群の複製を作成し、外部からの問い合わせに対して、可能な限りインメモリのキーバリューストアを用いて対応することで、問い合わせの処理時間の短縮を図っている。
Recent developments in database technology have led to the use of various database models (key-value, graph, etc.) in addition to the traditional relational model, depending on the characteristics of the data. On the other hand, due to the difficulty of treating multiple database models as separate databases, multi-model databases that can handle them in an integrated manner have been developed. For example, in
しかし、既存のデータベース群を用いて運用しているシステムについて、新規のマルチモデルデータベースへと移行することが難しい。処理性能を発揮するためには、データ特性やデータ操作といった問い合わせ内容を考慮して最適なデータベースモデルのデータベースにデータを再配置する必要がある。特許文献1では、このような問い合わせ内容を考慮してデータベースモデルのデータベースにデータを再配置することについて言及されていない。例えば、データベースが保持するテーブルに対するクエリまたはデータベースのスキーマを解析し、リストテーブルや階層テーブル等、辿る操作が多いテーブルはグラフモデルへ配置し、ID等の主キーでしか検索しないデータはキーバリューモデルへ配置し、複数のキーにおける検索や、複雑な検索、結合操作が多いテーブルはリレーショナルモデルへ配置することについては記載されていない。このように、特許文献1では、データ特性やデータ操作といった問い合わせ内容の違いに応じて、配置すべきデータベースを決定し、テーブルに対する問い合わせの処理時間を従来よりも短縮させることについては開示されていない。
However, it is difficult to migrate a system that is operated using a group of existing databases to a new multi-model database. In order to achieve processing performance, it is necessary to rearrange data in a database of an optimal database model taking into account the contents of queries such as data characteristics and data operations.
本発明の一側面は、解析結果から得られる問い合わせ内容の違いに応じて、データを配置すべきデータベースを決定し、データに対する問い合わせの処理時間を従来よりも短縮させることが可能なデータ管理システムおよびデータ管理方法を提供することを目的とする。 One aspect of the present invention aims to provide a data management system and method that can determine the database in which data should be placed depending on differences in the content of queries obtained from analysis results, thereby reducing the processing time for queries on the data compared to conventional methods.
本発明の一態様にかかるデータ管理システムは、既存データベース部が有する第1のデータベースに格納されるテーブルに問い合わせを行う問い合わせプログラムまたは前記第1のデータベースのスキーマを解析する解析部と、前記問い合わせプログラムまたは前記第1のデータベースのスキーマの解析結果に基づいて、前記第1のデータベースに格納されるテーブルを前記第1のデータベース以外の第2のデータベースに配置する配置処理部と、前記第1のデータベースに格納されるテーブルに対する前記問い合わせプログラムの処理時間よりも、前記第2のデータベースに配置した前記テーブルに対する問い合わせプログラムの処理時間のほうが短い場合に、前記配置を前記既存データベース部に反映する配置反映部と、を有することを特徴とするデータ管理システムとして構成される。 A data management system according to one aspect of the present invention is configured as a data management system having an analysis unit that analyzes a query program that queries a table stored in a first database of an existing database unit or a schema of the first database, an arrangement processing unit that arranges a table stored in the first database in a second database other than the first database based on the analysis result of the query program or the schema of the first database, and an arrangement reflection unit that reflects the arrangement in the existing database unit when the processing time of the query program for the table arranged in the second database is shorter than the processing time of the query program for the table stored in the first database.
本発明の一態様によれば、解析結果から得られる問い合わせ内容の違いに応じて、データを配置すべきデータベースを決定し、データに対する問い合わせの処理時間を従来よりも短縮させることができる。 According to one aspect of the present invention, the database in which data should be placed is determined according to the differences in the query content obtained from the analysis results, and the processing time for queries on the data can be reduced compared to conventional methods.
以下、図面を参照して本発明の実施形態を説明する。以下の記載および図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされている。本発明は、他の種々の形態でも実施する事が可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。 Embodiments of the present invention will be described below with reference to the drawings. The following description and drawings are examples for explaining the present invention, and some parts have been omitted or simplified as appropriate for clarity of explanation. The present invention can also be implemented in various other forms. Unless otherwise specified, each component may be singular or plural.
図面において示す各構成要素の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面に開示された位置、大きさ、形状、範囲などに限定されない。 The position, size, shape, range, etc. of each component shown in the drawings may not represent the actual position, size, shape, range, etc., in order to facilitate understanding of the invention. Therefore, the present invention is not necessarily limited to the position, size, shape, range, etc. disclosed in the drawings.
以下の説明では、「テーブル」、「リスト」等の表現にて各種情報を説明することがあるが、各種情報は、これら以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「XXテーブル」、「XXリスト」等を「XX情報」と呼ぶことがある。識別情報について説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いた場合、これらについてはお互いに置換が可能である。 In the following explanation, various types of information may be explained using expressions such as "table" and "list", but the various types of information may be expressed in other data structures. To indicate independence from data structure, "XX table", "XX list", etc. may be referred to as "XX information". When explaining identification information, when expressions such as "identification information", "identifier", "name", "ID", "number", etc. are used, these are interchangeable.
同一あるいは同様な機能を有する構成要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。ただし、これらの複数の構成要素を区別する必要がない場合には、添字を省略して説明する場合がある。 When there are multiple components with the same or similar functions, they may be described using the same reference numerals with different subscripts. However, when there is no need to distinguish between these multiple components, the subscripts may be omitted.
また、以下の説明では、プログラムを実行して行う処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit)、GPU(Graphics Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)および/またはインターフェースデバイス(例えば通信ポート)等を用いながら行うため、処理の主体がプロセッサとされてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノードであってもよい。プログラムを実行して行う処理の主体は、演算部であれば良く、特定の処理を行う専用回路(例えばFPGA(Field-Programmable Gate Array)やASIC(Application Specific Integrated Circuit))を含んでいてもよい。 In addition, the following description may describe processing performed by executing a program, but the program is executed by a processor (e.g., a CPU (Central Processing Unit), a GPU (Graphics Processing Unit)) to perform a specified process using storage resources (e.g., memory) and/or interface devices (e.g., communication ports) as appropriate, so the subject of the processing may be the processor. Similarly, the subject of the processing performed by executing a program may be a controller, device, system, computer, or node having a processor. The subject of the processing performed by executing a program may be a calculation unit, and may include a dedicated circuit (e.g., an FPGA (Field-Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit)) that performs a specific process.
プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサと配布対象のプログラムを記憶する記憶資源を含み、プログラム配布サーバのプロセッサが配布対象のプログラムを他の計算機に配布してもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。 The program may be installed in a device such as a computer from a program source. The program source may be, for example, a program distribution server or a computer-readable storage medium. When the program source is a program distribution server, the program distribution server may include a processor and a storage resource that stores the program to be distributed, and the processor of the program distribution server may distribute the program to be distributed to other computers. Also, in the following description, two or more programs may be realized as one program, and one program may be realized as two or more programs.
以下に本実施の形態にかかる修理支援システムおよび修理支援方法をATMに適用した場合について詳細に説明するが、この例に限らず、様々な装置や機器に適用することができる。 The following provides a detailed explanation of the repair assistance system and repair assistance method according to this embodiment when applied to an ATM, but the system is not limited to this example and can be applied to a variety of devices and equipment.
図1は、本実施例におけるデータ管理装置10の機能構成例を示すブロック図である。図1に示すように、データ管理装置10は、SQL(Structured Query Language)等の問い合わせ形式(第1の問い合わせ形式)でデータベースが保持するテーブルに対して問い合わせを行う問い合わせ入力プログラム(第1の問い合わせプログラム)の入力を受け付ける問い合わせ入力部101と、上記問い合わせ入力プログラムの実行実績や当該プログラムで用いられるデータベースおよびテーブルを管理するデータ配置管理部102と、上記問い合わせ形式を非SQL(Non Structured Query Language)等の上記問い合わせ形式とは異なる問い合わせ形式(第2の問い合わせ形式)のプログラム(第2の問い合わせプログラム)に変換し、変換した上記異なる問い合わせ形式の問い合わせプログラムによりデータベースが保持するテーブルに問い合わせを行い、その結果を出力する問い合わせ形式変換部105と、問い合わせ形式変換部105から出力された上記異なる問い合わせ形式の問い合わせプログラムが問い合わせした結果を、上記異なる問い合わせ形式から上記問い合わせ形式に変換する問い合わせ結果変換部106と、上記問い合わせ形式に変換された問い合わせの結果を、問い合わせ入力プログラムに対する問い合わせ結果として出力する問い合わせ結果出力部111と、を有する。
1 is a block diagram showing an example of the functional configuration of the
データ配置管理部102は、問い合わせ入力部101が受け付けた問い合わせ入力プログラムの実行実績を記憶する実行実績テーブル103と、データ管理装置10に記憶されたテーブルのなかで再配置の試行対象とするテーブルを決定するための試行判定テーブル1031と、実行実績テーブル103の処理時間をテーブルごとに集計した処理時間判定テーブル1032と、試行判定テーブル1031により決定されたテーブルを、当該テーブルを保持するモデルのデータベースから変換されたモデルのデータベースを保持する試行データベース部118と、テーブルとテーブルを保持するモデルのデータベースの対応関係を記憶する配置対応テーブル104とを有する。また、データ管理装置10は、リレーショナルモデルのデータベースから構成される第1種データベース108と、キーバリューモデルのデータベースから構成される第2種データベース109と、グラフモデルのデータベースから構成される第3種データベース110とを記憶するデータベース部107を有する。
The data
また、データ管理装置10は、データ配置管理部102で管理されている問い合わせ入力プログラムの問い合わせ形式や問い合わせ内容を解析する問い合わせ解析部112と、データ配置管理部102で管理されている問い合わせ入力プログラムで用いられるテーブルを保持するモデルのデータベースの構造を解析するデータスキーマ解析部113と、上記再配置の試行対象と決定されたテーブルの再配置を試行するか否かを判定するデータ配置試行判定部114と、データ配置試行判定部114により再配置を試行すると判定されたテーブルの再配置を試行するデータ配置試行部115と、データ配置試行部115により再配置が試行されたテーブルに対する問い合わせを試行する問い合わせ試行部116と、問い合わせ試行部116により再配置が試行されたテーブルに問い合わせが行われたときの処理時間が、再配置が試行される前のテーブルに対する問い合わせを行ったときの平均的な処理時間よりも短い場合に、再配置が試行される前のテーブルを、再配置が試行されたテーブルを保持するモデルのデータベースに反映する処理時間判定部117と、を有する。
The
また、データ管理装置10は、データ配置試行部115により再配置されたデータベースを記憶する試行データベース部118を有する。図1では、一例として、再配置が試行されたテーブルを保持するモデルのデータベースとして、キーバリューモデルのデータベースから構成される第2種データベース119と、グラフモデルのデータベースから構成される第3種データベース120とが記憶されている。
The
データ管理装置10は、例えば、図2(コンピュータの概略図)に示すような、CPU201と、メモリ202と、HDD(Hard Disk Drive)等の外部記憶装置203と、CD(Compact Disk)やDVD(Digital Versatile Disk)等の可搬性を有する記憶媒体208に対して情報を読み書きする読書装置207と、キーボードやマウス等の入力装置206と、ディスプレイ等の出力装置205と、通信ネットワークに接続するためのNIC(Network Interface Card)等の通信装置204と、これらを連結するシステムバス等の内部通信線(システムバスという)209と、を備えた一般的なコンピュータ200により実現できる。
The
例えば、データ管理装置10に記憶されたデータベースやテーブルは、CPU201がメモリ202または外部記憶装置203から読み出して利用することにより実現可能である。また、データ管理装置10が有する問い合わせ入力部101、データ配置管理部102、問い合わせ形式変換部105、問い合わせ結果変換部106、問い合わせ結果出力部111、問い合わせ解析部112、データスキーマ解析部113、データ配置試行判定部114、データ配置試行部115、問い合わせ試行部116、処理時間判定部117は、CPU201が外部記憶装置203に記憶されている所定のプログラムをメモリ202にロードして実行することにより実現可能である。データ管理装置10は、CPU201が入力装置206を動作させて問い合わせ入力部101の入力機能を実現してもよい。データ管理装置10は、CPU201が出力装置205を動作させて問い合わせ結果出力部111の出力機能を実現してもよい。また、データ管理装置10は、CPU201が通信装置204を動作させて通信機能を実現可能な通信部を有していてもよい。
For example, the databases and tables stored in the
上述した所定のプログラムは、読書装置207を介して記憶媒体208から、あるいは、通信装置204を介してネットワークから、外部記憶装置203に記憶(ダウンロード)され、それから、メモリ202上にロードされて、CPU201により実行されるようにしてもよい。また、読書装置207を介して、記憶媒体208から、あるいは通信装置204を介してネットワークから、メモリ202上に直接ロードされ、CPU201により実行されるようにしてもよい。
The above-mentioned predetermined program may be stored (downloaded) in the
以下では、データ管理装置10の各部が、ハードウェアとしては一般的なコンピュータに設けられているが、これらの全部または一部が、クラウドのような1または複数のコンピュータに分散して設けられ、互いに通信することにより同様の機能を実現してもよい。データ管理装置10の各部の動作、保持するデータの例については、フローチャートを用いて説明する。
In the following, each unit of the
図3は、実行実績テーブル103の例を示す図である。図3に示すように、実行実績テーブル103は、問い合わせプログラムを識別するための問い合わせIDと、当該問い合わせIDで識別される問い合わせの具体的な内容である問い合わせとが対応付けて記憶されている。図3では、例えば、問い合わせID「1」~「6」の問い合わせは、「テーブルA」に対して「部品ID」を主キーとした問い合わせが行われたことを示している。後述するように、「部品ID」のようなID等の主キーでの検索が一定数以上多いテーブルは、所定の条件を満たした場合にはキーバリューモデルのデータベースへの配置が試行される。 Figure 3 is a diagram showing an example of the execution record table 103. As shown in Figure 3, the execution record table 103 stores a correspondence between a query ID for identifying a query program and a query that is the specific content of the query identified by the query ID. In Figure 3, for example, queries with query IDs "1" to "6" indicate that queries were made to "Table A" using "Part ID" as the primary key. As will be described later, for tables that have a certain number of searches using a primary key such as an ID like "Part ID", an attempt is made to place them in the key-value model database if they satisfy certain conditions.
また、図3において、問い合わせID「7」の問い合わせは、「WITH RECURSIVE」から始まっており、「UNION ALL」以下に示すように「テーブルB」に対する再帰操作が行われたことを示している。後述するように、リストデータや階層データ等、「WITH RECURSIVE」のような再帰操作をはじめとした辿る操作が一定数以上多いテーブルは、所定の条件を満たした場合にはグラフモデルへの配置が試行される。 In addition, in Figure 3, the query with query ID "7" begins with "WITH RECURSIVE", indicating that a recursive operation was performed on "Table B" as shown below under "UNION ALL". As will be described later, for tables that have a certain number of traversal operations, such as recursive operations like "WITH RECURSIVE", such as list data or hierarchical data, an attempt is made to place them in a graph model if certain conditions are met.
さらに、問い合わせID「8」の問い合わせは、「JOIN」に示すように「テーブルB」と「テーブルC」との結合操作が行われたことを示している。後述するように、少なくとも複数のキーにおける検索や、一定数以上の条件を組み合わせた複雑な検索、結合操作が一定数以上あるテーブルはリレーショナルモデルへの配置が試行される。 Furthermore, the query with query ID "8" indicates that a join operation between "Table B" and "Table C" was performed, as indicated by "JOIN." As will be described later, an attempt is made to place tables in a relational model when there are searches using at least multiple keys, complex searches combining a certain number of conditions, or tables with a certain number of join operations.
図3では、さらに、問い合わせIDで識別された問い合わせプログラムごとに、当該問い合わせの処理時間が記憶されている。例えば、問い合わせID「1」の問い合わせは、0.51秒の処理時間がかかったことを示している。当該処理時間は、データ配置管理部102が、問い合わせ形式変換部105の問い合わせ結果に含まれる処理時間を受け取り、実行実績テーブル103に書き込む。
In FIG. 3, the processing time of each query program identified by the query ID is also stored. For example, the query with query ID "1" takes 0.51 seconds to process. The data
図4は、試行判定テーブル1031を示す図である。図4に示すように、試行判定テーブル1031は、データベースを解析して得られたテーブルのテーブル名および当該テーブルに対するアクセス方法と、当該テーブルの再配置を試行するか否かを判定するための閾値とが対応付けて記憶されている。図4では、例えば、データスキーマ解析部113がデータベースを解析した結果、テーブルAに対する問い合わせは「主キー検索」が60%であり、「再帰検索」が25%であり、「その他」が15%であったことを示している。また、テーブルAの再配置を試行する条件は、アクセス方法のうちのいずれかの方法が「55%」を超えた場合であることを示している。
Figure 4 is a diagram showing the attempt judgment table 1031. As shown in Figure 4, the attempt judgment table 1031 stores the table name and the access method for the table obtained by analyzing the database in association with a threshold value for determining whether or not to attempt to rearrange the table. For example, Figure 4 shows that as a result of the data
また、図4では、テーブルAに対してアクセス方法「主キー検索」が60%となりしきい値を超えているため、テーブルAは、キーバリューモデルのデータベース(第2種データベース119)への再配置が試行される。また、テーブルBに対してアクセス方法「再帰検索」が75%となりしきい値を超えているため、テーブルBは、グラフモデルのデータベース(第3種データベース120)への再配置が試行される。 In addition, in FIG. 4, the access method "primary key search" for table A is 60%, exceeding the threshold, so an attempt is made to relocate table A to a key-value model database (second type database 119). Also, the access method "recursive search" for table B is 75%, exceeding the threshold, so an attempt is made to relocate table B to a graph model database (third type database 120).
図5は、処理時間判定テーブル1032を示す図である。図5に示すように、処理時間判定テーブル1032は、データベースを解析して得られたテーブルのテーブル名と、当該テーブルに対する処理時間の平均値である平均処理時間とが対応付けて記憶されている。図5では、例えば、テーブルAの平均的な処理時間は、0.55秒であったことを示している。問い合わせ解析部112は、実行実績テーブル103の処理時間をテーブルごとに集計してその平均値を算出し、当該平均処理時間に書き込む。
Figure 5 is a diagram showing the processing time determination table 1032. As shown in Figure 5, the processing time determination table 1032 stores the table names obtained by analyzing the database in association with the average processing time, which is the average value of the processing time for the table. Figure 5 shows, for example, that the average processing time for table A was 0.55 seconds. The
図6は、配置対応テーブル104の例を示す図である。図6(a)は、テーブル再配置前の配置対応テーブル104aを示している。また、図6(b)は、テーブル再配置後の配置対応テーブル104bを示している。これらの図に示すように、テーブル再配置前の配置対応テーブル104は、データベース部107に記憶されているテーブルのテーブル名と、当該テーブル名のテーブルが格納されているデータベースのデータベース名と、当該データベース名のデータベースのモデルとが対応付けて記憶されている。図6(a)では、例えば、テーブル名「テーブルC」のテーブルは、データベース名「データベースX」であるリレーショナルモデルのデータベースに格納されていることを示している。また、図6(b)では、例えば、テーブル名「テーブルC」のテーブルが、データベース名「データベースY」のキーバリューモデルのデータベースに再配置され、格納されたことを示している。処理時間判定部117は、問い合わせ解析部112が算出した上記処理時間の平均値と、問い合わせ試行部116が問い合わせを行ったときの処理時間とを比較し、後者が前者よりも短くなっている場合に、テーブルの再配置を反映し、配置対応テーブル104のデータベース名を更新する。
Figure 6 is a diagram showing an example of the arrangement correspondence table 104. Figure 6 (a) shows the arrangement correspondence table 104a before the table rearrangement. Also, Figure 6 (b) shows the arrangement correspondence table 104b after the table rearrangement. As shown in these figures, the arrangement correspondence table 104 before the table rearrangement stores the table name of the table stored in the
図7は、第1種データベースの例を示す図である。図7に示すように、第1種データベース701は、「部品ID」を主キーとしたリレーショナルデータベースが記憶されている。また、図8は、第2種データベースの例を示す図である。図8に示すように、第2種データベース801は、部署ID「1」、部署名「A社」を頂点とするツリー構造のキーバリューデータベースが記憶されている。また、図9は、第3種データベースの例を示す図である。図9に示すように、第3種データベース901は、「社員ID」により識別されるノードを頂点とするグラフデータベースが記憶されている。
Figure 7 is a diagram showing an example of a first type database. As shown in Figure 7, the
図10は、問い合わせ形式変換部105が、SQL形式の問い合わせ入力プログラムから非SQL形式の問い合わせ入力プログラムに変換する一例を示す図である。図10(a)では、SQL形式の問い合わせ入力プログラムをキーバリューモデルに変換したときのクエリの一例、図10(b)では、SQL形式の問い合わせ入力プログラムをグラフモデルに変換したときのクエリの一例を示している。問い合わせ形式変換部105は、SQL形式の問い合わせ入力プログラムから、非SQL形式に変換した問い合わせ入力プログラムによりデータベース部107のデータベースに問い合わせを行う。問い合わせ結果変換部106は、その問い合わせの結果をSQL形式に変換し、問い合わせ結果出力部111が、問い合わせ入力プログラムに対する問い合わせ結果を出力する。
Figure 10 is a diagram showing an example of the query
図11は、本システムで行われる問い合わせプログラム101の実行実績を蓄積する処理(実行実績蓄積処理)の処理手順を示すフローチャートである。実行実績蓄積処理では、まず、問い合わせ入力部101は、問い合わせプログラム101の入力を受け付ける(S1101)。データ配置管理部102は、問い合わせプログラムを解析し、図3に示した実行実績テーブル103に解析した問い合わせプログラムを登録する(S1102)。
Figure 11 is a flowchart showing the procedure for accumulating execution records of the query program 101 (execution record accumulation process) performed in this system. In the execution record accumulation process, the
問い合わせ形式変換部105は、SQL形式の問い合わせ入力プログラムから非SQL形式の問い合わせ入力プログラムに変換して問い合わせを行い、当該問い合わせの処理時間を含む問い合わせの結果を出力する(S1103)。問い合わせ結果変換部106は、当該問い合わせの結果を、非SQL形式からSQL形式に変換し、問い合わせ結果出力部111に出力する。また、問い合わせ形式変換部105は、上記処理時間を含む問い合わせの結果をデータ配置管理部102に出力し、データ配置管理部102が、当該処理時間を実行実績テーブル103に書き込んで登録する(S1104)。
The query
図12は、データベース部に記憶されているテーブルの再配置を行う処理(再配置処理)の処理手順を示すフローチャートである。再配置処理は、定期または不定期で実行実績テーブル103に一定数以上のプログラムが登録された場合に実行される。 Figure 12 is a flowchart showing the procedure for rearranging tables stored in the database unit (rearrangement process). The rearrangement process is executed when a certain number of programs or more are registered in the execution record table 103 on a regular or irregular basis.
まず、問い合わせ解析部112は、問い合わせ入力プログラムの問い合わせ形式や問い合わせ内容を解析し、実行実績テーブル103の処理時間をテーブルごとに集計してその平均値を算出し、当該平均処理時間に書き込む(S1201)。続いて、データスキーマ解析部113は、問い合わせ入力プログラムで用いられるテーブルを保持するデータベースの構造およびアクセス方法を解析してアクセス方法の割合を算出し、当該アクセス方法の割合を、試行判定テーブル1031のアクセス方法に書き込む(S1202)。データ配置試行判定部114は、試行判定テーブル1031のしきい値を参照し、テーブルの再配置を試行するか否かを判定する。データ配置試行部115は、データ配置試行判定部114が、テーブルの再配置を試行すると判定したテーブル、例えば、上記アクセス方法の割合がしきい値を超えているテーブルを読み出し、読み出したテーブルを、当該テーブルを保持するモデルのデータベースから、当該モデルとは異なる他のモデルのデータベースに再配置する(S1203)。
First, the
問い合わせ試行部116は、データ配置試行部115により再配置されたテーブルに対する問い合わせを行う(S1204)。例えば、問い合わせ試行部116は、問い合わせ形式変換部105がSQL形式から変換した非SQL形式の問い合わせ入力プログラムを読み出して、問い合わせを行う。
The
処理時間判定部117は、問い合わせ試行部116が問い合わせしたときの処理時間が、再配置が試行される前のテーブルに対する問い合わせをしたときの平均的な処理時間よりも短い場合に、再配置が試行される前のテーブルを、再配置が試行されたテーブルを保持するモデルのデータベースに反映する(S1205)。
If the processing time taken when the
このように、本システムでは、既存データベース部(例えば、データベース部107)が有する第1のデータベース(例えば、第1種データベース108)に格納されるテーブルに問い合わせを行う問い合わせプログラムまたは上記第1のデータベースのスキーマを解析する解析部(例えば、問い合わせ解析部112、データスキーマ解析部113)と、上記問い合わせプログラムまたは上記第1のデータベースのスキーマの解析結果に基づいて、上記第1のデータベースに格納されるテーブルを上記第1のデータベース以外の第2のデータベース(例えば、試行データベース部118)に配置する配置処理部(例えば、データ配置試行部115)と、上記第1のデータベースに格納されるテーブルに対する上記問い合わせプログラムの処理時間よりも、上記第2のデータベースに配置したテーブルに対する問い合わせプログラムの処理時間のほうが短い場合に、上記配置を上記既存データベース部に反映する配置反映部(例えば、処理時間判定部117)と、を有するので、
例えば、再配置処理において、ユーザアプリケーション等のプログラムから発行されるクエリ(問い合わせ内容)および既存データベース部に格納されるデータスキーマ(データ特性)を解析し、データ配置試行部において、処理時間が短くなるようにテーブルの再配置を行うことができ、上記解析結果から得られる問い合わせ内容の違いに応じて、データを配置すべきデータベースを決定し、データに対する問い合わせの処理時間を従来よりも短縮させることができる。
As described above, the present system includes an inquiry program for making an inquiry to a table stored in a first database (e.g., a first type database 108) in an existing database unit (e.g., a database unit 107) or an analysis unit (e.g., an
For example, in the rearrangement process, the query (inquiry content) issued from a program such as a user application and the data schema (data characteristics) stored in the existing database unit are analyzed, and in the data rearrangement trial unit, tables can be rearranged to shorten the processing time. Depending on the differences in the inquiry content obtained from the analysis results, the database in which the data should be placed is determined, making it possible to shorten the processing time for inquiries regarding the data compared to the conventional method.
上記配置処理部は、上記第1のデータベースに格納されるテーブルに対する問い合わせが、一定数以上の辿る操作を含む場合には、グラフモデルの上記第2のデータベースに上記テーブルを配置し、上記第1のデータベースに格納されるテーブルに対する問い合わせが、一定数以上の主キーでの検索を含む場合には、キーバリューモデルの上記第2のデータベースに上記テーブルを配置し、上記第1のデータベースに格納されるテーブルに対する問い合わせが、少なくとも複数のキーにおける検索、一定数以上の条件を組み合わせた複雑な検索、一定数以上の結合操作のいずれかを含む場合には、リレーショナルモデルの上記第2のデータベースに上記テーブルを配置する。したがって、このような問い合わせ内容の違いに応じて、データを配置すべきデータベースを決定し、データに対する問い合わせの処理時間を従来よりも短縮させることができる。 The placement processing unit places the table in the second database of a graph model if a query to a table stored in the first database includes a certain number of tracing operations, places the table in the second database of a key-value model if a query to a table stored in the first database includes a certain number of searches on primary keys, and places the table in the second database of a relational model if a query to a table stored in the first database includes at least one of a search on multiple keys, a complex search combining a certain number of conditions, or a certain number of join operations. Therefore, the database in which data should be placed can be determined depending on the difference in the query content, and the processing time for queries on data can be reduced compared to conventional methods.
10 データ管理装置
101 問い合わせ入力部
102 データ配置管理部
103 実行実績テーブル
1031 試行判定テーブル
1032 処理時間判定テーブル
104 配置対応テーブル
105 問い合わせ形式変換部
106 問い合わせ結果変換部
107 データベース部
111 問い合わせ結果出力部
112 問い合わせ解析部
113 データスキーマ解析部
114 データ配置試行判定部
115 データ配置試行部
116 問い合わせ試行部
117 処理時間判定部
118 試行データベース部
10
Claims (6)
前記問い合わせプログラムまたは前記第1のデータベースのスキーマの解析結果に基づいて、前記第1のデータベースに格納されるテーブルを前記第1のデータベース以外の第2のデータベースに配置する配置処理部と、
前記第1のデータベースに格納されるテーブルに対する前記問い合わせプログラムの処理時間よりも、前記第2のデータベースに配置した前記テーブルに対する問い合わせプログラムの処理時間のほうが短い場合に、前記配置を前記既存データベース部に反映する配置反映部と、を有し、
前記配置処理部は、前記第1のデータベースに格納されるテーブルに対する問い合わせが、一定数以上の辿る操作を含む場合には、グラフモデルの前記第2のデータベースに前記テーブルを配置する、
ことを特徴とするデータ管理システム。 a query program for querying a table stored in a first database included in the existing database unit or an analysis unit for analyzing a schema of the first database;
an arrangement processing unit that arranges a table stored in the first database in a second database other than the first database based on an analysis result of the query program or a schema of the first database;
an arrangement reflecting unit that reflects the arrangement in the existing database unit when a processing time of the inquiry program for the table arranged in the second database is shorter than a processing time of the inquiry program for the table stored in the first database ,
the placement processing unit places the table in the second database of a graph model when a query to a table stored in the first database includes a certain number of traversal operations or more.
A data management system comprising:
ことを特徴とする請求項1に記載のデータ管理システム。 the placement processing unit places the table in the second database of a key-value model when a query to a table stored in the first database includes a search using a certain number or more of primary keys;
2. The data management system according to claim 1.
ことを特徴とする請求項1に記載のデータ管理システム。 the placement processing unit places the table in the second database of a relational model when a query to a table stored in the first database includes at least one of a search using a plurality of keys, a complex search combining a certain number of conditions, and a certain number of join operations;
2. The data management system according to claim 1.
解析部が、既存データベース部が有する第1のデータベースに格納されるテーブルに問い合わせを行う問い合わせプログラムまたは前記第1のデータベースのスキーマを解析し、
配置処理部が、前記問い合わせプログラムまたは前記第1のデータベースのスキーマの解析結果に基づいて、前記第1のデータベースに格納されるテーブルを前記第1のデータベース以外の第2のデータベースに配置し、
配置反映部が、前記第1のデータベースに格納されるテーブルに対する前記問い合わせプログラムの処理時間よりも、前記第2のデータベースに配置した前記テーブルに対する問い合わせプログラムの処理時間のほうが短い場合に、前記配置を前記既存データベース部に反映する場合において、
前記配置処理部は、前記第1のデータベースに格納されるテーブルに対する問い合わせが、一定数以上の辿る操作を含む場合には、グラフモデルの前記第2のデータベースに前記テーブルを配置する、
ことを特徴とするデータ管理方法。 1. A computer-implemented data management system, comprising:
an analysis unit that analyzes a query program that queries a table stored in a first database included in the existing database unit or a schema of the first database;
a placement processing unit places a table stored in the first database in a second database other than the first database based on an analysis result of the query program or a schema of the first database;
when a processing time of the query program for the table arranged in the second database is shorter than a processing time of the query program for the table stored in the first database, the arrangement reflecting unit reflects the arrangement in the existing database unit ,
the placement processing unit places the table in the second database of a graph model when a query to a table stored in the first database includes a certain number of traversal operations or more.
A data management method comprising:
ことを特徴とする請求項4に記載のデータ管理方法。 the placement processing unit places the table in the second database of a key-value model when a query to a table stored in the first database includes a search using a certain number or more of primary keys;
5. The data management method according to claim 4 .
ことを特徴とする請求項4に記載のデータ管理方法。 the placement processing unit places the table in the second database of a relational model when a query to a table stored in the first database includes at least one of a search using a plurality of keys, a complex search combining a certain number of conditions, and a certain number of join operations;
5. The data management method according to claim 4 .
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020075064A JP7495269B2 (en) | 2020-04-21 | 2020-04-21 | Data management system and method |
PCT/JP2021/006488 WO2021215101A1 (en) | 2020-04-21 | 2021-02-19 | Data management system and data management method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020075064A JP7495269B2 (en) | 2020-04-21 | 2020-04-21 | Data management system and method |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2021174079A JP2021174079A (en) | 2021-11-01 |
JP2021174079A5 JP2021174079A5 (en) | 2023-02-16 |
JP7495269B2 true JP7495269B2 (en) | 2024-06-04 |
Family
ID=78270574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020075064A Active JP7495269B2 (en) | 2020-04-21 | 2020-04-21 | Data management system and method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7495269B2 (en) |
WO (1) | WO2021215101A1 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011197988A (en) | 2010-03-19 | 2011-10-06 | Exa Corp | Database conversion system |
JP2012103847A (en) | 2010-11-09 | 2012-05-31 | Nec Corp | Database migration management device and method for the same |
JP2014153961A (en) | 2013-02-08 | 2014-08-25 | Toshiba Corp | Information processor, information processing method and information processing program |
US20150019197A1 (en) | 2013-07-09 | 2015-01-15 | Oracle International Corporation | Database modeling and analysis |
US20160092596A1 (en) | 2014-09-26 | 2016-03-31 | Samsung Sds Co., Ltd. | Database migration method and apparatus |
WO2018047250A1 (en) | 2016-09-07 | 2018-03-15 | 株式会社日立製作所 | Database migration assistance device and method |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05274348A (en) * | 1992-03-25 | 1993-10-22 | Nec Corp | Network type database inquiry control system |
-
2020
- 2020-04-21 JP JP2020075064A patent/JP7495269B2/en active Active
-
2021
- 2021-02-19 WO PCT/JP2021/006488 patent/WO2021215101A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011197988A (en) | 2010-03-19 | 2011-10-06 | Exa Corp | Database conversion system |
JP2012103847A (en) | 2010-11-09 | 2012-05-31 | Nec Corp | Database migration management device and method for the same |
JP2014153961A (en) | 2013-02-08 | 2014-08-25 | Toshiba Corp | Information processor, information processing method and information processing program |
US20150019197A1 (en) | 2013-07-09 | 2015-01-15 | Oracle International Corporation | Database modeling and analysis |
US20160092596A1 (en) | 2014-09-26 | 2016-03-31 | Samsung Sds Co., Ltd. | Database migration method and apparatus |
WO2018047250A1 (en) | 2016-09-07 | 2018-03-15 | 株式会社日立製作所 | Database migration assistance device and method |
Also Published As
Publication number | Publication date |
---|---|
JP2021174079A (en) | 2021-11-01 |
WO2021215101A1 (en) | 2021-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11899666B2 (en) | System and method for dynamic database split generation in a massively parallel or distributed database environment | |
US10089377B2 (en) | System and method for data transfer from JDBC to a data warehouse layer in a massively parallel or distributed database environment | |
US11544268B2 (en) | System and method for generating size-based splits in a massively parallel or distributed database environment | |
US10380114B2 (en) | System and method for generating rowid range-based splits in a massively parallel or distributed database environment | |
US10528596B2 (en) | System and method for consistent reads between tasks in a massively parallel or distributed database environment | |
US10180973B2 (en) | System and method for efficient connection management in a massively parallel or distributed database environment | |
US10089357B2 (en) | System and method for generating partition-based splits in a massively parallel or distributed database environment | |
US10078684B2 (en) | System and method for query processing with table-level predicate pushdown in a massively parallel or distributed database environment | |
WO2018157680A1 (en) | Method and device for generating execution plan, and database server | |
JP4071816B1 (en) | Database query processing system using multi-operation processing using synthetic relational operations | |
US7275051B2 (en) | Method and system for reducing host variable impact on access path selection | |
US20160342652A1 (en) | Database query cursor management | |
US20230401209A1 (en) | Columnar Cache Query Using Hybrid Query Execution Plan | |
CN103810219A (en) | Line storage database-based data processing method and device | |
US9141654B2 (en) | Executing user-defined function on a plurality of database tuples | |
US11354313B2 (en) | Transforming a user-defined table function to a derived table in a database management system | |
US8548980B2 (en) | Accelerating queries based on exact knowledge of specific rows satisfying local conditions | |
JP4109305B1 (en) | Database query processing system using multi-operation processing | |
JP7495269B2 (en) | Data management system and method | |
CN116680299A (en) | Database query method, system, storage medium and device | |
JPH10326215A (en) | Data base management system and inquiry processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230208 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230208 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240109 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240215 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20240507 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240523 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7495269 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |