JP2012108635A - Distributed memory database system, front database server, data processing method and program - Google Patents

Distributed memory database system, front database server, data processing method and program Download PDF

Info

Publication number
JP2012108635A
JP2012108635A JP2010255654A JP2010255654A JP2012108635A JP 2012108635 A JP2012108635 A JP 2012108635A JP 2010255654 A JP2010255654 A JP 2010255654A JP 2010255654 A JP2010255654 A JP 2010255654A JP 2012108635 A JP2012108635 A JP 2012108635A
Authority
JP
Japan
Prior art keywords
data
value
query
database server
tables
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.)
Granted
Application number
JP2010255654A
Other languages
Japanese (ja)
Other versions
JP5598279B2 (en
Inventor
Yuta Namiki
悠太 並木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2010255654A priority Critical patent/JP5598279B2/en
Publication of JP2012108635A publication Critical patent/JP2012108635A/en
Application granted granted Critical
Publication of JP5598279B2 publication Critical patent/JP5598279B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a distributed memory database system and the like in which processing for an aggregate function such as a total can be performed at high speed by reducing communication traffic volume and throughput.SOLUTION: A front database server 10 has a data structure conversion section 113 and an inquiry processing section 111. The data structure conversion section 113 divides table data inputted from the outside to produce a plurality of value ID tables and stores the value ID tables while distributing them to data nodes. The inquiry processing section 111 inquires the number of appearance of a specific value ID in the table data of the data nodes on the basis of a query including an aggregate function issued from an external client machine, calculates a value of the aggregate function corresponding to the query from the number of appearance of the specific value ID returned from each of the data nodes in response to the inquiry and redirects the calculated value to the client machine. The data structure conversion section produces a plurality of value ID tables individually for each of a plurality of data items designated beforehand as a sequence that may become a tabulation axis in the table data.

Description

本発明は分散メモリデータベースシステム、フロントデータベースサーバ、データ処理方法およびプログラムに関し、特に集合関数に対する処理を迅速に実施することの可能な分散メモリデータベースシステム等に関する。   The present invention relates to a distributed memory database system, a front database server, a data processing method, and a program, and more particularly, to a distributed memory database system and the like capable of quickly executing processing on a set function.

ある程度以上の規模のコンピュータ装置を利用したシステム、たとえばウェブサービスや業務システム等では、大量のデータを扱うためにデータベース管理システム(DBMS: DataBase Management System)の利用が不可欠である。また近年は、ネットワークによって接続された多数のコンピュータを連携させて、1つの巨大なコンピュータとして処理を行わせる、いわゆるクラウドコンピューティングの技術が確立されてきている。   In a system using a computer device of a certain size or more, such as a web service or a business system, it is indispensable to use a database management system (DBMS) in order to handle a large amount of data. In recent years, so-called cloud computing technology has been established in which a large number of computers connected via a network are linked to perform processing as one huge computer.

DBMSの中でも特に、データベースに係る処理をネットワークによって接続された多数のコンピュータに分担させるものを、分散メモリデータベースシステムという。分散メモリデータベースシステムは、大量のデータを一括で処理するバッチ用途や、企業の扱う大量のデータから特定の部署が必要とするものを抽出するデータマートの作成などで、特に処理の高速化の効果が発揮される。   In particular, a DBMS that distributes processing related to a database to a large number of computers connected by a network is called a distributed memory database system. The distributed memory database system is particularly effective for speeding up processing, such as batch applications that process a large amount of data at once, and creation of a data mart that extracts a specific department's needs from a large amount of data handled by a company. Is demonstrated.

以下、これについて説明する。なお、本明細書では説明を平易なものとするために、ごく少ないデータ個数および項目数について例示するが、実際には膨大な個数および項目数のデータに対して例示したような処理を行うものである。   This will be described below. In this specification, in order to simplify the explanation, only a very small number of data and number of items are illustrated, but in practice, the processing as illustrated for the enormous number of data and number of items is performed. It is.

図14は、一般的な分散メモリデータベースシステム901の構成を示す説明図である。分散メモリデータベースシステム1は、フロントメモリデータベースサーバ910(以後フロントDBサーバ910という)と、複数台のデータノード921〜923とが内部ネットワーク930を介して相互に接続されて構成される。図1では3台のデータノード921〜923を示しているが、もちろんこの台数は2台以上何台でもよい。また、フロントDBサーバ10は、外部ネットワーク940を介して、クライアントマシン950と接続されている。   FIG. 14 is an explanatory diagram showing a configuration of a general distributed memory database system 901. The distributed memory database system 1 includes a front memory database server 910 (hereinafter referred to as a front DB server 910) and a plurality of data nodes 921 to 923 connected to each other via an internal network 930. Although three data nodes 921 to 923 are shown in FIG. 1, of course, this number may be two or more. The front DB server 10 is connected to the client machine 950 via the external network 940.

クライアントマシン950はフロントDBサーバ910に対してクエリー(処理要求)を発行するコンピュータである。このクエリーに基づくデータ処理をフロントDBサーバ910とデータノード921〜923とが連携して行い、フロントDBサーバ910はその検索結果をクライアントマシン50に返す。その際、フロントDBサーバ910は、クライアントマシン950から発行されたクエリーの各データノード921〜923に向けての分割と、各データノード921〜923からの結果の集約とを行う。   The client machine 950 is a computer that issues a query (processing request) to the front DB server 910. Data processing based on this query is performed in cooperation between the front DB server 910 and the data nodes 921 to 923, and the front DB server 910 returns the search result to the client machine 50. At that time, the front DB server 910 divides the query issued from the client machine 950 toward the data nodes 921 to 923 and aggregates the results from the data nodes 921 to 923.

フロントDBサーバ910では、問い合わせ処理部911、データ配置情報管理部912、およびデータ構造変換部913が、各々コンピュータプログラムとして後述するそれぞれの機能を実行されるように構成されている。   In the front DB server 910, an inquiry processing unit 911, a data arrangement information management unit 912, and a data structure conversion unit 913 are configured to execute respective functions described later as computer programs.

問い合わせ処理部911は、クライアントマシン950が発行したクエリーを受け付け、このクエリーで処理対象となるデータ項目の所在をデータ配置情報管理部912に対して照会し、この照会に応じてデータ配置情報管理部112から得られた回答を元にしてクライアントマシン950からのクエリーを各データノード921〜923ごとに分割して、分割されたクエリーを各データノード921〜923に送信する。そして、送信した各クエリーに対する各データノード921〜923からの回答を集約してクライアントマシン950に返す。   The inquiry processing unit 911 receives a query issued by the client machine 950, inquires the data arrangement information management unit 912 about the location of the data item to be processed by this query, and in response to this inquiry, the data arrangement information management unit Based on the answer obtained from 112, the query from the client machine 950 is divided for each data node 921-923, and the divided query is transmitted to each data node 921-923. The answers from the data nodes 921 to 923 for each transmitted query are collected and returned to the client machine 950.

データ配置情報管理部912は、問い合わせ処理部911から照会のあったデータ項目のデータが各データノード921〜923のうちのいずれに存在するかを、問い合わせ処理部911に返答する。データ構造変換部913は、入力された表構造データを分割して、各データノード921〜923に記憶させる。   The data arrangement information management unit 912 returns to the inquiry processing unit 911 which of the data nodes 921 to 923 data of the data item inquired from the inquiry processing unit 911 exists. The data structure conversion unit 913 divides the input table structure data and stores the divided data in the data nodes 921 to 923.

各データノード921〜923では、問い合わせ処理部914がコンピュータプログラムとして、問い合わせ処理部911で分割されたクエリーに基づいて検索などの処理を行ってその結果をフロントDBサーバ910に返す機能を実行されるように構成されている。   In each of the data nodes 921 to 923, the inquiry processing unit 914 performs a function such as a search based on the query divided by the inquiry processing unit 911 and returns the result to the front DB server 910 as a computer program. It is configured as follows.

図15は、図14に示した分散メモリデータベースシステム901に対して入力される表データ960の一例を示す説明図である。図15で示した表データ960は、日付960a、店ID960b、売上960cという3つの項目のデータを持つ。このうちの日付960aは「8月10日」「8月11日」の2種類の値が使われている。   FIG. 15 is an explanatory diagram showing an example of table data 960 input to the distributed memory database system 901 shown in FIG. The table data 960 shown in FIG. 15 has three items of data: date 960a, store ID 960b, and sales 960c. Of these, the date 960a uses two types of values, “August 10” and “August 11”.

データ構造変換部913は、このうちの店ID910bの値「A1」「D3」「E1」を基準として表データ960を分割して、店ID別の表データ961〜963を生成し、これらを各々各データノード921〜923に送付して記憶させる。図16は、図15に示した表データ910をデータ構造変換部913が分割して生成した店ID別の表データ961〜963を示す説明図である。   The data structure conversion unit 913 divides the table data 960 based on the values “A1”, “D3”, and “E1” of the store ID 910b, and generates table data 961 to 963 for each store ID. The data nodes 921 to 923 are sent and stored. FIG. 16 is an explanatory diagram showing table data 961 to 963 for each shop ID generated by the data structure conversion unit 913 dividing the table data 910 shown in FIG.

図16に示した店ID別の表データ961〜963が各々データノード921〜923に記憶された状態で、問い合わせ処理部911はクライアントマシン950が発行したクエリーを受け付ける。たとえば、以下の数1に示すクエリーを受け付けた場合、問い合わせ処理部911は各データノード921〜923に対して、各々が記憶している店ID別の表データ961〜963から店IDごとの合計売上額を算出させ、返信されてきた店IDごとの合計売上額をまとめてクライアントマシン950に返信する。

Figure 2012108635
The inquiry processing unit 911 receives a query issued by the client machine 950 in a state where the table data 961 to 963 for each store ID shown in FIG. 16 are stored in the data nodes 921 to 923, respectively. For example, when the query shown in the following equation 1 is received, the inquiry processing unit 911 receives the total for each store ID from the table data 961 to 963 for each store ID stored in each of the data nodes 921 to 923. The sales amount is calculated, and the total sales amount for each returned shop ID is collectively returned to the client machine 950.
Figure 2012108635

これに関連する技術として、以下の各々がある。その中でも特許文献1には、並列コンピュータの複数の処理モジュールで処理されるデータに共通のグローバル次元値番号を付与することによって、プロセッサ間通信の発生を少なくしてデータのソートや集計などを実現するという情報処理システムが記載されている。特許文献2には、ハッシュ値を利用して1つ以上の列の値が共通する行をグループ化する処理を高速化するというグループ化方法が記載されている。   There are the following technologies related to this. Among them, Patent Document 1 assigns a common global dimension value number to data processed by a plurality of processing modules of a parallel computer, thereby reducing the occurrence of inter-processor communication and realizing data sorting and aggregation. An information processing system is described. Patent Document 2 describes a grouping method that uses a hash value to speed up the process of grouping rows that share one or more column values.

特許文献3には、複数の分析問題を含むデータをレイヤに分割することによって、複数の計算機でのデータ分析を高速化するというデータ分析システムが記載されている。特許文献4には、複数の装置にデータを分散させて処理する際にシステムの終了処理時間を短縮するというデータベース処理方法が記載されている。   Patent Document 3 describes a data analysis system that speeds up data analysis on a plurality of computers by dividing data including a plurality of analysis problems into layers. Patent Document 4 describes a database processing method for shortening the end processing time of a system when processing data distributed to a plurality of devices.

特許文献5には、データにラベルコードを付与して、複数の装置によるデータの加工処理を高速化するというデータ加工システムが記載されている。非特許文献1には、データベースとして多く利用されているオラクル(登録商標)データベースで、完全一致検索を高速化することが可能である「ビットマップインデックス」について記載されている。   Patent Document 5 describes a data processing system that adds a label code to data to speed up data processing by a plurality of devices. Non-Patent Document 1 describes a “bitmap index” that can speed up the exact match search in an Oracle (registered trademark) database that is widely used as a database.

再特WO2005/041067号公報Re-specialized WO2005 / 041067 特開2000−187668号公報JP 2000-187668 A 特開2006−107129号公報JP 2006-107129 A 特開2010−134583号公報JP 2010-134583 A 特開平07−182368号公報Japanese Patent Laid-Open No. 07-182368

Paul Lane、「データ・ウェアハウスでのビットマップ索引の使用」、Oracle Databaseデータ・ウェアハウス・ガイド11gリリース1より、2007年、日本オラクル株式会社、[平成22年11月8日検索]、インターネット<URL:http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05763-01/indexes.htm>Paul Lane, “Using Bitmap Indexes in Data Warehouses”, Oracle Database Data Warehousing Guide 11g Release 1, 2007, Oracle Corporation Japan [retrieved November 8, 2010], Internet <URL: http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05763-01/indexes.htm>

分散メモリデータベースシステムでは特に、処理にかかるコストおよび処理時間を低減するため、ノード間で発生する通信を可能な限り少なくすることが重要である。図14〜16に示した分散メモリデータベースシステム901の例は、説明を平易なものとするために、ごく少ないデータ個数について例示したものであるが、実際には膨大な量のデータについて処理を行う必要がある。   Particularly in the distributed memory database system, it is important to reduce the communication generated between the nodes as much as possible in order to reduce the processing cost and processing time. The example of the distributed memory database system 901 shown in FIGS. 14 to 16 is illustrated with respect to a very small number of data in order to simplify the description, but actually processes a huge amount of data. There is a need.

図14〜16に示した分散メモリデータベースシステム901では、「店ID」ごとにデータを分割して各データノード921〜923に記憶させているので、数1に示したように店IDごとの集計であればデータノード921〜923の各々の単体のみで合計などの集合関数の計算ができる。従って、問い合わせ処理部911での処理は単純に各データノード921〜923から受信した合計などの数値をまとめるだけでよく、高速に集計処理を行うことができる。   In the distributed memory database system 901 shown in FIGS. 14 to 16, the data is divided for each “store ID” and stored in each data node 921 to 923. If so, a set function such as a sum can be calculated by each of the data nodes 921 to 923 alone. Therefore, the processing in the inquiry processing unit 911 simply summarizes numerical values such as the sum received from the data nodes 921 to 923, and can perform the aggregation processing at high speed.

しかしながら、データの分割の基準とした列(この場合は「店ID」)以外で集計を行おうとすると、各データノード921〜923相互間、およびそれらとフロントDBサーバ910との間でデータの交換が必要になる。そのため、集計処理に時間がかかり、またデータの交換に伴う通信コストが発生する。   However, if data is to be tabulated other than the column used as a reference for data division (in this case, “store ID”), data is exchanged between the data nodes 921 to 923 and between them and the front DB server 910. Is required. For this reason, it takes time for the aggregation processing, and communication costs associated with data exchange occur.

図14〜16に示した分散メモリデータベースシステム901の例でいうなら、以下の数2に示すクエリーを受け付けた場合には、データノード921〜923の各々の単体のみで合計などの集合関数の計算ができないので、全データについて「日付」を基準として再分割を行う(第1の方法)か、もしくは「店ID」ごとにデータを保持している各データノード921〜923で「日付」ごとの集計を行い、その結果をフロントDBサーバ910に送付して「日付」ごとの合計を算出する(第2の方法)かのいずれかの方法で算出することとなる。

Figure 2012108635
In the example of the distributed memory database system 901 shown in FIGS. 14 to 16, when the query shown in the following equation 2 is accepted, calculation of a set function such as a sum is performed only by each of the data nodes 921 to 923. Therefore, all data is re-divided on the basis of “date” (first method) or each data node 921 to 923 holding data for each “store ID” for each “date”. Totaling is performed, and the result is sent to the front DB server 910, and the total for each “date” is calculated (second method).
Figure 2012108635

この第1の方法では、一度表データ961〜963の全てをフロントDBサーバ910に送付して、元の表データ960に戻してから「日付」を基準として再分割を行った表データを改めて各データノード921〜923に送付する必要がある。例えばm台のデータノードがあり、ここに一行あたりlバイトのデータが1台のノードに1日分n件、s(m,n,s,lは各々自然数、簡単のためにs=mとする)店舗分のデータが均等に存在するとした場合、この表データを再分割するには、以下の数3に示す通りのデータ容量の通信が発生することとなる。

Figure 2012108635
In the first method, all of the table data 961 to 963 are once sent to the front DB server 910, returned to the original table data 960, and then re-divided on the basis of “date” as the table data. It is necessary to send to the data nodes 921 to 923. For example, there are m data nodes, where 1 byte of data per row is n times per day for one node, s (m, n, s, l are natural numbers, and s = m for simplicity. If the data for the stores are present evenly, in order to re-divide the table data, communication with a data capacity as shown in the following Equation 3 occurs.
Figure 2012108635

また、発生する通信量だけでなく、個々のデータを読み取り、その各々をどのデータノードに移動するかを判定する処理も必要となるので、フロントDBサーバ910および各データノードで必要な処理量も増大する。   In addition to the amount of communication generated, it is also necessary to read individual data and determine which data node to move each of them, so the amount of processing required for the front DB server 910 and each data node also Increase.

第2の方法では、各データノード921〜923から「店ID・日付」ごとに求められた合計データがフロントDBサーバ910に送信される。このため、フロントDBサーバ910への通信量が多くなる。また、フロントDBサーバ910では(数1に示したクエリの場合と違って)単純な差し替えだけでなく、改めて「日付」ごとの合計を求める必要があるので、ここでの処理量も増大する。   In the second method, the total data obtained for each “store ID / date” is transmitted from each data node 921 to 923 to the front DB server 910. For this reason, the amount of communication to the front DB server 910 increases. In addition, since the front DB server 910 needs to obtain a total for each “date” in addition to simple replacement (unlike the query shown in Equation 1), the amount of processing here also increases.

この問題に対して、インデックス(索引)を用意して異なる集計軸による集計に対応するという方法が既に知られている。しかしながら、この場合であっても、集計操作のために計算対象のデータを他のコンピュータに対して送信する必要は発生する。このため、発生する通信量を削減する効果は小さい。   In order to solve this problem, a method of preparing an index (index) and corresponding to aggregation by different aggregation axes is already known. However, even in this case, it is necessary to transmit the calculation target data to another computer for the tabulation operation. For this reason, the effect of reducing the amount of communication generated is small.

また、特許文献1および4〜5には、同一列の中で同一の値にID(もしくはラベル)を付与して、これに基づいてグループ分け(いわゆるレンジパーティショニング)を行ったデータを各データノードに保存するという技術が記載されている。これを利用すれば、生のデータそのものを通信するよりも、多少の通信量の削減にはなる。しかしながら、フロントDBサーバ910の側での処理量は軽減されないどころか、IDを実際の値に置換する処理を伴うので、処理量はむしろ増大する。残る特許文献2〜4および非特許文献1にも、この問題点について解決しうる技術は記載されていない。   In Patent Documents 1 and 4 to 5, data obtained by assigning IDs (or labels) to the same values in the same column and performing grouping (so-called range partitioning) based on the IDs (or labels) is provided for each data. A technique for storing in a node is described. If this is used, the amount of communication will be reduced somewhat rather than communicating raw data itself. However, since the processing amount on the front DB server 910 side is not reduced, the processing amount is rather increased because the processing involves replacing the ID with an actual value. The remaining Patent Documents 2 to 4 and Non-Patent Document 1 do not describe a technique that can solve this problem.

本発明の目的は、通信量および処理量を削減して、合計などの集合関数に対する処理を高速に行うことを可能とする分散メモリデータベースシステム、フロントデータベースサーバ、データ処理方法およびプログラムを提供することにある。   An object of the present invention is to provide a distributed memory database system, a front database server, a data processing method, and a program that can reduce the amount of communication and the amount of processing, and can perform processing on a set function such as a sum at high speed. It is in.

上記目的を達成するため、本発明に係る分散メモリデータベースシステムは、フロントデータベースサーバと複数台のデータノードとが相互に接続されて構成される分散メモリデータベースシステムであって、フロントデータベースサーバが、外部から入力される表データを分割して各々の実際のデータを値IDに置換した複数の値ID表を生成してこれらを各データノードに分散して記憶させるデータ構造変換部と、外部のクライアントマシンから発行された集合関数を含むクエリーに基づいて各データノードに対して表データの中の特定の値IDの出現数を問い合わせると共に、これに応じて各データノードから返された特定の値IDの出現数からクエリーに対応する集合関数の値を計算してクライアントマシンに返送する問い合わせ処理部とを有し、データ構造変換部が、複数の値ID表を生成する際に、表データの中で集計軸になり得る列としてあらかじめ指定された複数のデータ項目の各々について個別に複数の値ID表を生成することを特徴とする。   To achieve the above object, a distributed memory database system according to the present invention is a distributed memory database system configured by connecting a front database server and a plurality of data nodes to each other, and the front database server is externally connected. A data structure conversion unit that generates a plurality of value ID tables by dividing the table data input from, and replaces each actual data with a value ID, and distributes and stores them in each data node; and an external client Based on the query including the set function issued from the machine, each data node is inquired about the number of occurrences of the specific value ID in the table data, and the specific value ID returned from each data node in response to this is inquired. Query processing that calculates the value of the set function corresponding to the query from the number of occurrences and returns it to the client machine When the data structure conversion unit generates a plurality of value ID tables, each of the plurality of data items designated in advance as a column that can serve as an aggregation axis in the table data A value ID table is generated.

上記目的を達成するため、本発明に係るフロントデータベースサーバは、複数台のデータノードと相互に接続されて分散メモリデータベースシステムを構成するフロントデータベースサーバであって、外部から入力される表データを分割して各々の実際のデータを値IDに置換した複数の値ID表を生成してこれらを各データノードに分散して記憶させるデータ構造変換部と、外部のクライアントマシンから発行された集合関数を含むクエリーに基づいて各データノードに対して表データの中の特定の値IDの出現数を問い合わせると共に、これに応じて各データノードから返された特定の値IDの出現数からクエリーに対応する集合関数の値を計算してクライアントマシンに返送する問い合わせ処理部とを有し、データ構造変換部が、複数の値ID表を生成する際に、表データの中で集計軸になり得る列としてあらかじめ指定された複数のデータ項目の各々について個別に複数の値ID表を生成することを特徴とする。   In order to achieve the above object, a front database server according to the present invention is a front database server that is connected to a plurality of data nodes to constitute a distributed memory database system, and divides table data input from the outside. A data structure conversion unit that generates a plurality of value ID tables in which each actual data is replaced with a value ID and stores them in each data node, and a set function issued from an external client machine Based on the included query, each data node is inquired about the number of occurrences of the specific value ID in the table data, and in response to this, the query is handled from the number of occurrences of the specific value ID returned from each data node. A query processing unit that calculates the value of the set function and sends it back to the client machine. When generating the value ID table, and generating a plurality of values ID table individually for each of the plurality of data items specified in advance as a column which can be a tabulation axis in the table data.

上記目的を達成するため、本発明に係るデータ処理方法は、フロントデータベースサーバと複数台のデータノードとが相互に接続されて構成される分散メモリデータベースシステムにあって、外部からの表データの入力をフロントデータベースサーバのデータ構造変換部が受け付け、入力された表データを、集計軸になり得る列としてあらかじめ指定されたデータ項目の各々についてフロントデータベースサーバのデータ構造変換部が個別に分割して実際のデータを値IDに置換した複数の値ID表を生成し、生成された複数の値ID表をフロントデータベースサーバのデータ構造変換部が各データノードに分散して記憶させ、外部のクライアントマシンから発行された集合関数を含むクエリーをフロントデータベースサーバの問い合わせ処理部が受け付け、受け付けられたクエリーに基づいて表データの中の特定の値IDの出現数をフロントデータベースサーバの問い合わせ処理部が各データノードに問い合わせ、各データノードから返された特定の値IDの出現数からフロントデータベースサーバの問い合わせ処理部がクエリーに対応する集合関数の値を計算してクライアントマシンに返送することを特徴とする。   In order to achieve the above object, a data processing method according to the present invention is a distributed memory database system in which a front database server and a plurality of data nodes are connected to each other. The data structure conversion unit of the front database server accepts the input table data, and the data structure conversion unit of the front database server individually divides the input table data for each of the data items specified in advance as columns that can be aggregate axes. A plurality of value ID tables are generated by replacing the data with value IDs, and the data structure conversion unit of the front database server stores the generated value ID tables in a distributed manner in each data node. Query the front database server for the query that contains the issued aggregate function The inquiry processing unit of the front database server inquires each data node about the number of occurrences of the specific value ID in the table data based on the received query, and the specific value ID returned from each data node. The query processing unit of the front database server calculates the value of the set function corresponding to the query from the number of appearances and returns it to the client machine.

上記目的を達成するため、本発明に係るデータ処理プログラムは、フロントデータベースサーバと複数台のデータノードとが相互に接続されて構成される分散メモリデータベースシステムにあって、フロントデータベースサーバが備えるコンピュータに、外部からの表データの入力を受け付ける手順、入力された表データを、集計軸になり得る列としてあらかじめ指定されたデータ項目の各々について個別に分割して実際のデータを値IDに置換した複数の値ID表を生成する手順、生成された複数の値ID表を各データノードに分散して記憶させる手順、外部のクライアントマシンから発行された集合関数を含むクエリーを受け付ける手順、受け付けられたクエリーに基づいて表データの中の特定の値IDの出現数を各データノードに問い合わせる手順、および各データノードから返された特定の値IDの出現数からクエリーに対応する集合関数の値を計算してクライアントマシンに返送する手順を実行させることを特徴とする。   In order to achieve the above object, a data processing program according to the present invention is a distributed memory database system in which a front database server and a plurality of data nodes are connected to each other in a computer included in the front database server. A procedure for receiving input of table data from the outside, a plurality of input table data divided into individual data items designated in advance as columns that can be aggregated axes, and replacing actual data with value IDs For generating a value ID table, a procedure for storing a plurality of generated value ID tables in each data node, a procedure for receiving a query including a set function issued from an external client machine, a received query Ask each data node for the number of occurrences of a specific value ID in the table data based on Characterized in that to execute a procedure to return to the client machine instructions cause I, and the number of occurrences of a particular value ID returned from each data node by calculating the value of the set function corresponding to the query.

本発明は、上述した通り、集計軸になり得る列としてあらかじめ指定されたデータ項目の各々について表データを個別に分割するように構成したので、集計軸になり得るどの列に対しても、他の装置との通信の発生を抑制して、各データノードの内部だけで集合関数に関する処理を行うことが可能となる。これによって、通信量および処理量を削減して、合計などの集合関数に対する処理を高速に行うことを可能であるという優れた特徴を持つ分散メモリデータベースシステム、フロントデータベースサーバ、データ処理方法およびプログラムを提供することが可能となる。   As described above, the present invention is configured to divide the table data individually for each data item designated in advance as a column that can be the aggregation axis. It is possible to perform processing related to the set function only within each data node while suppressing the occurrence of communication with the device. As a result, a distributed memory database system, a front database server, a data processing method, and a program having an excellent feature that it is possible to reduce the amount of communication and the amount of processing, and to perform processing on a set function such as a total at high speed. It becomes possible to provide.

本発明の第1の実施形態に係る分散メモリデータベースシステムの構成を示す説明図である。It is explanatory drawing which shows the structure of the distributed memory database system which concerns on the 1st Embodiment of this invention. 図1で説明した分散メモリデータベースシステムに対して入力される表データの一例を示す説明図である。It is explanatory drawing which shows an example of the table data input with respect to the distributed memory database system demonstrated in FIG. 図2で示した表データからデータ構造変換部が作成する値リストおよび値ID表を示す説明図である。It is explanatory drawing which shows the value list and value ID table which a data structure conversion part produces from the table data shown in FIG. 図1に示したデータ構造変換部が、図2に示すデータを図3に示すように分割して各データノードに分配して記憶させる処理を示すフローチャートである。FIG. 4 is a flowchart showing a process in which the data structure conversion unit shown in FIG. 1 divides the data shown in FIG. 2 as shown in FIG. 図1に示したデータ配置情報の、図2および図3に示した各データに対応する例について示す説明図である。It is explanatory drawing shown about the example corresponding to each data shown in FIG. 2 and FIG. 3 of the data arrangement | positioning information shown in FIG. 数4に示したクエリーに対して、図1で説明した分散メモリデータベースシステムで行われる処理を示すフローチャートである。5 is a flowchart showing processing performed in the distributed memory database system described with reference to FIG. 1 for the query shown in Equation 4. 図6のステップS403(数4)に示す処理で、データノードからフロントDBサーバに返却される「値ID」ごとの出現数の表を示す説明図である。FIG. 7 is an explanatory diagram showing a table of the number of appearances for each “value ID” returned from the data node to the front DB server in the process shown in step S403 (Equation 4) of FIG. 6. 図6のステップS406(数5)に示した処理の結果、クライアントマシンに返却される日付ごとの売上の合計を示す結果データについて示す説明図である。It is explanatory drawing shown about result data which shows the sum total of the sales for every date returned as a result of the process shown to step S406 (Formula 5) of FIG. 図6のステップS403(数6)に示す処理で、データノードからフロントDBサーバに返却される「値ID」ごとの出現数の表を示す説明図である。FIG. 7 is an explanatory diagram showing a table of the number of appearances for each “value ID” returned from the data node to the front DB server in the process shown in step S403 (formula 6) of FIG. 6. 図6のステップS406(数7)に示した処理の結果、クライアントマシンに返却される店IDごとの売上の合計を示す結果データについて示す説明図である。FIG. 7 is an explanatory diagram showing result data indicating the total sales for each shop ID returned to the client machine as a result of the process shown in step S406 (Equation 7) in FIG. 6; 本発明の第2の実施形態に係る分散メモリデータベースシステムの構成を示す説明図である。It is explanatory drawing which shows the structure of the distributed memory database system which concerns on the 2nd Embodiment of this invention. 図11で説明した分散メモリデータベースシステムに対して入力される表データの一例を示す説明図である。It is explanatory drawing which shows an example of the table data input with respect to the distributed memory database system demonstrated in FIG. 図12に示した表データからデータ構造変換部が作成する値ID表の例を示す説明図である。It is explanatory drawing which shows the example of the value ID table which a data structure conversion part produces from the table data shown in FIG. 一般的な分散メモリデータベースシステムの構成を示す説明図である。It is explanatory drawing which shows the structure of a general distributed memory database system. 図14に示した分散メモリデータベースシステムに対して入力される表データの一例を示す説明図である。It is explanatory drawing which shows an example of the table data input with respect to the distributed memory database system shown in FIG. 図15に示した表データをデータ構造変換部が分割して生成した店ID別の表データを示す説明図である。It is explanatory drawing which shows the table data according to shop ID which the data structure conversion part divided | segmented and produced | generated the table data shown in FIG.

(第1の実施形態)
以下、本発明の第1の実施形態の構成について添付図1〜3に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係る分散メモリデータベースシステム1は、フロントデータベースサーバ(フロントDBサーバ10)と複数台のデータノード21〜23とが相互に接続されて構成される分散メモリデータベースシステムである。フロントデータベースサーバ10は、外部から入力される表データを分割して各々の実際のデータを値IDに置換した複数の値ID表221〜222,231〜233を生成してこれらを各データノードに分散して記憶させるデータ構造変換部113と、外部のクライアントマシン50から発行された集合関数を含むクエリーに基づいて各データノードに表データの中の特定の値IDの出現数を問い合わせると共にこれに応じて各データノードから返された特定の値IDの出現数からクエリーに対応する集合関数の値を計算してクライアントマシンに返送する問い合わせ処理部111とを有する。そして、データ構造変換部113は、これら複数の値ID表を生成する際に、表データの中で集計軸になり得る列としてあらかじめ指定されたデータ項目の各々について個別に複数の値ID表を生成する。
(First embodiment)
Hereinafter, the structure of the 1st Embodiment of this invention is demonstrated based on attached FIGS. 1-3.
First, the basic content of the present embodiment will be described, and then more specific content will be described.
The distributed memory database system 1 according to the present embodiment is a distributed memory database system configured by connecting a front database server (front DB server 10) and a plurality of data nodes 21 to 23 to each other. The front database server 10 generates a plurality of value ID tables 221 to 222, 231 to 233 in which table data input from the outside is divided and each actual data is replaced with a value ID, and these are stored in each data node. Based on the data structure conversion unit 113 to be stored in a distributed manner and a query including a set function issued from the external client machine 50, each data node is inquired about the number of occurrences of a specific value ID in the table data. In response, a query processing unit 111 that calculates the value of the set function corresponding to the query from the number of occurrences of the specific value ID returned from each data node and returns it to the client machine. Then, when the data structure conversion unit 113 generates the plurality of value ID tables, the data structure conversion unit 113 individually generates a plurality of value ID tables for each of the data items designated in advance as a column that can be an aggregation axis in the table data. Generate.

また、フロントデータベースサーバ10のデータ構造変換部113は、複数の値ID表221〜222,231〜233を生成する際に、表データの中で集計軸および集計対象になり得る列としてあらかじめ指定されたデータ項目の各々について実際の値を値IDに置換すると共に、値IDと実際の値との対応を示す値リスト211〜213を生成する機能を有し、フロントデータベースサーバ10が、値リストおよび値ID表が各データノードの中のいずれに分散されたかをあらかじめ備えられた記憶手段に記憶するデータ配置情報管理部112を有する。   In addition, when the data structure conversion unit 113 of the front database server 10 generates a plurality of value ID tables 221 to 222 and 231 to 233, the data structure conversion unit 113 is designated in advance as columns that can be aggregated axes and aggregation targets in the table data. For each of the data items, an actual value is replaced with a value ID, and a value list 211 to 213 indicating the correspondence between the value ID and the actual value is generated. A data arrangement information management unit 112 that stores in which storage unit the value ID table is distributed among the data nodes is provided.

さらに、フロントデータベースサーバ10のデータ構造変換部113が、値ID表221〜222,231〜233を生成する際、実際の値を大小順にソートしてから値IDに置換する。   Furthermore, when the data structure conversion unit 113 of the front database server 10 generates the value ID tables 221 to 222 and 231 to 233, the actual values are sorted in order of magnitude and replaced with the value ID.

以上の構成を備えることにより、分散メモリデータベースシステム1は、通信量および処理量を削減して、合計などの集合関数に対する処理を高速に行うことが可能となる。
以下、これをより詳細に説明する。
With the above configuration, the distributed memory database system 1 can reduce the amount of communication and the amount of processing, and can perform processing on a set function such as a sum at high speed.
Hereinafter, this will be described in more detail.

図1は、本発明の第1の実施形態に係る分散メモリデータベースシステム1の構成を示す説明図である。分散メモリデータベースシステム1は、フロントデータベースサーバ10(以後フロントDBサーバ10という)と、複数台のデータノード21〜23とが内部ネットワーク30を介して相互に接続されて構成される。図1では3台のデータノード21〜23を示しているが、もちろんこの台数は2台以上何台でもよい。   FIG. 1 is an explanatory diagram showing a configuration of a distributed memory database system 1 according to the first embodiment of the present invention. The distributed memory database system 1 includes a front database server 10 (hereinafter referred to as a front DB server 10) and a plurality of data nodes 21 to 23 connected to each other via an internal network 30. Although three data nodes 21 to 23 are shown in FIG. 1, of course, this number may be two or more.

また、内部ネットワーク30は、外部ネットワーク40を介して、外部のコンピュータ装置であるクライアントマシン50と接続されている。内部ネットワーク30および外部ネットワーク40の、ネットワーク方式やプロトコルなどは任意のものを利用できる。フロントDBサーバ10は、内部ネットワーク30および外部ネットワーク40を通じて、クライアントマシン50からの操作を受け付けることができる。   The internal network 30 is connected to a client machine 50 that is an external computer device via an external network 40. Any network system and protocol for the internal network 30 and the external network 40 can be used. The front DB server 10 can accept operations from the client machine 50 through the internal network 30 and the external network 40.

クライアントマシン50はフロントDBサーバ10に対してクエリー(処理要求)を発行し、このクエリーに基づくデータ処理をフロントDBサーバ10とデータノード21〜23とが連携して行い、フロントDBサーバ10はその検索結果をクライアントマシン50に返す。その際、フロントDBサーバ10は、クライアントマシン50から発行されたクエリーの各データノード21〜23に向けての分割と、各データノード21〜23からの結果の集約とを行う。   The client machine 50 issues a query (processing request) to the front DB server 10, and the front DB server 10 and the data nodes 21 to 23 perform data processing based on the query in cooperation with the front DB server 10. The search result is returned to the client machine 50. At that time, the front DB server 10 divides the query issued from the client machine 50 toward the data nodes 21 to 23 and aggregates the results from the data nodes 21 to 23.

フロントDBサーバ10は、主演算制御手段101、記憶手段102、および通信手段103を備えるコンピュータ装置である。主演算制御手段101はコンピュータプログラムの動作主体となるCPU(Central Processing Unit)であり、記憶手段102は主演算制御手段101が作業中のデータを記憶するRAM(Random Access Memory)などのような主記憶装置である。通信手段103は内部ネットワーク30および外部ネットワーク40を介して、他のコンピュータとのデータ通信を行う。   The front DB server 10 is a computer device that includes main calculation control means 101, storage means 102, and communication means 103. The main arithmetic control means 101 is a CPU (Central Processing Unit) that is the main body of the computer program, and the storage means 102 is a main memory such as a RAM (Random Access Memory) that stores data that the main arithmetic control means 101 is working on. It is a storage device. The communication means 103 performs data communication with other computers via the internal network 30 and the external network 40.

主演算制御手段101では、問い合わせ処理部111、データ配置情報管理部112、およびデータ構造変換部113が、各々コンピュータプログラムとして後述するそれぞれの機能を実行されるように構成されている。また、記憶手段102には、後述するデータ配置情報121が記憶されている。   In the main calculation control means 101, the inquiry processing unit 111, the data arrangement information management unit 112, and the data structure conversion unit 113 are configured to execute respective functions described later as computer programs. The storage unit 102 stores data arrangement information 121 to be described later.

問い合わせ処理部111は、クライアントマシン50が発行したクエリーを受け付け、このクエリーで処理対象となるデータ項目の所在をデータ配置情報管理部112に対して照会し、この照会に応じてデータ配置情報管理部112から得られた回答を元にしてクライアントマシン50からのクエリーを各データノード21〜23ごとに分割して、分割されたクエリーを各データノード21〜23に送信する。そして、送信した各クエリーに対する各データノード21〜23からの回答を集約してクライアントマシン50に返す。   The inquiry processing unit 111 accepts a query issued by the client machine 50, inquires the data arrangement information management unit 112 about the location of the data item to be processed by this query, and in response to this inquiry, the data arrangement information management unit Based on the answer obtained from 112, the query from the client machine 50 is divided for each data node 21-23, and the divided query is transmitted to each data node 21-23. Then, the answers from the data nodes 21 to 23 for each transmitted query are collected and returned to the client machine 50.

データ配置情報管理部112は、問い合わせ処理部111から照会のあったデータ項目のデータが各データノード21〜23のうちのいずれに存在するかを、データ配置情報121を参照して、問い合わせ処理部111に返答する。   The data arrangement information management unit 112 refers to the data arrangement information 121 to determine which of the data nodes 21 to 23 the data of the data item queried from the inquiry processing unit 111 exists. Reply to 111.

データ構造変換部113は、この後説明するように、表構造データを本システムに入力する際に、後述する本実施形態に独特のデータ構造に変換して分割し、各データノード21〜23に記憶させる。   As will be described later, when the table structure data is input to the present system, the data structure conversion unit 113 converts the data structure into a data structure unique to the present embodiment described later and divides the data structure into each data node 21 to 23. Remember.

各データノード21〜23も、フロントDBサーバ10と同じく一般的なコンピュータ装置としての構成を備えるが、ハードウェアおよびソフトウェアとしては全て同一の構成を有し、ただ各々の記憶している内容が異なっているのみである。従って、図1ではデータノード21についてのみ詳しい構成を示す。データノード21は、フロントDBサーバ10と同様に、主演算制御手段201、記憶手段202、および通信手段203を備えるコンピュータ装置である。   Each of the data nodes 21 to 23 also has a configuration as a general computer device like the front DB server 10, but all have the same configuration as hardware and software, but the contents stored therein are different. Only. Therefore, FIG. 1 shows a detailed configuration only for the data node 21. Similar to the front DB server 10, the data node 21 is a computer device including a main arithmetic control unit 201, a storage unit 202, and a communication unit 203.

主演算制御手段201では、問い合わせ処理部204が、各々コンピュータプログラムとして後述するそれぞれの機能を実行されるように構成されている。また、記憶手段202には、後述する値リスト211〜213、および値ID表221〜222,231〜233が記憶されている。問い合わせ処理部204は、フロントDBサーバ10で分割生成された値リスト211〜213、および値ID表221〜222,231〜233のうち、自身に割り当てられたものを記憶手段202に記憶し、これらの値リストおよび値ID表に対して検索などの処理を行い、その結果をフロントDBサーバ10に返す。   In the main arithmetic control means 201, the inquiry processing unit 204 is configured to execute each function described later as a computer program. The storage unit 202 stores value lists 211 to 213 and value ID tables 221 to 222 and 231 to 233 described later. The inquiry processing unit 204 stores the value list 211 to 213 and the value ID tables 221 to 222 and 231 to 233 that are divided and generated by the front DB server 10 in the storage unit 202. The value list and the value ID table are searched, and the result is returned to the front DB server 10.

図2は、図1で説明した分散メモリデータベースシステム1に対して入力される表データ210の一例を示す説明図である。このデータ入力はクライアントマシン50から行われてもよいし、フロントDBサーバ10から直接行われてもよい。データ構造変換部113は、この入力された表データ210を、以下で説明する形式に変換して、複数のデータノード21〜23に分配して記憶させる。   FIG. 2 is an explanatory diagram showing an example of the table data 210 input to the distributed memory database system 1 described in FIG. This data input may be performed from the client machine 50 or directly from the front DB server 10. The data structure conversion unit 113 converts the input table data 210 into a format described below, distributes the data to the plurality of data nodes 21 to 23, and stores them.

図2で示した表データ210は、日付210a、店ID210b、売上210cという3つの項目のデータを持つ。このうちの「日付210a」および「店ID210b」が「集計軸になり得る列(以後基準列という)」、売上210cが「集計対象になり得る列(以後対象列という)」としてあらかじめ指定されている。なお、表データ210の内容は図15の表データ910と同一である。   The table data 210 shown in FIG. 2 has three items of data: date 210a, store ID 210b, and sales 210c. Of these, “date 210a” and “store ID 210b” are designated in advance as “columns that can be aggregated axes (hereinafter referred to as reference columns)” and sales 210c are designated in advance as “columns that can be aggregated (hereinafter referred to as target columns)”. Yes. The contents of the table data 210 are the same as the table data 910 in FIG.

図3は、図2で示した表データ210からデータ構造変換部113が作成する値リスト211〜213、および値ID表221〜222,231〜233を示す説明図である。図2で示した表データ210で、基準列として指定された項目のうち、日付210aは「8月10日」「8月11日」の2種類、店ID210bは「A1」「D3」「E1」の3種類の値が使われている。   FIG. 3 is an explanatory diagram showing value lists 211 to 213 and value ID tables 221 to 222 and 231 to 233 created by the data structure conversion unit 113 from the table data 210 shown in FIG. Among the items specified as the reference column in the table data 210 shown in FIG. 2, the date 210a has two types “August 10” and “August 11”, and the store ID 210b has “A1” “D3” “E1”. Three types of values are used.

そこで、データ構造変換部113は、各列に存在するユニークな値を小さいものから順に整列して並べ、先頭から順にそれぞれの値を特定する番号(値ID)を付与し、「日付」値リスト211、「店ID」値リスト212、「売上」値リスト213という3通りの値リストを作成する。   Therefore, the data structure conversion unit 113 arranges the unique values existing in each column in an ascending order, assigns numbers (value IDs) for specifying the respective values in order from the top, and sets the “date” value list. Three value lists are created: 211, “Store ID” value list 212, and “Sales” value list 213.

「日付」値リスト211は、「日付」値IDと日付との対応を示す。「日付」値ID=「0」の場合には日付=「8月10日」、「日付」値ID=「1」の場合には日付=「8月11日」となる。   The “date” value list 211 indicates correspondence between “date” value IDs and dates. When “date” value ID = “0”, date = “August 10”, and when “date” value ID = “1”, date = “August 11”.

「店ID」値リスト212は、「店ID」値IDと店IDの値との対応を示す。「店ID」値ID=「0」の場合には店ID=「A1」、「店ID」値ID=「1」の場合には店ID=「D3」、「店ID」値ID=「2」の場合には店ID=「E1」となる。   The “store ID” value list 212 indicates the correspondence between the “store ID” value ID and the store ID value. When “Store ID” value ID = “0”, Store ID = “A1”. When “Store ID” value ID = “1”, Store ID = “D3”, “Store ID” value ID = “ In the case of “2”, the store ID = “E1”.

「売上」値リスト213は、「売上」値IDと売上の値との対応を示す。「売上」値ID=「0」〜「4」の場合で、売上は各々「800」「1000」「1200」「4800」「12000」となる。   The “sales” value list 213 indicates correspondence between “sales” value IDs and sales values. In the case of “sales” value ID = “0” to “4”, the sales are “800”, “1000”, “1200”, “4800”, and “12000”, respectively.

そしてデータ構造変換部113は、各々の値IDで表データ210を置き換え、さらに日付210aと店ID210bの値ごとに表データ210を分割して、値ID表221〜222,231〜233を作成する。値ID表221は、「日付」値ID=「0」の場合の「店ID」値IDと「売上」値IDの対応を示す。値ID表222は、「日付」値ID=「1」の場合の「店ID」値IDと「売上」値IDの対応を示す。   Then, the data structure conversion unit 113 replaces the table data 210 with each value ID, further divides the table data 210 for each value of the date 210a and the store ID 210b, and creates the value ID tables 221 to 222, 231 to 233. . The value ID table 221 shows the correspondence between the “store ID” value ID and the “sales” value ID when “date” value ID = “0”. The value ID table 222 shows the correspondence between the “store ID” value ID and the “sales” value ID when “date” value ID = “1”.

値ID表231は、「店ID」値ID=「0」の場合の「日付」値IDと「売上」値IDの対応を示す。値ID表232は、「店ID」値ID=「1」の場合の「日付」値IDと「売上」値IDの対応を示す。値ID表233は、「店ID」値ID=「2」の場合の「日付」値IDと「売上」値IDの対応を示す。   The value ID table 231 shows the correspondence between the “date” value ID and the “sales” value ID in the case of “store ID” value ID = “0”. The value ID table 232 shows the correspondence between the “date” value ID and the “sales” value ID in the case of “store ID” value ID = “1”. The value ID table 233 shows the correspondence between the “date” value ID and the “sales” value ID in the case of “store ID” value ID = “2”.

データ構造変換部113は、以上で作成した値リスト211〜213、および値ID表221〜222,231〜233を、各データノード21〜23に分配して記憶させる。図3に示した例では、データ構造変換部113は、値ID表222、値ID表231、および値リスト211をデータノード21の記憶手段202に記憶させている。また、値ID表221、値ID表232、および値リスト212をデータノード22の記憶手段202に記憶させている。さらに値ID表233、および値リスト213をデータノード23の記憶手段202に記憶させている。   The data structure conversion unit 113 distributes and stores the value lists 211 to 213 and the value ID tables 221 to 222 and 231 to 233 created as described above to the data nodes 21 to 23. In the example illustrated in FIG. 3, the data structure conversion unit 113 stores the value ID table 222, the value ID table 231, and the value list 211 in the storage unit 202 of the data node 21. Further, the value ID table 221, the value ID table 232, and the value list 212 are stored in the storage unit 202 of the data node 22. Further, the value ID table 233 and the value list 213 are stored in the storage unit 202 of the data node 23.

ここでデータ構造変換部113が行う処理については、データノード21〜23のうちの特定の1つのデータノードに、データの容量および処理量が大きく偏ることがなければ、任意の分割方法を使用することができる。また、図2で示した表データ210のデータ構造を設計する際に、基準列および対象列といった各列の属性について、あらかじめ操作者が入力しているものとする。データ構造変換部113は、「基準列」および「対象列」であると設定されたデータ列の全てについて値リストを作成し、かつ「基準列」であると設定されたデータ列の全てについて上記で示したように表データ210を分割する。   Here, with respect to the processing performed by the data structure conversion unit 113, an arbitrary division method is used as long as the data capacity and the processing amount are not largely biased to one specific data node among the data nodes 21 to 23. be able to. Furthermore, when designing the data structure of the table data 210 shown in FIG. 2, it is assumed that the operator has input in advance the attributes of each column such as the reference column and the target column. The data structure conversion unit 113 creates a value list for all the data columns set to be the “reference column” and the “target column”, and the above-described data for all the data columns set to be the “reference column”. The table data 210 is divided as shown in FIG.

図4は、図1に示したデータ構造変換部113が、図2に示すデータを図3に示すように分割して各データノード21〜23に分配して記憶させる処理を示すフローチャートである。まず、表データ210のデータ構造について、ユーザによる入力を受け付ける(ステップS301)。この際に、どのデータ項目が「基準列」や「対象列」であるかについての入力も同時に行われる。   FIG. 4 is a flowchart showing a process in which the data structure conversion unit 113 shown in FIG. 1 divides the data shown in FIG. 2 as shown in FIG. 3, distributes the data to the data nodes 21 to 23, and stores them. First, an input by the user is accepted for the data structure of the table data 210 (step S301). At this time, an input as to which data item is the “reference column” or “target column” is also performed at the same time.

その次に、ユーザから表データ210の入力を受け付け(ステップS302)、これが完了すると基準列のうちの1つについて(ステップS303〜304)、まずデータ列の値を値IDに置き換えて(ステップS305)、同時にこの基準列の値ごとに表を分割する(ステップS306)。データ構造変換部113は、このステップS305〜306の処理を全ての基準列について繰り返すと共に、置き換えた値と値IDの対応を示す値リスト211〜213も同時に作成する。   Next, the input of the table data 210 is received from the user (step S302), and when this is completed, the value of the data string is first replaced with the value ID for one of the reference columns (steps S303 to 304) (step S305). At the same time, the table is divided for each value of the reference column (step S306). The data structure conversion unit 113 repeats the processing in steps S305 to S306 for all the reference columns, and simultaneously creates value lists 211 to 213 indicating the correspondence between the replaced values and the value IDs.

全ての基準列についてこの処理が完了したら、出来上がった値リストおよび値ID表を、各データノード21〜23に送信して記憶させる(ステップS307)。   When this process is completed for all the reference columns, the completed value list and value ID table are transmitted to and stored in the data nodes 21 to 23 (step S307).

図5は、図1に示したデータ配置情報121の、図2および図3に示した各データに対応する例について示す説明図である。データ配置情報121は、各データノード21〜23のコンピュータ名を示すデータノード名121aと、当該コンピュータに記憶される値リスト211〜213、および値ID表221〜222,231〜233のデータ種類を示す記憶内容121bとの対応を示す。   FIG. 5 is an explanatory diagram showing an example of the data arrangement information 121 shown in FIG. 1 corresponding to each data shown in FIG. 2 and FIG. The data arrangement information 121 includes the data node name 121a indicating the computer name of each data node 21 to 23, the value lists 211 to 213 stored in the computer, and the data types of the value ID tables 221 to 222 and 231 to 233. The correspondence with the stored content 121b shown is shown.

データ配置情報121は、図5で示した例のような形に限られるものではなく、計算で使用されるデータ、および値IDに対応する実際の値が、各データノード21〜23のうちのいずれに記憶されているかを特定できさえすれば、どのようなデータ形式でもよい。   The data arrangement information 121 is not limited to the form shown in the example shown in FIG. 5, and the data used in the calculation and the actual value corresponding to the value ID are among the data nodes 21 to 23. Any data format may be used as long as it can be specified where the data is stored.

(日付別の売上集計処理)
このように各データノード21〜23に分配して記憶されたデータに対して、クライアントマシン50からフロントDBサーバ10に対してクエリー(SQL文)が発行された際の、フロントDBサーバ10および各データノード21〜23で行われる処理について以下に説明する。
(Sales summary processing by date)
As described above, when the query (SQL sentence) is issued from the client machine 50 to the front DB server 10 for the data distributed and stored in each of the data nodes 21 to 23, the front DB server 10 and each Processing performed in the data nodes 21 to 23 will be described below.

以下に示す数4は、図2〜3に示した内容のデータ例に対して、クライアントマシン50がフロントDBサーバ10に対して発行するクエリーの一例である。これは、表データ210から日付ごとの売上の合計を求めるクエリーである。

Figure 2012108635
Formula 4 shown below is an example of a query that the client machine 50 issues to the front DB server 10 for the data example having the contents shown in FIGS. This is a query for obtaining the total sales for each date from the table data 210.
Figure 2012108635

図6は、数4に示したクエリーに対して、図1で説明した分散メモリデータベースシステム1で行われる処理を示すフローチャートである。数4に示したクエリーを受けたフロントDBサーバ10の問い合わせ処理部111は、データ配置情報管理部112がデータ配置情報121を参照して、「売上表」に対し「日付」別の値ID表が各データノード21〜23上に存在することを確認し、分割された各表の存在するノードを特定する(ステップS401)。   FIG. 6 is a flowchart showing processing performed in the distributed memory database system 1 described with reference to FIG. The query processing unit 111 of the front DB server 10 that has received the query shown in Equation 4 refers to the data allocation information 121 by the data allocation information management unit 112, and a value ID table for each “date” relative to “sales table”. Is present on each of the data nodes 21 to 23, and the node where each of the divided tables exists is identified (step S401).

そして、フロントDBサーバ10の問い合わせ処理部111は、データノード21〜23の問い合わせ処理部204に対して、日付別の値ID表221〜222で、「値ID」によって表現された「売上」列の値を「値ID」ごとの出現数を数えるよう問い合わせを発行する(ステップS402)。データノード23は日付別の値ID表を記憶していないので、ここでは対象外となる。   Then, the inquiry processing unit 111 of the front DB server 10 sends the “sales” column expressed by “value ID” in the date-specific value ID tables 221 to 222 to the inquiry processing unit 204 of the data nodes 21 to 23. An inquiry is issued so as to count the number of occurrences for each “value ID” (step S402). Since the data node 23 does not store the value ID table for each date, it is excluded here.

問い合わせを受け付けたデータノード21〜22の問い合わせ処理部204は、日付別の値ID表221〜222に対し、「売上」列の「値ID」ごとの出現数を計算して、これをフロントDBサーバ10に返却する(ステップS403)。図7は、図6のステップS403(数4)に示す処理で、データノード21〜22からフロントDBサーバ10に返却される「値ID」ごとの出現数の表241〜242を示す説明図である。   The inquiry processing unit 204 of the data nodes 21 to 22 that has received the inquiry calculates the number of appearances for each “value ID” in the “sales” column for the date-specific value ID tables 221 to 222, and uses this as the front DB. Return to the server 10 (step S403). FIG. 7 is an explanatory diagram showing tables 241 to 242 of the number of appearances for each “value ID” returned from the data nodes 21 to 22 to the front DB server 10 in the process shown in step S403 (expression 4) of FIG. is there.

これを受けたフロントDBサーバ10の問い合わせ処理部111は、「日付」と「売上」の各々の「値ID」に対応する値リスト211〜213を、各データノード21〜23から取得する(ステップS404〜405)。なお、このステップS404〜405の処理は、値リスト211〜213そのものを各データノード21〜23から取得するのではなく、値IDに対応する値を各データノード21〜23から取得するものでもよい。   Receiving this, the inquiry processing unit 111 of the front DB server 10 acquires the value lists 211 to 213 corresponding to the “value IDs” of “date” and “sales” from the data nodes 21 to 23 (steps). S404-405). Note that the processing in steps S404 to S405 may be such that the value list 211 to 213 itself is not acquired from each data node 21 to 23, but the value corresponding to the value ID is acquired from each data node 21 to 23. .

そして、フロントDBサーバ10の問い合わせ処理部111は、ステップS403で返却された「売上」列の「値ID」ごとの出現数に、実際の「売上」の数値を適用して、実際の売上金額を結果データ243として算出して、これをクライアントマシン50に返却する(ステップS406)。   Then, the inquiry processing unit 111 of the front DB server 10 applies the actual “sales” numerical value to the number of appearances of each “value ID” in the “sales” column returned in step S403, thereby calculating the actual sales amount. Is calculated as result data 243 and returned to the client machine 50 (step S406).

以下に示す数5は、図6のステップS406に示した処理で、図2〜3に示した内容のデータ例に対して数4のクエリーによって実際に行われる計算を示す。図8は、図6のステップS406(数5)に示した処理の結果、クライアントマシン50に返却される日付ごとの売上の合計を示す結果データ243について示す説明図である。

Figure 2012108635
Equation 5 below shows the calculation actually performed by the query of Equation 4 for the data example having the contents shown in FIGS. 2 to 3 in the process shown in step S406 of FIG. FIG. 8 is an explanatory diagram showing result data 243 indicating the total sales for each date returned to the client machine 50 as a result of the process shown in step S406 (Equation 5) of FIG.
Figure 2012108635

(店ID別の売上集計処理)
上記で示した処理は、たとえば以下の数6に示すクエリーをクライアントマシン50が発行した場合においても、図6で示した動作によって同様に処理することができる。これは、表データ210から店IDごとの売上の合計を求めるクエリーである。

Figure 2012108635
(Sales summary processing by store ID)
For example, even when the client machine 50 issues the query shown in the following Equation 6 by the operation shown in FIG. 6, the processing shown above can be similarly processed. This is a query for calculating the total sales for each store ID from the table data 210.
Figure 2012108635

この場合、問い合わせ処理部111は、データ配置情報管理部112がデータ配置情報121を参照して、「売上表」に対し「店ID」別の値ID表が各データノード21〜23上に存在することを確認し、分割された各表の存在するノードを特定する(ステップS401)。   In this case, the inquiry processing unit 111 refers to the data arrangement information 121 by the data arrangement information management unit 112, and a value ID table for each “store ID” exists on each data node 21 to 23 with respect to “sales table”. To identify the node in which each divided table exists (step S401).

そして、フロントDBサーバ10の問い合わせ処理部111は、データノード21〜23の問い合わせ処理部204に対して、店ID別の値ID表231〜233で、「値ID」によって表現された「売上」列の値を「値ID」ごとの出現数を数えるよう問い合わせを発行する(ステップS402)。   Then, the inquiry processing unit 111 of the front DB server 10 sends “sales” expressed by “value ID” in the value ID tables 231 to 233 for each store ID to the inquiry processing unit 204 of the data nodes 21 to 23. An inquiry is issued so as to count the number of occurrences of each column value “value ID” (step S402).

問い合わせを受け付けたデータノード21〜23の問い合わせ処理部204は、店ID別の値ID表231〜233に対し、「売上」列の「値ID」ごとの出現数を計算して、これをフロントDBサーバ10に返却する(ステップS403)。図9は、図6のステップS403(数6)に示す処理で、データノード21〜23からフロントDBサーバ10に返却される「値ID」ごとの出現数の表251〜253を示す説明図である。   The inquiry processing unit 204 of the data nodes 21 to 23 that received the inquiry calculates the number of appearances for each “value ID” in the “sales” column for the value ID tables 231 to 233 for each store ID, Return to the DB server 10 (step S403). FIG. 9 is an explanatory diagram showing tables 251 to 253 of the number of appearances for each “value ID” returned from the data nodes 21 to 23 to the front DB server 10 in the process shown in step S403 (formula 6) of FIG. is there.

これを受けたフロントDBサーバ10の問い合わせ処理部111は、「店ID」と「売上」の各々の「値ID」に対応する値リスト211〜213を、各データノード21〜23から取得する(ステップS404〜405)。なお、このステップS404〜405の処理は、値リスト211〜213そのものを各データノード21〜23から取得するのではなく、値IDに対応する値を各データノード21〜23から取得するものでもよい。   In response to this, the inquiry processing unit 111 of the front DB server 10 acquires the value lists 211 to 213 corresponding to the “value IDs” of “store ID” and “sales” from the data nodes 21 to 23 ( Steps S404 to 405). Note that the processing in steps S404 to S405 may be such that the value list 211 to 213 itself is not acquired from each data node 21 to 23, but the value corresponding to the value ID is acquired from each data node 21 to 23. .

そして、フロントDBサーバ10の問い合わせ処理部111は、ステップS403で返却された「売上」列の「値ID」ごとの出現数に、実際の「売上」の数値を適用して、実際の売上金額を結果データ254として算出して、算出して、これをクライアントマシン50に返却する(ステップS406)。   Then, the inquiry processing unit 111 of the front DB server 10 applies the actual “sales” numerical value to the number of appearances of each “value ID” in the “sales” column returned in step S403, thereby calculating the actual sales amount. Is calculated as result data 254, and is calculated and returned to the client machine 50 (step S406).

以下に示す数7は、図6のステップS406に示した処理で、図2〜3に示した内容のデータ例に対して数6のクエリーによって実際に行われる計算を示す。図10は、図6のステップS406(数7)に示した処理の結果、クライアントマシン50に返却される店IDごとの売上の合計を示す結果データ254について示す説明図である。

Figure 2012108635
Equation 7 below shows the calculation actually performed by the query of Equation 6 for the data example shown in FIGS. 2 to 3 in the processing shown in step S406 of FIG. FIG. 10 is an explanatory diagram showing result data 254 indicating the total sales for each store ID returned to the client machine 50 as a result of the process shown in step S406 (Equation 7) of FIG.
Figure 2012108635

(和以外の集計処理)
以上、各データノード21〜23に分配して記憶されたデータに対して、クライアントマシン50からフロントDBサーバ10に対して対象列の和(SUM)を求めるクエリーが発行された際の処理について説明したが、これ以外のたとえば最小値(MIN)、最大値(MAX)、出現数(COUNT)、平均値(AVG)を求める動作についても、同一のシステムで可能である。
(Aggregation processing other than Japanese)
The processing when the query for calculating the sum (SUM) of the target columns is issued from the client machine 50 to the front DB server 10 for the data distributed and stored in the data nodes 21 to 23 has been described above. However, other operations such as obtaining the minimum value (MIN), the maximum value (MAX), the number of appearances (COUNT), and the average value (AVG) can be performed by the same system.

このうち最小値(MIN)もしくは最大値(MAX)を求めるクエリーを受けた場合は、各データノード21〜23に記憶されている値ID表221〜222,231〜233から、問い合わせ処理部204が各々の値IDが最大もしくは最小となるものを選択してフロントDBサーバ10の問い合わせ処理部111に返却する。そしてフロントDBサーバ10の問い合わせ処理部111は、図6のステップS406と同様にして、値リスト211〜213から返却された値IDに対応する値をクライアントマシン50に返却する。   When a query for obtaining the minimum value (MIN) or the maximum value (MAX) is received, the inquiry processing unit 204 uses the value ID tables 221 to 222 and 231 to 233 stored in the data nodes 21 to 23, respectively. A value having the maximum or minimum value ID is selected and returned to the inquiry processing unit 111 of the front DB server 10. Then, the inquiry processing unit 111 of the front DB server 10 returns values corresponding to the value IDs returned from the value lists 211 to 213 to the client machine 50 in the same manner as in step S406 of FIG.

値リスト211〜213は、前述したように値の小さいものから順に整列して並べて、その順番に値IDを割り振るものであるので、各データノード21〜23の問い合わせ処理部204は、値リスト211〜213で実際の値を参照しなくても、値IDが最大もしくは最小となるものを最大値もしくは最小値であると判断することができる。   Since the value lists 211 to 213 are arranged in order from the smallest value as described above, and value IDs are assigned in that order, the inquiry processing unit 204 of each data node 21 to 23 receives the value list 211. Even if the actual value is not referred to in steps 213 to 213, the value having the maximum or minimum value ID can be determined to be the maximum value or the minimum value.

出現数(COUNT)を求めるクエリーを受けた場合は、各データノード21〜23に値ID表221〜222,231〜233に各値IDごとの出現数が記憶されているので、フロントDBサーバ10の問い合わせ処理部111は各データノード21〜23側でその出現数を計算させる。そして、フロントDBサーバ10の問い合わせ処理部111は各データノード21〜23から返却された出現数を受けて、図6のステップS406と同様にして、その値IDを実際の値に変換してクライアントマシン50に返却する。   When a query for the number of occurrences (COUNT) is received, the number of occurrences for each value ID is stored in the value ID tables 221 to 222 and 231 to 233 in the data nodes 21 to 23. Therefore, the front DB server 10 The inquiry processing unit 111 calculates the number of appearances on each data node 21 to 23 side. Then, the inquiry processing unit 111 of the front DB server 10 receives the number of appearances returned from each of the data nodes 21 to 23, converts the value ID into an actual value in the same manner as in step S406 in FIG. Return to machine 50.

平均値(AVG)を求めるクエリーを受けた場合は、図6のステップS401〜406と同様の処理で、ただステップS406でフロントDBサーバ10の問い合わせ処理部111で各々の値IDを実際の値に変換してから平均値を求めてクライアントマシン50に返却する点のみが図6で示した処理と異なる。   When a query for obtaining an average value (AVG) is received, the same processing as steps S401 to S406 in FIG. 6 is performed. In step S406, the query processor 111 of the front DB server 10 sets each value ID to an actual value. The only difference from the processing shown in FIG. 6 is that the average value is obtained after conversion and returned to the client machine 50.

(第1の実施形態の全体的な動作)
次に、上記の実施形態の全体的な動作について説明する。本実施形態に係るデータ処理方法は、フロントデータベースサーバ(フロントDBサーバ10)と複数台のデータノード21〜23とが相互に接続されて構成される分散メモリデータベースシステム1にあって、外部からの表データの入力をフロントデータベースサーバのデータ構造変換部が受け付け(図4・ステップS301〜302)、入力された表データを、集計軸になり得る列としてあらかじめ指定されたデータ項目の各々についてフロントデータベースサーバのデータ構造変換部が個別に分割して実際のデータを値IDに置換した複数の値ID表を生成し(図4・ステップS304〜306)、生成された複数の値ID表をフロントデータベースサーバのデータ構造変換部が各データノードに分散して記憶させ(図4・ステップS307)、外部のクライアントマシンから発行された集合関数を含むクエリーをフロントデータベースサーバの問い合わせ処理部が受け付け、受け付けられたクエリーに基づいて表データの中の特定の値IDの出現数をフロントデータベースサーバの問い合わせ処理部が各データノードに問い合わせ(図6・ステップS401〜402)、各データノードから返された特定の値IDの出現数からフロントデータベースサーバの問い合わせ処理部がクエリーに対応する集合関数の値を計算してクライアントマシンに返送する(図6・ステップS404〜406)。
(Overall operation of the first embodiment)
Next, the overall operation of the above embodiment will be described. The data processing method according to the present embodiment is a distributed memory database system 1 configured by connecting a front database server (front DB server 10) and a plurality of data nodes 21 to 23 to each other. The data structure conversion unit of the front database server accepts the input of table data (FIG. 4, steps S301 to 302), and the input table data is stored in the front database for each data item designated in advance as a column that can be an aggregation axis. The data structure conversion unit of the server individually generates a plurality of value ID tables in which actual data is replaced with value IDs (FIG. 4, steps S304 to 306), and the generated plurality of value ID tables are converted into a front database. The server's data structure conversion unit is distributed and stored in each data node (FIG. 4, step S). 07), the query processing unit of the front database server accepts a query including a set function issued from an external client machine, and the number of occurrences of a specific value ID in the table data is determined based on the accepted query. The query processing unit queries each data node (FIG. 6, steps S401 to 402), and the query processing unit of the front database server determines the set function corresponding to the query from the number of occurrences of the specific value ID returned from each data node. The value is calculated and returned to the client machine (FIG. 6, steps S404 to S406).

ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータであるフロントDBサーバ10に実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、DVD、CD、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
Here, each of the above operation steps may be programmed so as to be executable by a computer, and these may be executed by the front DB server 10 which is a computer that directly executes each of the steps. The program may be recorded on a non-transitory recording medium, such as a DVD, a CD, or a flash memory. In this case, the program is read from the recording medium by a computer and executed.
By this operation, this embodiment has the following effects.

本実施形態では、全ての基準列、即ち集計軸になり得る列について、表データ210を分割して各データノード21〜23に分配して記憶させている。これによって、どの基準列についてクエリーが発行されたとしても、他の装置とのデータの交換を発生させずにデータノード21〜23のうちの1台だけで集合関数に対する集計の処理を行って、その集計結果だけをフロントDBサーバ10に送信するようにできる。さらに、フロントDBサーバ10での処理も、単純に値IDを実際の値に差し替えるだけでよいので、高速に行うことができる。   In the present embodiment, the table data 210 is divided and distributed to the data nodes 21 to 23 for all the reference columns, that is, columns that can be aggregate axes. As a result, even if a query is issued for any reference column, the aggregation processing for the set function is performed by only one of the data nodes 21 to 23 without causing the exchange of data with other devices, Only the total result can be transmitted to the front DB server 10. Furthermore, the processing in the front DB server 10 can be performed at high speed because it is sufficient to simply replace the value ID with the actual value.

その際、各データノード21〜23が記憶するデータは、値リストと値IDによる表現に変換した上で記憶されるので、各データノード21〜23に記憶されるデータの容量を削減することができる。特に重複する値が多い場合に、そのデータの容量の削減の効果はより顕著なものとなる。さらに、複数の基準列について表データ210を分割する際のデータ容量の増大も、最低限に抑制することができる。   At this time, the data stored in each of the data nodes 21 to 23 is stored after being converted into an expression based on the value list and the value ID, so that the capacity of the data stored in each of the data nodes 21 to 23 can be reduced. it can. In particular, when there are many overlapping values, the effect of reducing the data capacity becomes more remarkable. Furthermore, an increase in data capacity when the table data 210 is divided for a plurality of reference columns can be suppressed to a minimum.

(第2の実施形態)
本発明の第2の実施形態では、フロントデータベースサーバ(フロントDBサーバ510)のデータ構造変換部が、表データの中で集計軸および集計対象のいずれにもなり得ない列としてあらかじめ指定されたデータ項目の各々について、集計軸になり得る列についての値ID表のいずれか1種類に付随して記憶させる構成とした。
(Second Embodiment)
In the second embodiment of the present invention, the data structure conversion unit of the front database server (front DB server 510) is data designated in advance as a column that cannot be either the aggregation axis or the aggregation target in the table data. Each item is stored in association with any one of the value ID tables for columns that can be aggregate axes.

この構成によれば、集計軸および集計対象のいずれにもなり得ないデータ項目を含むデータに対しても、第1の実施形態と同一の効果を得ることができる。
以下、これをより詳細に説明する。
According to this configuration, the same effect as that of the first embodiment can be obtained for data including data items that cannot be any of the aggregation axis and the aggregation target.
Hereinafter, this will be described in more detail.

図11は、本発明の第2の実施形態に係る分散メモリデータベースシステム501の構成を示す説明図である。分散メモリデータベースシステム501は、フロントDBサーバ510と複数台のデータノード521〜523とが、第1の実施形態と同一の内部ネットワーク30を介して相互に接続されて構成される。外部ネットワーク40、およびクライアントマシン50も、第1の実施形態と同一である。   FIG. 11 is an explanatory diagram showing the configuration of the distributed memory database system 501 according to the second embodiment of the present invention. The distributed memory database system 501 is configured by connecting a front DB server 510 and a plurality of data nodes 521 to 523 to each other via the same internal network 30 as in the first embodiment. The external network 40 and the client machine 50 are the same as those in the first embodiment.

フロントDBサーバ510およびデータノード521〜523は、第1の実施形態のフロントDBサーバ10およびデータノード21〜23と、ハードウェア的には同一の構成を有する。フロントDBサーバ510の主演算制御手段101で動作する問い合わせ処理部111およびデータ構造変換部113が、各々問い合わせ処理部511およびデータ構造変換部513に置換されている。また、データノード521〜523については、各々が記憶している値ID表621〜622,631〜632が第1の実施形態と異なる。   The front DB server 510 and the data nodes 521 to 523 have the same hardware configuration as the front DB server 10 and the data nodes 21 to 23 of the first embodiment. The inquiry processing unit 111 and the data structure conversion unit 113 that operate in the main arithmetic control unit 101 of the front DB server 510 are replaced with an inquiry processing unit 511 and a data structure conversion unit 513, respectively. Further, regarding the data nodes 521 to 523, the value ID tables 621 to 622 and 631 to 632 stored therein are different from those of the first embodiment.

図12は、図11で説明した分散メモリデータベースシステム501に対して入力される表データ610の一例を示す説明図である。表データ610は、項目A610a、項目B610b、項目C610c、項目D610dといったデータ項目を持つが、このうち基準列として項目A610aおよび項目B610b、対象列として項目D610dが指定されているが、項目C610cは基準列および対象列のいずれにも該当しない。なお、項目A610aは同時に主キーにも指定されている。   FIG. 12 is an explanatory diagram showing an example of the table data 610 input to the distributed memory database system 501 described in FIG. The table data 610 has data items such as an item A 610a, an item B 610b, an item C 610c, and an item D 610d. Among these, the item A 610a and the item B 610b are specified as the reference columns, and the item D 610d is specified as the target column. Does not fall into either column or target column. The item A 610a is also designated as a primary key at the same time.

図13は、図12に示した表データ610からデータ構造変換部513が作成する値ID表621〜622,631〜632の例を示す説明図である。前述のように基準列でも対象列でもない項目C610cが表データ610に含まれる場合、データ構造変換部513は、項目A610aの値ID別の値ID表621〜622にのみ項目C610cの値IDを同時に保持し、項目B610bの値ID別の値ID表631〜632には項目C610cの値IDを含めないようにする。値リストは、項目A〜Dの全てについて、第1の実施形態と同様に作成され、各データノード521〜523に分散して記憶される。   FIG. 13 is an explanatory diagram showing an example of value ID tables 621 to 622 and 631 to 632 created by the data structure conversion unit 513 from the table data 610 shown in FIG. As described above, when the item C610c that is neither the reference column nor the target column is included in the table data 610, the data structure conversion unit 513 assigns the value ID of the item C610c only to the value ID tables 621 to 622 for each value ID of the item A610a. At the same time, the value ID tables 631 to 632 for each value ID of the item B 610b are not included in the value ID of the item C 610c. The value list is created for all items A to D in the same manner as in the first embodiment, and is distributed and stored in the data nodes 521 to 523.

たとえば、項目B610bの特定の値もしくは値IDから、これに対応する項目C610cの値もしくは値IDを知りたい場合には、まず項目B610bの値ID別の値ID表631〜632から、項目B610bの特定の値IDに対応する項目A610aの値IDを特定し、そこから項目A610aの値ID別の値ID表621〜622を参照してこれに対応する項目C610cの値IDを特定することができる。   For example, when the user wants to know the value or value ID of the corresponding item C610c from the specific value or value ID of the item B610b, first, from the value ID tables 631 to 632 for each value ID of the item B610b, The value ID of the item A 610a corresponding to the specific value ID can be specified, and the value ID of the item C 610c corresponding to this can be specified by referring to the value ID tables 621 to 622 for each value ID of the item A 610a. .

項目C610cは基準列でも対象列でもなく、従って集合関数による処理の対象とはならないので、全ての値ID表でその対応関係を保持する必要はなく、ただ他のデータ項目の値との対応がわかるようにしておけばよいものである。従って、いずれか1つの基準列(必ずしも主キーである必要はない)についてのみ項目C610cとの対応がわかるようにしておけば、他の値との対応を辿ることが可能となる。   Since the item C610c is neither the reference column nor the target column, and therefore is not a target of processing by the set function, it is not necessary to maintain the correspondence relationship in all the value ID tables, and the correspondence with the values of other data items is merely It should be understood. Therefore, if the correspondence with the item C610c is known only for any one of the reference columns (not necessarily the primary key), the correspondence with the other values can be traced.

(実施形態の拡張)
以上で説明した第1および第2の実施形態は、その趣旨を改変しない範囲で、様々な拡張が考えられる。
たとえば、作成された値ID表および値リストについて、1つの表を必ず1つのデータノードに記憶する必要はない。1つの値ID表もしくは値リストを、各データノードの記憶容量などのような制約に応じて、複数のデータノードに適宜分割して記憶してもよい。この場合には、データ配置情報管理部112が、どの値ID表もしくは値リストが、どのデータノードに分割して記憶されているかを把握してデータ配置情報121にその旨を記憶するようにすればよい。
(Extended embodiment)
In the first and second embodiments described above, various extensions can be considered without departing from the spirit of the first and second embodiments.
For example, for the created value ID table and value list, it is not always necessary to store one table in one data node. One value ID table or value list may be divided into a plurality of data nodes and stored in accordance with restrictions such as the storage capacity of each data node. In this case, the data arrangement information management unit 112 grasps which value ID table or value list is divided and stored in which data node and stores it in the data arrangement information 121. That's fine.

これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。   The present invention has been described with reference to the specific embodiments shown in the drawings. However, the present invention is not limited to the embodiments shown in the drawings, and any known hitherto provided that the effects of the present invention are achieved. Even if it is a structure, it is employable.

上述した各々の実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。   About each embodiment mentioned above, it is as follows when the summary of the novel technical content is put together. In addition, although part or all of the said embodiment is summarized as follows as a novel technique, this invention is not necessarily limited to this.

(付記1) フロントデータベースサーバと複数台のデータノードとが相互に接続されて構成される分散メモリデータベースシステムであって、
前記フロントデータベースサーバが、
外部から入力される表データを分割して各々の実際のデータを値IDに置換した複数の値ID表を生成してこれらを前記各データノードに分散して記憶させるデータ構造変換部と、
外部のクライアントマシンから発行された集合関数を含むクエリーに基づいて前記各データノードに対して前記表データの中の特定の値IDの出現数を問い合わせると共に、これに応じて前記各データノードから返された特定の値IDの出現数から前記クエリーに対応する集合関数の値を計算して前記クライアントマシンに返送する問い合わせ処理部と
を有し、
前記データ構造変換部が、前記複数の値ID表を生成する際に、前記表データの中で集計軸になり得る列としてあらかじめ指定された複数のデータ項目の各々について個別に前記複数の値ID表を生成することを特徴とする分散メモリデータベースシステム。
(Supplementary note 1) A distributed memory database system comprising a front database server and a plurality of data nodes connected to each other,
The front database server is
A data structure conversion unit that divides table data input from the outside and generates a plurality of value ID tables in which each actual data is replaced with a value ID, and distributes and stores these in each data node;
Based on a query including an aggregate function issued from an external client machine, the data node is inquired about the number of occurrences of a specific value ID in the table data, and the data node returns a response accordingly. A query processing unit that calculates a value of a set function corresponding to the query from the number of occurrences of the specified value ID and returns the value to the client machine,
When the data structure conversion unit generates the plurality of value ID tables, the plurality of value IDs individually for each of a plurality of data items designated in advance as a column that can be an aggregation axis in the table data. A distributed memory database system characterized by generating a table.

(付記2) 前記フロントデータベースサーバの前記データ構造変換部が、前記複数の値ID表を生成する際に、前記表データの中で集計軸および集計対象になり得る列としてあらかじめ指定されたデータ項目の各々について実際の値を値IDに置換すると共に、前記値IDと前記実際の値との対応を示す値リストを生成する機能を有し、
前記フロントデータベースサーバが、前記値リストおよび前記値ID表が前記各データノードの中のいずれに分散されたかを記憶するデータ配置情報管理部を有することを特徴とする、付記1に記載の分散メモリデータベースシステム。
(Supplementary Note 2) When the data structure conversion unit of the front database server generates the plurality of value ID tables, data items designated in advance as columns that can be aggregated axes and aggregation targets in the table data And a function of generating a value list indicating a correspondence between the value ID and the actual value, and replacing an actual value with a value ID for each of
The distributed memory according to claim 1, wherein the front database server includes a data arrangement information management unit that stores in which of the data nodes the value list and the value ID table are distributed. Database system.

(付記3) 前記フロントデータベースサーバの前記データ構造変換部が、前記複数の値ID表を生成する際に、前記実際の値を大小順にソートしてから前記値IDに置換することを特徴とする、付記2に記載の分散メモリデータベースシステム。 (Supplementary note 3) When the data structure conversion unit of the front database server generates the plurality of value ID tables, the actual values are sorted in order of magnitude and then replaced with the value ID. The distributed memory database system according to attachment 2.

(付記4) 前記フロントデータベースサーバの前記データ構造変換部が、前記表データの中で集計軸および集計対象のいずれにもなり得ない列としてあらかじめ指定されたデータ項目の各々について、前記集計軸になり得る列についての前記値ID表のいずれか1種類に付随して記憶させることを特徴とする、付記2に記載の分散メモリデータベースシステム。 (Additional remark 4) The said data structure conversion part of the said front database server is set to the said total axis about each of the data item previously designated as a column which cannot become any of the total axis and the total object in the said table data. The distributed memory database system according to appendix 2, wherein the distributed memory database system is stored in association with any one type of the value ID table for possible columns.

(付記5) 複数台のデータノードと相互に接続されて分散メモリデータベースシステムを構成するフロントデータベースサーバであって、
外部から入力される表データを分割して各々の実際のデータを値IDに置換した複数の値ID表を生成してこれらを前記各データノードに分散して記憶させるデータ構造変換部と、
外部のクライアントマシンから発行された集合関数を含むクエリーに基づいて前記各データノードに対して前記表データの中の特定の値IDの出現数を問い合わせると共に、これに応じて前記各データノードから返された特定の値IDの出現数から前記クエリーに対応する集合関数の値を計算して前記クライアントマシンに返送する問い合わせ処理部と
を有し、
前記データ構造変換部が、前記複数の値ID表を生成する際に、前記表データの中で集計軸になり得る列としてあらかじめ指定された複数のデータ項目の各々について個別に前記複数の値ID表を生成することを特徴とするフロントデータベースサーバ。
(Supplementary Note 5) A front database server that is connected to a plurality of data nodes to constitute a distributed memory database system,
A data structure conversion unit that divides table data input from the outside and generates a plurality of value ID tables in which each actual data is replaced with a value ID, and distributes and stores these in each data node;
Based on a query including an aggregate function issued from an external client machine, the data node is inquired about the number of occurrences of a specific value ID in the table data, and the data node returns a response accordingly. A query processing unit that calculates a value of a set function corresponding to the query from the number of occurrences of the specified value ID and returns the value to the client machine,
When the data structure conversion unit generates the plurality of value ID tables, the plurality of value IDs individually for each of a plurality of data items designated in advance as a column that can be an aggregation axis in the table data. A front database server characterized by generating a table.

(付記6) フロントデータベースサーバと複数台のデータノードとが相互に接続されて構成される分散メモリデータベースシステムにあって、
外部からの表データの入力を前記フロントデータベースサーバのデータ構造変換部が受け付け、
入力された前記表データを、集計軸になり得る列としてあらかじめ指定されたデータ項目の各々について前記フロントデータベースサーバのデータ構造変換部が個別に分割して実際のデータを値IDに置換した複数の値ID表を生成し、
生成された前記複数の値ID表を前記フロントデータベースサーバのデータ構造変換部が前記各データノードに分散して記憶させ、
外部のクライアントマシンから発行された集合関数を含むクエリーを前記フロントデータベースサーバの問い合わせ処理部が受け付け、
受け付けられた前記クエリーに基づいて前記表データの中の特定の値IDの出現数を前記フロントデータベースサーバの問い合わせ処理部が前記各データノードに問い合わせ、
前記各データノードから返された特定の値IDの出現数から前記フロントデータベースサーバの問い合わせ処理部が前記クエリーに対応する集合関数の値を計算して前記クライアントマシンに返送する
ことを特徴とするデータ処理方法。
(Supplementary Note 6) In a distributed memory database system configured by connecting a front database server and a plurality of data nodes to each other,
The data structure conversion unit of the front database server accepts input of table data from the outside,
The input table data is divided into a plurality of data items specified in advance as columns that can be aggregated axes, and the data structure conversion unit of the front database server individually divides and replaces actual data with value IDs. Generate a value ID table,
The data structure conversion unit of the front database server distributes and stores the generated plurality of value ID tables in the data nodes,
The query processing unit of the front database server accepts a query including a set function issued from an external client machine,
Based on the accepted query, the query processing unit of the front database server queries each data node for the number of occurrences of the specific value ID in the table data,
Data in which the query processing unit of the front database server calculates the value of the set function corresponding to the query from the number of occurrences of the specific value ID returned from each data node and returns it to the client machine Processing method.

(付記7) フロントデータベースサーバと複数台のデータノードとが相互に接続されて構成される分散メモリデータベースシステムにあって、
前記フロントデータベースサーバが備えるコンピュータに、
外部からの表データの入力を受け付ける手順、
入力された前記表データを、集計軸になり得る列としてあらかじめ指定されたデータ項目の各々について個別に分割して実際のデータを値IDに置換した複数の値ID表を生成する手順、
生成された前記複数の値ID表を前記各データノードに分散して記憶させる手順、
外部のクライアントマシンから発行された集合関数を含むクエリーを受け付ける手順、
受け付けられた前記クエリーに基づいて前記表データの中の特定の値IDの出現数を前記各データノードに問い合わせる手順、
および前記各データノードから返された特定の値IDの出現数から前記クエリーに対応する集合関数の値を計算して前記クライアントマシンに返送する手順
を実行させることを特徴とするデータ処理プログラム。
(Supplementary Note 7) In a distributed memory database system configured by connecting a front database server and a plurality of data nodes to each other,
In the computer provided in the front database server,
Procedure to accept external table data input,
A procedure for generating a plurality of value ID tables in which the input data is individually divided for each data item designated in advance as a column that can serve as an aggregation axis, and actual data is replaced with value IDs;
A procedure for distributing and storing the generated plurality of value ID tables in each data node;
A procedure for accepting a query including a set function issued from an external client machine,
A procedure for inquiring each data node about the number of occurrences of a specific value ID in the table data based on the accepted query;
A data processing program for executing a procedure for calculating a value of a set function corresponding to the query from the number of appearances of a specific value ID returned from each data node and returning the value to the client machine.

本発明はデータベースを利用するコンピュータシステム、特に分散メモリを使用するデータベースシステムに幅広く適用できる。   The present invention can be widely applied to a computer system using a database, particularly a database system using a distributed memory.

1、501 分散メモリデータベースシステム
10、510 フロントDBサーバ
21〜23、521〜523 データノード
30 内部ネットワーク
40 外部ネットワーク
50 クライアントマシン
101、201 主演算制御手段
102、202 記憶手段
103、203 通信手段
111、204、511 問い合わせ処理部
112、513 データ配置情報管理部
113 データ構造変換部
121 データ配置情報
210、610 表データ
211〜213 値リスト
221〜222、231〜33、621〜622、631〜632 値ID表
DESCRIPTION OF SYMBOLS 1,501 Distributed memory database system 10,510 Front DB server 21-23, 521-523 Data node 30 Internal network 40 External network 50 Client machine 101, 201 Main operation control means 102, 202 Storage means 103, 203 Communication means 111, 204, 511 Query processing unit 112, 513 Data arrangement information management unit 113 Data structure conversion unit 121 Data arrangement information 210, 610 Table data 211-213 Value list 221-222, 231-33, 621-622, 631-632 Value ID table

Claims (7)

フロントデータベースサーバと複数台のデータノードとが相互に接続されて構成される分散メモリデータベースシステムであって、
前記フロントデータベースサーバが、
外部から入力される表データを分割して各々の実際のデータを値IDに置換した複数の値ID表を生成してこれらを前記各データノードに分散して記憶させるデータ構造変換部と、
外部のクライアントマシンから発行された集合関数を含むクエリーに基づいて前記各データノードに対して前記表データの中の特定の値IDの出現数を問い合わせると共に、これに応じて前記各データノードから返された特定の値IDの出現数から前記クエリーに対応する集合関数の値を計算して前記クライアントマシンに返送する問い合わせ処理部と
を有し、
前記データ構造変換部が、前記複数の値ID表を生成する際に、前記表データの中で集計軸になり得る列としてあらかじめ指定された複数のデータ項目の各々について個別に前記複数の値ID表を生成することを特徴とする分散メモリデータベースシステム。
A distributed memory database system comprising a front database server and a plurality of data nodes connected to each other,
The front database server is
A data structure conversion unit that divides table data input from the outside and generates a plurality of value ID tables in which each actual data is replaced with a value ID, and distributes and stores these in each data node;
Based on a query including an aggregate function issued from an external client machine, the data node is inquired about the number of occurrences of a specific value ID in the table data, and the data node returns a response accordingly. A query processing unit that calculates a value of a set function corresponding to the query from the number of occurrences of the specified value ID and returns the value to the client machine,
When the data structure conversion unit generates the plurality of value ID tables, the plurality of value IDs individually for each of a plurality of data items designated in advance as a column that can be an aggregation axis in the table data. A distributed memory database system characterized by generating a table.
前記フロントデータベースサーバの前記データ構造変換部が、前記複数の値ID表を生成する際に、前記表データの中で集計軸および集計対象になり得る列としてあらかじめ指定されたデータ項目の各々について実際の値を値IDに置換すると共に、前記値IDと前記実際の値との対応を示す値リストを生成する機能を有し、
前記フロントデータベースサーバが、前記値リストおよび前記値ID表が前記各データノードの中のいずれに分散されたかをあらかじめ備えられた記憶手段に記憶するデータ配置情報管理部を有することを特徴とする、請求項1に記載の分散メモリデータベースシステム。
When the data structure conversion unit of the front database server generates the plurality of value ID tables, each data item designated in advance as an aggregation axis and a column that can be an aggregation target in the table data is actually A value list indicating the correspondence between the value ID and the actual value;
The front database server includes a data arrangement information management unit that stores in advance storage means in which the value list and the value ID table are distributed among the data nodes. The distributed memory database system according to claim 1.
前記フロントデータベースサーバの前記データ構造変換部が、前記複数の値リストを生成する際に、前記実際の値を大小順にソートしてから前記値IDに置換することを特徴とする、請求項2に記載の分散メモリデータベースシステム。   3. The data structure conversion unit of the front database server, when generating the plurality of value lists, sorts the actual values in order of magnitude and then replaces them with the value IDs. The distributed memory database system described. 前記フロントデータベースサーバの前記データ構造変換部が、前記表データの中で集計軸および集計対象のいずれにもなり得ない列としてあらかじめ指定されたデータ項目の各々について、前記集計軸になり得る列についての前記値ID表のいずれか1種類に付随して記憶させることを特徴とする、請求項2に記載の分散メモリデータベースシステム。   The column that can be the aggregation axis for each data item that is specified in advance by the data structure conversion unit of the front database server as a column that cannot be either the aggregation axis or the aggregation target in the table data The distributed memory database system according to claim 2, wherein the distributed memory database system is stored in association with any one of the value ID tables. 複数台のデータノードと相互に接続されて分散メモリデータベースシステムを構成するフロントデータベースサーバであって、
外部から入力される表データを分割して各々の実際のデータを値IDに置換した複数の値ID表を生成してこれらを前記各データノードに分散して記憶させるデータ構造変換部と、
外部のクライアントマシンから発行された集合関数を含むクエリーに基づいて前記各データノードに対して前記表データの中の特定の値IDの出現数を問い合わせると共に、これに応じて前記各データノードから返された特定の値IDの出現数から前記クエリーに対応する集合関数の値を計算して前記クライアントマシンに返送する問い合わせ処理部と
を有し、
前記データ構造変換部が、前記複数の値ID表を生成する際に、前記表データの中で集計軸になり得る列としてあらかじめ指定された複数のデータ項目の各々について個別に前記複数の値ID表を生成することを特徴とするフロントデータベースサーバ。
A front database server interconnected with a plurality of data nodes to constitute a distributed memory database system,
A data structure conversion unit that divides table data input from the outside and generates a plurality of value ID tables in which each actual data is replaced with a value ID, and distributes and stores these in each data node;
Based on a query including an aggregate function issued from an external client machine, the data node is inquired about the number of occurrences of a specific value ID in the table data, and the data node returns a response accordingly. A query processing unit that calculates a value of a set function corresponding to the query from the number of occurrences of the specified value ID and returns the value to the client machine,
When the data structure conversion unit generates the plurality of value ID tables, the plurality of value IDs individually for each of a plurality of data items designated in advance as a column that can be an aggregation axis in the table data. A front database server characterized by generating a table.
フロントデータベースサーバと複数台のデータノードとが相互に接続されて構成される分散メモリデータベースシステムにあって、
外部からの表データの入力を前記フロントデータベースサーバのデータ構造変換部が受け付け、
入力された前記表データを、集計軸になり得る列としてあらかじめ指定されたデータ項目の各々について前記フロントデータベースサーバのデータ構造変換部が個別に分割して実際のデータを値IDに置換した複数の値ID表を生成し、
生成された前記複数の値ID表を前記フロントデータベースサーバのデータ構造変換部が前記各データノードに分散して記憶させ、
外部のクライアントマシンから発行された集合関数を含むクエリーを前記フロントデータベースサーバの問い合わせ処理部が受け付け、
受け付けられた前記クエリーに基づいて前記表データの中の特定の値IDの出現数を前記フロントデータベースサーバの問い合わせ処理部が前記各データノードに問い合わせ、
前記各データノードから返された特定の値IDの出現数から前記フロントデータベースサーバの問い合わせ処理部が前記クエリーに対応する集合関数の値を計算して前記クライアントマシンに返送する
ことを特徴とするデータ処理方法。
In a distributed memory database system configured by connecting a front database server and a plurality of data nodes to each other,
The data structure conversion unit of the front database server accepts input of table data from the outside,
The input table data is divided into a plurality of data items specified in advance as columns that can be aggregated axes, and the data structure conversion unit of the front database server individually divides and replaces actual data with value IDs. Generate a value ID table,
The data structure conversion unit of the front database server distributes and stores the generated plurality of value ID tables in the data nodes,
The query processing unit of the front database server accepts a query including a set function issued from an external client machine,
Based on the accepted query, the query processing unit of the front database server queries each data node for the number of occurrences of the specific value ID in the table data,
Data in which the query processing unit of the front database server calculates the value of the set function corresponding to the query from the number of occurrences of the specific value ID returned from each data node and returns it to the client machine Processing method.
フロントデータベースサーバと複数台のデータノードとが相互に接続されて構成される分散メモリデータベースシステムにあって、
前記フロントデータベースサーバが備えるコンピュータに、
外部からの表データの入力を受け付ける手順、
入力された前記表データを、集計軸になり得る列としてあらかじめ指定されたデータ項目の各々について個別に分割して実際のデータを値IDに置換した複数の値ID表を生成する手順、
生成された前記複数の値ID表を前記各データノードに分散して記憶させる手順、
外部のクライアントマシンから発行された集合関数を含むクエリーを受け付ける手順、
受け付けられた前記クエリーに基づいて前記表データの中の特定の値IDの出現数を前記各データノードに問い合わせる手順、
および前記各データノードから返された特定の値IDの出現数から前記クエリーに対応する集合関数の値を計算して前記クライアントマシンに返送する手順
を実行させることを特徴とするデータ処理プログラム。
In a distributed memory database system configured by connecting a front database server and a plurality of data nodes to each other,
In the computer provided in the front database server,
Procedure to accept external table data input,
A procedure for generating a plurality of value ID tables in which the input data is individually divided for each data item designated in advance as a column that can serve as an aggregation axis, and actual data is replaced with value IDs;
A procedure for distributing and storing the generated plurality of value ID tables in each data node;
A procedure for accepting a query including a set function issued from an external client machine,
A procedure for inquiring each data node about the number of occurrences of a specific value ID in the table data based on the accepted query;
A data processing program for executing a procedure for calculating a value of a set function corresponding to the query from the number of appearances of a specific value ID returned from each data node and returning the value to the client machine.
JP2010255654A 2010-11-16 2010-11-16 Distributed memory database system, front database server, data processing method and program Expired - Fee Related JP5598279B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010255654A JP5598279B2 (en) 2010-11-16 2010-11-16 Distributed memory database system, front database server, data processing method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010255654A JP5598279B2 (en) 2010-11-16 2010-11-16 Distributed memory database system, front database server, data processing method and program

Publications (2)

Publication Number Publication Date
JP2012108635A true JP2012108635A (en) 2012-06-07
JP5598279B2 JP5598279B2 (en) 2014-10-01

Family

ID=46494198

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010255654A Expired - Fee Related JP5598279B2 (en) 2010-11-16 2010-11-16 Distributed memory database system, front database server, data processing method and program

Country Status (1)

Country Link
JP (1) JP5598279B2 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014168199A1 (en) * 2013-04-12 2014-10-16 株式会社ターボデータラボラトリー Logical operation method and information processing device
KR101530441B1 (en) * 2013-11-28 2015-06-19 고려대학교 산학협력단 Method and apparatus for processing data based on column
JP2016539415A (en) * 2013-11-11 2016-12-15 中▲興▼通▲信▼股▲フン▼有限公司 Big data processing method and apparatus using table
JP2017512344A (en) * 2014-03-10 2017-05-18 インターナ, インコーポレイテッドInterana, Inc. System and method for rapid data analysis
JP2017513138A (en) * 2014-03-31 2017-05-25 コファックス, インコーポレイテッド Predictive analysis for scalable business process intelligence and distributed architecture
US10146835B2 (en) 2016-08-23 2018-12-04 Interana, Inc. Methods for stratified sampling-based query execution
JP6432893B1 (en) * 2017-10-04 2018-12-05 株式会社シマント Database processing apparatus, group map file production method and program
US10423387B2 (en) 2016-08-23 2019-09-24 Interana, Inc. Methods for highly efficient data sharding
JP2019200767A (en) * 2018-05-09 2019-11-21 学校法人神奈川大学 Data structure, information search device, method for updating database, device for updating database, and program for updating database
US10747767B2 (en) 2015-02-12 2020-08-18 Interana, Inc. Methods for enhancing rapid data analysis
US11501354B2 (en) 2019-01-31 2022-11-15 Fujitsu Limited Information processing apparatus for searching database

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05334165A (en) * 1992-05-29 1993-12-17 Hitachi Ltd Parallel data base processing system and its secondary key retrieving method
WO2005041067A1 (en) * 2003-10-27 2005-05-06 Shinji Furusho Distributed memory type information processing system
WO2008155852A1 (en) * 2007-06-21 2008-12-24 Turbo Data Laboratories Inc. Method and device for tallying tabular form data in memory shared parallel processing system
WO2010098034A1 (en) * 2009-02-24 2010-09-02 日本電気株式会社 Distributed database management system and distributed database management method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05334165A (en) * 1992-05-29 1993-12-17 Hitachi Ltd Parallel data base processing system and its secondary key retrieving method
WO2005041067A1 (en) * 2003-10-27 2005-05-06 Shinji Furusho Distributed memory type information processing system
WO2008155852A1 (en) * 2007-06-21 2008-12-24 Turbo Data Laboratories Inc. Method and device for tallying tabular form data in memory shared parallel processing system
WO2010098034A1 (en) * 2009-02-24 2010-09-02 日本電気株式会社 Distributed database management system and distributed database management method

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2014168199A1 (en) * 2013-04-12 2017-02-16 株式会社ターボデータラボラトリー Logic operation method and information processing apparatus
WO2014168199A1 (en) * 2013-04-12 2014-10-16 株式会社ターボデータラボラトリー Logical operation method and information processing device
JP2016539415A (en) * 2013-11-11 2016-12-15 中▲興▼通▲信▼股▲フン▼有限公司 Big data processing method and apparatus using table
KR101530441B1 (en) * 2013-11-28 2015-06-19 고려대학교 산학협력단 Method and apparatus for processing data based on column
US10713240B2 (en) 2014-03-10 2020-07-14 Interana, Inc. Systems and methods for rapid data analysis
JP2017512344A (en) * 2014-03-10 2017-05-18 インターナ, インコーポレイテッドInterana, Inc. System and method for rapid data analysis
US11977541B2 (en) 2014-03-10 2024-05-07 Scuba Analytics, Inc. Systems and methods for rapid data analysis
US11372851B2 (en) 2014-03-10 2022-06-28 Scuba Analytics, Inc. Systems and methods for rapid data analysis
JP2017513138A (en) * 2014-03-31 2017-05-25 コファックス, インコーポレイテッド Predictive analysis for scalable business process intelligence and distributed architecture
US11263215B2 (en) 2015-02-12 2022-03-01 Scuba Analytics, Inc. Methods for enhancing rapid data analysis
US10747767B2 (en) 2015-02-12 2020-08-18 Interana, Inc. Methods for enhancing rapid data analysis
US11995086B2 (en) 2015-02-12 2024-05-28 Scuba Analytics, Inc. Methods for enhancing rapid data analysis
US10423387B2 (en) 2016-08-23 2019-09-24 Interana, Inc. Methods for highly efficient data sharding
US10963463B2 (en) 2016-08-23 2021-03-30 Scuba Analytics, Inc. Methods for stratified sampling-based query execution
US11971892B2 (en) 2016-08-23 2024-04-30 Scuba Analytics, Inc. Methods for stratified sampling-based query execution
US10146835B2 (en) 2016-08-23 2018-12-04 Interana, Inc. Methods for stratified sampling-based query execution
JP2019067304A (en) * 2017-10-04 2019-04-25 株式会社シマント Database processing apparatus, group map file production method and program
WO2019069941A1 (en) * 2017-10-04 2019-04-11 株式会社シマント Database processing device, group map file production method, and recording medium
JP6432893B1 (en) * 2017-10-04 2018-12-05 株式会社シマント Database processing apparatus, group map file production method and program
JP2019200767A (en) * 2018-05-09 2019-11-21 学校法人神奈川大学 Data structure, information search device, method for updating database, device for updating database, and program for updating database
JP7185264B2 (en) 2018-05-09 2022-12-07 学校法人神奈川大学 Information retrieval device, database update method, database update device, database update program
US11501354B2 (en) 2019-01-31 2022-11-15 Fujitsu Limited Information processing apparatus for searching database

Also Published As

Publication number Publication date
JP5598279B2 (en) 2014-10-01

Similar Documents

Publication Publication Date Title
JP5598279B2 (en) Distributed memory database system, front database server, data processing method and program
US11120022B2 (en) Processing a database query using a shared metadata store
US9031925B2 (en) Hadoop access via hadoop interface services based on function conversion
US9514188B2 (en) Integrating map-reduce into a distributed relational database
US7917463B2 (en) System and method for data warehousing and analytics on a distributed file system
US7577637B2 (en) Communication optimization for parallel execution of user-defined table functions
US9418101B2 (en) Query optimization
JP6964384B2 (en) Methods, programs, and systems for the automatic discovery of relationships between fields in a mixed heterogeneous data source environment.
CN103927331B (en) Data querying method, data querying device and data querying system
CN106687955B (en) Simplifying invocation of an import procedure to transfer data from a data source to a data target
CN103262062A (en) Systems and methods for performing a nested join operation
US20140222787A1 (en) Techniques for accessing a parallel database system via external programs using vertical and/or horizontal partitioning
CN103823846A (en) Method for storing and querying big data on basis of graph theories
US20170177633A1 (en) Dbms-supported score assignment
CN110399368A (en) A kind of data manipulation method and device
JP5464017B2 (en) Distributed memory database system, database server, data processing method and program thereof
CN108228654A (en) A kind of big data distributed storage method and system
Damigos et al. Distributed Processing of XPath Queries Using MapReduce.
EP2765517B1 (en) Data stream splitting for low-latency data access
US10255316B2 (en) Processing of data chunks using a database calculation engine
Murthy et al. Peregrine: Low-latency queries on hive warehouse data
CN112527776A (en) Data auditing method, device and storage medium
JP2016009425A (en) Data virtualization server, method for processing query in data virtualization server, and query processing program
US10963426B1 (en) Method of providing access controls and permissions over relational data stored in a hadoop file system
Bousalem et al. Migration from relational databases to HBase: A feasibility assessment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131010

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140304

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140428

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: 20140715

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140728

R150 Certificate of patent or registration of utility model

Ref document number: 5598279

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees