JP2018014036A - データベースシステム、データ処理プログラム、及びデータ処理方法 - Google Patents

データベースシステム、データ処理プログラム、及びデータ処理方法 Download PDF

Info

Publication number
JP2018014036A
JP2018014036A JP2016144475A JP2016144475A JP2018014036A JP 2018014036 A JP2018014036 A JP 2018014036A JP 2016144475 A JP2016144475 A JP 2016144475A JP 2016144475 A JP2016144475 A JP 2016144475A JP 2018014036 A JP2018014036 A JP 2018014036A
Authority
JP
Japan
Prior art keywords
data
database
output
order
file
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
JP2016144475A
Other languages
English (en)
Other versions
JP6737039B2 (ja
Inventor
阿部 哲也
Tetsuya Abe
哲也 阿部
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2016144475A priority Critical patent/JP6737039B2/ja
Publication of JP2018014036A publication Critical patent/JP2018014036A/ja
Application granted granted Critical
Publication of JP6737039B2 publication Critical patent/JP6737039B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】 本発明によれば、より少ない処理量で正確に2つのデータベースのデータを比較する処理を行う。【解決手段】 本発明は、データベースシステムに関する。本発明のデータベースシステムは、第1のデータベースからデータを順次読み出して読みだした順序でデータ出力した第1の出力データを生成する手段と、第1の出力データからデータを順次読み出して順序識別子を付加したデータを第2のデータベースに登録する手段と、第2のデータベースから順序識別子が示す順序で読み出してデータ出力した第2の出力データを生成する手段と、第1の出力データと第2の出力データとの比較結果に基づいて、第1のデータベースと第2のデータベースとを比較する処理を行う手段とを有することを特徴とする。【選択図】 図1

Description

この発明は、データベースシステム、データ処理プログラム、及びデータ処理方法に関し、例えば、データベースサーバ間のデータ移行が可能なデータベースシステムに適用し得る。
通常、データベースサーバ間でデータを移行した後、移行元のデータベースサーバと移行先のデータベースのデータとの間で、データの同一性を比較検証する処理(以下、「コンペア処理」とも呼ぶ)が行われる。従来のデータベースシステムにおいて、全件コンペア処理を実施する処理は、例えば、移行元又は移行先のデータどちらか一方を基準に他方のデータを繰り返しサーチし、同一レコード(比較対象となるレコード)を検出してコンペア処理を実施するという流れとなる。
従来のデータベースシステムにおけるコンペア処理方法としては、例えば、特許文献1に記載された方法がある。特許文献1では、移行前と移行後のデータベース間で、全件のデータに対してコンペア処理を実施することで、移行後のデータベースの信頼性を保証し、さらに、移行前と移行後で不一致が発見された場合に調査を可能とする。
特開2008−171225号公報
しかしながら、特許文献1にはコンペア処理の具体的な手続きについては開示されておらず、その処理にどの程度のリソース及び、処理時間が必要となるか不明となっている。
近年、ハードウェアやDBMS等のミドルウェアのライフサイクルは短くなっており、システムの移行/再構築が必要となるケースは多く、その際のデータ移行作業は、極力短い時間で実施可能であることが要求されている。
従来のデータベースシステムにおいて、データ移行を行った後のコンペア処理方式としては、例えば、特許文献1のコンペア処理方式がある。特許文献1に記載されたコンペア処理方式では、シェルスクリプトを用いてコンペア処理を行うことについて記載されている。
例えば、従来の特許文献1の請求項1に記載されている「移行データファイルを移行後データベースのテーブルにセットアップ」するシェルスクリプトや、特許文献1の段落「0012」に記載されている移行前検査ファイルと移行後検査ファイルとの全件コンペア処理を行うシェルスクリプトには、以下の課題があると考えられる。
従来のコンペア処理方式では、移行前データベースからデータを抽出する際、データが抽出される順序(物理的な順序及び論理的な順序)は、移行後のデータベースからデータが抽出される順序と同一とは限らない。DBMSは一般的にデータを登録する際、空きデータブロックに連続的にデータを登録する方式で動作するが、データブロックが格納領域の上限まで使用されているような場合は、空きブロックを探索しながらデータを登録することになる。この場合、データを検索する(例えば、「SELECT * FROM 表」というSQL文)場合、データブロックの先頭からデータレコードが取得されるが、それは登録順序とは異なることになる。
したがって、従来のコンペア処理方式では、移行前又は移行後の一方のデータベースから任意のデータ(レコード)を抽出し、一方のデータベースから抽出したデータと対応するデータを他方のデータベースから検出して比較する処理を繰り返すことになる。
上述のような従来のコンペア処理方式では、コンペア処理対象のデータベースの全件のデータ(レコード)について、検索する処理が必要となる。すなわち、上述のような従来のコンペア処理方式では、コンペア処理対象のデータベースのデータ数(レコード数)の増加に伴い、検索処理の処理量(処理ステップや処理時間)も比例して多くなる。
また、上述のような従来のコンペア処理方式では、コンペア処理対象のデータに主キーが設定されていない場合(データベース内でユニークなデータとなるカラムが設定されていない場合)、一方のデータベースから抽出したデータと対応するデータを他方のデータベースから検出する処理が困難となってしまう。
さらに、上述のような従来のコンペア処理方式では、一方のデータベースから抽出したデータを、他方のデータベースから検出したデータと比較する際には、当該データ(レコード)の全データカラムについて比較する処理を繰り返すことになるため、多くの処理量(処理ステップや処理時間)が必要となる。すなわち、上述のような従来のコンペア処理方式では、データカラム数の増加に伴い、比較処理の処理量(処理ステップや処理時間)も比例して多くなる。
そのため、より少ない処理量で正確に2つのデータベースのデータを比較する処理(コンペア処理)を行うことができるデータベースシステム、データ処理プログラム、及びデータ処理方法が望まれている。
第1の本発明のデータベースシステムは、(1)第1のデータベースから、前記第1のデータベースを構成するデータを順次読み出し、前記第1のデータベースから読み出したデータを読みだした順序で出力した第1の出力データを生成する第1のデータベース出力手段と、(2)前記第1の出力データからデータを順次読み出し、読み出した各データに順序を識別する順序識別子を付加したデータを、第2のデータベースに登録するデータ登録手段と、(3)前記第2のデータベースから、前記第2のデータベースを構成するデータを、順序識別子が示す順序で読み出し、前記第2のデータベースから読み出したデータを読みだした順序で出力した第2の出力データを生成する第2のデータベース出力手段と、(4)前記第1の出力データと前記第2の出力データとの比較結果に基づいて、前記第1のデータベースと前記第2のデータベースとを比較する処理を行うデータ比較手段とを有することを特徴とする。
第2の本発明のデータ処理プログラムは、コンピュータを、(1)第1のデータベースから、前記第1のデータベースを構成するデータを順次読み出し、前記第1のデータベースから読み出したデータを読みだした順序で出力した第1の出力データを生成する第1のデータベース出力手段と、(2)前記第1の出力データからデータを順次読み出し、読み出した各データに順序を識別する順序識別子を付加したデータを、第2のデータベースに登録するデータ登録手段と、(3)前記第2のデータベースから、前記第2のデータベースを構成するデータを、順序識別子が示す順序で読み出し、前記第2のデータベースから読み出したデータを読みだした順序で出力した第2の出力データを生成する第2のデータベース出力手段と、(4)前記第1の出力データと前記第2の出力データとの比較結果に基づいて、前記第1のデータベースと前記第2のデータベースとを比較する処理を行うデータ比較手段として機能させることを特徴とする。
第3の本発明は、データベースシステムにおけるデータ処理方法において、(1)第1のデータベース出力手段、データ登録手段、第2のデータベース出力手段、及びデータ比較手段を備え、(2)前記第1のデータベース出力手段は、第1のデータベースから、前記第1のデータベースを構成するデータを順次読み出し、前記第1のデータベースから読み出したデータを読みだした順序で出力した第1の出力データを生成し、(3)前記データ登録手段は、前記第1の出力データからデータを順次読み出し、読み出した各データに順序を識別する順序識別子を付加したデータを、第2のデータベースに登録し、(4)前記第2のデータベース出力手段は、前記第2のデータベースから、前記第2のデータベースを構成するデータを、順序識別子が示す順序で読み出し、前記第2のデータベースから読み出したデータを読みだした順序で出力した第2の出力データを生成し、(5)前記データ比較手段は、前記第1の出力データと前記第2の出力データとの比較結果に基づいて、前記第1のデータベースと前記第2のデータベースとを比較する処理を行うことを特徴とする。
本発明によれば、より少ない処理量で正確に2つのデータベースのデータを比較する処理を行うことができる。
実施形態に係るデータベースシステムの機能的構成の例について示したブロック図である。 実施形態に係るデータベースシステムの動作について示したフローチャートである。 実施形態に係るデータベースシステムにおける各データの遷移について示した説明図である。 実施形態に係る移行元のデータベースサーバで、移行元データファイルの出力処理を行う際のシェルスクリプトの構成例について示した説明図である。 実施形態に係る移行元のデータベースサーバで、移行元データファイルの出力処理を行う際のSQL文の例について示した説明図である。 実施形態に係る移行元のデータベースサーバで、移行元データファイルの出力処理を行う際に適用するSQLファイルの構成例(その1)について示した説明図である。 実施形態に係る移行元のデータベースサーバで、移行元データファイルの出力処理を行う際に適用するSQLファイルの構成例(その2)について示した説明図である。 実施形態に係る移行元のデータベースサーバで出力された移行元データファイルの例について示した説明図である。 実施形態に係る移行先のデータベースサーバで、データのセットアップを行う際のシェルスクリプトの構成例について示した説明図である。 実施形態に係る移行先のデータベースサーバで、データのセットアップを行う際の制御ファイルの構成例について示した説明図である。 実施形態に係る移行先のデータベースサーバで、データの出力処理を行う際のSQL文の例について示した説明図である。 実施形態に係る移行先のデータベースサーバで、移行先データファイルの出力処理を行う際のシェルスクリプトの構成例について示した説明図である。 実施形態に係る移行先のデータベースサーバで、移行先データファイルの出力処理を行う際に適用するSQLファイルの構成例(その1)について示した説明図である。 実施形態に係る移行先のデータベースサーバで、移行先データファイルの出力処理を行う際に適用するSQLファイルの構成例(その2)について示した説明図である。 実施形態に係る移行先のデータベースサーバで出力された移行先データファイルの例について示した説明図である。 実施形態に係る移行先のデータベースサーバでデータ比較処理が行われる際のシェルスクリプトの例について示した説明図である。 実施形態に係る移行先のデータベースサーバで順序番号カラムの削除が行われる際のSQL文の例について示した説明図である。
(A)主たる実施形態
以下、本発明によるデータベースシステム、データ処理プログラム、及びデータ処理方法の一実施形態を、図面を参照しながら詳述する。
(A−1)実施形態の構成
図1は、この実施形態のデータベース(以下、「DB」とも呼ぶ)システム1の全体構成を示すブロック図である。
DBシステム1は、2つのDBサーバ10、20を有している。また、DBサーバ10、20は、それぞれネットワークNに接続しているものとする。
DBサーバ10、20は、図示しないDBクライアントから与えられたトランザクションの処理を行うものである。DBサーバ10、20は、PCなどの情報処理装置(1台に限定されず、複数台を分散処理し得るようにしたものであっても良い。)上に、プログラム(実施形態に係るデータ処理プログラムやデータベースのミドルウェアを含む)をインストールすることにより構築されるものであるが、機能的には図1のように表すことができる。なお、DBサーバ10、20は同じ構成としてもよいし、一部が異なる構成としてもよい。なお、DBシステム1を構成するDBサーバ20の台数は3台以上としてもよい。
この実施形態では、DBサーバ10がデータベースの移行元(移行前)となるDBサーバ(以下、「移行元DBサーバ」とも呼ぶ)であり、DBサーバ20がデータベースの移行先(移行後)となるDBサーバ(以下、「移行先DBサーバ」とも呼ぶ)であるものとして説明する。なお、DBシステム1において、データの移行元又は移行先となるDBサーバは限定されないものであり、任意の組み合わせを適用可能であるものとする。
次に、移行元DBサーバ10と移行先DBサーバ20の機能的な構成について説明する。図1に示すように、この実施形態では、移行元DBサーバ10と移行先DBサーバ20は、いずれも基本的な構成(大別された機能的構成)は同様なものとして図示することができる。例えば、ハードウェア更新等で、移行元DBサーバ10から移行先DBサーバ20にデータベース(データベースを構成する表)を移行する場合、通常は、移行先DBサーバ20の方が、OS、データベースミドルウェア等のソフトウェアがバージョンアップした状態となるが、基本的な構成(大別された機能的構成)としては同様の構成として図示される。
図1に示すように、DBサーバ10、20は、大別するとDBMS11、21、データ記憶部12、22、及びデータベース制御部13、23を有している。
DBサーバ10、20は、いずれもPCやワークステーション等のコンピュータに、OS(ミドルウェア)をインストール及びデータベースミドルウェアをインストールすることにより構築されたプラットフォーム上で実現されているものとする。DBサーバ10、20にインストールするOSやデータベースミドルウェアについては限定されないものであるが、この実施形態の例では、UNIX(登録商標)系のOS(例えば、種々のLINUX(登録商標)系OS)とORACLE(登録商標)データベースが適用されるものとして説明する。
DBMS11、21は、DB管理システム(Data Base Management System)の機能を担っており、例えば、図示しないDBクライアントやデータベース制御部13、23から要求(例えば、SQL(Structured Query Language)文で記述されたトランザクション)を受け取り、データ記憶部12、22のデータベース(表)を制御するなどして処理を行うものである。DBMS11、21は、例えば、種々のデータベースシステム(データベースミドルウェア)を用いて構築することができる。移行元DBサーバ10よりも、移行先DBサーバ20の方が新しく構築されたサーバの場合、移行先DBサーバ20のDBMS21で用いられるミドルウェア(データベースミドルウェア)は、移行元DBサーバ10で用いられるものと異なる場合(例えば、新しいバージョンのデータベースミドルウェアである場合)もあり得る。
データ記憶部12、22は、DBサーバ10、20において、データベースのデータを記憶する機能(データベース部の機能)などを担っており、例えば、DBMS11、21の制御に基づいて記憶しているデータの更新を行う。
データベース制御部13、23は、DBMS11、21(DBMS11、21のライブラリ)を用いてデータベース(例えば、データベースを構成する表)を制御する機能を担っている。特に、この実施形態では、データベース制御部13、23が、データベース移行の際のコンペア処理の制御を行うものとして説明する。
この実施形態では、データベース制御部13、23は、UNIX系OS上のシェルスクリプトを用いて構成されているものとして説明する。なお、データベース制御部13、23(データベース制御部13、23を構成する各構成要素)を実現する手段は、シェルスクリプトに限らず、任意の言語により記述されたプログラムがコンパイルされた実行可能ファイル(バイナリ形式の実行可能ファイル)であってもよい。
移行元DBサーバ10のデータベース制御部13には、データ出力処理部131及びデータ送信部132が含まれている。
データ出力処理部131は、DBMS11を制御して、DBMS11(データ記憶部12)上にセットアップされたデータベース(データベースを構成する表)の各データ(レコード)を読み出して、文字列データに変換して出力(例えば、テキストデータのファイルとして出力)する処理を行う。以下では、データ出力処理部131が出力するテキストデータのファイルを「移行元データファイル」と呼ぶものとする。データ出力処理部131は、例えば、特許文献1と同様の方式により移行元データファイルを出力する処理を行うようにしてもよい。
データ送信部132は、データ出力処理部131が出力した移行元データファイルを、移行先DBサーバ20側に送信(供給)する処理を行う。移行元DBサーバ10から移行先DBサーバ20に移行元データファイルを送信する手順や方式については限定されないものであり、例えば、FTP(File Transfer Protocol)や種々のネットワークファイルシステムを用いたファイルコピーにより実現するようにしてもよい。なお、データ出力処理部131が移行元データファイルを、直接移行先DBサーバ20に引き渡す処理を行う場合(例えば、移行先DBサーバ20のデータ記憶部22に書込む処理まで実行する場合)には、データ送信部132及び後述するデータ受信部231の構成は省略するようにしてもよい。
移行先DBサーバ20のデータベース制御部23には、データ受信部231、データセットアップ制御部232、データ出力処理部233、データ比較処理部234、及びカラム削除処理部235を有している。
データ受信部231は、移行元DBサーバ10のデータ送信部132が送信した移行元データファイルを受信する処理を行う。データ受信部231により受信された移行元データファイルは、データセットアップ制御部232及びデータ比較処理部234に引き渡される。なお、移行元DBサーバ10のデータ出力処理部131が移行元データファイルを、直接データセットアップ制御部232及びデータ比較処理部234に引き渡す処理を行う場合(例えば、移行先DBサーバ20のデータ記憶部22に書込む処理まで実行する場合)には、データ受信部231の構成は省略するようにしてもよい。
データセットアップ制御部232は、DBMS21を制御して、供給された移行元データファイルに基づくデータベース(データベースを構成する表)を、セットアップさせる処理(データ記憶部12上に表を生成して各データを登録させる処理)を行う。
このとき、データセットアップ制御部232は、移行元データファイル(テキストファイル)の先頭のデータ(レコード)から順に読み込んでDBMS21にセットアップ(登録)させる処理を行う。また、データセットアップ制御部232は、DBMS21に、データのセットアップを(登録)させる際に当該データの処理順序(すなわち、移行元データファイルにおいてデータが記述された順序)を示す順序番号(順序識別子)のカラム(以下、「順序番号カラム」とも呼ぶ)を追加させる処理を行う。この実施形態では、最初にセットアップされたデータ(移行元データファイルの先頭のデータ)の順序番号カラムの値を「1」とし、以後昇順に通し番号(シーケンス番号)が設定されるものとして説明する。
データ出力処理部233は、DBMS21(データ記憶部22)上に展開(セットアップ)されたデータベース(表)の各データ(レコード)を読み出して、文字列データに変換して出力(テキストデータファイルとして出力)する処理を行う。以下では、データ出力処理部233が出力するテキストデータのファイルを「移行先データファイル」と呼ぶものとする。このとき、データ出力処理部233は、データベース上から、順序番号カラムに示される順序でデータ(レコード)の読出しを行い、順序番号カラムを除外したデータ(順序番号カラム以外のカラムのデータ)を取得して、移行先データファイルに出力する処理を行う。すなわち、データ出力処理部233は、順序番号カラムに示される順序でデータの読み込み及び出力を行うことで、移行元データファイルと同じ順序で移行先データファイルへのデータ出力を行うことができる。データ出力処理部233は、順序番号カラムに示される順序でデータの読み込み及び出力を行うこと以外については、例えば、特許文献1と同様の処理により移行元データファイルの出力処理を行うことができる。
データ比較処理部234は、移行元データファイルと移行先データファイルの同一性を比較(テキストデータとしての同一性を比較)する処理を行う。言い換えると、データ比較処理部234は、移行元データファイルと移行先データファイルの同一性を比較結果に基づいて、移行元DBサーバ10のデータベース(移行元のデータベース)と、移行先DBサーバ20のデータベース(移行先のデータベース)との同一性を判断する。データ比較処理部234では、移行元データファイルと移行先データファイルを一行ずつ比較する処理を行うようにしてもよいが、diffコマンド等のUNIX上のコマンド処理により移行元データファイルと移行先データファイルのテキストファイルとしての同一性を比較するようにしてもよい。スクリプト等により、移行元データファイルと移行先データファイルのデータを一行ずつ比較する処理を行うようにしてもよいが、diffコマンドを用いたファイル全体の比較処理の方が高速に処理を行うことが可能となる。
データ比較処理部234では、移行元データファイルと移行先データファイルとがテキストデータとして同一(差分がない状態)であれば、移行元DBサーバ10のデータベース(移行元のデータベース)と、移行先DBサーバ20のデータベース(移行先のデータベース)とで全件のデータ(レコード)が同一の内容であると判断できる。
(A−2)実施形態の動作
次に、以上のような構成を有するDBシステム1の動作(実施形態のデータ処理方法)を説明する。
図2は、DBシステム1(移行元DBサーバ10、移行先DBサーバ20)においてデータベースの移行に伴ってコンペア処理を行う際の動作概要について示したフローチャートである。図3は、図2のフローチャートに従ってDBシステム1(移行元DBサーバ10、移行先DBサーバ20)が動作した場合の各データの遷移について示した説明図である。図2、図3では、移行元DBサーバ10で保持されている表A1のデータベースを、移行先DBサーバ20に移行して表A2をセットアップし、表A1と表A2のコンペア処理を行う際の動作について示している。
まず、移行先DBサーバ20のデータ出力処理部131が、DBMS11を制御して、DBMS11(データ記憶部12)上にセットアップ(登録)された表A1のデータベースの各データ(レコード)を読み出して、文字列データに変換し、移行元データファイルF1として出力する処理を行ったものとする(S101)。なお、データ出力処理部131が、表A1のデータを読み出す際の順序については限定されないものである。ここでは、表A1には主キーが設定されておらず、データ出力処理部131は、特に表A1から読み出すデータの順序については指定せずに(ソート条件を指定せずに)、表A1の全てのデータについて読出しを行ったものとして説明する。なお、DBMS11では、特に順序を指定せずに表A1のデータ全件について読出しが要求された場合、データ記憶部22上で表A1の各データが登録されている物理的な順序(物理アドレスに基づく順序)で読みだすようにしてもよい。また、表A1に主キーが設定されている場合には、データ出力処理部131は、当該主キーに基づいてデータの読出しを行うようにしてもよい。そして、ここでは、移行元DBサーバ10のデータ送信部132が、移行元データファイルF1を移行先DBサーバ20に送信し、移行先DBサーバ20のデータ受信部231で受信されたものとする。そして、データ受信部231により受信された移行元データファイルF1は、データ記憶部22に記憶されデータセットアップ制御部232及びデータ比較処理部234に引き渡される。
ここでは、図3に示すように、移行元DBサーバ10の表A1の各データ(レコード)は、3つのカラムC1〜C3により構成されているものとする。図3に示すように、表A1の先頭に配置されたデータD11(データ出力処理部131が出力する際に最初に読み出されるデータ)の内容は、「カラムC1:AAA、カラムC2:000、カラムC3:あいう」となっている。また、図3に示すように、表A1の先頭から2番目に配置されたデータD12(表A1から2番目に読み出されるデータ)は、「カラムC1:XXX、カラムC2:456、カラムC3:かきく」となっている。さらに、図3に示すように、表A1で先頭から3番目に配置されたD13(表A1から3番目に読み出されるデータ)は、「カラムC1:123、カラムC2:*+−、カラムC3:abc」となっている。
また、図3に示すように、移行元データファイルF1(ファイル名:data1.txt)では、表A1を構成する各データがそれぞれ1行で記述されており、各行では各カラムの間にスペースを空けた形式で記述されている。言い換えると、図3に示す移行元データファイルF1では、各データ(各レコード)の間が改行(改行コード)で区切られており、各行の各カラムの間がスペース(スペースのコード)で区切られた記述形式となっている。例えば、移行元データファイルF1において、データD11は「AAA 000 あいう」となっている。なお、移行元データファイルF1において、各データや各カラムを区切るコードの種類は限定されないものであり、例えば、各カラム間をカンマ(,)で区切る形式(いわゆるCSV(Comma−Separated Values)形式)やタブ(タブのコード)で区切る形式としてもよい。
次に、移行先DBサーバ20のデータセットアップ制御部232が、DBMS21を制御して、供給された移行元データファイルF1に基づいて「表A2」をセットアップする処理(データベースの登録処理)を実行させる(S102)。
このときデータセットアップ制御部232は、移行元データファイルF1の先頭のデータD11から順に読み込み、DBMS21を用いて表A2にセットアップさせる処理を行う。また、データセットアップ制御部232は、表A2に順序番号カラムC4を追加するようにDBMS21を制御し、各データの順序番号カラムC4に当該データの処理順序の番号(移行元データファイルF1における当該データの先頭からの配置順序の番号)を入力する。図2では、表A1のデータD11〜D13が、それぞれ、表A2のデータD21〜D23に対応するものとして図示している。また、図2に示すように、表A2のデータD21〜D23には、順序番号カラムC4が付加されている。データD21〜D23の順序番号カラムC4の値(番号)はそれぞれ1〜3となっている。
次に、移行先DBサーバ20のデータ出力処理部233が、表A2のデータベースの各データ(レコード)を読み出して、DBMS21を制御して、表A2の各データ(レコード)を、文字列データに変換し、移行先データファイルF2として出力する処理を行う(S103)。このとき、データ出力処理部233は、表A2のデータベースから、順序番号カラムC4に示される順序でデータ(順序番号カラムC4を除外したカラムのデータ)の読出しを行い、移行先データファイルF2に出力する処理を行う。
次に、データ比較処理部234は、移行元データファイルと移行先データファイルの同一性を比較(テキストデータとしての同一性を比較)する処理を行う(S104)。
次に、カラム削除処理部235は、DBMS21を制御して、表A2から順序番号カラムC4を除去する処理を行い(S105)、本フローチャートの処理を終了する。
次に、上述のステップS101〜S105のそれぞれの処理の詳細について説明する。
まず、ステップS101で、移行元DBサーバ10のデータ出力処理部131が行う処理の具体例について説明する。
移行元DBサーバ10の表A1からデータを抽出し移行元データファイルF1に出力する手順としては種々の手順(例えば、特許文献1の手順)を適用することができる。
データ出力処理部131は、表A1のデータ(レコード)を順次読込んで、読込んだ順序で移行元データファイルF1に出力する処理を行う。データ出力処理部131が行う処理は、例えば、図4に示すようなシェルスクリプトで実現することができる。
図4に示すシェルスクリプトでは、ORACLEデータベース上のコマンド「sqlplus」に、「get_data.sql」というファイル名のSQLファイルを適用している。なお、図4に示すシェルスクリプトにおける「ユーザ/パスワード」には、sqlplusコマンドを実行可能なユーザID及びパスワードが入力されることを示している。これは、以下に示すシェルスクリプトでも同様である。
表A1からデータを抽出(特に順序を指定せずに抽出)するためのSQL文は、単純には、図5に示すようなSELECT文を用いて実現することができる。そして、上述の図4のシェルスクリプトに適用するSQLファイル(get_data.sql)の内容としては、例えば、図6に示す内容のSQL文を適用することができる。
図6に示すSQLファイルのラインL101には、検索結果のメッセージを抑止する指定が記述されている。また、図6に示すSQLファイルのラインL102には、検索結果の行間のラベル表示を抑止する指定が記述されている。さらに、図6に示すSQLファイルのラインL103には、移行元データファイルF1(data1.txt)への出力を開始する処理が記述されている。さらにまた、図6に示すSQLファイルのラインL104には、表Aから全てのカラムのデータを出力(移行元データファイルF1に出力)する処理(SELECT文)が記述されている。また、図6に示すSQLファイルのラインL105には、移行元データファイルF1(data1.txt)への出力を終了する処理が記述されている。
データベース制御部13(データ出力処理部131)が、図6に示すSQLファイル(get_data.sql)を、図4のシェルスクリプトに組み込んで実行した場合、移行元データファイルF1(data1.txt)の内容は、図3に示す内容となる。図3では、各カラム間がスペースで区切られている。
移行元データファイルF1(data1.txt)において、各カラムの間をカンマ(,)で区切るように記述する場合(移行元データファイルF1をCSVファイルとした場合)、SQLファイル(get_data.sql)の内容は図7のような内容となる。図7では、ラインL104がラインL104Aに置き換わっていること以外は、上述の図6と同様の内容となっている。図7のラインL104Aでは、各カラムの間にカンマ(,)が入るようにSELECT文が記述されている。
そして、データベース制御部13(データ出力処理部131)が、図7に示すSQLファイル(get_data.sql)を、図4のシェルスクリプトに組み込んで実行した場合、移行元データファイルF1(data1.txt)の内容は、図8に示す内容となる。図8では、各カラム間がスペースで区切られた形式(CSV形式)となっている。
次に、ステップS102で、移行先DBサーバ20のデータセットアップ制御部232が行う処理の具体例について説明する。
データセットアップ制御部232が、移行元データファイルF1に基づいてデータセットアップを行う処理は、例えば、図9に示すようなシェルスクリプトで実現できる。
図9に示すシェルスクリプトでは、ORACLEデータベースのコマンド「sqlldr」を用いて、移行元データファイルF1(data1.txt)に基づく表A2(データベース)のセットアップを実行する例について示している。ORACLEデータベースでは、ファイルからデータを一括読み込みするためのコマンドとして「sqlldr」が実装されおり、このコマンドにより、簡単、且つ、高速にデータセットアップが可能となる。
sqlldrコマンドを起動する際には、制御ファイルを引き渡す必要があるため、図9の例では、コマンド「sqlldr」に、「load.ctl」という名前の制御ファイルを適用する例について示している。
この実施形態では、制御ファイル「load.ctl」の内容は、図10に示すような内容を適用することができる。
図10の制御ファイルは、供給されたデータ(CSV形式の移行元データファイルF1のデータ)を表A2にセットアップする内容となっている。
図10の制御ファイル「load.ctl」では、ラインL301で、移行後のデータベースとして表A2を指定している。また、図10の制御ファイル「load.ctl」では、ラインL302で読込データ(移行元データファイルF1のデータ)における各カラムがカンマ(,)で区切られた形式(CSV形式)であることを指定している。さらに、図10の制御ファイル「load.ctl」では、ラインL303で、移行後の表A2に、カラムC1〜C3(移行元データファイルF1のカラム)に加え、順序番号カラムC4を設定し、順序番号カラムC4にSEQUENCE(COUNT)を設定している。これにより、sqlldrコマンドでは、移行元のデータ(移行元データファイルF1)を先頭行から読み込んだ順に、順序番号カラムC4(1,2,3、…)を付与(処理順序に相当するシーケンス番号を付与)して、移行先の表A2に反映することができる。
移行先DBサーバ20にセットアップされる表A2には、順序番号カラムC4が定義されているが、これは、移行元データファイルF1(移行元のデータベースの表A)には無いカラムである。
これにより、移行先DBサーバ20の表A2では、この順序番号カラムC4を、検索や読み出しのソートキー(ソート条件)として利用することができる。例えば、移行先DBサーバ20では、SELECT文等で、表A2の読み出しを行う際に、SQLの「ORDER BY」句を用いることで、データ検索の出力順序を指定することができる。例えば、図11に示すように、表A2をSELECT文で読み出す際に、「ORDER BY カラムC4」と記述することにより、順序番号カラムC4をソートキー(ソート条件)とした読み出しを行うことができる。
次に、ステップS103で、移行先DBサーバ20のデータ出力処理部233が行う処理の具体例について説明する。
データベース制御部23(データ出力処理部233)が、表A2のデータを読込んで、移行先データファイルF2を出力する処理は、例えば、図12に示すようなシェルスクリプトで実現できる。
図12のシェルスクリプトでは、ORACLEデータベース上のコマンド「sqlplus」に、「get_after_data.sql」というファイル名のSQLファイルを適用することを示している。
図12のシェルスクリプトでは、「get_after_data.sql」は、表A2からデータを抽出するためのSQL文が記述されたSQLファイルである。表A2からデータを抽出するためのSQL文は、単純には、図11に示すようなSELECT文で構成することができる。そして、上述の図12のシェルスクリプトに適用するSQLファイル(get_after_data.sql)の内容は、例えば、図13の内容としてもよい。
図13に示すSQLファイルのラインL401には、検索結果のメッセージを抑止する指定について記述されている。また、図13に示すSQLファイルのラインL402には、検索結果の行間のラベル表示を抑止する指定について記述されている。さらに、図13に示すSQLファイルのラインL403には、移行先データファイルF2(data2.txt)への出力を開始する処理が記述されている。さらにまた、図13に示すSQLファイルのラインL404には、表A2のカラムC1〜C3のデータをカラムC4でソートされた順序で出力(移行先データファイルF2に出力)する処理(SELECT文)について記述されている。図13に示すSQLファイルのラインL405には、移行先データファイルF2(data2.txt)への出力を終了する処理が記述されている。
データベース制御部23(データ出力処理部233)が、図12に示すSQLファイル(get_after_data.sql)を、図12のシェルスクリプトに組み込んで実行した場合、移行先データファイルF2(data2.txt)の内容は、図3に示す内容となる。図3に示す移行先データファイルF2(data2.txt)では、各カラム間がスペースで区切られている。
移行先データファイルF2(data2.txt)において、各カラムの間をカンマ(,)で区切るように記述する場合(移行先データファイルF2をCSVファイルとした場合)、SQLファイル(get_after_data.sql)の内容は図14のような内容となる。図14では、ラインL404がL404Aに置き換わっていること以外は、上述の図13と同様の内容について示している。図14のラインL404Aでは、各カラムの間にカンマ(,)が入るようにSELECT文が記述されている。
そして、データベース制御部23(データ出力処理部233)が、図14に示すSQLファイル(get_after_data.sql)を、図12のシェルスクリプトに組み込んで実行した場合、移行先データファイルF2(data2.txt)の内容は、図15に示す内容となる。図15では、各カラム間がカンマ(,)で区切られた形式(CSV形式)となっている。
図3、図8、図15に示すように、移行元の表A1と移行先の表A2が実際に同一のデータの集合で構成されている場合、移行元DBサーバ10におけるデータ出力結果(移行元データファイルF1)と、移行先DBサーバ20におけるデータ出力結果(移行先データファイルF2)の内容は、全く同一の内容となることがわかる。
次に、ステップS104で、移行先DBサーバ20のデータ比較処理部234が行う処理の具体例について説明する。
データベース制御部23(データ比較処理部234)は、移行元データファイルF1と移行先データファイルF2の比較処理(差分の有無を抽出する処理)を行う。データ比較処理部234が行う比較処理としては、種々のファイル比較処理を適用することができる。この実施形態では、データ比較処理部234は、UNIX(Linux)上のdiffコマンドを用いて、移行元データファイルF1と移行先データファイルF2の比較処理(テキストデータとしての比較処理)を行う。
例えば、データ比較処理部234は、図16に示すようなシェルスクリプトにより、移行元データファイルF1(data1.txt)と移行先データファイルF2(data2.txt)の比較処理を行うようにしてもよい。例えば、図16に示すシェルスクリプトでは、diffコマンド(UNIX上のコマンド)により、移行元データファイルF1と移行先データファイルF2との差分の抽出を試み、差分があった場合には、その差分の内容が、所定の出力先のテキストデータファイル(result.txt)に出力される内容となっている。図16に示すシェルスクリプトでは、移行元データファイルF1と移行先データファイルF2に差分が無かった場合(同一だった場合)には出力先のテキストデータファイル(result.txt)にデータ(差分)が出力されない(データ量が増加しない)結果となり、移行元データファイルF1と移行先データファイルF2に差分が有った場合には出力先のテキストデータファイル(result.txt)にデータ(差分)が記録される(データ量が増加する)ことになる。ユーザや他のプロセスは、result.txtの発生の有無や容量の変動を監視することにより、移行元データファイルF1と移行先データファイルF2の比較結果(コンペア処理の結果)を認識することができる。
また、ステップS104では、diffコマンドにより、移行元データファイルF1と移行先データファイルF2との差分を抽出する前処理として、移行元データファイルF1又は移行先データファイルF2の一方について、他方のファイルと文字コードを統一する処理を行うことがのぞましい。例えば、移行元データファイルF1と移行先データファイルF2とで文字コード(特に全角文字の文字コード)の形式が異なる場合には、移行元データファイルF1の文字コードを移行先データファイルF2と同様の形式に変換してからdiffコマンドを適用するようにしてもよい。
次に、ステップS105で、移行先DBサーバ20のカラム削除処理部235が行う処理の具体例について説明する。
移行先DBサーバ20の表A2では、移行対象でない順序番号カラムC4が定義されているが、データのコンペア処理まで実施し、データの信頼性が確認できれば、順序番号カラムC4が不要のカラムとなる。そこで、移行先DBサーバ20のカラム削除処理部235は、データ比較処理部234の終了(同一性が確認された後)、図17に示すようなSQL文の処理実行(例えば、ORACLEデータベースにより当該SQL文を含むSQLファイルを実行する処理)を行うことで、表A2から順序番号カラムC4を削除させる処理を行う。これにより、移行前の表A1と、移行先の表A2は完全に一致(データベースとして一致)することになる。
(A−3)実施形態の効果
この実施形態によれば、以下のような効果を奏することができる。
この実施形態では、データセットアップ制御部232が、移行元データファイルF1に基づき、移行先DBサーバ20の表A2をセットアップする際、順序番号カラムC4(移行元データファイルF1から読込んだ順序番号)を付与している。また、データ出力処理部233が、移行先の表2Aからデータを読出しする際、順序番号カラムC4を抽出ソート条件として、データを読出して移行先データファイルF2を出力する。これにより、データ比較処理部234では、移行元データファイルと移行先データファイルとがテキストデータとして同一(差分がない状態)であれば、移行元DBサーバ10のデータベース(移行元のデータベース)と、移行先DBサーバ20のデータベース(移行先のデータベース)とで全件のデータ(レコード)が同一の内容であると判断できる。また、移行元データファイルF1と移行先データファイルF2とは単なるテキストデータであるため、データ比較処理部234ではdiffコマンドでこの2つのファイルを比較するだけで、簡単、且つ、高速にコンペア処理を実施し、データベースを移行する際の信頼性(表A1と表A2とがデータベースとして同一であることの信頼性)を確保することができる。diffコマンドでテキストデータの比較を行うだけであれば、データ量が大きい場合でも高速に処理(表のデータを1件ずつ検索して全てのカラムについて比較する処理と比較して高速に処理)することができる。
例えば図3では、表A1には、データD11、D12、D13の順に登録されている。しいて、表A2では、データD11に対応するデータD21、データD13に対応するデータD23、データD12に対応するD22の順で登録している。表A2から単純にSELECT文で表A2のデータを読み出して移行先データファイルF2を生成する場合、移行先データファイルF2にはデータD21、D23、D22の順序で出力されることになる。しかしながら、データ出力処理部233では、表A2から順序番号カラムC4でソートした順序で読みだすため、図3に示すように移行先データファイルF2にはデータD21、D22、D23の順序(移行元データファイルF1と同じ順序)でデータの出力が行われることになる。
(B)他の実施形態
本発明は、上記の実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
(B−1)上記の実施形態では、移行先DBサーバ20に表A2をセットアップし、コンペア処理後に順序番号カラムC4を削除する例について説明したが、移行先DBサーバ20の表A2をコンペア処理専用として利用し、コンペア処理後に表A2全部を削除又は表A2を放置するようにしてもよい。
(B−2)上記の実施形態では、本発明のデータ処理プログラムに、データベース制御部13(データ出力処理部131、データ送信部132)、及びデータセットアップ制御部232(データ受信部231、データセットアップ制御部232、データ出力処理部233、データ比較処理部234、及びカラム削除処理部235)が含まれるものとして説明した。しかし、本発明のデータ処理プログラムは、少なくとも、データ出力処理部131、データセットアップ制御部232、データ出力処理部233、及びデータ比較処理部234を含む構成要素(実体としてはシェルスクリプト群)で実現することが可能である。
また、この実施形態では、データ処理プログラムの構成要素として、データ送信部132とデータ受信部231が配置されているが、移行元データファイルF1をデータセットアップ制御部232及びデータ比較処理部234に引き渡す処理に支障がなければ、データ送信部132とデータ受信部231については削除(実施形態に係るデータ処理プログラムの構成要素から削除)するようにしてもよい。また、この実施形態では、データ処理プログラムの構成要素として、カラム削除処理部235が配置されているが、表A2から順序番号カラムC4を削除する必要がなければ、削除(実施形態に係るデータ処理プログラムの構成要素から削除)するようにしてもよい。
(B−3)上記の実施形態では、移行元DBサーバ10にデータ出力処理部131を配置し、移行先DBサーバ20に、データセットアップ制御部232、データ出力処理部233、データ比較処理部234、及びカラム削除処理部235を配置する構成としているが、これらの構成要素(実体としてはシェルスクリプト)を配置するコンピュータは限定されないものである。例えば、データ出力処理部131、データセットアップ制御部232、データ出力処理部233、データ比較処理部234、及びカラム削除処理部235を全て別の端末(シェルスクリプトが実行可能なPCやワークステーション)に配置して実行するようにしてもよいし、構成要素ごとに異なる端末を適用するようにしてもよい。以上のように、本発明のデータベースシステム、データ処理プログラム、及びデータ処理方法において、コンペア処理の分散処理方式については限定されないものである。
1…DBシステム、10…DBサーバ、10…移行元DBサーバ、12…データ記憶部、13…データベース制御部、20…移行先DBサーバ、22…データ記憶部、23…データベース制御部、131…データ出力処理部、132…データ送信部、231…データ受信部、232…データセットアップ制御部、233…データ出力処理部、234…データ比較処理部、235…カラム削除処理部、F1…移行元データファイル、F2…移行先データファイル。

Claims (6)

  1. 第1のデータベースから、前記第1のデータベースを構成するデータを順次読み出し、前記第1のデータベースから読み出したデータを読みだした順序で出力した第1の出力データを生成する第1のデータベース出力手段と、
    前記第1の出力データからデータを順次読み出し、読み出した各データに順序を識別する順序識別子を付加したデータを、第2のデータベースに登録するデータ登録手段と、
    前記第2のデータベースから、前記第2のデータベースを構成するデータを、順序識別子が示す順序で読み出し、前記第2のデータベースから読み出したデータを読みだした順序で出力した第2の出力データを生成する第2のデータベース出力手段と、
    前記第1の出力データと前記第2の出力データとの比較結果に基づいて、前記第1のデータベースと前記第2のデータベースとを比較する処理を行うデータ比較手段と
    を有することを特徴とするデータベースシステム。
  2. 前記データ比較手段の比較処理後に、前記第2のデータベースの各データから順序識別子の項目を削除する処理を行う削除処理手段をさらに有することを特徴とする請求項1に記載のデータベースシステム。
  3. 前記第1のデータベース出力手段、前記データ登録手段、前記第2のデータベース出力手段、及びデータ比較手段は、いずれも、シェルスクリプトを用いて構成されていることを特徴とする請求項1に記載のデータベースシステム。
  4. 前記第1の出力データ及び前記第2の出力データはいずれもテキストデータであり、
    前記データ比較手段は、前記第1の出力データと前記第2の出力データとのテキストデータとしての同一性を比較する処理を行う
    ことを特徴とする請求項1〜3のいずれかに記載のデータベースシステム。
  5. コンピュータを、
    第1のデータベースから、前記第1のデータベースを構成するデータを順次読み出し、前記第1のデータベースから読み出したデータを読みだした順序で出力した第1の出力データを生成する第1のデータベース出力手段と、
    前記第1の出力データからデータを順次読み出し、読み出した各データに順序を識別する順序識別子を付加したデータを、第2のデータベースに登録するデータ登録手段と、
    前記第2のデータベースから、前記第2のデータベースを構成するデータを、順序識別子が示す順序で読み出し、前記第2のデータベースから読み出したデータを読みだした順序で出力した第2の出力データを生成する第2のデータベース出力手段と、
    前記第1の出力データと前記第2の出力データとの比較結果に基づいて、前記第1のデータベースと前記第2のデータベースとを比較する処理を行うデータ比較手段と
    して機能させることを特徴とするデータ処理プログラム。
  6. データベースシステムにおけるデータ処理方法において、
    第1のデータベース出力手段、データ登録手段、第2のデータベース出力手段、及びデータ比較手段を備え、
    前記第1のデータベース出力手段は、第1のデータベースから、前記第1のデータベースを構成するデータを順次読み出し、前記第1のデータベースから読み出したデータを読みだした順序で出力した第1の出力データを生成し、
    前記データ登録手段は、前記第1の出力データからデータを順次読み出し、読み出した各データに順序を識別する順序識別子を付加したデータを、第2のデータベースに登録し、
    前記第2のデータベース出力手段は、前記第2のデータベースから、前記第2のデータベースを構成するデータを、順序識別子が示す順序で読み出し、前記第2のデータベースから読み出したデータを読みだした順序で出力した第2の出力データを生成し、
    前記データ比較手段は、前記第1の出力データと前記第2の出力データとの比較結果に基づいて、前記第1のデータベースと前記第2のデータベースとを比較する処理を行う
    ことを特徴とするデータ処理方法。
JP2016144475A 2016-07-22 2016-07-22 データベースシステム、データ処理プログラム、及びデータ処理方法 Active JP6737039B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016144475A JP6737039B2 (ja) 2016-07-22 2016-07-22 データベースシステム、データ処理プログラム、及びデータ処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016144475A JP6737039B2 (ja) 2016-07-22 2016-07-22 データベースシステム、データ処理プログラム、及びデータ処理方法

Publications (2)

Publication Number Publication Date
JP2018014036A true JP2018014036A (ja) 2018-01-25
JP6737039B2 JP6737039B2 (ja) 2020-08-05

Family

ID=61021235

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016144475A Active JP6737039B2 (ja) 2016-07-22 2016-07-22 データベースシステム、データ処理プログラム、及びデータ処理方法

Country Status (1)

Country Link
JP (1) JP6737039B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108573042A (zh) * 2018-04-10 2018-09-25 平安科技(深圳)有限公司 报表同步方法、电子设备及计算机可读存储介质
CN113677411A (zh) * 2019-03-25 2021-11-19 光场实验室公司 用于电影院的光场显示系统
WO2022168192A1 (ja) * 2021-02-03 2022-08-11 三菱電機株式会社 データ移行装置、データ移行方法、及び、データ移行プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108573042A (zh) * 2018-04-10 2018-09-25 平安科技(深圳)有限公司 报表同步方法、电子设备及计算机可读存储介质
CN108573042B (zh) * 2018-04-10 2022-06-10 平安科技(深圳)有限公司 报表同步方法、电子设备及计算机可读存储介质
CN113677411A (zh) * 2019-03-25 2021-11-19 光场实验室公司 用于电影院的光场显示系统
WO2022168192A1 (ja) * 2021-02-03 2022-08-11 三菱電機株式会社 データ移行装置、データ移行方法、及び、データ移行プログラム

Also Published As

Publication number Publication date
JP6737039B2 (ja) 2020-08-05

Similar Documents

Publication Publication Date Title
US11403269B2 (en) Versioning validation for data transfer between heterogeneous data stores
US10095699B2 (en) Computer-readable recording medium, execution control method, and information processing apparatus
CN104809202A (zh) 一种数据库同步的方法和装置
CN104809201A (zh) 一种数据库同步的方法和装置
CN109669925B (zh) 非结构化数据的管理方法及装置
CA2932403A1 (en) Systems and methods for hosting an in-memory database
JP7089605B2 (ja) データ変形システムおよび方法
CN111858760B (zh) 一种异构数据库的数据处理方法及装置
JP6737039B2 (ja) データベースシステム、データ処理プログラム、及びデータ処理方法
CN107609011B (zh) 一种数据库记录的维护方法和装置
CN113111669B (zh) 基于增量的前端多语言国际化翻译方法及装置
US20180032544A1 (en) Distributed processing management method and distributed processing management apparatus
CN107168866B (zh) 一种配置文件的参数解析方法及装置
CN112912870A (zh) 租户标识符的转换
US10990604B2 (en) Non-transitory computer-readable storage medium, record data processing method, and record data processing apparatus
US9465687B2 (en) Information processing apparatus and information processing method
CN111967764A (zh) 一种业务准入核验方法、装置及电子设备
CN112889039A (zh) 用于克隆后租户标识符转换的记录的标识
CN112035501B (zh) 用户标识的更新方法、装置和设备
CN112148710B (zh) 微服务分库方法、系统和介质
KR102463665B1 (ko) 원격 dbms 테이블간 고성능 테이블 데이터 정합성 검증 시스템
US9613051B2 (en) Data processing method, information processing apparatus, and recording medium
JP2014174921A (ja) 情報処理システム、名寄せ判定方法及びプログラム
JP5750090B2 (ja) データベース管理システムおよびデータベース管理方法
US20170005895A1 (en) Information processing apparatus, failure management method, and computer-readable recording medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190515

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200529

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200629

R150 Certificate of patent or registration of utility model

Ref document number: 6737039

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150