Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7266970B2 - Application servers and how business applications are executed by servers - Google Patents
[go: Go Back, main page]

JP7266970B2 - Application servers and how business applications are executed by servers - Google Patents

Application servers and how business applications are executed by servers Download PDF

Info

Publication number
JP7266970B2
JP7266970B2 JP2018098473A JP2018098473A JP7266970B2 JP 7266970 B2 JP7266970 B2 JP 7266970B2 JP 2018098473 A JP2018098473 A JP 2018098473A JP 2018098473 A JP2018098473 A JP 2018098473A JP 7266970 B2 JP7266970 B2 JP 7266970B2
Authority
JP
Japan
Prior art keywords
data
temporary storage
storage area
business
syntax
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018098473A
Other languages
Japanese (ja)
Other versions
JP2019204250A (en
Inventor
翔一 宮城
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018098473A priority Critical patent/JP7266970B2/en
Publication of JP2019204250A publication Critical patent/JP2019204250A/en
Application granted granted Critical
Publication of JP7266970B2 publication Critical patent/JP7266970B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、アプリケーションの改修および新プラットフォームへの移行を行う際に、性能的な問題を改善するアプリケーションサーバおよびサーバによる業務アプリケーションの実行方法に関する。 The present invention relates to an application server and a method of executing a business application by a server that improves performance problems when modifying an application and migrating to a new platform.

カラムナーデータベースからデータを取得するときの性能的な問題として、カラム単位で主記憶装置への転送が行われると、同一のカラムのデータが連続したアドレスに配置されることになり、1つのローにアクセスするにもかかわらず、離散的なアドレスに複数回アクセスしなければならず、CPUの負荷が上昇してしまうという事象が発生する。 As a performance issue when retrieving data from a columnar database, if data is transferred to the main memory in units of columns, the data of the same column will be placed at consecutive addresses, resulting in a single row. In spite of access, discrete addresses must be accessed multiple times, resulting in an increase in the load on the CPU.

この問題を改善するため、特許文献1には、「メモリ装置と、ストレージ装置と、データベース処理エンジンとを備え、データベース処理エンジンは、ストレージ装置に保存されたカラム型ページをロー型ページに変換してメモリ装置に保存するモジュールを有することで、メモリ装置ではロー型ページで管理されるので、データベースへの効率的なアクセスを実現できる」という記載がある。 In order to solve this problem, Patent Document 1 discloses that "a memory device, a storage device, and a database processing engine are provided, and the database processing engine converts column type pages stored in the storage device into row type pages. By having a module that stores information in a memory device, the memory device manages data in row-type pages, so efficient access to the database can be achieved.”

国際公開第2014/010038号WO2014/010038

データベース(以下、「DB」という)を新しいDBに切り替える場合、物理的なデータ配置の差異によって、もともと使っていた業務アプリケーションの構造をそのまま適用すると、性能的な問題が発生することがある。 When a database (hereinafter referred to as "DB") is switched to a new DB, performance problems may occur if the structure of the originally used business application is applied as is due to differences in physical data arrangement.

そこで、本発明では、プラットフォームの変更に伴い発生するアプリケーションの改修および新プラットフォームへの移行を行う際、業務プログラムに極力手を加えずにDBの切り替えを実現し、性能的な問題を解決することを目的とする。 Therefore, in the present invention, when modifying an application caused by a platform change and migrating to a new platform, the DB can be switched without modifying the business program as much as possible to solve the performance problem. With the goal.

上記課題を解決するために、本発明に係るアプリケーションサーバは、カラムナーデータベースとデータの送受信を行う通信部と、業務処理を行う業務プログラムおよび当該業務プログラムを解析する解析プログラムを記憶する補助記憶部と、データを一時的に記憶する一時記憶領域を有する主記憶部と、業務プログラムまたは解析プログラムを実行する制御部とを備え、制御部は、解析プログラムを用いて、業務プログラムと、当該業務プログラムを実行したときに用いられた過去のデータを入力データとして、それぞれ読み込み、読み込んだ入力データを解析して業務プログラムから第1の構文を抽出し、抽出した第1の構文の条件式で用いられている変数に入力するデータの値を、業務プログラムおよび入力データそれぞれから解析し、解析したデータの値を、カラムナーデータベースから一括で取得する第2の構文を作成し、作成した第2の構文を主記憶部の一時記憶領域に登録し、業務プログラムの第1の構文を第2の構文に変換して修正することを特徴とする。 In order to solve the above problems, an application server according to the present invention includes a communication unit that transmits and receives data to and from a columnar database, and an auxiliary storage unit that stores a business program that performs business processing and an analysis program that analyzes the business program. a main memory having a temporary storage area for temporarily storing data ; The past data used at the time of execution is read as input data, the read input data is analyzed, the first syntax is extracted from the business program, and the extracted first syntax is used in the conditional expression. Create a second syntax that analyzes the values of the data to be input to the variables in the business program and the input data from each of the business program and the input data, and acquires the analyzed data values from the columnar database all at once. It is characterized in that it is registered in a temporary storage area of a storage unit, and corrected by converting the first syntax of the business program into the second syntax.

本発明によれば、プログラマは移行後のDBの特性を意識せずにアプリケーション移行を実現でき、性能的な問題を解決できる。
上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
According to the present invention, programmers can implement application migration without being conscious of the characteristics of the DB after migration, and solve performance problems.
Problems, configurations, and effects other than those described above will be clarified by the following description of the embodiments.

本発明に係るシステム構成の一例として、APサーバおよびカラムナーDBが有する構成を示すブロック図である。1 is a block diagram showing a configuration of an AP server and columnar DBs as an example of a system configuration according to the present invention; FIG. カラムナーDBに格納されているテーブル情報のデータ構成を示す図である。4 is a diagram showing a data structure of table information stored in a columnar DB; FIG. 本発明に係る処理手順(フローチャート)を示す図である。It is a figure which shows the processing procedure (flowchart) based on this invention. 本発明に係るプログラム解析処理および変換処理の処理手順(フローチャート)を示す図である。FIG. 4 is a diagram showing a processing procedure (flowchart) of program analysis processing and conversion processing according to the present invention; 本発明に係る実行処理および分析処理の処理手順(フローチャート)を示す図である。FIG. 4 is a diagram showing a processing procedure (flowchart) of execution processing and analysis processing according to the present invention; ステップ503でキャッシュ領域の空きサイズをチェックした結果メモリ容量が足りない場合の処理手順(フローチャート)を示す図である。FIG. 10 is a diagram showing a processing procedure (flowchart) when the memory capacity is insufficient as a result of checking the free size of the cache area in step 503; ステップ510でキャッシュ内に目的のデータがない場合の処理手順(フローチャート)を示す図である。FIG. 10 is a diagram showing a processing procedure (flowchart) when there is no target data in the cache in step 510; プログラム解析処理の解析対象のSQL文を示す図である。FIG. 10 is a diagram showing an SQL statement to be analyzed in program analysis processing; SQL文の条件式に当て嵌まる値をプログラムの中を解析して特定する手順を示す図である。FIG. 10 is a diagram showing a procedure for analyzing and specifying values in a program that apply to conditional expressions of SQL statements; SQL文の条件式に当て嵌まる値を入力データの中を解析して特定する手順を示す図である。FIG. 10 is a diagram showing a procedure for analyzing input data and specifying a value that fits a conditional expression of an SQL statement; 解析の結果のSQL文のイメージ図である。FIG. 10 is an image diagram of an SQL sentence as a result of analysis; SQL文を実行してカラムナーDBからデータを取得したときのキャッシュ装置に格納するデータ情報を示す図である。FIG. 10 is a diagram showing data information stored in a cache device when data is acquired from a columnar DB by executing an SQL statement; 目的のデータがキャッシュ装置に存在しない場合にカラムナーDBから取得するSQL文を示す図である。FIG. 10 is a diagram showing an SQL statement obtained from a columnar DB when target data does not exist in a cache device; カラムナーDBからデータを取得したときにキャッシュ装置に格納するデータ情報を示す図である。FIG. 4 is a diagram showing data information stored in a cache device when data is acquired from a columnar DB; マージしたSQL文を示す図である。It is a figure which shows the merged SQL sentence. ステップ509で処理したログ出力を示す図である。FIG. 10 is a diagram showing log output processed in step 509;

以下に、本発明を実施するための形態として、実施例について図面を用いて詳細に説明する。 EMBODIMENT OF THE INVENTION Below, an Example is described in detail using drawing as a form for implementing this invention.

図1は、本発明に係るシステム構成の一例として、アプリケーションサーバ(以下、「APサーバ」という)100およびカラムナーDB200が有する構成を示すブロック図である。 FIG. 1 is a block diagram showing a configuration of an application server (hereinafter referred to as "AP server") 100 and columnar DB 200 as an example of a system configuration according to the present invention.

APサーバ100は、アプリケーションの処理と実行を行う装置であって、主記憶部であるメモリ101、処理装置であるCPU105、データの格納領域であるストレージ106およびカラムナーDB200と通信を行う通信装置109を備える。 The AP server 100 is a device that processes and executes applications, and includes a memory 101 that is a main storage unit, a CPU 105 that is a processing device, a storage 106 that is a data storage area, and a communication device 109 that communicates with the columnar DB 200. Prepare.

メモリ101は、データを管理する領域であるキャッシュ装置102を有し、このキャッシュ装置102は、データを格納する領域であるキャッシュ領域103およびキャッシュ領域103にデータを格納するための処理部品である共通部品104を有する。
ストレージ106は、業務プログラム107および解析プログラム108などのプログラム並びに所要のデータを格納する。
The memory 101 has a cache device 102 which is an area for managing data. The cache device 102 is a cache area 103 which is an area for storing data and a common processing component for storing data in the cache area 103. It has part 104 .
The storage 106 stores programs such as the business program 107 and analysis program 108 as well as required data.

業務プログラム107は、業務処理を行うプログラムである。
一方、解析プログラム108は、業務プログラム107を解析して業務プログラム107が使用するデータを特定し、そのデータを含めた一定の範囲のデータを一括でカラムナーDB200から取得する処理を処理部品として共通部品104に登録する。また、解析プログラム108は、業務プログラム107が登録したデータを使用するように業務プログラム107を修正する。
業務プログラム107および解析プログラム108は、CPU105によって実行される際に、メモリ101に展開される。
The business program 107 is a program that performs business processing.
On the other hand, the analysis program 108 analyzes the business program 107 to specify the data used by the business program 107, and acquires a certain range of data including the data in a batch from the columnar DB 200 as a common component. Register with 104. Also, the analysis program 108 modifies the business program 107 so that it uses the data registered by the business program 107 .
The business program 107 and the analysis program 108 are developed in the memory 101 when executed by the CPU 105 .

なお、本実施例に係る業務プログラム107は、天候および時間が店舗への来客数に影響するかを分析するためのプログラムを一例として用いたものである。この業務プログラム107はあくまで一例であり、他の業務プログラムを対象としてもよいことは言うに及ばない。 Note that the business program 107 according to this embodiment uses, as an example, a program for analyzing whether weather and time affect the number of visitors to a store. This business program 107 is merely an example, and it goes without saying that other business programs may be targeted.

大量のデータの管理と格納を行う装置であるカラムナーDB200は、大量のデータの管理および格納を行う装置であって、処理装置であるCPU201、データの格納領域であるストレージ202、記憶領域であるメモリ204およびAPサーバ100と通信を行う通信装置203を備える。
図2は、カラムナーDB200に格納されているテーブル情報のデータ構成を示す図である。このテーブル情報は、ストレージ202に保存される。ここで、図2に示すテーブル名は、「来場者情報テーブル」とする。
The columnar DB 200, which is a device for managing and storing a large amount of data, is a device for managing and storing a large amount of data. 204 and a communication device 203 for communicating with the AP server 100 .
FIG. 2 is a diagram showing the data configuration of table information stored in the columnar DB 200. As shown in FIG. This table information is saved in the storage 202 . Here, the table name shown in FIG. 2 is assumed to be "visitor information table".

図3は、本発明に係る処理手順(フローチャート)を示す図である。以下に、このフローチャートに基づく処理態様を説明する。ここで、処理を実行する主体は、APサーバ100のCPU201であるが、APサーバ100として総称して示す。 FIG. 3 is a diagram showing a processing procedure (flowchart) according to the present invention. A processing mode based on this flow chart will be described below. Here, although the entity that executes the processing is the CPU 201 of the AP server 100, it is collectively referred to as the AP server 100. FIG.

<ステップ301>
APサーバ100は、業務プログラム107を対象としてプログラムの解析処理を実行する。
<Step 301>
The AP server 100 executes program analysis processing for the business program 107 .

<ステップ302>
APサーバ100は、業務プログラム107を対象としてステップ301の解析結果を反映する変換処理を実行する。
<Step 302>
The AP server 100 executes conversion processing that reflects the analysis result of step 301 on the business program 107 .

<ステップ303>
APサーバ100は、ステップ301の処理結果を反映させた業務プログラム107を実行する。
<Step 303>
The AP server 100 executes the business program 107 reflecting the processing result of step 301 .

<ステップ304>
APサーバ100は、ステップ303で実行した業務プログラム107のSQL文の実行ログを蓄積して分析処理を行う。
<Step 304>
The AP server 100 accumulates the execution log of the SQL statement of the business program 107 executed in step 303 and performs analysis processing.

次に、上述した各ステップの詳細について説明する。
図4は、図3に示す、ステップ301のプログラムの解析処理およびステップ302の変換処理の処理手順(フローチャート)を示す図である。以下に、このフローチャートに基づく処理態様を示す。
Next, details of each step described above will be described.
FIG. 4 is a diagram showing a processing procedure (flowchart) of the program analysis processing in step 301 and the conversion processing in step 302 shown in FIG. A processing mode based on this flow chart is shown below.

<ステップ401>
APサーバ100は、業務プログラム107および入力データを読み込む。
本実施例では、入力データは、業務プログラム107が実行されたときに用いられた過去3回分のデータとしており、例えば図10に示すデータのことである。ここでは、入力データを過去3回分のデータとしているが、“3”という数値は一例であってこれに限定するものではない。
<Step 401>
The AP server 100 reads the business program 107 and input data.
In this embodiment, the input data is data for the past three times used when the business program 107 was executed, such as the data shown in FIG. Here, the input data is data for the past three times, but the numerical value "3" is an example and is not limited to this.

<ステップ402>
APサーバ100は、ステップ401で読み込んだデータを解析しSQL文を抽出する。
本実施例においては、図8に示すように、来場者情報テーブルから変数1が真かつ変数2が真のときに、該条件に一致するデータを抜き出すSQL文が抽出される。
<Step 402>
The AP server 100 analyzes the data read in step 401 and extracts SQL sentences.
In this embodiment, as shown in FIG. 8, when the variable 1 is true and the variable 2 is true from the visitor information table, the SQL statement for extracting the data matching the conditions is extracted.

<ステップ403>
APサーバ100は、ステップ402で抽出したSQL文の条件式で用いられている変数に入力するデータの値を、業務プログラム107から解析する。
本実施例では、解析プログラム108が業務プログラム107を解析することにより、図8に示すSQL文の条件式から、図9に示すように変数2が“sunny”であることが判明する。
<Step 403>
The AP server 100 analyzes the value of the data to be input to the variable used in the conditional expression of the SQL statement extracted in step 402 from the business program 107 .
In this embodiment, the analysis program 108 analyzes the business program 107, and from the conditional expression of the SQL statement shown in FIG. 8, it is found that the variable 2 is "sunny" as shown in FIG.

<ステップ404>
APサーバ100は、SQL文の条件式で用いられている変数に入力するデータの値を、入力データから解析する。
本実施例では、解析プログラム108が業務プログラム107を解析することにより、図8に示すSQL文の条件式から、図10に示すように、変数2が変数inputdataであることが判明する。さらに続けて解析することにより、変数inputdataは入力データを読み込んで取得した値を格納することが判明し、解析プログラム108が入力データを解析することにより、変数inputdataが“cloudy”であることが判明する。
<Step 404>
The AP server 100 analyzes the value of the data to be input to the variable used in the conditional expression of the SQL statement from the input data.
In this embodiment, the analysis program 108 analyzes the business program 107, and from the conditional expression of the SQL statement shown in FIG. 8, it is found that the variable 2 is the variable inputdata as shown in FIG. Further analysis reveals that the variable inputdata stores the value obtained by reading the input data, and the analysis program 108 analyzes the input data, revealing that the variable inputdata is "cloudy". do.

<ステップ405>
APサーバ100は、ステップ403および404でそれぞれ特定した入力データを含むある程度の範囲のデータを一括で取得するSQL文を作成して、共通部品104に登録する。また、このSQL文で取得したデータは、キャッシュ領域103に格納される。
本実施例では、図11に示すように、変数2が、“sunny”であるときのSQL文と“cloudy”であるときのSQL文とを組み合わせたSQL文を作成し、共通部品104に登録することになる。
<Step 405>
The AP server 100 creates an SQL statement for collectively obtaining a certain range of data including the input data specified in steps 403 and 404 and registers it in the common component 104 . Also, the data acquired by this SQL statement is stored in the cache area 103 .
In this embodiment, as shown in FIG. 11, an SQL statement is created by combining the SQL statement when the variable 2 is "sunny" and the SQL statement when it is "cloudy", and is registered in the common component 104. will do.

<ステップ406>
APサーバ100は、ステップ402で抽出したSQL文をキャッシュ装置103の共通部品104から取得するように、業務プログラムのSQL文を変換して修正する。
<Step 406>
The AP server 100 converts and corrects the SQL statement of the business program so that the SQL statement extracted in step 402 is obtained from the common component 104 of the cache device 103 .

<ステップ407>
業務プログラム107および共通部品104をビルド後デプロイする。
<Step 407>
The business program 107 and the common component 104 are deployed after being built.

図5は、図3に示す、ステップ303の実行処理およびステップ304の分析処理の処理手順(フローチャート)を示す図である。以下に、このフローチャートに基づく処理態様を示す。 FIG. 5 is a diagram showing a processing procedure (flowchart) of the execution processing of step 303 and the analysis processing of step 304 shown in FIG. A processing mode based on this flow chart is shown below.

<ステップ501>
APサーバ100は、業務プログラム107を実行する。このプログラムの実行により、取得対象のレコードがキャッシュ装置102に通知される。APサーバ100は、キャッシュ装置102の共通部品104を使うことで、カラムナーDB200からレコード取得する。
<Step 501>
The AP server 100 executes business programs 107 . By executing this program, the cache device 102 is notified of the record to be acquired. The AP server 100 uses the common component 104 of the cache device 102 to acquire records from the columnar DB 200 .

<ステップ502>
APサーバ100は、キャッシュ装置102を用いて、キャッシュ領域103の空きサイズをチェックする。
<Step 502>
The AP server 100 uses the cache device 102 to check the free size of the cache area 103 .

<ステップ503>
APサーバ100は、キャッシュ装置102を用いて、取得したレコードをキャッシュ領域103に格納できるか否か、すなわち、この格納がチェックした空きサイズ(メモリ容量)で足りるか否かをチェックする。格納できる場合は(YES)、ステップ504に進む。格納できない場合は(NO)、ステップ505へ進む。
<Step 503>
The AP server 100 uses the cache device 102 to check whether or not the acquired record can be stored in the cache area 103, that is, whether or not the checked free size (memory capacity) is sufficient for this storage. If it can be stored (YES), go to step 504 . If it cannot be stored (NO), go to step 505 .

<ステップ504>
APサーバ100は、キャッシュ装置102を用いて、取得したレコードをキャッシュ領域103に格納する。図12は、図11に示すSQL文を実行して、カラムナーDB200から取得してキャッシュ領域103に格納するデータのデータ構造を示す図である。
本実施例では、“sunny”と“cloudy”の情報を持つデータを、図2に示すカラムナーDB200のテーブル情報から一括で取得し、図12に示すようにキャッシュ領域103に格納する。
<Step 504>
The AP server 100 uses the cache device 102 to store the acquired record in the cache area 103 . FIG. 12 is a diagram showing the data structure of data acquired from the columnar DB 200 and stored in the cache area 103 by executing the SQL statement shown in FIG.
In this embodiment, data having information of "sunny" and "cloudy" are collectively acquired from the table information of the columnar DB 200 shown in FIG. 2, and stored in the cache area 103 as shown in FIG.

<ステップ505>
APサーバ100は、取得したレコードをキャッシュ領域103に格納できるように、図6に示す処理手順(フローチャート)を実行する。このステップ505に対応する、図6に示す処理手順(フローチャート)を終えると、ステップ504に進む。図6に示す処理手順(フローチャート)については後述する。
<Step 505>
The AP server 100 executes the processing procedure (flowchart) shown in FIG. 6 so that the acquired record can be stored in the cache area 103 . After completing the processing procedure (flow chart) shown in FIG. The processing procedure (flowchart) shown in FIG. 6 will be described later.

<ステップ506>
APサーバ100は、業務プログラム107に沿って業務処理を実行する。
<Step 506>
The AP server 100 executes business processing according to the business program 107 .

<ステップ507>
APサーバ100は、業務プログラム107に沿って、取得対象のデータをキャッシュ装置102に依頼する。APサーバ100は、キャッシュ装置102を用い、共通部品104を使ってキャッシュ領域103にアクセスする。
<Step 507>
The AP server 100 requests the data to be acquired from the cache device 102 according to the business program 107 . The AP server 100 accesses the cache area 103 using the cache device 102 and the common component 104 .

<ステップ508>
APサーバ100は、キャッシュ装置102を用いて、取得対象のデータがキャッシュ領域103にあるか否かをチェックする。取得対象のデータが存在する場合(YES)、ステップ509に進む。取得対象のデータが存在しない場合(NO)、ステップ510に進む。
<Step 508>
The AP server 100 uses the cache device 102 to check whether or not the data to be acquired exists in the cache area 103 . If there is data to be acquired (YES), the process proceeds to step 509 . If there is no data to be acquired (NO), the process proceeds to step 510 .

<ステップ509>
APサーバ100は、共通部品104を使って、依頼元のプログラム、依頼を受けた年月日と時間および実行したSQL文を、実行履歴としてログ出力し保存する。図16は、ステップ509で処理したログ出力を示す図である。このログ出力の保存先としては、ストレージ106とするが、余裕があればキャッシュ領域としてもよい。
本実施例では、業務プログラムが、来場者情報テーブルに対して、2017年3月1日12時にアクセスしたSQL文および2017年4月1日12時にアクセスしたSQL文の実行履歴がログとして保存される。
<Step 509>
The AP server 100 uses the common component 104 to log and store the program of the request source, the date and time when the request was received, and the executed SQL statement as an execution history. FIG. 16 is a diagram showing the log output processed in step 509. As shown in FIG. The storage destination of this log output is the storage 106, but may be a cache area if there is room.
In this embodiment, the execution history of the SQL statement accessed by the business program at 12:00 on March 1, 2017 and the SQL statement accessed at 12:00 on April 1, 2017 is saved as a log for the visitor information table. be.

<ステップ510>
APサーバ100は、取得対象のデータをキャッシュ装置102に格納できるように、図7に示す処理手順(フローチャート)を実行する。このステップ510に対応する、図7に示す処理手順(フローチャート)を終えると、ステップ509へ進む。
<Step 510>
The AP server 100 executes the processing procedure (flowchart) shown in FIG. 7 so that the data to be acquired can be stored in the cache device 102 . After completing the processing procedure (flow chart) shown in FIG.

<ステップ511>
取得したデータが業務プログラムに渡され、APサーバ100は、業務プログラムがデータを受け取ることにより、業務処理を完了させる。
<Step 511>
The acquired data is delivered to the business program, and the AP server 100 completes the business processing when the business program receives the data.

<ステップ512>
APサーバ100は、ステップ509で出力した実行ログを分析し、実行したSQL文をマージし、マージしたSQL文を共通部品104に登録する。
図15は、マージしたSQL文を示す図である。本実施例では、解析プログラム108が、業務プログラム107と入力データとを解析することにより判明し作成した、“sunny”および“cloudy”の情報を持つデータを取得するSQL文と、後述するステップ601で新しく作成した“rainy”を取得するSQL文とをマージする。その結果、“sunny”、“cloudy”および“rainy”を取得するSQL文を作成して、共通部品104に登録する。
<Step 512>
The AP server 100 analyzes the execution log output in step 509 , merges the executed SQL statements, and registers the merged SQL statements in the common component 104 .
FIG. 15 is a diagram showing merged SQL statements. In this embodiment, the analysis program 108 acquires the data having the information of "sunny" and "cloudy", which is found and created by analyzing the business program 107 and the input data, and the SQL statement for acquiring the data having the information of "sunny" and "cloudy", and the step 601 described later. Merge with the SQL statement that acquires the newly created "rainy". As a result, an SQL statement for acquiring “sunny”, “cloudy” and “rainy” is created and registered in the common component 104 .

図6は、図5のステップ503でキャッシュ領域の空きサイズをチェックした結果、メモリ容量が足りない(NO)場合の処理手順(フローチャート)を示す図である。以下に、このフローチャートに基づく処理態様を示す。 FIG. 6 is a diagram showing a processing procedure (flow chart) when the memory capacity is insufficient (NO) as a result of checking the free size of the cache area in step 503 of FIG. A processing mode based on this flow chart is shown below.

<ステップ601>
APサーバ100は、キャッシュ装置102を用いて、カラムナーDB200から取得対象のデータを含めたある程度のデータを一括で取得できるように、代替のSQL文を作成し共通部品104に登録する。
図13は、キャッシュ装置102に目的のデータが存在しない場合に、その目的のデータをカラムナーDB200から取得するSQL文を示す図である。本実施例では、“rainy”の情報を持つデータがキャッシュ装置102にないため、“rainy”を取得できる代替のSQL文を作成して共通部品104に登録する。
<Step 601>
The AP server 100 creates an alternative SQL statement and registers it in the common component 104 so that a certain amount of data including the data to be acquired can be collectively acquired from the columnar DB 200 using the cache device 102 .
FIG. 13 is a diagram showing an SQL statement for acquiring target data from the columnar DB 200 when target data does not exist in the cache device 102 . In this embodiment, since there is no data having the information of “rainy” in the cache device 102 , an alternative SQL statement that can acquire “rainy” is created and registered in the common component 104 .

<ステップ602>
APサーバ100は、共通部品104を使い代替のSQL文を実行して、取得対象のデータをカラムナーDB200から取得する。
本実施例では、“rainy”を取得できる代替のSQL文(図13)を実行し、図14に示すように、“sunny”および“cloudy”の情報を持つキャッシュ装置102に、“rainy”の情報を追加する。
<Step 602>
The AP server 100 uses the common component 104 to execute the alternative SQL statement and acquires the data to be acquired from the columnar DB 200 .
In this embodiment, an alternative SQL statement (FIG. 13) capable of acquiring "rainy" is executed, and as shown in FIG. Add information.

<ステップ603>
APサーバ100は、キャッシュ装置102を用いて、キャッシュ領域103の空きサイズをチェックする。
<Step 603>
The AP server 100 uses the cache device 102 to check the free size of the cache area 103 .

<ステップ604>
APサーバ100は、キャッシュ装置102を用いて、キャッシュ領域103に取得したレコードを格納できるか否か、すなわち、この格納がチェックした空きサイズで足りるか否かをチェックする。格納できる場合(YES)、図6に示す処理フローを終了し、図5のステップ504に戻る。格納できない場合(NO)、ステップ605へ進む。
<Step 604>
The AP server 100 uses the cache device 102 to check whether or not the acquired record can be stored in the cache area 103, that is, whether or not the checked free size is sufficient for this storage. If it can be stored (YES), the process flow shown in FIG. 6 is terminated and the process returns to step 504 in FIG. If it cannot be stored (NO), go to step 605 .

<ステップ605>
APサーバ100は、キャッシュ装置102を用いて、キャッシュ領域103に格納しているデータの中で、このキャッシュ領域103から追い出せるデータが存在するか否かをチェックする。追い出せるデータが存在する場合(YES)、ステップ606へ進む。追い出せるデータが存在しない場合(NO)、ステップ607へ進む。
<Step 605>
The AP server 100 uses the cache device 102 to check whether or not data that can be evicted from the cache area 103 exists among the data stored in the cache area 103 . If there is data that can be evicted (YES), go to step 606 . If there is no data that can be evicted (NO), go to step 607 .

<ステップ606>
APサーバ100は、キャッシュ装置102を用いて、キャッシュ領域103に格納しているデータの中から最も参照されていないデータを、ファイルとしてストレージ106に移動する。次いで、図5のステップ504に戻る。
<Step 606>
The AP server 100 uses the cache device 102 to move data stored in the cache area 103 that is least referenced to the storage 106 as a file. Then, return to step 504 of FIG.

<ステップ607>
APサーバ100は、キャッシュ装置102を用いて、カラムナーDB200から取得対象のデータが含まれるように、先のステップ601で得た範囲よりさらに範囲を絞ったSQL文を作成し、共通部品104に登録して実行し、目的とするデータを取得する。次いで、図5のステップ504に戻る。
<Step 607>
The AP server 100 uses the cache device 102 to create an SQL statement with a narrower range than the range obtained in the previous step 601 so as to include the data to be acquired from the columnar DB 200, and registers it in the common component 104. to get the desired data. Then, return to step 504 of FIG.

図7は、図5のステップ510でキャッシュ内に目的のデータがない場合の処理手順(フローチャート)を示す図である。以下に、このフローチャートに基づく処理態様を示す。 FIG. 7 is a diagram showing a processing procedure (flow chart) when there is no target data in the cache in step 510 of FIG. A processing mode based on this flow chart is shown below.

<ステップ701>
APサーバ100は、キャッシュ装置102を用いて、取得対象のデータがAPサーバ100のストレージ106に存在するか否かをチェックする。取得対象のデータが存在する場合(YES)、ステップ702に進む。取得対象のデータが存在しない場合(NO)、ステップ704に進む。
<Step 701>
The AP server 100 uses the cache device 102 to check whether or not the data to be acquired exists in the storage 106 of the AP server 100 . If there is data to be acquired (YES), the process proceeds to step 702 . If there is no data to be acquired (NO), the process proceeds to step 704 .

<ステップ702>
APサーバ100は、キャッシュ装置102を用いて、ファイルのデータをストレージ106からキャッシュ領域103に移動する。
<Step 702>
The AP server 100 uses the cache device 102 to move file data from the storage 106 to the cache area 103 .

<ステップ703>
APサーバ100は、共通部品104を使って、取得対象のデータをキャッシュ領域103から取得する。次いで、図5のステップ509に戻る。
<Step 703>
The AP server 100 uses the common component 104 to acquire data to be acquired from the cache area 103 . Then, return to step 509 of FIG.

<ステップ704>
APサーバ100は、キャッシュ装置102を用いて、取得対象のレコードをキャッシュ領域103に格納できるように、先の図6に示すフローチャートを実行する。図6に示す処理フローを終えると、ステップ705に進む。
<Step 704>
The AP server 100 uses the cache device 102 to execute the flowchart shown in FIG. 6 so that the record to be acquired can be stored in the cache area 103 . After completing the processing flow shown in FIG. 6, the process proceeds to step 705 .

<ステップ705>
APサーバ100は、キャッシュ装置102を用いて、取得したレコードをキャッシュ領域103に格納し、格納後にステップ703に進む。
<Step 705>
The AP server 100 stores the acquired record in the cache area 103 using the cache device 102, and proceeds to step 703 after storing.

このように、APサーバ100が、業務プログラム107と入力データを解析し、業務プログラム107が業務で利用するデータを特定し一括で取得するSQL文を作成し、共通部品104としてキャッシュ装置102に格納する。そして、共通部品化したSQL文を予め実行してキャッシュ領域103に取得対象データを格納することにより、カラムナーDB200へのアクセス回数を減らし処理時間を短縮することができる。 In this way, the AP server 100 analyzes the business program 107 and the input data, identifies the data used in business by the business program 107, creates an SQL statement for batch acquisition, and stores it in the cache device 102 as the common component 104. do. By executing the common component SQL statement in advance and storing the acquisition target data in the cache area 103, the number of accesses to the columnar DB 200 can be reduced and the processing time can be shortened.

なお、図2に示すカラムナーDB200のテーブル情報の構成図、図8に示すSQL文のイメージ、図9と図10に示す業務プログラムと入力データのイメージは、一例であってこれらに限定するものではない。
また、本実施例では、DBとしてはカラムナーDBを対象にしているが、構造型DBやリレーショナルDBを対象としてもよい。
The configuration diagram of the table information of the columnar DB 200 shown in FIG. 2, the image of the SQL statement shown in FIG. 8, and the image of the business program and input data shown in FIGS. do not have.
Also, in this embodiment, the DB is a columnar DB, but a structured DB or a relational DB may also be targeted.

そしてまた、APサーバ100とカラムナーDB200とは、本実施例では別の装置として説明をしたが、例えば、1つの物理計算機上で動く仮想環境において、それぞれ別の仮想サーバとして稼働するものであっても、1つの物理サーバまたは仮想サーバでそれぞれの機能を備えるものであってもよい。
さらに、本実施例では、入力データの解析を行ったが、業務プログラムのみを解析対象としてもよい。
In addition, although the AP server 100 and the columnar DB 200 are described as separate devices in this embodiment, for example, they operate as separate virtual servers in a virtual environment running on a single physical computer. may be one physical server or one virtual server having each function.
Furthermore, although the input data is analyzed in this embodiment, only the business program may be analyzed.

100…APサーバ、101…メモリ、102…キャッシュ装置、
103…キャッシュ領域、104…共通部品、105、201…CPU、
106…ストレージ、107…業務プログラム、108…解析プログラム、
109…通信装置、200…カラムナーDB、202…ストレージ、203…通信装置、
204…メモリ
100... AP server, 101... memory, 102... cache device,
103... cache area, 104... common component, 105, 201... CPU,
106... Storage, 107... Business program, 108... Analysis program,
109... Communication device, 200... Columnar DB, 202... Storage, 203... Communication device,
204 memory

Claims (11)

カラムナーデータベースとデータの送受信を行う通信部と、
業務処理を行う業務プログラムおよび当該業務プログラムを解析する解析プログラムを記憶する補助記憶部と、
データを一時的に記憶する一時記憶領域を有する主記憶部と、
前記業務プログラムまたは前記解析プログラムを実行する制御部と
を備え、
前記制御部は、前記解析プログラムを実行して
前記業務プログラムと、当該業務プログラムを実行したときに用いられた過去のデータを入力データとして、それぞれ読み込み、
読み込んだ前記入力データを解析して前記業務プログラムから第1の構文を抽出し、
抽出した前記第1の構文の条件式で用いられている変数に入力するデータの値を、前記業務プログラムおよび前記入力データそれぞれから解析し、
解析した前記データの値を、前記カラムナーデータベースから一括で取得する第2の構文を作成し、
作成した前記第2の構文を前記主記憶部の前記一時記憶領域に登録し、
前記業務プログラムの前記第1の構文を前記第2の構文に変換して修正する
ことを特徴とするアプリケーションサーバ。
a communication unit that transmits and receives data to and from the columnar database;
an auxiliary storage unit that stores a business program that performs business processing and an analysis program that analyzes the business program;
a main storage unit having a temporary storage area for temporarily storing data;
A control unit that executes the business program or the analysis program,
The control unit executes the analysis program ,
reading the business program and past data used when the business program was executed as input data;
analyzing the read input data to extract a first syntax from the business program;
analyzing values of data to be input to variables used in the extracted conditional expression of the first syntax from each of the business program and the input data;
creating a second syntax for collectively acquiring the values of the analyzed data from the columnar database;
registering the created second syntax in the temporary storage area of the main storage unit;
modifying the first syntax of the business program by converting it into the second syntax
An application server characterized by:
請求項1に記載のアプリケーションサーバであって、
前記一時記憶領域に、データを格納するための処理部品である共通部品を登録する領域を設け、
前記制御部は、前記第2の構文を前記共通部品に登録す
ことを特徴とするアプリケーションサーバ。
The application server according to claim 1,
providing an area for registering a common component, which is a processing component for storing data, in the temporary storage area;
The application server, wherein the control unit registers the second syntax in the common component.
請求項2に記載のアプリケーションサーバであって、
前記制御部は、前記業務プログラム実行時に前記共通部品を用いて前記カラムナーデータベースから取得したデータ前記一時記憶領域に格納できるか否かを、当該一時記憶領域の空きサイズによりチェックす
ことを特徴とするアプリケーションサーバ。
The application server according to claim 2,
When executing the business program , the control unit checks whether or not the data acquired from the columnar database using the common component can be stored in the temporary storage area based on the free size of the temporary storage area. An application server characterized by:
請求項3に記載のアプリケーションサーバであって、
前記制御部は、前記一時記憶領域の空きサイズでは前記カラムナーデータベースから取得したデータを格納できない場合、前記一時記憶領域から追い出せるデータの有無をチェックし、当該追い出せるデータが有れば当該データを前記補助記憶部へ移動させて前記取得したデータを前記一時記憶領域に格納する
ことを特徴とするアプリケーションサーバ。
An application server according to claim 3,
When the data obtained from the columnar database cannot be stored in the free size of the temporary storage area, the control unit checks whether there is data that can be ejected from the temporary storage area, and if there is data that can be ejected, the data is stored. An application server that stores the obtained data in the temporary storage area by moving it to the auxiliary storage unit.
請求項4に記載のアプリケーションサーバであって、
前記一時記憶領域から追い出せるデータとは、当該一時記憶領域の中で最も参照が古いデータである
ことを特徴とするアプリケーションサーバ。
The application server according to claim 4,
The application server, wherein the data that can be evicted from the temporary storage area is the data with the oldest reference in the temporary storage area.
請求項に記載のアプリケーションサーバであって、
前記制御部は、前記一時記憶領域の空きサイズでは前記カラムナーデータベースから取得したデータを格納できない場合、前記一時記憶領域から追い出せるデータの有無をチェックし、当該追い出せるデータが無ければ当該一時記憶領域に残る空きサイズで格納できるデータ範囲を一括して取得できる代替の構文を作成し前記共通部品に登録して実行する
ことを特徴とするアプリケーションサーバ。
An application server according to claim 3 ,
When the data obtained from the columnar database cannot be stored in the free size of the temporary storage area, the control unit checks whether there is data that can be ejected from the temporary storage area, and if there is no data that can be ejected, the temporary storage. An application server characterized by creating an alternative syntax that can collectively acquire a data range that can be stored in a free size remaining in an area, registering it in the common component, and executing it.
カラムナーデータベースを用いたサーバによる業務アプリケーションの実行方法であって、A method for executing a business application by a server using a columnar database,
解析プログラムを用いて、Using an analysis program,
業務処理を行う業務プログラムと、当該業務プログラムを実行したときに用いられた過去のデータを入力データとして、それぞれ読み込む第1のステップと、a first step of reading, as input data, a business program for performing business processing and past data used when the business program was executed;
読み込んだ前記入力データを解析し、前記業務プログラムから第1の構文を抽出する第2のステップと、a second step of analyzing the read input data and extracting a first syntax from the business program;
抽出した前記第1の構文の条件式で用いられている変数に入力するデータの値を、前記業務プログラムおよび前記入力データそれぞれから解析する第3のステップと、a third step of analyzing values of data to be input to variables used in the extracted conditional expression of the first syntax from each of the business program and the input data;
解析した前記データの値を、前記カラムナーデータベースから一括で取得する第2の構文を作成し、当該第2の構文を前記サーバの主記憶部が有する一時記憶領域に登録する第4のステップと、a fourth step of creating a second syntax for collectively acquiring the values of the analyzed data from the columnar database, and registering the second syntax in a temporary storage area of the main storage unit of the server;
前記業務プログラムの前記第1の構文を前記第2の構文に変換して修正する第5のステップとa fifth step of converting the first syntax of the business program into the second syntax and correcting it;
を有する業務アプリケーションの実行方法。execution method of a business application having
請求項7に記載の業務アプリケーションの実行方法であって、A method for executing a business application according to claim 7,
前記第4のステップが前記第2の構文を前記一時記憶領域に登録することは、前記一時記憶領域にデータを格納するための処理部品として設けた共通部品に登録することを含むRegistering the second syntax in the temporary storage area in the fourth step includes registering in a common component provided as a processing component for storing data in the temporary storage area.
ことを特徴とする業務アプリケーションの実行方法。A business application execution method characterized by:
請求項8に記載の業務アプリケーションの実行方法であって、
前記業務プログラムの実行時に、前記共通部品を用いて前記カラムナーデータベースから取得したデータを前記一時記憶領域に格納できるか否かを、当該一時記憶領域の空きサイズによりチェックする第5のステップ
を有する業務アプリケーションの実行方法。
A business application execution method according to claim 8 ,
a fifth step of checking whether or not the data obtained from the columnar database using the common component can be stored in the temporary storage area during execution of the business program, based on the free size of the temporary storage area;
execution method of a business application having
請求項9に記載の業務アプリケーションの実行方法であって、
前記一時記憶領域の空きサイズでは前記カラムナーデータベースから取得したデータを格納できない場合、前記一時記憶領域から追い出せるデータの有無をチェックし、当該追い出せるデータが有れば当該一時記憶領域の中で最も参照が古いデータを前記サーバの他の記憶部へ移動させて前記取得したデータを前記一時記憶領域に格納する第6のステップ
を有する業務アプリケーションの実行方法。
A business application execution method according to claim 9,
If the data obtained from the columnar database cannot be stored in the free size of the temporary storage area, the presence or absence of data that can be evicted from the temporary storage area is checked. a sixth step of moving old referenced data to another storage unit of the server and storing the acquired data in the temporary storage area;
execution method of a business application having
請求項に記載の業務アプリケーションの実行方法であって、
前記一時記憶領域の空きサイズでは前記カラムナーデータベースから取得したデータを格納できない場合、前記一時記憶領域から追い出せるデータの有無をチェックし、当該追い出せるデータが無ければ当該一時記憶領域に残る空きサイズで格納できるデータ範囲を一括して取得できる代替の構文を作成し前記共通部品に登録して実行する第7のステップ
を有する業務アプリケーションの実行方法。
A business application execution method according to claim 9 ,
If the free size of the temporary storage area cannot store the data obtained from the columnar database, the presence or absence of data that can be evicted from the temporary storage area is checked. A seventh step of creating an alternative syntax capable of collectively acquiring the range of data that can be stored, registering it in the common component, and executing it
execution method of a business application having
JP2018098473A 2018-05-23 2018-05-23 Application servers and how business applications are executed by servers Active JP7266970B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018098473A JP7266970B2 (en) 2018-05-23 2018-05-23 Application servers and how business applications are executed by servers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018098473A JP7266970B2 (en) 2018-05-23 2018-05-23 Application servers and how business applications are executed by servers

Publications (2)

Publication Number Publication Date
JP2019204250A JP2019204250A (en) 2019-11-28
JP7266970B2 true JP7266970B2 (en) 2023-05-01

Family

ID=68727045

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018098473A Active JP7266970B2 (en) 2018-05-23 2018-05-23 Application servers and how business applications are executed by servers

Country Status (1)

Country Link
JP (1) JP7266970B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006163596A (en) 2004-12-03 2006-06-22 Internatl Business Mach Corp <Ibm> Information processing system, control method and program
WO2014010038A1 (en) 2012-07-11 2014-01-16 株式会社日立製作所 Information processing system
JP2017120496A (en) 2015-12-28 2017-07-06 キヤノンマーケティングジャパン株式会社 Program generation device, information processing apparatus, control method, and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006163596A (en) 2004-12-03 2006-06-22 Internatl Business Mach Corp <Ibm> Information processing system, control method and program
WO2014010038A1 (en) 2012-07-11 2014-01-16 株式会社日立製作所 Information processing system
JP2017120496A (en) 2015-12-28 2017-07-06 キヤノンマーケティングジャパン株式会社 Program generation device, information processing apparatus, control method, and program

Also Published As

Publication number Publication date
JP2019204250A (en) 2019-11-28

Similar Documents

Publication Publication Date Title
US9678969B2 (en) Metadata updating method and apparatus based on columnar storage in distributed file system, and host
US12141142B2 (en) System and method for enhancing processing of a query to a relational database with software-based near-data processing (NDP) technology
US10642589B2 (en) Extensibility in a database system
US8862563B2 (en) Getting dependency metadata using statement execution plans
US12292887B2 (en) Columnar cache query using hybrid query execution plan
US10678784B2 (en) Dynamic column synopsis for analytical databases
CN102473083A (en) Apparatus and method for reading optimized bulk data storage
US8051054B2 (en) Method and system for data processing with database update for the same
US12361022B2 (en) Loading data in a target database system using different synchronization programs
CN116431660B (en) Data processing method, device, system, electronic device and storage medium
US12380109B2 (en) Database join operations with early filtering
JP7266970B2 (en) Application servers and how business applications are executed by servers
CN116204550A (en) Database query statement optimization method, storage medium and device
CN114328546B (en) Method and device for determining timestamp mode of database management system
US12038894B2 (en) Evaluating row-store expressions on a column-store database
EP4523096A1 (en) Evaluating row-store expressions on a column-store database
US7437716B1 (en) Separation of data from metadata in a tracing framework
CN112528118A (en) Data acquisition method, system and device based on multi-channel proxy
CN114238513A (en) Big data map analysis method and system
US11989169B2 (en) Autonomous refactoring system for database
US12487973B2 (en) Update method and database update apparatus
Ward Performance Capabilities
CN120104630A (en) A data updating method for a data table and related products
CN120123352A (en) Database transaction log parsing method and related device
Chao et al. Restructuring AMS to reduce synchronization overheads on android system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221011

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20221208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230206

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230419

R150 Certificate of patent or registration of utility model

Ref document number: 7266970

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150