JP2014041501A - Fast reading method for batch processing target data and batch management system - Google Patents
Fast reading method for batch processing target data and batch management system Download PDFInfo
- Publication number
- JP2014041501A JP2014041501A JP2012183731A JP2012183731A JP2014041501A JP 2014041501 A JP2014041501 A JP 2014041501A JP 2012183731 A JP2012183731 A JP 2012183731A JP 2012183731 A JP2012183731 A JP 2012183731A JP 2014041501 A JP2014041501 A JP 2014041501A
- Authority
- JP
- Japan
- Prior art keywords
- batch
- data
- batch processing
- update
- management system
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、バッチ処理対象データのバッチ処理システムへの読み込み処理を高速化する技術に関する。 The present invention relates to a technique for speeding up reading processing of batch processing target data into a batch processing system.
近年、ビックデータ(big data)の蓄積・バッチ処理・分析技術に対する需要が高まりつつある。その理由は、複数台の汎用サーバによるクラスタ構成が可能となり、低コストでのデータのアーカイブ・並列処理が実現されたことによる。現在、多くの企業において、この種のシステムが採用されている。 In recent years, there has been an increasing demand for big data storage, batch processing, and analysis technologies. This is because a cluster configuration with a plurality of general-purpose servers is possible, and data archiving and parallel processing are realized at low cost. Currently, this type of system is adopted by many companies.
ところで、企業システムが実行する処理業務には、基幹システム等の業務システムが生成・取り扱うデータを、業務システム側のデータベースからバックエンド側のデータベースに移行してバッチ処理する処理業務がある。 By the way, the processing work executed by the enterprise system includes a processing work for batch processing by transferring data generated and handled by a business system such as a core system from a database on the business system side to a database on the back end side.
本明細書では、バックエンド側に位置してバッチ処理を実行するシステムを「バッチ処理システム」という。バッチ処理システムは、業務システム側のデータベースからデータを読み込むと、設定されたバッチプロセスを実行し、自システム内のデータベース上にバッチ処理結果を保存する。現在、このバッチ処理に要する時間を短縮して、業務の効率化を図る取り組みが行われている。 In the present specification, a system that executes batch processing on the back end side is referred to as a “batch processing system”. When the batch processing system reads data from the database on the business system side, the batch processing system executes the set batch process and saves the batch processing result on the database in its own system. Currently, efforts are being made to reduce the time required for batch processing and improve the efficiency of operations.
例えば特許文献1では、データを入出力する際の負荷を低減するために、外部記憶媒体に対するデータのI/O回数を少なくする技術が提案されている。この技術は、データベースに対する複数の全件検索要求を受け付けた場合に、メモリにロードされたデータを再利用することにより外部記憶媒体へのI/O回数を低減するものであり、データベースへのアクセス性能とバッチ処理性能の向上を図っている。
For example,
ところが、特許文献1に記載された発明は、バッチ処理に際し、一度に大量のデータをメモリにキャッシュすることを要求する。このように大量のメモリを消費するバッチ方法は、システムのコスト高を招いてしまう。また、現実問題として、バッチ対象とする全てのデータを、バッチ処理システム内のメモリに書き込めない可能性もある。
However, the invention described in
そこで、発明者は、低コストでありながらも、バッチ処理を高速に実行できる手法として、汎用PCクラスタを利用した並列バッチ処理技術に着目した。ただし、現時点において、Hadoop/HDFS等のオープンソース系のソフトウェアを単純に適用してバッチ処理システムを構成しても、それだけではバッチ処理の高速化は実現されず、システム動作の信頼性も担保することができない。 Therefore, the inventor paid attention to a parallel batch processing technique using a general-purpose PC cluster as a technique capable of executing batch processing at high speed while being low in cost. However, at present, even if a batch processing system is configured simply by applying open source software such as Hadoop / HDFS, it will not achieve high speed batch processing, and the reliability of system operation is also guaranteed. I can't.
そこで、発明者は、汎用PCクラスタを利用した並列バッチ処理システムに対し、データを高速に読み込むことができる仕組みが必要であるとの認識に至った。 Accordingly, the inventor has come to realize that a mechanism capable of reading data at high speed is necessary for a parallel batch processing system using a general-purpose PC cluster.
発明者は、データソースとしてのデータベースサーバから分散ファイルシステムへのデータの転送を、以下の手順により実行する手法を提案する。 The inventor proposes a method for transferring data from a database server as a data source to a distributed file system according to the following procedure.
すなわち、バッチ実行周期の間に、バッチ管理システムが、データベースサーバに格納されたデータの更新情報を複数回抽出する処理と、バッチ管理システムが、更新情報に基づいて、前回の更新処理から今回の更新処理までの間における更新データを保存・管理する処理と、バッチ管理システムが、更新データを分散ファイルシステムに逐次転送する処理とを実行する手法を提案する。 That is, during the batch execution cycle, the batch management system extracts the update information of the data stored in the database server multiple times, and the batch management system performs the current update process based on the update information. We propose a method for executing processing for storing and managing update data up to the update processing, and processing for sequentially transferring update data to the distributed file system by the batch management system.
本発明によれば、バッチ実行周期の間に、データソースとしてのデータベースサーバにおける更新状況(更新データ)を、定期的に分散ファイルシステムに反映することができる。この結果、バッチ処理の実行開始時に分散ファイルシステムに転送されるデータ量を削減することができ、バッチ処理に要する時間を大幅に短縮することができる。前述以外の課題、構成及び効果は、以下の実施の形態の説明により明らかにされる。 According to the present invention, the update status (update data) in the database server as a data source can be regularly reflected in the distributed file system during the batch execution cycle. As a result, the amount of data transferred to the distributed file system at the start of the execution of batch processing can be reduced, and the time required for batch processing can be greatly reduced. Problems, configurations, and effects other than those described above will become apparent from the following description of embodiments.
以下、図面に基づいて、本発明の実施の形態を説明する。なお、本発明の実施の態様は、後述する形態例に限定されるものではなく、その技術思想の範囲において、種々の変形が可能である。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. The embodiment of the present invention is not limited to the embodiments described later, and various modifications are possible within the scope of the technical idea.
[実施例]
(システム構成)
図1に、本実施例が想定するシステムの全体構成を示す。利用者端末101は、LAN102経由で業務サーバ103に接続されている。利用者は、利用者端末101を使用して業務サービス106にアクセスする。ここで、業務サーバ103はコンピュータを基本構成とし、演算装置、ハードディスク等の大規模ストレージ装置、通信インターフェース及び周辺装置で構成される。業務サービス106は、コンピュータによるプログラム処理を通じて実現される。
[Example]
(System configuration)
FIG. 1 shows the overall configuration of a system assumed in this embodiment. The
業務サーバ103には、バックグラウンドで実行される並列バッチ処理を管理するバッチ管理サーバ104と、並列バッチ処理を実際に実行するバッチ処理クラスタ115とがLAN102経由で接続されている。なお、バッチ処理クラスタ115は、複数台のバッチ処理サーバ105で構成されている。本明細書では、バッチ管理サーバ104単独、又は、バッチ管理サーバ104とバッチ処理クラスタ115で構成されるシステムを「バッチ管理システム」という。 A batch management server 104 that manages parallel batch processing executed in the background and a batch processing cluster 115 that actually executes parallel batch processing are connected to the business server 103 via the LAN 102. Note that the batch processing cluster 115 includes a plurality of batch processing servers 105. In this specification, the batch management server 104 alone or a system configured by the batch management server 104 and the batch processing cluster 115 is referred to as a “batch management system”.
業務サーバ103のストレージ装置には、業務サービスDB107やそのトランザクションログ108が格納されている。業務サービスDB107には、業務サービスが使用するデータが格納されている。ここでの格納データがバッチ処理の対象となる。業務サービスDB107は、トランザクションログ108を出力・保存するモードで稼働される。トランザクションログ108は、業務サーバ103の公開ディレクトリに保存されており、アクセスが許可された他のサーバからダウンロードすることができる。 The storage server of the business server 103 stores a business service DB 107 and its transaction log 108. The business service DB 107 stores data used by the business service. The stored data here becomes the target of batch processing. The business service DB 107 is operated in a mode for outputting and saving the transaction log 108. The transaction log 108 is stored in a public directory of the business server 103 and can be downloaded from another server permitted to access.
バッチ管理サーバ104もコンピュータを基本構成とし、演算装置、ハードディスク等のストレージ装置、通信インターフェース及び周辺装置で構成される。バッチ管理サーバ104では、バッチ管理サービス109が稼動している。バッチ管理サービス109は、コンピュータによるプログラム処理を通じて実現される。 The batch management server 104 also has a computer as a basic configuration, and includes a storage device such as a computing device and a hard disk, a communication interface, and peripheral devices. In the batch management server 104, a batch management service 109 is operating. The batch management service 109 is realized through program processing by a computer.
バッチ管理サービス109は、システム全体におけるバッチ処理の管理・制御を実行し、例えば業務サービスDB107内におけるバッチ処理対象データ(バッチ処理の対象となるテーブルの特定カラムに関するデータ)と、前回アクセス時のデータに対する更新を管理する。バッチ管理サーバ104のストレージ装置には、テーブル差分管理DB110及びハッシュ値管理DB111が格納されている。 The batch management service 109 manages and controls batch processing in the entire system, for example, batch processing target data in the business service DB 107 (data related to a specific column of a table subject to batch processing) and data at the previous access Manage updates to. The storage device of the batch management server 104 stores a table difference management DB 110 and a hash value management DB 111.
バッチ処理クラスタ115を構成するバッチ処理サーバ105も、コンピュータを基本構成とする。各バッチ処理サーバ105には、バッチアプリケーション112と分散処理フレームワーク113がインストールされている。分散処理フレームワーク113は、クラスタノード間での協調したデータストア及び並列処理を実行するプログラムであり、バッチアプリケーション112の実行も制御する。また、バッチ処理サーバ105は、二次記憶装置114を備えている。二次記憶装置114は、例えばハードディスク装置等のストレージ装置で構成される。
The batch processing server 105 constituting the batch processing cluster 115 also has a computer as a basic configuration. Each batch processing server 105 has a batch application 112 and a distributed processing framework 113 installed therein. The distributed processing framework 113 is a program that executes a coordinated data store and parallel processing between cluster nodes, and also controls the execution of the batch application 112. Further, the batch processing server 105 includes a
ここで、分散処理フレームワーク113が、クラスタノード間でデータを共有するための分散ファイルシステムを構成するベースとなる。分散処理フレームワークの一例には、Apache Hadoopがある。Hadoopは、分散ファイルシステムであるHDFS上にデータを格納し、MapReduceフレームワークで並列分散処理を行うことができる。本実施例では、分散処理フレームワークとして、Hadoopを仮定するが、同様の機構を有する他の分散処理フレームワークでも良い。 Here, the distributed processing framework 113 serves as a base for configuring a distributed file system for sharing data between cluster nodes. An example of a distributed processing framework is Apache Hadoop. Hadoop can store data on HDFS, a distributed file system, and perform parallel distributed processing with the MapReduce framework. In this embodiment, Hadoop is assumed as the distributed processing framework, but other distributed processing frameworks having a similar mechanism may be used.
(バッチ処理フロー)
図2に、図1に示すシステムにおいて実行されるバッチ処理フローの流れを説明する。図2は、業務サーバ103、バッチ管理サーバ104及びバッチ処理クラスタ115の間における処理動作の流れを表している。
(Batch processing flow)
FIG. 2 explains the flow of the batch processing flow executed in the system shown in FIG. FIG. 2 shows the flow of processing operations among the business server 103, the batch management server 104, and the batch processing cluster 115.
業務サーバ103では、トランザクションログ108が、業務サービスDB107へのアクセスが発生した段階で随時出力される。 In the business server 103, the transaction log 108 is output at any time when access to the business service DB 107 occurs.
バッチ管理サーバ104では、バッチ管理サービス109が定期的に業務サーバ103にアクセスし、トランザクションログ108をダウンロードする。この実施例では、トランザクションログ108の発生タイミングとは無関係に、トランザクションログ108のダウンロードが定期的に実行される。もっとも、バッチ管理サーバ104は、トランザクションログ108の発生をトリガーとして、トランザクションログ108のダウンロードを実行しても良い。 In the batch management server 104, the batch management service 109 periodically accesses the business server 103 and downloads the transaction log 108. In this embodiment, the transaction log 108 is periodically downloaded regardless of the generation timing of the transaction log 108. However, the batch management server 104 may execute the download of the transaction log 108 with the occurrence of the transaction log 108 as a trigger.
バッチ管理サービス109では、業務サービスDB107を構成するテーブル群のうち、どのテーブルとカラムのデータをバッチ処理用にフェッチするかが予め定義されている。バッチ管理サービス109は、このトランザクションログ108に基づいて、前回からの更新部分を検知し、指定されたテーブルのカラムデータのみを管理するテーブル差分管理DB110のデータを更新する。 In the batch management service 109, it is defined in advance which table and column data are fetched for batch processing in the table group constituting the business service DB 107. Based on this transaction log 108, the batch management service 109 detects the update part from the previous time, and updates the data in the table difference management DB 110 that manages only the column data of the specified table.
本実施例の場合、バッチ管理サービス109は、更新部分を含むエントリ群のデータのハッシュ値を計算し、ハッシュ値管理DB111に登録する。本実施例の場合、ハッシュ値の計算は、差分エントリが更新される度に行う。ここで、更新部分を含むエントリ群のデータのハッシュ値を登録・管理する理由は、分散処理フレームワーク上で実際にバッチ処理を実行する際に、バッチ処理入力データが、実際の業務サービスDB107上に存在するデータと一致しているか否かを効率的に確認できるようにするためである。 In the case of the present embodiment, the batch management service 109 calculates the hash value of the data of the entry group including the update part and registers it in the hash value management DB 111. In this embodiment, the hash value is calculated every time the difference entry is updated. Here, the reason for registering and managing the hash value of the data of the entry group including the update part is that when batch processing is actually executed on the distributed processing framework, the batch processing input data is stored on the actual business service DB 107. This is because it is possible to efficiently confirm whether or not the data matches the data existing in.
このハッシュ値の計算は、分散処理フレームワークが提供する分散ファイルシステムで信頼性が担保されていない場合に効果的である。例えばHadoop/HDFS等のオープンソース系のソフトウェアは、現時点において、バッチ処理の基盤に用いるには信頼性に難がある。しかし、後述する整合性の確認動作を採用すれば、Hadoop/HDFS等のオープンソース系のソフトウェアにより構成された分散ファイルシステムの信頼性を、従来システムと同等レベルまで引き上げることができる。 This calculation of the hash value is effective when reliability is not ensured in the distributed file system provided by the distributed processing framework. For example, open source software such as Hadoop / HDFS is difficult to use at present as a base for batch processing. However, if the consistency check operation described later is adopted, the reliability of the distributed file system configured by open source software such as Hadoop / HDFS can be raised to the same level as the conventional system.
バッチ管理サービス109は、更新があったエントリのみをバッチ処理クラスタ115に逐次転送する。このように、転送されるデータは、更新のあったエントリのみである。このため、バッチ処理クラスタ115に転送されるデータ量は、業務サービスDB107のデータ量に対して非常に少なく済む。また、更新のあったエントリのデータは、バッチ処理クラスタ115におけるバッチ実行周期の間も逐次転送される。バッチ処理クラスタ115は、逐次受信されるデータを、分散処理フレームワークが構成する分散ファイルシステム上のバッチ処理入力データに反映する。 The batch management service 109 sequentially transfers only the updated entries to the batch processing cluster 115. Thus, the transferred data is only the updated entry. For this reason, the amount of data transferred to the batch processing cluster 115 is much smaller than the amount of data in the business service DB 107. The updated entry data is also transferred sequentially during the batch execution cycle in the batch processing cluster 115. The batch processing cluster 115 reflects the sequentially received data on the batch processing input data on the distributed file system configured by the distributed processing framework.
このように、本実施例では、差分データのみ逐次更新する方式を採用する。この方式の採用により、バッチ処理クラスタ115で実際にバッチ処理を実行する際に一度に大量のデータを転送する必要がなくなる。このため、従来システムに比して、バッチ開始時におけるデータの読み込み時間が短縮される。結果的に、バッチ処理開始から終了までに要する時間を、従来システムに比して、大幅に短縮することが可能になる。 As described above, this embodiment employs a method of sequentially updating only the difference data. By adopting this method, it is not necessary to transfer a large amount of data at a time when the batch processing cluster 115 actually executes batch processing. For this reason, compared with the conventional system, the data reading time at the start of the batch is shortened. As a result, the time required from the start to the end of batch processing can be greatly reduced as compared with the conventional system.
なお、バッチ処理クラスタ115は、バッチ処理の開始に先立って、バッチ管理サーバ104の間でバッチ処理入力データの整合性を確認し(具体的には、バッチ処理入力データから計算されるハッシュ値とハッシュ値管理DB111に登録されたハッシュ値とを照合し)、整合性が確認された場合にバッチ処理を実行する。 Prior to the start of batch processing, the batch processing cluster 115 confirms the consistency of batch processing input data with the batch management server 104 (specifically, the hash value calculated from the batch processing input data and The hash value registered in the hash value management DB 111 is collated), and batch processing is executed when the consistency is confirmed.
バッチ処理クラスタ115は、バッチ処理の終了後、集計値を計算してストレージ装置に格納する。バッチ処理クラスタ115は、計算された集計値をバッチ処理出力データ202として業務サーバ103の業務サービスDB107に転送する。バッチ処理クラスタ115は、このバッチ処理出力データ202に基づいて、業務サービスDB107にバッチ処理結果を反映する。 The batch processing cluster 115 calculates the total value after storing the batch processing and stores it in the storage device. The batch processing cluster 115 transfers the calculated total value as the batch processing output data 202 to the business service DB 107 of the business server 103. The batch processing cluster 115 reflects the batch processing result in the business service DB 107 based on the batch processing output data 202.
(ハッシュ値の管理)
ここでは、図3に基づいて、テーブルのハッシュ値を管理する方法について説明する。図3に示すテーブルは、テーブル差分管理DB110に格納されているデータである。テーブルデータが与えられた場合、バッチ管理サービス109は、先頭から指定された行数のエントリ群を抽出し、その個々の値を結合した値に対してハッシュ値を計算し、その値をハッシュ値管理DB111に登録する。
(Hash value management)
Here, a method for managing the hash value of the table will be described with reference to FIG. The table shown in FIG. 3 is data stored in the table difference management DB 110. When the table data is given, the batch management service 109 extracts the entry group having the designated number of rows from the top, calculates a hash value for a value obtained by combining the individual values, and calculates the hash value as the hash value. Register in the management DB 111.
例えば図3の例の場合、バッチ管理サービス109は、10行ずつデータを抽出し、最初の10行に関しては、「001-00001」、「佐藤 一郎」、「34,000」、「001-00002」、「山田 花子」、「8,200」、・・・、「001-00010」、「鈴木 太郎」、「102,100」をバイナリ値として単純に結合して一つのバイナリ値を算出し、そのバイナリ値に対してハッシュ値h1を計算して登録する。同様に、バッチ管理サービス109は、次の11行から20行目までのデータについてハッシュ値h2を計算して登録する。以下同様に、バッチ管理サービス109は、ハッシュ値を計算してハッシュ値管理DB111に登録する。 For example, in the example of FIG. 3, the batch management service 109 extracts data by 10 rows, and for the first 10 rows, “001-00001”, “Ichiro Sato”, “34,000”, “001-00002” "Yamada Hanako", "8,200", ..., "001-00010", "Taro Suzuki", "102,100" are simply combined as binary values to calculate one binary value, and for that binary value Calculate and register the hash value h1. Similarly, the batch management service 109 calculates and registers the hash value h2 for the data from the next 11th line to the 20th line. Similarly, the batch management service 109 calculates a hash value and registers it in the hash value management DB 111.
ここで、バッチ管理サービス109は、差分エントリの更新時、更新があったエントリを含むデータ部分(実施例では10行分のデータ)についてのみハッシュ値を再計算すればよく、毎回、テーブル内の全てのデータについてハッシュ値を計算する必要はない。この計算方法により、ハッシュ値の計算処理の高速化を実現することができる。 Here, the batch management service 109 only needs to recalculate the hash value only for the data portion including the updated entry (data for 10 rows in the embodiment) when the difference entry is updated. It is not necessary to calculate hash values for all data. With this calculation method, it is possible to realize a high-speed hash value calculation process.
ここで、テーブルデータを分割する際の指定行数は、HDFSが管理するブロックサイズ(デフォルトでは64MB)を考慮することが望ましい。例えば指定行数のデータサイズの定数倍が、HDFSのブロックサイズに一致するように指定行数を設定する。このように指定行数を設定することにより、ブロックファイルを跨ぐ指定行数のテーブルデータの存在を回避することができる。その結果、HDFS上でのバッチ処理入力データの効率的な読み書きを実現することができる。 Here, it is desirable to consider the block size (64 MB by default) managed by HDFS for the number of specified rows when dividing table data. For example, the specified number of rows is set so that a constant multiple of the data size of the specified number of rows matches the block size of HDFS. By setting the specified number of rows in this way, it is possible to avoid the presence of table data with the specified number of rows straddling the block file. As a result, efficient reading and writing of batch processing input data on HDFS can be realized.
(テーブルの構造例)
ここでは、バッチ管理サーバ104で管理されるテーブル差分管理DB110とハッシュ値管理DB111のテーブル例について説明する。
(Table structure example)
Here, a table example of the table difference management DB 110 and the hash value management DB 111 managed by the batch management server 104 will be described.
図4に、テーブル差分管理DB110のテーブル例を示す。図4は、EC(electronic commerce)サイトにおける各会員情報に関するDBを想定した図である。なお、業務サーバ103側の業務サービスDB107には、会員情報のマスタテーブルが格納されている。 FIG. 4 shows a table example of the table difference management DB 110. FIG. 4 is a diagram assuming a DB related to member information on an EC (electronic commerce) site. The business service DB 107 on the business server 103 side stores a master table of member information.
会員番号401、氏名402、月別購入金額403は、業務サービスDB107に格納されているマスタテーブルのうちバッチ処理に必要とされる属性である。テーブル差分管理DB110には、これらの属性からなる部分テーブルが保持される。当該構造の採用により、テーブル差分管理DB110におけるデータの更新時間やデータ量の削減が実現される。また、テーブル差分管理DB110には、更新フラグ404も保持される。更新フラグ404は、業務サービスDB107からの前回のデータ抽出時から今回のデータ抽出時までの間に更新があったエントリの識別に使用される属性である。更新があったエントリには値「1」が設定され、更新が無かったエントリには値「0」が設定される。バッチ管理サービス109は、更新フラグ104の値に基づいてハッシュ値を再計算するか否かを判定する。
The
図5は、ハッシュ値管理DB111のテーブル例を示している。本実施例の場合、テーブルの属性値には、テーブルID501、開始エントリID502、終了エントリID503、ハッシュ値504が含まれる。テーブルID501は、テーブル差分管理DB110に格納されているテーブルのIDを示している。本実施例では、図4に記載のテーブルのテーブルIDを「T1」で表している。また、開始エントリID502と終了エントリID503は、ハッシュ値を計算するエントリ群の最初と最後のエントリのキー値を示している。テーブルT1の主キーは会員番号であり、この会員番号をベースに用い、開始エントリIDと終了エントリIDが定義されている。また、ハッシュ値504は、指定されたエントリ群について、図3で説明した方式により計算されたハッシュ値が格納される。
FIG. 5 shows a table example of the hash value management DB 111. In this embodiment, the table attribute values include a
(差分データ抽出処理手順)
図6に、バッチ管理サービス109において実行される差分データ抽出処理手順のフローチャートを示す。バッチ管理サービス109は、業務サーバ103上にある業務サービスDB107が出力するトランザクションログ108を取得する(ステップ601)。
(Differential data extraction processing procedure)
FIG. 6 shows a flowchart of the difference data extraction processing procedure executed in the batch management service 109. The batch management service 109 acquires the transaction log 108 output from the business service DB 107 on the business server 103 (step 601).
次に、バッチ管理サービス109は、取得したトランザクションログに基づいて、業務サービスDB107において更新されたエントリデータを抽出する(ステップ602)。 Next, the batch management service 109 extracts the entry data updated in the business service DB 107 based on the acquired transaction log (step 602).
抽出したデータ内に、テーブル差分管理DB110に格納されたバッチ処理用のテーブルの属性値に相当するものが含まれる場合、バッチ管理サービス109は、その更新エントリの値をテーブル差分管理DB110に反映する(ステップ603)。このデータの反映時に、バッチ管理サービス109は、更新フラグ404の値を「1」に設定する。
When the extracted data includes data corresponding to the attribute value of the batch processing table stored in the table difference management DB 110, the batch management service 109 reflects the value of the update entry in the table difference management DB 110. (Step 603). At the time of reflecting this data, the batch management service 109 sets the value of the
全ての更新エントリの値についてテーブル差分管理DB110に反映処理が終了すると、バッチ管理サービス109は、更新フラグ404の値を参考に更新エントリを探索し、更新エントリを含む指定エントリ群のハッシュ値を計算する(ステップ604)。ハッシュ値が計算されると、バッチ管理サービス109は、計算したハッシュ値をハッシュ値管理DB111に登録し(ステップ605)、その後、更新データを分散ファイルシステム上のバッチ処理入力データに反映する(ステップ606)。
When the processing of reflecting all the update entry values in the table difference management DB 110 is completed, the batch management service 109 searches for the update entry with reference to the value of the
この一連のプロセスは、バッチ管理サービス109によって定期的に実行される。これにより、業務サービスDB107の更新データが、バッチ実行周期の間も、逐次、バッチ処理入力データに反映される。これにより、バッチ処理の実行時に、一度にデータ移行が発生することなく、バッチ処理全体の時間短縮を実現することができる。 This series of processes is periodically executed by the batch management service 109. Thereby, the update data of the business service DB 107 is sequentially reflected in the batch processing input data even during the batch execution cycle. As a result, when batch processing is executed, the entire batch processing can be shortened without causing data migration at a time.
(バッチ処理手順)
図7に、バッチ処理クラスタ115において実行されるバッチ処理手順のフローチャートを示す。バッチ処理クラスタ115は、バッチ処理が開始されると、まず、バッチ処理入力データの整合性をチェックする(ステップ701)。具体的には、バッチ処理クラスタ115は、各ブロックデータ群についてハッシュ値を計算し、ハッシュ値管理DB111に格納されている対応する値と照合する。ここで、ブロックデータとは、バッチ処理入力データの部分データであり、指定行数のエントリデータに対応するデータである。
(Batch processing procedure)
FIG. 7 shows a flowchart of a batch processing procedure executed in the batch processing cluster 115. When batch processing is started, the batch processing cluster 115 first checks the consistency of the batch processing input data (step 701). Specifically, the batch processing cluster 115 calculates a hash value for each block data group and compares it with the corresponding value stored in the hash value management DB 111. Here, the block data is partial data of batch processing input data, and is data corresponding to entry data for a specified number of rows.
次に、バッチ処理クラスタ115は、ハッシュ値が一致しないブロックデータ群の有無をチェックする(ステップ702)。ハッシュ値が一致しないブロックデータ群が存在する場合(ステップ702で肯定結果)、バッチ処理クラスタ115は、一致しない部分をテーブル差分管理DB110から抽出してバッチ入力データを修正し(ステップ703)、その後、バッチ処理を実行する(ステップ704)。これに対し、ハッシュ値が一致しないブロックデータが存在しない場合(ステップ702で否定結果)、バッチ処理クラスタ115は、整合性が確認できたと判定し、実際のバッチ処理を実行する(ステップ704)。 Next, the batch processing cluster 115 checks whether there is a block data group whose hash values do not match (step 702). When there is a block data group that does not match the hash value (Yes in step 702), the batch processing cluster 115 extracts the mismatched portion from the table difference management DB 110 to correct the batch input data (step 703), and then Then, batch processing is executed (step 704). On the other hand, if there is no block data whose hash values do not match (negative result in step 702), the batch processing cluster 115 determines that consistency has been confirmed and executes the actual batch processing (step 704).
最後に、バッチ処理クラスタ115は、分散ファイルシステム上に保存されたバッチ処理出力データに基づいて業務サービスDB107を更新する(ステップ705)。 Finally, the batch processing cluster 115 updates the business service DB 107 based on the batch processing output data stored on the distributed file system (step 705).
(まとめ)
前述したように、バッチ管理サーバ104は、バッチ実行周期の間に、データソースとしての業務サービスDB107の更新データを定期的に抽出してテーブル差分管理DB110に反映し、その都度、更新データをバッチ処理クラスタ115の分散ファイルシステムに反映する。この結果、バッチ処理の実行開始時に分散ファイルシステムに転送されるデータ量を削減することができ、バッチ処理に要する時間を大幅に短縮することができる。
(Summary)
As described above, the batch management server 104 periodically extracts update data of the business service DB 107 as a data source and reflects it in the table difference management DB 110 during the batch execution cycle. This is reflected in the distributed file system of the processing cluster 115. As a result, the amount of data transferred to the distributed file system at the start of the execution of batch processing can be reduced, and the time required for batch processing can be greatly reduced.
また、本実施例の場合、バッチ処理クラスタ115は、バッチ処理を開始する前にバッチ処理入力データについてハッシュ値を計算し、バッチ管理サーバ104で管理するハッシュ値と照合し、問題がある場合には事前に修正処理を実行する。これにより、バッチ処理クラスタ115を構成する分散ファイルシステムの信頼性に問題がある場合でも、バッチ処理入力データの信頼性を保証することができる。 In the case of this embodiment, the batch processing cluster 115 calculates a hash value for the batch processing input data before starting the batch processing, compares it with the hash value managed by the batch management server 104, and if there is a problem. Performs correction processing in advance. Thereby, even when there is a problem in the reliability of the distributed file system constituting the batch processing cluster 115, the reliability of the batch processing input data can be guaranteed.
以上により、業務システムにおけるデータベースのデータを正確かつ高速にバッチできる、安価なバッチ処理システムを実現することができる。 As described above, it is possible to realize an inexpensive batch processing system capable of accurately and rapidly batching database data in a business system.
[他の実施例]
本明細書で提案する発明は、上述した形態例に限定されるものでなく、様々な変形が考えられる。例えば、上述した実施例は、発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成・機能を備える必要は無い。また、実施例の構成に既知の構成を追加したり、実施例の一部の構成を削除又は置換することもできる。
[Other embodiments]
The invention proposed in this specification is not limited to the above-described embodiments, and various modifications are conceivable. For example, the above-described embodiments have been described in detail in order to explain the invention in an easy-to-understand manner, and it is not always necessary to have all the configurations and functions described. In addition, a known configuration can be added to the configuration of the embodiment, or a part of the configuration of the embodiment can be deleted or replaced.
また、上述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路その他のハードウェアとして実現しても良い。また、前述の実施例では、各サーバを構成するコンピュータによるプログラムの実行を通じ、各機能を実現する場合について説明したが、各機能をモジュール基板やASIC等のハードウェア資源を通じて実現しても良い。 Moreover, you may implement | achieve some or all of each structure, a function, a process part, a process means, etc. which were mentioned above as an integrated circuit or other hardware, for example. Further, although cases have been described with the above embodiments where functions are realized through the execution of programs by computers constituting each server, each function may be realized through hardware resources such as a module board or an ASIC.
また、制御線や情報線は、説明上必要と考えられるものを示すものであり、製品上必要な全ての制御線や情報線を表すものでない。実際にはほとんど全ての構成が相互に接続されていると考えて良い。 Control lines and information lines indicate what is considered necessary for the description, and do not represent all control lines and information lines necessary for the product. In practice, it can be considered that almost all components are connected to each other.
101…利用者端末、102…LAN、103…業務サーバ、104…バッチ管理サーバ、105…バッチ処理サーバ、106…業務サービス、107…業務サービスDB、108…トランザクションログ、109…バッチ管理サービス、110…テーブル差分管理DB、111…ハッシュ値管理DB、112…バッチアプリケーション、113…分散処理フレームワーク、114…二次記憶装置、115…バッチ処理クラスタ、201…バッチ処理入力データ、202…バッチ処理出力データ、401…会員番号、402…氏名、403…月別購入金額、404…更新フラグ、501…テーブルID、502…開始エントリID、503…終了エントリID、504…ハッシュ値。
DESCRIPTION OF
Claims (8)
バッチ実行周期の間に、バッチ管理システムが、前記データベースサーバに格納されたデータの更新情報を複数回抽出する処理と、
前記バッチ管理システムが、前記更新情報に基づいて、前回の更新処理から今回の更新処理までの間における更新データを保存・管理する処理と、
前記バッチ管理システムが、前記更新データを分散ファイルシステムに逐次転送する処理と
を有するバッチ処理対象データの高速読込み方法。 In a method for high-speed reading of data subject to batch processing by a batch management system connected to a database server,
A process in which a batch management system extracts update information of data stored in the database server a plurality of times during a batch execution cycle;
The batch management system, based on the update information, a process for storing and managing update data between the last update process and the current update process;
The batch management system includes a process of sequentially transferring the update data to a distributed file system.
前記バッチ管理システムが、前記更新データのハッシュ値を保存・管理する処理
を有することを特徴とするバッチ処理対象データの高速読込み方法。 In the high-speed reading method of the batch processing target data according to claim 1,
The batch management system includes a process for storing and managing a hash value of the update data.
前記分散ファイルシステムが、前記更新データに基づいてバッチ処理入力データを更新する処理と、
バッチ処理を開始する前に、前記分散ファイルシステムが、前記バッチ処理入力データと前記ハッシュ値とを照合して整合性を確認する処理と、
前記分散ファイルシステムが、整合性が確認された前記バッチ処理入力データについてバッチ処理を実行する処理と、
前記分散ファイルシステムが、バッチ処理後のデータをバッチ処理出力データとして前記データベースサーバに反映する処理と
を有することを特徴とするバッチ処理対象データの高速読込み方法。 In the batch processing target data high-speed reading method according to claim 2,
A process in which the distributed file system updates batch process input data based on the update data;
Before starting the batch process, the distributed file system checks the consistency by comparing the batch process input data and the hash value;
A process in which the distributed file system executes a batch process on the batch process input data whose consistency has been confirmed;
The distributed file system includes a process of reflecting data after batch processing as batch processing output data to the database server.
前記バッチ管理システムは、前記データベースサーバを構成するデータベースが出力するトランザクションログを前記更新情報として取得する
ことを特徴とするバッチ処理対象データの高速読込み方法。 In the high-speed reading method of the batch processing target data according to claim 1,
The batch management system acquires a transaction log output from a database constituting the database server as the update information. A method for reading batch processing target data at high speed.
前記バッチ管理システムは、前記更新データを、指定個数のエントリ毎に纏めて抽出し、抽出されたエントリの値を結合して第1のハッシュ値を算出して保存・更新し、
前記分散ファイルシステムは、前記指定個数のエントリに対応するデータ部分を前記バッチ処理入力データから抽出して第2のハッシュ値を算出し、前記第1のハッシュ値と照合する
ことを特徴とするバッチ処理対象データの高速読込み方法。 In the high-speed reading method of the batch processing target data according to claim 1,
The batch management system extracts the update data collectively for each specified number of entries, combines the values of the extracted entries, calculates a first hash value, stores and updates,
The distributed file system extracts a data portion corresponding to the specified number of entries from the batch processing input data, calculates a second hash value, and collates with the first hash value. High-speed reading method of processing target data.
前記指定個数のエントリのデータサイズは、前記バッチ処理におけるファイルサイズと一致するように設定される
ことを特徴とするバッチ処理対象データの高速読込み方法。 The batch processing target data high-speed reading method according to claim 5,
The data size of the specified number of entries is set so as to coincide with the file size in the batch processing.
前記分散ファイルシステムは、前記第1のハッシュ値と前記第2のハッシュ値が一致しない場合、当該照合結果に対応するエントリ群を前記バッチ管理システムから取得して前記バッチ処理入力データに反映し、整合性が確保された後に、バッチ処理を実行する
ことを特徴とするバッチ処理対象データの高速読込み方法。 The batch processing target data high-speed reading method according to claim 5,
If the first hash value and the second hash value do not match, the distributed file system acquires an entry group corresponding to the matching result from the batch management system and reflects it in the batch processing input data, A high-speed method for reading data subject to batch processing, wherein batch processing is executed after consistency is ensured.
バッチ実行周期の間に、前記データベースサーバに格納されたデータの更新情報が抽出されるたび、前回の更新処理から今回の更新処理までの間における更新データを保存・管理するデータベースと、
前記更新データを、バッチ処理を実行する分散ファイルシステムに対して逐次転送する処理部と
を有するバッチ管理システム。 A batch management system connected to a database server,
A database for storing and managing update data from the previous update process to the current update process every time update information of the data stored in the database server is extracted during the batch execution cycle;
A batch management system comprising: a processing unit that sequentially transfers the update data to a distributed file system that executes batch processing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012183731A JP2014041501A (en) | 2012-08-23 | 2012-08-23 | Fast reading method for batch processing target data and batch management system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012183731A JP2014041501A (en) | 2012-08-23 | 2012-08-23 | Fast reading method for batch processing target data and batch management system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014041501A true JP2014041501A (en) | 2014-03-06 |
Family
ID=50393702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012183731A Pending JP2014041501A (en) | 2012-08-23 | 2012-08-23 | Fast reading method for batch processing target data and batch management system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014041501A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017078158A1 (en) * | 2015-11-06 | 2017-05-11 | 株式会社野村総合研究所 | Data management system |
WO2017081737A1 (en) * | 2015-11-10 | 2017-05-18 | 株式会社野村総合研究所 | Data management system |
CN110046137A (en) * | 2017-12-20 | 2019-07-23 | 宏碁云端技术公司 | By data stream packet and the system and method that store into cloud storage file |
-
2012
- 2012-08-23 JP JP2012183731A patent/JP2014041501A/en active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017078158A1 (en) * | 2015-11-06 | 2017-05-11 | 株式会社野村総合研究所 | Data management system |
JPWO2017078158A1 (en) * | 2015-11-06 | 2018-08-09 | 株式会社野村総合研究所 | Data management system |
US11169984B2 (en) | 2015-11-06 | 2021-11-09 | Nomura Research Institute, Ltd. | Data management system |
WO2017081737A1 (en) * | 2015-11-10 | 2017-05-18 | 株式会社野村総合研究所 | Data management system |
CN110046137A (en) * | 2017-12-20 | 2019-07-23 | 宏碁云端技术公司 | By data stream packet and the system and method that store into cloud storage file |
CN110046137B (en) * | 2017-12-20 | 2023-08-01 | 宏碁云端技术公司 | System and method for grouping and storing data streams into cloud storage files |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10558615B2 (en) | Atomic incremental load for map-reduce systems on append-only file systems | |
JP5816198B2 (en) | System and method for sharing the results of computing operations between related computing systems | |
WO2017143844A1 (en) | Data operation method and data management server | |
US8799230B2 (en) | Method and system for centralized issue tracking | |
CN112997167A (en) | Task scheduling in a database system | |
US9946724B1 (en) | Scalable post-process deduplication | |
US20120158795A1 (en) | Entity triggers for materialized view maintenance | |
CN111324610A (en) | Data synchronization method and device | |
CN106789249B (en) | Hot updating method, client and server | |
US8645502B2 (en) | Dynamic interface to read database through remote procedure call | |
US9910881B1 (en) | Maintaining versions of control plane data for a network-based service control plane | |
US11966790B2 (en) | Executing computing modules using multi-coring | |
KR102475435B1 (en) | Apparatus for managing data using block chain and method thereof | |
CN101727496A (en) | Method for realizing load balancing cluster of MICROSOFT SQL SERVER database | |
Won et al. | Moving metadata from ad hoc files to database tables for robust, highly available, and scalable HDFS | |
JP6329552B2 (en) | Reference data segmentation from single table to multiple tables | |
JP2014041501A (en) | Fast reading method for batch processing target data and batch management system | |
US10127270B1 (en) | Transaction processing using a key-value store | |
CN111694801A (en) | Data deduplication method and device applied to fault recovery | |
US10073657B2 (en) | Data processing apparatus, data processing method, and computer program product, and entry processing apparatus | |
CN103699627A (en) | Dummy file parallel data block positioning method based on Hadoop cluster | |
US11782882B2 (en) | Methods for automated artifact storage management and devices thereof | |
Carstoiu et al. | High performance eventually consistent distributed database Zatara | |
US10015248B1 (en) | Syncronizing changes to stored data among multiple client devices | |
US11194758B1 (en) | Data archiving using a compute efficient format in a service provider environment |