JP2013033305A - データ配置変更プログラム、データ配置変更方法およびデータ配置変更装置 - Google Patents

データ配置変更プログラム、データ配置変更方法およびデータ配置変更装置 Download PDF

Info

Publication number
JP2013033305A
JP2013033305A JP2011167783A JP2011167783A JP2013033305A JP 2013033305 A JP2013033305 A JP 2013033305A JP 2011167783 A JP2011167783 A JP 2011167783A JP 2011167783 A JP2011167783 A JP 2011167783A JP 2013033305 A JP2013033305 A JP 2013033305A
Authority
JP
Japan
Prior art keywords
data
column
attribute
cleansing
record
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
JP2011167783A
Other languages
English (en)
Other versions
JP5810719B2 (ja
Inventor
Shoji Iwamoto
昭次 岩本
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011167783A priority Critical patent/JP5810719B2/ja
Priority to US13/557,309 priority patent/US8667022B2/en
Publication of JP2013033305A publication Critical patent/JP2013033305A/ja
Application granted granted Critical
Publication of JP5810719B2 publication Critical patent/JP5810719B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors

Abstract

【課題】データクレンジングにおいて誤ったカラムに格納されたデータがノイズとなることを抑制することを課題とする。
【解決手段】データ配置変更装置は、読出制御部と判定部と配置制御部とを有し、DB1の各レコードについてデータの属性を判定し、DB1からDB2にデータ配置変更を実行するサーバ装置である。読出制御部は、複数のカラムを含むレコードをDB1から読み出す。判定部は、読出制御部が読み出したレコードのいずれかのカラムに格納されるデータが、該カラムに対応する属性を有さない場合に、他のカラムに対応する属性を有するかの判定を行う。配置制御部は、判定の結果、該他のカラムに対応する属性を有すると判定した場合に、データを他のカラムに配置する。
【選択図】図1

Description

本発明は、データ配置変更プログラム、データ配置変更方法およびデータ配置変更装置に関する。
従来、例えば名寄せなど、データベースに記憶されるデータを活用する前に、活用対象のデータの質を向上させる処理として、データクレンジングが利用される。データクレンジングは、使用できない文字化けしたデータの削除や同一カラム内のデータ表記の統一などを実行する。
例えば、データクレンジングでは、カラム「姓」にデータ「特許太郎」などの姓名のデータが格納されている場合には、このデータを削除する。また、データクレンジングでは、カラム「携帯電話番号」にデータ「090-xxx-xxxx」や「090yyyyyyy」などの表記が異なるデータが格納されている場合には、全データを「-」を除いた表記に統一することなどが行われる。
また、異なるシステム間でデータの受け渡しを実行する際に、データクレンジングとマッピングとを実行するデータ統合装置も知られている。このデータ統合装置は、データクレンジングとして、データ内の空白除去、データ内の改行コード除去、単位の変換、文字列の変換、年号表記の統一、有効桁数の統一などを実行する。また、データ統合装置は、マッピングとして、複写元のデータ構造と複写先のデータ構造とに基づいてマッピング定義を生成し、データクレンジング後の複写元のデータをマッピング定義に従って複写先に格納することを実行する。
国際公開第2007/083371号 特開2006−031687号公報
しかしながら、従来の技術では、データの質の向上度が低いという問題がある。
例えば、従来の技術は、カラム内のスキーマにしたがったデータが格納されていることを前提に、つまり、カラムには指定されたデータが記憶されていることを前提にデータクレンジングを実行する。したがって、従来の技術では、誤ったカラムに格納されたデータが他のカラムに格納されるべきデータであっても、ノイズデータとして削除されてしまう。
また、従来のマッピングは、複写元のスキーマと複写先のスキーマとに基づいてマッピング定義を生成するので、誤ったカラムに格納されたデータは誤ったまま複写先に格納されてしまう。
1つの側面においては、データクレンジングにおいて誤ったカラムに格納されたデータがノイズとなることを抑制することを目的とする。
第1の案では、コンピュータに、複数のカラムを含むレコードを記憶部から読み出し、読み出したレコードのいずれかのカラムに格納されるデータが、該カラムに対応する属性を有さない場合に、他のカラムに対応する属性を有するかの判定を行う処理を実行させる。また、コンピュータに、前記判定の結果、該他のカラムに対応する属性を有すると判定した場合に、前記データを前記他のカラムに配置する処理を実行させる。
一側面においては、データクレンジングにおいて誤ったカラムに格納されたデータがノイズとなることを抑制することができる。
図1は、実施例1に係るシステムの全体構成例を示す図である。 図2は、データ配置変更例を示す図である。 図3は、実施例2に係るデータ配置変更装置の構成を示す機能ブロック図である。 図4は、クレンジング対象DBに記憶される情報の例を示す図である。 図5は、属性判定順定義書DBに記憶される情報の例を示す図である。 図6は、属性判定用辞書DBに記憶される情報の例を示す図である。 図7は、クレンジング用辞書DBに記憶される情報の例を示す図である。 図8は、クレンジング後DBに記憶される情報の例を示す図である。 図9は、分解後のデータ例を示す図である。 図10は、属性判定後のデータ例を示す図である。 図11は、クレンジング後のデータ例を示す図である。 図12は、データ配置変更例を示す図である。 図13は、属性判定後にクレンジングを実行して配置変更するまでの処理例1を説明する図である。 図14は、属性判定後にクレンジングを実行して配置変更するまでの処理例2を説明する図である。 図15は、属性判定後にクレンジングを実行して配置変更するまでの処理例3を説明する図である。 図16は、データ配置変更装置が実行する処理の流れを示すフローチャートである。 図17は、クレンジング後に属性判定してデータ再配置を実行する処理例を説明する図である。 図18は、属性判定順序を動的に変更する処理例を説明する図である。 図19は、オンラインショッピングに適用した例を示す図である。 図20は、データ配置変更プログラムを実行するコンピュータのハードウェア構成の例を示す図である。
以下に、本願の開示するデータ配置変更プログラム、データ配置変更方法およびデータ配置変更装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、実施例1に係るシステムの全体構成例を示す図である。図1に示すように、このシステムは、DB(DataBase)1と、DB2と、データ配置変更装置10とを有する。データ配置変更装置10とDB1とはネットワークを介して接続されており、同様に、データ配置変更装置10とDB2とはネットワークを介して接続される。なお、ここでは、データ配置変更装置10と各DBとはネットワークを介して接続される例で説明するが、これに限定されるものではなく、データ配置変更装置10が各DBを内部に有していてもよい。また、ここではデータクレンジング対象のDBとクレンジング後のDBとが別々である例で説明するが、これに限定されるものではなく、同じDBであってもよい。
DB1は、複数のカラムで形成されるレコードを有するデータベースであり、データ配置変更装置10がデータ配置変更対象とするデータを記憶する。DB2は、ユーザ等によって指定されたデータスキーマを有するデータベースであり、データ配置変更装置10によって配置変更された後のデータを記憶する。
データ配置変更装置10は、読出制御部10aと判定部10bと配置制御部10cとを有し、DB1の各レコードについてデータの属性を判定し、DB1からDB2にデータ配置変更を実行するサーバ装置である。
読出制御部10aは、複数のカラムを含むレコードをDB1から読み出す。判定部10bは、読出制御部10aが読み出したレコードのいずれかのカラムに格納されるデータが、該カラムに対応する属性を有さない場合に、他のカラムに対応する属性を有するかの判定を行う。配置制御部10cは、判定の結果、該他のカラムに対応する属性を有すると判定した場合に、データを前記他のカラムに配置する。例えば、配置制御部10cは、DB1から読み出したレコードの各カラムに格納されるデータ各々を、DB2における同一レコード内のいずれかのカラムに格納する。
ここで、図2を用いて、データ配置変更例を説明する。図2は、データ配置変更例を示す図である。図2に示すように、DB1は、データスキーマとして「姓、名、住所、自宅Tel、携帯Tel」から形成されるレコードを有する。また、DB2は、「姓、名、住所、自宅Tel、携帯Tel」から形成されるデータスキーマを有する。
このような状態において、読出制御部10aは、DB1からレコードとして「山田太郎、−、神奈川県・・・、080-1234-5678、−」を読み出す。続いて、特定部10bは、各カラムごとに、データと属性情報とを比較して属性を特定する。ここでは、特定部10bは、第1カラムの「山田太郎」を属性「姓名」と特定し、第3カラムの「神奈川県・・・」を属性「住所」と特定し、第4カラムの「080-1234-5678」を属性「携帯Tel」と特定する。
その後、生成部10cは、特定したDB1の各データを、DB2における該当スキーマの位置に格納してレコードを生成する。つまり、生成部10cは、属性が「姓名」と特定された第1カラムの「山田太郎」については、DB2のスキーマ「姓」に「山田」を格納し、DB2のスキーマ「名」に「太郎」を格納する。同様に、生成部10cは、属性が「住所」と特定された第3カラムの「神奈川県・・・」については、DB2のスキーマ「住所」に格納し、属性が「携帯Tel」特定された第4カラムの「080-1234-5678」については、DB2のスキーマ「携帯Tel」に格納する。このようにして、生成部10cは、データの配置を変更したレコードを生成する。
このように、実施例1に係るデータ配置変更装置10は、データスキーマとは異なるデータが格納されていた場合でも、当該データを破棄することなく、正常な格納位置に再配置することができる。この結果、データ配置変更装置10は、データを無駄にすることなく、ユーザの意図を考慮してデータを再配置することができるので、データの質を向上させることができる。
次に、実施例1で説明したデータ配置変更装置の具体的な構成例、処理の流れ等について説明する。ここでは、データ配置変更装置が配置変更対象のDBおよび配置変更先のDBを有している例で説明する。
[データ配置変更装置の構成]
図3は、実施例2に係るデータ配置変更装置の構成を示す機能ブロック図である。図3に示すように、データ配置変更装置20は、通信制御I/F部21と記憶部22と制御部25とを有する。なお、データ配置変更装置20が有する処理は、図示したものに限られず、例えば、ディスプレイなどの表示部やマウスなどの入力部を有していてもよい。
また、記憶部22は、例えば半導体メモリ素子やハードウェアなどの記憶装置である。制御部25は、例えばCPU(Central Processing Unit)などの電子回路やFPGA(Field-Programmable Gate Array)などの集積回路である。
通信制御I/F部21は、例えばNIC(Network Interface Card)などのように、他の装置と通信を制御するインタフェースである。例えば、通信制御I/F部21は、管理者などからデータクレンジング開始指示などを受信したり、管理者の端末にクレンジング結果などを送信したりする。
記憶部22は、制御部25の各処理部が処理を実行する際に使用する作業領域等を有するとともに、クレンジング対象DB22aと属性判定順定義書DB22bと属性判定用辞書22cとクレンジング用辞書DB22dとクレンジング後DB22eとを有する。
クレンジング対象DB22aは、クレンジング対象のデータを記憶するレコードであって、複数のカラムで形成されるレコードを記憶するデータベースである。図4は、クレンジング対象DBに記憶される情報の例を示す図である。図4に示すように、クレンジング対象DB22aは、「姓、名、住所、自宅Tel、携帯Tel」として「特許、一郎、東京都・・・、044-1234…、-」、「鈴木、花子、静岡県・・・、-、090・・・」、「山田太郎、-、神奈川県・・・、080…、-」などを記憶する。
つまり、図4の例では、3番目のレコードの第1カラムである「姓」に、間違って、「山田太郎」が格納されている。また、3番目のレコードの第4カラムである「自宅Tel」に、間違って、「080・・・」が格納されている。なお、ここでは、「姓、名、住所、自宅Tel、携帯Tel」をデータスキーマと呼び、各カラムに記憶されるデータをクレンジング対象データと呼ぶ。
属性判定順定義書DB22bは、クレンジング対象DB22aのデータスキーマの各カラムごとに、各カラムに記憶されるデータの属性を判定する際に参照する属性判定定義の参照順番を記憶するデータベースである。図5は、属性判定順定義書DBに記憶される情報の例を示す図である。一例を挙げると、図5に示すように、属性判定順定義書DB22bは、「第1カラム用」として「姓、名、姓名」を記憶する。つまり、クレンジング対象DB22aの第1カラムに記憶されるデータの属性を判定する場合には、「姓」の属性辞書、「名」の属性辞書、「姓名」の属性辞書の順に、属性辞書を参照することが定義されている。
また、図5に示すように、属性判定順定義書DB22bは、「第4カラム用」として「[0-9]と‘-’、‘+’で構成されていること」、「自宅Tel(0[1-7]x[-]x[-]xxxx[-]xxxx)」、「国際Tel(+81x[-]x[-]xxxx[-]xxxx)」などを記憶する。つまり、クレンジング対象DB22aの第4カラムに記憶されるデータの属性を判定する場合には、まず、「[0-9]と‘-’、‘+’で構成されている」か否かが判定される。次に、「自宅Tel」、「国際Tel」、「090から始まる携帯Tel」、「080から始まる携帯Tel」、「PHSTel」の順番で、それぞれの定義と一致する文字列であるか否かが判定される。なお、図5に示した「x」は、0から9の数字である。
属性判定用辞書DB22cは、属性と当該属性を特定する属性情報を対応付けて記憶するデータベースである。図6は、属性判定用辞書DBに記憶される情報の例を示す図である。図6に示すように、属性判定用辞書DB22cは、属性「姓」に対応付けて属性情報として「文字種、フォーマット、最大長、佐藤、特許、鈴木」などを記憶する。また、属性判定用辞書DB22cは、属性「名」に対応付けて属性情報として「文字種、フォーマット、最大長、太郎、和雄、一郎」などを記憶する。属性判定用辞書DB22cは、属性「住所」に対応付けて属性情報として「文字種、フォーマット、最大長、東京都千代田区、東京都足立区、大阪府大阪市」などを記憶する。
図6の場合、「姓」の属性辞書には、第1に「文字種が所定の文字種であるか」、第2に「フォーマットが所定のフォーマットであるか」、第3に「データの最大長が所定値以下であるか」を判定することが定義されている。続いて、「姓」の属性辞書には、「佐藤」、「特許」、「鈴木」などが定義されている。つまり、属性対象のデータが、最大長を超えない長さで所定の文字種で所定のフォーマットで格納されており、「佐藤」、「特許」、「鈴木」等に該当する場合には、当該データの属性は「姓」と判定される。
クレンジング用辞書DB22dは、データをクレンジングする際に使用する辞書を記憶するデータベースである。図7は、クレンジング用辞書DBに記憶される情報の例を示す図である。図7に示すように、クレンジング用辞書DB22dは、属性「姓」に対応付けて「佐藤、特許、鈴木、山田、田中、近藤」などを記憶し、属性「名」に対応付けて「太郎、和雄、一郎、花子、次郎、三郎」などを記憶する。同様に、クレンジング用辞書DB22dは、属性「姓名」に対応付けて「佐藤/太郎、佐藤/花子、佐藤/一郎、・・・、山田/太郎」などを記憶する。同様に、クレンジング用辞書DB22dは、属性「住所」に対応付けて「北海道・・・、青森県・・・、秋田県・・・、・・・、東京都・・・、神奈川県・・・」などを記憶し、属性「携帯Tel」に対応付けて「080xxxxxxxx」などを記憶する。
クレンジング後DB22eは、制御部25等によってクレンジングされたデータの格納先となるデータベースである。図8は、クレンジング後DBに記憶される情報の例を示す図である。図8に示すように、クレンジング後DB22eは、データスキーマとして「姓、名、住所、自宅Tel、携帯Tel」を有する。つまり、クレンジング後DB22eのレコードを形成する各カラムの属性が「姓、名、住所、自宅Tel、携帯Tel」である。また、このデータスキーマに格納されるデータをクレンジング後データと呼ぶ。なお、クレンジング後DB22eは、クレンジングが終了してデータが格納されるまで空の状態であり、図8はデータが空の状態を図示している。
制御部25は、内部メモリ等を有するとともに、クレンジングデータ分割部26とレコード読出制御部27と属性判定部28とクレンジング実行部29とデータ再配置部30とを有し、これらによってデータクレンジングを実行する処理部である。
クレンジングデータ分割部26は、通信制御I/F部21等によってクレンジング開始指示が受信されると、クレンジング対象DB22aに記憶されるデータをクレンジング対象ごとに分割する。例えば、図4に示したデータを分割する例を説明する。図9は、分解後のデータ例を示す図である。クレンジングデータ分割部26は、図4に示したデータベースのデータを各カラムごとに分割し、「カラムの属性」と「カラムに格納されるデータ」とを抽出して、記憶部22の作業領域等に一時的に格納する。
例えば、図4の第3レコードを分割する例で説明する。クレンジングデータ分割部26は、「姓、名、住所、自宅Tel、携帯Tel」に対応付けて記憶される「山田太郎、-、神奈川県・・・、080…、-」を、「山田太郎」、「-」、「神奈川県・・・」、「080…」、「-」に分割する。続いて、クレンジングデータ分割部26は、「(姓)山田太郎」、「(名)-」、「(住所)神奈川県・・・」、「(自宅Tel)080…」、「(携帯Tel)-」などのように、分割したデータとカラムの属性とを対応付けて、記憶部22の作業領域等に一時的に格納する。
レコード読出制御部27は、クレンジングデータ分割部26によって分割されたクレンジング対象データを1レコードずつ読み出す処理部である。図9に示した分解後のデータを例にして説明する。この場合、レコード読出制御部27は、「(姓)山田太郎」、「(名)-」、「(住所)神奈川県・・・」、「(自宅Tel)080…」、「(携帯Tel)-」を1レコードとして読み出して、属性判定部28に出力する。なお、レコード読出制御部27が読み出す順番は、先頭のレコードから読み出してもよく、任意のレコードから読み出してもよい。
属性判定部28は、レコード読出制御部27が読み出したレコードの各カラムに格納されるデータ各々について属性を判定する処理部である。図9の場合、属性判定部28は、「(姓)山田太郎」、「(名)-」、「(住所)神奈川県・・・」、「(自宅Tel)080…」、「(携帯Tel)-」の各々について属性を判定する。
具体的には、属性判定部28は、レコードの第1カラムのデータに対しては、属性判定順定義書DB22bの第1カラム用の定義書にしたがって、はじめに、属性判定用辞書DB22cに記憶される属性「姓」の属性判定辞書を参照する。そして、属性判定部28は、当該データの属性が特定できない場合には、第1カラム用の定義書にしたがって、次に、属性「名」の属性判定辞書を参照する。属性判定部28は、ここでも、特定できない場合には次の属性辞書を参照して比較処理を実行するが、特定できた場合には特定結果をクレンジング実行部29に通知したりする。
一例を挙げると、属性判定部28は、第1レコードの第1カラムのデータ「特許」を作業領域等から読み出す。そして、属性判定部28は、第1カラム用の定義書にしたがって、「姓」の属性辞書を属性判定用辞書DB22cから読み出す。その後、属性判定部28は、読み出した「姓」の属性辞書に対応付けられている「佐藤、特許、鈴木・・」と、読み出したデータ「特許」とを比較する。そして、属性判定部28は、データ「特許」が「姓」の属性辞書に含まれているので、データ「特許」の属性を「姓」と判定する。
別例を挙げると、属性判定部28は、第3レコードの第1カラムのデータ「山田太郎」を作業領域等から読み出す。そして、属性判定部28は、第1カラム用の定義書にしたがって、「姓」の属性辞書を属性判定用辞書DB22cから読み出す。その後、属性判定部28は、読み出した「姓」の属性辞書に対応付けられている「佐藤、特許、鈴木・・」と、読み出したデータ「山田太郎」とを比較する。そして、属性判定部28は、データ「山田太郎」が「姓」の属性辞書に含まれていないので、定義書に次に定義されている「名」の属性辞書を属性判定用辞書DB22cから読み出す。その後、属性判定部28は、読み出した「名」の属性辞書に対応付けられている「太郎、和雄、一郎・・」と、読み出したデータ「山田太郎」とを比較する。
そして、属性判定部28は、データ「山田太郎」が「名」の属性辞書に含まれていないので、定義書に次に定義されている「姓名」の属性辞書として「姓」の属性辞書と「名」の属性辞書とを属性判定用辞書DB22cから読み出す。その後、属性判定部28は、読み出した「姓」の属性辞書に「山田」が記述され、かつ、「名」の属性辞書に「太郎」が記述されている場合、データ「山田太郎」の属性を「姓名」と判定する。
このように、属性判定部28が図9に示した各データの属性を判定した結果を図10に示す。図10は、属性判定後のデータ例を示す図である。図10に示すように、第3レコードの第1カラムのデータ「山田太郎」については、第1カラムの属性が「姓」であったが、データの属性は「姓名」と判定されている。同様に、第3レコードの第4カラムのデータ「080・・・」については、第4カラムの属性が「自宅Tel」であったが、データの属性は「携帯Tel」と判定されている。これら以外のデータについては、カラムの属性と同じ属性と判定されている。なお、属性判定部28は、図10に示した属性判定結果を記憶部22の作業領域等に格納する。
図3に戻り、クレンジング実行部29は、属性判定部28が属性判定した各データに対してデータクレンジングを実行する処理部である。例えば、クレンジング実行部29は、属性が「姓」と判定されたデータについては、「姓」に対応するクレンジング用辞書をクレンジング用辞書DB22dから取得し、取得したクレンジング用辞書を用いてデータクレンジングを実行する。同様に、クレンジング実行部29は、属性が「姓名」と判定されたデータについては、「姓名」に対応するクレンジング用辞書をクレンジング用辞書DB22dから取得し、取得したクレンジング用辞書を用いてデータクレンジングを実行する。
一例を挙げると、クレンジング実行部29は、属性が「姓名」と判定されたデータ「山田太郎」については、属性「姓名」に対応するクレンジング用辞書を参照して、データ「山田太郎」を「山田/太郎」に変換する。また、クレンジング実行部29は、「山田」が属性「姓」のクレンジング辞書に登録されており、「太郎」が属性「名」のクレンジング辞書に登録されているので、「山田/太郎」における「山田」の属性を「姓」、「太郎」の属性を「名」と判定する。同様に、クレンジング実行部29は、属性が「携帯Tel」と判定されたデータ「080-xxxx-xxxx」については、属性「携帯Tel」に対応するクレンジング用辞書を参照して、データ「080-xxxx-xxxx」を「080xxxxxxxx」に変換する。
このように、クレンジング実行部29が図10に示した各データをクレンジングした結果を図11に示す。図11は、クレンジング後のデータ例を示す図である。図11に示すように、第3レコードの第1カラムのデータ「山田太郎」については、「山田/太郎」にクレンジングされている。同様に、第3レコードの第4カラムのデータ「080・・・」については、「080xxxxxxxx」にクレンジングされている。また、第3レコードの第2カラムのデータ「-」については、データが格納されていないため、「不明(NIL)」にクレンジングされている。なお、クレンジング実行部29は、図11に示したクレンジング結果を記憶部22の作業領域等に格納する。
図3に戻り、データ再配置部30は、クレンジング実行部29によってクレンジングされたデータ各々について、属性判定部28によって判定された属性とクレンジング後DB22eのデータスキーマとに基づいて、データの再配置を実行する。
例えば、データ再配置部30は、クレンジングされたデータについて、当該データの属性と一致するクレンジング後DB22eのデータスキーマに、当該データを格納する。一例を挙げると、データ再配置部30は、クレンジング対象DB22aの第1レコードにおいて属性が「姓」と判定されたデータを、クレンジング後DB22eのカラムのうち「姓」が設定されるカラムに格納する。また、データ再配置部30は、クレンジング対象DB22aの第1レコードにおいて属性が「自宅Tel」と判定されたデータを、クレンジング後DB22eのカラムのうち「自宅Tel」が設定されるカラムに格納する。つまり、データ再配置部30は、クレンジング対象DB22aにおける同一レコードに属するデータについては、クレンジング後DB22eにおいても同一レコードに格納される。
このように、データ再配置部30が図11に示した各データの配置変更した例を図12に示す。図12は、データ配置変更例を示す図である。なお、図12は、クレンジング後DB22eに記憶される情報である。図12と図11とを比較すると、データ再配置部30は、図11の第3レコードにおいて属性「姓名」と判定されたデータ「山田/太郎」について、カラム「姓」に「山田」を格納し、カラム「名」に「太郎」を格納する。同様に、データ再配置部30は、図11の第3レコードにおいて属性「携帯Tel」と判定されたデータ「080・・・」について、カラム「自宅Tel」からカラム「携帯Tel」に格納先を変更する。
[具体例]
次に、図13から図15を用いて、データ配置変更の具体的な処理の例を説明する。ここでは、図13を用いて処理例1を説明し、図14を用いて処理例2を説明し、図15を用いて処理例3を説明する。
(処理例1)
図13は、属性判定後にクレンジングを実行して配置変更するまでの処理例1を説明する図である。図13に示すように、データ配置変更装置20のクレンジング対象DB22aは、「姓、名、住所、自宅Tel、携帯Tel」として「山田太郎、-、神奈川県・・・、080-1234-5678、-」を記憶する。なお、「-」は、データがないことを示す。
このような状態において、クレンジングデータ分割部26は、「山田太郎、-、神奈川県・・・、080-1234-5678、-」を「山田太郎」、「-」、「神奈川県・・・」、「080-1234-5678」、「-」に分割する。続いて、レコード読出制御部27は、このレコードをクレンジング対象DB22aから読み出す。
そして、属性判定部28は、第1カラムの「山田太郎」について、第1カラム用の属性判定定義書の参照順序にしたがって属性判定用辞書を順次参照し、属性を「姓名」と特定する。同様に、属性判定部28は、第3カラムの「神奈川県・・・」について、第3カラム用の属性判定定義書の参照順序にしたがって属性判定用辞書を順次参照し、属性を「住所」と特定する。同様に、属性判定部28は、第4カラムの「080-1234-5678」について、第4カラム用の属性判定定義書の参照順序にしたがって属性判定用辞書を順次参照し、属性を「携帯Tel」と特定する。
続いて、クレンジング実行部29は、属性が「姓名」と判定された「山田太郎」については、属性「姓名」用のクレンジング辞書を用いてデータクレンジングを実行し、「山田太郎」を「山田/太郎」に変換する。同様に、クレンジング実行部29は、属性が「住所」と判定された「神奈川県・・・」については、属性「住所」用のクレンジング辞書を用いてデータクレンジングを実行する。同様に、クレンジング実行部29は、属性が「携帯Tel」と判定された「080-1234-5678」については、属性「携帯Tel」用のクレンジング辞書を用いてデータクレンジングを実行し、「080-1234-5678」を「08012345678」に変換する。
その後、データ再配置部30は、「山田/太郎」のうち「姓」とクレンジングされた「山田」については、クレンジング後のデータスキーマのうち「姓」が設定されているカラムに格納する。また、データ再配置部30は、「山田/太郎」のうち「名」とクレンジングされた「太郎」については、クレンジング後のデータスキーマのうち「名」が設定されているカラムに格納する。同様に、データ再配置部30は、「住所」とクレンジングされた「神奈川県・・・」については、クレンジング後のデータスキーマのうち「住所」が設定されているカラムに格納する。同様に、データ再配置部30は、「携帯Tel」とクレンジングされた「08012345678」については、クレンジング後のデータスキーマのうち「携帯Tel」が設定されているカラムに格納する。
つまり、データ配置変更装置20は、再配置処理の前は「姓」のカラムに格納されていた「山田太郎」を、再配置処理によって「山田」と「太郎」に分割して、「姓」のカラムの「山田」を格納し、「名」のカラムに「太郎」を格納することができる。同様に、データ配置変更装置20は、再配置処理の前は「自宅Tel」のカラムに格納されていた「080-xxx-xxxx」については、再配置処理によって「携帯Tel」のカラムに格納することができる。
(処理例2)
図14は、属性判定後にクレンジングを実行して配置変更するまでの処理例2を説明する図である。図14に示した処理が図13に示した処理と異なる点は、クレンジング後に「仮置き」という処理を実行する点である。図14に示すように、データ配置変更装置20のクレンジング対象DB22aは、「姓、名、住所、自宅Tel、携帯Tel」として「山田太郎、-、神奈川県・・・、080-1234-5678、abc」を記憶する。なお、「-」は、データがないことを示す。
このような状態において、クレンジングデータ分割部26は、「山田太郎、-、神奈川県・・・、080-1234-5678、abc」を「山田太郎」、「-」、「神奈川県・・・」、「080-1234-5678」、「abc」に分割する。続いて、レコード読出制御部27は、このレコードをクレンジング対象DB22aから読み出す。
そして、属性判定部28は、第1カラムの「山田太郎」について、第1カラム用の属性判定定義書の参照順序にしたがって属性判定用辞書を順次参照し、属性を「姓名」と特定する。同様に、属性判定部28は、第3カラムの「神奈川県・・・」について、第3カラム用の属性判定定義書の参照順序にしたがって属性判定用辞書を順次参照し、属性を「住所」と特定する。同様に、属性判定部28は、第4カラムの「080-1234-5678」について、第4カラム用の属性判定定義書の参照順序にしたがって属性判定用辞書を順次参照し、属性を「携帯Tel」と特定する。同様に、属性判定部28は、第5カラムの「abc」について、第5カラム用の属性判定定義書の参照順序にしたがって属性判定用辞書を順次参照し、属性を「不明」と特定する。つまり、第5カラムの「abc」は、いずれの属性辞書にも定義されていなかったとする。
続いて、クレンジング実行部29は、属性が「姓名」と判定された「山田太郎」については、属性「姓名」用のクレンジング辞書を用いてデータクレンジングを実行し、「山田太郎」を「山田/太郎」に変換する。同様に、クレンジング実行部29は、属性が「住所」と判定された「神奈川県・・・」については、属性「住所」用のクレンジング辞書を用いてデータクレンジングを実行する。同様に、クレンジング実行部29は、属性が「携帯Tel」と判定された「080-1234-5678」については、属性「携帯Tel」用のクレンジング辞書を用いてデータクレンジングを実行し、「080-1234-5678」を「08012345678」に変換する。なお、第5カラムの「abc」については、属性不明のままである。
その後、データ再配置部30は、クレンジング後のデータを仮置きする。具体的には、データ再配置部30は、第1カラムに属性「姓/名」の「山田/太郎」を仮決定し、第2カラムに属性「不明」の「NIL」を仮決定し、第3カラムに属性「住所」の「神奈川県・・・」を仮決定する。また、データ再配置部30は、第4カラムに属性「携帯Tel」の「08012345678」を仮決定し、第5カラムに属性「不明」の「abc」を仮決定する。
その後、データ再配置部30は、仮決定された「山田/太郎」のうち属性が「姓」と判定された「山田」については、クレンジング後のデータスキーマのうち「姓」が設定されているカラムに格納する。また、データ再配置部30は、仮決定された「山田/太郎」のうち属性「名」が判定された「太郎」については、格納先となるクレンジング後のデータスキーマの「名」に「NIL(属性不明)」が仮決定されていると判定する。ところが、データ再配置部30は、「属性不明」のデータよりも属性が明確なデータを優先するので、クレンジング後のデータスキーマの「名」に「太郎」を格納する。
また、データ再配置部30は、仮決定された「神奈川県・・・」については、「住所」と属性が判定されたので、クレンジング後のデータスキーマのうち「住所」が設定されているカラムに格納する。また、データ再配置部30は、仮決定された「08012345678」については「携帯Tel」と属性が判定されているが、格納先となるクレンジング後のデータスキーマの「携帯Tel」に「abc(属性不明)」が仮決定されていると判定する。ところが、データ再配置部30は、「属性不明」のデータよりも属性が明確なデータを優先するので、クレンジング後のデータスキーマの「携帯Tel」に「08012345678」を格納する。なお、データ再配置部30は、「abc(属性不明)」については、属性が不明であり格納先を特定できないので破棄する。
このようにすることで、データ配置変更装置20は、クレンジング対象データ各々の属性を判定し、判定した属性に対応する格納先に、各データを再配置することができる。
(処理例3)
図15は、属性判定後にクレンジングを実行して配置変更するまでの処理例3を説明する図である。図15に示した処理が図13に示した処理と異なる点は、クレンジング対象のデータベースのスキーマと、クレンジングのデータベースのスキーマとが異なる点である。図15に示すように、データ配置変更装置20のクレンジング対象DB22aは、「姓、名、住所、自宅Tel、携帯Tel」として「山田太郎、-、神奈川県・・・、080-1234-5678、abc」を記憶する。なお、「-」は、データがないことを示す。
このような状態において、データ配置変更装置20が実行する、クレンジングデータ分割処理、属性判定処理、クレンジング処理、仮置き処理については、図14と同様なので省略する。
仮置き処理が完了した後、データ再配置部30は、仮決定された「山田/太郎」のうち属性が「姓」と判定された「山田」については、クレンジング後のデータスキーマのうち「姓」が設定されているカラムに格納する。また、データ再配置部30は、仮決定された「山田/太郎」のうち属性「名」が判定された「太郎」については、格納先となるクレンジング後のデータスキーマの「名」に「NIL(属性不明)」が仮決定されていると判定する。ところが、データ再配置部30は、「属性不明」のデータよりも属性が明確なデータを優先するため、クレンジング後のデータスキーマの「名」に「太郎」を格納する。
また、データ再配置部30は、仮決定された「神奈川県・・・」については、「住所」と属性が判定されたが、クレンジング後のデータスキーマに「住所」の属性が設定されたカラムがないと判定する。すると、データ再配置部30は、「神奈川県・・・」がクレンジング対象データにおいてカラム「名」とカラム「自宅Tel」との間のカラムに格納されていることを特定する。そして、データ再配置部30は、クレンジング後のデータスキーマにおいてカラム「名」とカラム「自宅Tel」との間に位置するカラム「その他」を、当該「神奈川県・・・」の格納先と特定して格納する。この場合、「神奈川県・・・」が格納されるカラムの属性は「その他」であり、「神奈川県・・・」の属性は「住所」となり、カラムの属性とデータの属性とが異なることとなる。
また、データ再配置部30は、仮決定された「08012345678」については「携帯Tel」と属性が判定されているが、格納先となるクレンジング後のデータスキーマの「携帯Tel」に「abc(属性不明)」が仮決定されていると判定する。ところが、データ再配置部30は、「属性不明」のデータよりも属性が明確なデータを優先するので、クレンジング後のデータスキーマの「携帯Tel」に「08012345678」を格納する。なお、データ再配置部30は、「abc(属性不明)」については、属性が不明であり格納先を特定できないので破棄する。
このように、データ配置変更装置20は、クレンジング対象のデータスキーマとクレンジング後のデータスキーマとが異なる場合であっても、スキーマ言い換えるとカラムの構成を考慮して、適切なカラムに適切なデータを格納することができる。
[処理の流れ]
次に、データ配置変更装置20が実行する処理の流れを説明する。図16は、データ配置変更装置が実行する処理の流れを説明するフローチャートである。
図16に示すように、データ配置変更装置20のクレンジングデータ分割部26は、処理開始指示を受信すると(S101肯定)、クレンジング対象DB22aに記憶されるクレンジング対象データをカラム単位に分割する(S102)。
続いて、レコード読出制御部27は、クレンジングデータ分割部26によって分割されたデータから1レコード分を読出し(S103)、属性判定部28は、読み出されたレコードから1カラム分のデータを抽出する(S104)。
そして、属性判定部28は、属性判定順定義書22bに記憶される属性判定順定義書のうち、抽出したデータが格納されていたカラムに対応する属性判定順定義書を参照して、属性判定用辞書DB22cから該当する属性判定用辞書を特定する(S105)。続いて、属性判定部28は、特定した属性判定用辞書を用いて、抽出したデータの属性を判定する(S106)。そして、属性が判定できなかった場合には(S106否定)、属性判定部28は、属性判定順定義書に従って次の属性判定用辞書を特定して(S107)、S106以降の処理を繰り返す。
一方、属性が判定できた場合には(S106肯定)、属性判定部28は、読み出されたレコードの全カラムのデータについて属性が判定されたか否かを判定する(S108)。そして、属性が未特定のデータが存在する場合(S108否定)、属性判定部28は、S104に戻って以降の処理を繰り返す。
一方、クレンジング実行部29は、読み出されたレコードの全カラムのデータについて属性が判定された場合(S108肯定)、各カラムごとに、特定された属性に対応するクレンジング用辞書を用いてデータクレンジングを実行する(S109)。その後、データ再配置部30は、読み出されたレコードの各データについて、クレンジング後DB22eのデータスキーマのうち、データの属性に対応するカラムに対応付けて格納する(S110)。
そして、データ配置変更装置20は、クレンジング対象DB22aの全レコードについてS103以降の処理を実行し、データ再配置を完了した場合には(S111肯定)、処理を終了する。また、データ配置変更装置20は、クレンジング対象DB22aのレコードのうち、データ再配置が未実行のレコードが存在する場合には(S111否定)、S103以降の処理を実行する。
このように、実施例1に係るデータ配置変更装置20は、データをクレンジングする際に、クレンジング対象のデータが持っている属性を判定し、適用しようとしているクレンジング処理にふさわしいデータかどうかを判定する。そして、データ配置変更装置20は、その判定結果に基づき適切なクレンジングを施すことができる。また、データ配置変更装置20は、クレンジング結果に付される属性がデータ格納位置に適切かどうかを判定し、適切な位置に格納することができる。この結果、データベース等に格納されているデータを質の高いデータにすることができ、データ活用時の有効性が高まる。
例えば、クレンジング後のデータには、スキーマ定義と必ずしも一致しない本当のデータの属性が付与される。このことを利用して、データ配置変更装置20は、誤ったカラムに「山田」や「山田太郎」と姓名が連続して入っているダーティなデータベースに対しても姓属性が「山田」のデータを検索する場合に、検索対象レコードに属性を付与した結果を検索する。こうすることで、データ配置変更装置20は、姓カラムのデータ誤り時にも容易に質の高い検索を実現できる。
このことにより、付加されたデータ属性とスキーマ定義との関連を分析することで、誤ったカラムに紛れ込んでいるデータへのプロファイリング、例えば紛れ込み度や紛れ込み傾向などにも利用できる。また、データ配置変更装置20の活用シーンは、必ずしもデータクレンジング分野のみではなく、実データの属性判定が行なえ、属性に従ったマッピングできればよいので、入力に自然文を含むようなクレンジングを伴わないデータ加工時に対しても有効である。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
(クレンジング順序)
実施例1では、データの属性判定後にデータクレンジングを実行する例について説明したが、これに限定されるものではなく、任意の順番で実行することができる。例えば、属性判定の結果に基づいてデータの再配置が完了した後にデータクレンジングを実行してもよく、属性判定前のデータに対してデータクレンジングを実行することもできる。ここでは、一例として、属性判定前のデータに対してデータクレンジングを実行する例について説明する。
図17は、クレンジング後に属性判定してデータ再配置を実行する処理例を説明する図である。図17に示すように、データ配置変更装置20のクレンジング対象DB22aは、「姓、名、住所、自宅Tel、携帯Tel」として「山田太郎、-、神奈川県・・・、-、080-1234-5678」を記憶する。なお、「-」は、データがないことを示す。
このような状態において、クレンジングデータ分割部26は、「山田太郎、-、神奈川県・・・、-、080-1234-5678」を「山田太郎」、「-」、「神奈川県・・・」、「-」、「080-1234-5678」に分割する。続いて、レコード読出制御部27は、このレコードをクレンジング対象DB22aから読み出す。
続いて、クレンジング実行部29は、上述した手法と同様に、各カラムの属性に対応したクレンジング用辞書を用いて、各カラムに記憶されるデータをクレンジングする。この結果、クレンジング実行部29は、「山田太郎、-、神奈川県・・・、-、080-1234-5678」を「???、-、神奈川県・・・、-、08012345678」に変換する。つまり、クレンジング実行部29は、第1カラムのデータは、第1カラムの属性である「姓」に対応したクレンジング辞書から特定できなかったので、データそのものを認識することができず、「???」を格納する。
その後、属性判定部28は、上述した手法と同様の手法で、各カラムのデータについて属性を判定する。このとき、属性判定部28は、第1カラムのクレンジング結果が「???」であるので、クレンジング前のデータである「山田太郎」をクレンジング対象DB22aから読み出してきて、当該データ「山田太郎」について属性判定を実行する。なお、その後のデータ再配置処理等については、実施例1と同様なので、説明を省略する。
このように、データ配置変更装置20は、任意のタイミングでデータクレンジングを実行することができるので、格納や入力ミスが多いデータベースなどについては、先にデータクレンジングを実行することで、データ再配置処理の処理負荷を軽減できる。
(属性用辞書)
実施例1で説明した属性判定用辞書は、例えば、カラムの構成が「姓、名、住所」である場合には「姓」、「名」、「住所」、「姓名」、「姓住所」、「名住所」のように、各カラムの属性を組み合わせた属性用辞書を用いることもできる。また、実施例1では、属性用辞書とクレンジング用辞書とを別々の辞書として説明したが、これに限定されるものではなく、同じ辞書を用いることもできる。
(属性判定順定義書)
実施例1で説明した属性判定順定義書には、予め順番が定義されている例について説明したが、これに限定されるものではなく、カラムの構成等について動的に変更することもできる。図18は、属性判定順序を動的に変更する処理例を説明する図である。図18に示すように、データ配置変更装置20のクレンジング対象DB22aは、「法人種別、法人名、電話番号」として「-、年寄株、044・・・」を記憶する。なお、「-」は、データがないことを示す。
このような状態において属性判定を実行する場合、属性判定部28は、まず、第1カラムのデータを読み出すが、データが格納されていないので、「属性不明」と判定する。次に、属性判定部28は、第2カラムのデータである「年寄株」を読出し、第2カラム対応する属性判定順定義書を参照する。
このとき、参照した属性判定順定義書は、「順番1、法人種別」、「順番2、法人名」、「順番3、法人種別+法人名」となっている。ところが、属性判定部28は、第2カラムと隣接する第1カラムにデータが格納されていないので、第1カラムの属性と第2カラムの属性とを組み合わせた「法人種別+法人名」の属性辞書をはじめに参照すると決定する。つまり、属性判定部28は、属性判定順定義書の定義内容を、「順番2、法人種別」、「順番3、法人名」、「順番1、法人種別+法人名」に変更して、変更した順番で属性判定用辞書を用いる。
そして、属性判定部28は、第2カラムの「年寄株」を、属性が「法人名」のデータ「年寄」と属性が「法人種別」のデータ「株」とに分割する。その後に、クレンジング実行部29は、データ「株」を「株式会社」に変更する。そして、データ再配置部30は、第2カラムの属性が「法人種別」のデータ「株式会社」をクレンジング後のカラム「法人種別」に格納する。同様に、データ再配置部30は、第2カラムの属性が「年寄」のデータ「法人」をクレンジング後のカラム「法人種別」に格納し、データ「電話番号」も該当するカラムに格納する。
このように、属性判定部28は、隣接するカラムにデータが格納されていない場合など、間違って格納された可能性が高い場合には、属性判定順定義書に定義される順番を動的に変更する。したがって、属性判定部28は、間違って格納された可能性の高いデータの属性を素早く特定することができる。また、ここでは、前のカラムにデータが格納されていない例で説明したが、後ろのカラムにデータが格納されていない場合にも、同様に処理することができる。
(クレンジング対象)
実施例1では、データベースに格納されるデータを再配置およびクレンジング対象とする例について説明したが、これに限定されるものではなく、他の記憶装置に記憶されるデータやクライアントから入力されたデータなど様々なデータを対象とすることができる。
図19は、オンラインショッピングに適用した例を示す図である。図19に示すように、データ配置変更装置20は、「姓、名、email、自宅Tel、携帯Tel」の入力画面をクライアント装置に表示し、「山田太郎、−、abc@foo.com、090-1234-5678、−」の入力を受け付けたとする。そして、データ配置変更装置20は、「姓、名、email、自宅Tel、携帯Tel」をカラム、「山田太郎、−、abc@foo.com、090-1234-5678、−」をクレンジング対象として、上述した属性判定を実行する。
この結果、データ配置変更装置20は、「山田太郎、−、abc@foo.com、090-1234-5678、−」を「山田、太郎、abc@foo.com、−、090-1234-5678」に再配置することができる。このように、データ配置変更装置20は、オンラインショッピングなどのデータであっても、リアルタイムに処理することができる。
(システム)
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(プログラム)
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
図20は、データ配置変更プログラムを実行するコンピュータのハードウェア構成の例を示す図である。図20に示すように、コンピュータ100は、CPU102、入力装置103、出力装置104、通信インタフェース105、媒体読取装置106、HDD(Hard Disk Drive)107、RAM(Random Access Memory)108、記憶装置110を有する。また、図20に示した各部は、バス101で相互に接続される。
入力装置103は、マウスやキーボードであり、出力装置104は、ディスプレイなどであり、通信インタフェース105は、NIC(Network Interface Card)などのインタフェースである。HDD107は、データ配置変更プログラム107aとともに、図3に示した記憶部に記憶される各情報を記憶する。記録媒体の例としてHDD107を例に挙げたが、ROM(Read Only Memory)、RAM、CD−ROM等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。記憶装置110は、図3に示したクレンジング対象DB22aと同様の情報を記憶するクレンジング対象DB110aと、クレンジング後DB22eと同様の情報を記憶するクレンジングDB100bとを有する。なお、記憶媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。
CPU102は、データ配置変更プログラム107aを読み出してRAM108に展開することで、図3等で説明した各機能を実行するデータ配置変更プロセス108aを動作させる。すなわち、データ配置変更プロセス108aは、図3に記載したクレンジングデータ分割部26、レコード読出制御部27、属性判定部28、クレンジング実行部29、データ再配置部30と同様の機能を実行する。このようにコンピュータ100は、プログラムを読み出して実行することでデータ配置変更方法を実行する情報処理装置として動作する。
例えば、CPU102が動作させるデータ配置変更プロセス108aは、HDD107から複数のカラムを含むレコードを読み出す。そして、データ配置変更プロセス108aは、読み出したレコードのいずれかのカラムに格納されるデータが、該カラムに対応する属性を有さない場合に、他のカラムに対応する属性を有するかの判定を行う。判定の結果、データ配置変更プロセス108aは、該他のカラムに対応する属性を有すると判定した場合に、データを他のカラムに配置する。
別の例としては、CPU102が動作させるデータ配置変更プロセス108aは、記憶装置110のクレンジング対象DB110aから複数のカラムを含むレコードを読み出す。そして、データ配置変更プロセス108aは、読み出したレコードのいずれかのカラムに格納されるデータが、該カラムに対応する属性を有さない場合に、他のカラムに対応する属性を有するかの判定を行う。判定の結果、データ配置変更プロセス108aは、該他のカラムに対応する属性を有すると判定した場合に、データを他のカラムに配置させたクレンジング対象DB110bを生成する。
また、データ配置変更プロセス108aは、通信インタフェース105を介して外部の記憶装置200のデータをクレンジングすることができる。記憶装置200は、図3に示したクレンジング対象DB22aと同様の情報を記憶するクレンジング対象DB200aと、クレンジング後DB22eと同様の情報を記憶するクレンジングDB200bとを有する。このような状態において、データ配置変更プロセス108aは、記憶装置200のクレンジング対象DB200aから複数のカラムを含むレコードを読み出す。そして、データ配置変更プロセス108aは、読み出したレコードのいずれかのカラムに格納されるデータが、該カラムに対応する属性を有さない場合に、他のカラムに対応する属性を有するかの判定を行う。判定の結果、データ配置変更プロセス108aは、該他のカラムに対応する属性を有すると判定した場合に、データを他のカラムに配置させたクレンジング対象DB200bを生成する。
また、コンピュータ100は、媒体読取装置106によって記録媒体からデータ配置変更プログラム107aを読み出し、読み出されたデータ配置変更プログラム107aを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、コンピュータ100によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
1、2 DB
10 データ配置変更装置
10a 読出制御部
10b 判定部
10c 配置制御部
20 データ配置変更装置
21 通信制御I/F部
22 記憶部
22a クレンジング対象DB
22b 属性判定順定義書DB
22c 属性判定用辞書DB
22d クレンジング用辞書DB
22e クレンジング後DB
25 制御部
26 クレンジングデータ分割部
27 レコード読出制御部
28 属性判定部
29 クレンジング実行部
30 データ再配置部

Claims (6)

  1. コンピュータに、
    複数のカラムを含むレコードを記憶部から読み出し、
    読み出したレコードのいずれかのカラムに格納されるデータが、該カラムに対応する属性を有さない場合に、他のカラムに対応する属性を有するかの判定を行い、
    前記判定の結果、該他のカラムに対応する属性を有すると判定した場合に、前記データを前記他のカラムに配置する、
    処理を実行させることを特徴とするデータ配置変更プログラム。
  2. 前記コンピュータに、さらに、
    該カラムに対応する属性と、前記他のカラムに対応する属性と、を組み合わせた属性を有するかの判定を行う、
    処理を実行させることを特徴とする請求項1に記載のデータ配置変更プログラム。
  3. 前記他のカラムは、該カラムと隣接するカラムである、
    ことを特徴とする請求項1又は請求項2に記載のデータ配置変更プログラム。
  4. 前記コンピュータに、
    前記配置する処理を実行後にさらに前記対応する属性を有するか否かの判定を行なう、
    ことをさらに実行させることを特徴とする請求項1から3のいずれか一つに記載のデータ配置変更プログラム。
  5. コンピュータに、
    複数のカラムを含むレコードを記憶部から読み出し、
    読み出したレコードのいずれかのカラムに格納されるデータが、該カラムに対応する属性を有さない場合に、他のカラムに対応する属性を有するかの判定を行い、
    前記判定の結果、該他のカラムに対応する属性を有すると判定した場合に、前記データを前記他のカラムに配置する、
    処理を実行させることを特徴とするデータ配置変更方法。
  6. 複数のカラムを含むレコードレコードを記憶する記憶部とネットワークを介して接続されるデータ配置変更装置であって、
    前記レコードを前記記憶部から読み出す読出制御部と、
    前記読出制御部によって読み出されたレコードのいずれかのカラムに格納されるデータが、該カラムに対応する属性を有さない場合に、他のカラムに対応する属性を有するかの判定を判定部と、
    前記判定部による判定の結果、該他のカラムに対応する属性を有すると判定した場合に、前記データを前記他のカラムに配置する配置制御部と
    を有することを特徴とするデータ配置変更装置。
JP2011167783A 2011-07-29 2011-07-29 データ配置変更プログラム、データ配置変更方法およびデータ配置変更装置 Expired - Fee Related JP5810719B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011167783A JP5810719B2 (ja) 2011-07-29 2011-07-29 データ配置変更プログラム、データ配置変更方法およびデータ配置変更装置
US13/557,309 US8667022B2 (en) 2011-07-29 2012-07-25 Adjustment apparatus, adjustment method, and recording medium of adjustment program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011167783A JP5810719B2 (ja) 2011-07-29 2011-07-29 データ配置変更プログラム、データ配置変更方法およびデータ配置変更装置

Publications (2)

Publication Number Publication Date
JP2013033305A true JP2013033305A (ja) 2013-02-14
JP5810719B2 JP5810719B2 (ja) 2015-11-11

Family

ID=47598105

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011167783A Expired - Fee Related JP5810719B2 (ja) 2011-07-29 2011-07-29 データ配置変更プログラム、データ配置変更方法およびデータ配置変更装置

Country Status (2)

Country Link
US (1) US8667022B2 (ja)
JP (1) JP5810719B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014155761A1 (ja) * 2013-03-29 2014-10-02 株式会社日立システムズ 顧客別データクレンジング処理システム及び顧客別データクレンジング処理方法
JP2019159837A (ja) * 2018-03-13 2019-09-19 日本電気株式会社 データベース結合装置、データベース結合方法及びデータベース結合プログラム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10176188B2 (en) * 2012-01-31 2019-01-08 Tata Consultancy Services Limited Automated dictionary creation for scientific terms
CN104252515B (zh) * 2013-12-04 2017-06-16 深圳市华傲数据技术有限公司 一种数据生成方法和装置
US9317566B1 (en) 2014-06-27 2016-04-19 Groupon, Inc. Method and system for programmatic analysis of consumer reviews
US11250450B1 (en) 2014-06-27 2022-02-15 Groupon, Inc. Method and system for programmatic generation of survey queries
US10878017B1 (en) 2014-07-29 2020-12-29 Groupon, Inc. System and method for programmatic generation of attribute descriptors
US10977667B1 (en) 2014-10-22 2021-04-13 Groupon, Inc. Method and system for programmatic analysis of consumer sentiment with regard to attribute descriptors
US20170060919A1 (en) * 2015-08-31 2017-03-02 Salesforce.Com, Inc. Transforming columns from source files to target files
CN112629098A (zh) 2015-12-10 2021-04-09 Jcr制药股份有限公司 移动式低温工作台

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04352274A (ja) * 1991-05-30 1992-12-07 Sharp Corp データ転送装置
JPH0844605A (ja) * 1994-07-26 1996-02-16 Nec Corp データチェック装置
JPH10269245A (ja) * 1997-03-21 1998-10-09 Nec Home Electron Ltd データ入力方法およびその装置
JPH11110275A (ja) * 1997-09-30 1999-04-23 Canon Inc データベースシステム及びその制御方法及び情報処理装置
JP2003067234A (ja) * 2001-08-29 2003-03-07 Landscape:Kk データベース管理システム
JP2006216027A (ja) * 2005-02-01 2006-08-17 Microsoft Corp 同じアイテムを表すデータ構造間で生データを転送するメカニズム
JP2011034246A (ja) * 2009-07-30 2011-02-17 Fujitsu Ltd データ変換装置、データ変換方法、およびデータ変換プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7386566B2 (en) 2004-07-15 2008-06-10 Microsoft Corporation External metadata processing
WO2007083371A1 (ja) 2006-01-18 2007-07-26 Fujitsu Limited データ統合装置、方法、プログラムを記録した記録媒体
US8671111B2 (en) * 2011-05-31 2014-03-11 International Business Machines Corporation Determination of rules by providing data records in columnar data structures

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04352274A (ja) * 1991-05-30 1992-12-07 Sharp Corp データ転送装置
JPH0844605A (ja) * 1994-07-26 1996-02-16 Nec Corp データチェック装置
JPH10269245A (ja) * 1997-03-21 1998-10-09 Nec Home Electron Ltd データ入力方法およびその装置
JPH11110275A (ja) * 1997-09-30 1999-04-23 Canon Inc データベースシステム及びその制御方法及び情報処理装置
JP2003067234A (ja) * 2001-08-29 2003-03-07 Landscape:Kk データベース管理システム
JP2006216027A (ja) * 2005-02-01 2006-08-17 Microsoft Corp 同じアイテムを表すデータ構造間で生データを転送するメカニズム
JP2011034246A (ja) * 2009-07-30 2011-02-17 Fujitsu Ltd データ変換装置、データ変換方法、およびデータ変換プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014155761A1 (ja) * 2013-03-29 2014-10-02 株式会社日立システムズ 顧客別データクレンジング処理システム及び顧客別データクレンジング処理方法
JP2019159837A (ja) * 2018-03-13 2019-09-19 日本電気株式会社 データベース結合装置、データベース結合方法及びデータベース結合プログラム

Also Published As

Publication number Publication date
US20130031062A1 (en) 2013-01-31
JP5810719B2 (ja) 2015-11-11
US8667022B2 (en) 2014-03-04

Similar Documents

Publication Publication Date Title
JP5810719B2 (ja) データ配置変更プログラム、データ配置変更方法およびデータ配置変更装置
US10579827B2 (en) Event processing system to estimate unique user count
US8122008B2 (en) Joining tables in multiple heterogeneous distributed databases
US20180239800A1 (en) Data query method and apparatus
US20210117414A1 (en) Global dictionary for database management systems
US10878121B2 (en) Method and device for converting data containing user identity
CN109508420B (zh) 一种知识图谱属性的清洗方法及装置
CN105808633A (zh) 数据归档方法和系统
US7539689B2 (en) Bundling database
US20160283357A1 (en) Call stack relationship acquiring method and apparatus
US20090049013A1 (en) Enhanced control to users to populate a cache in a database system
KR20170123336A (ko) 파일 조작 방법 및 장치
US7333992B2 (en) System and method for identifying and storing changes made to a table
CN106407360B (zh) 一种数据的处理方法及装置
CN104423982B (zh) 请求的处理方法和处理设备
CN108846021B (zh) 一种基于用户访问偏好模型的海量小文件存储方法
CN106557307B (zh) 业务数据的处理方法及处理系统
US20140279972A1 (en) Cleansing and standardizing data
US20180060362A1 (en) Method and system for implementing distributed lobs
CN108241540A (zh) 一种跨数据源查询的任务调度方法以及装置
CN103778239A (zh) 一种多数据库数据管理方法及系统
US20190095481A1 (en) Generating a query
CN106484699A (zh) 数据库查询字段的生成方法及装置
CN112100182A (zh) 数据入库处理方法、装置和服务器
CN108415998A (zh) 应用依赖关系更新方法、终端、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140404

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141022

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150202

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150831

R150 Certificate of patent or registration of utility model

Ref document number: 5810719

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees