(57)【特許請求の範囲】
【請求項１】
対象システムに対する過去の操作のログから、データ変換操作が行われる前に行われている操作のパタンである操作パタンを抽出する抽出手段と、
前記対象システムに対する操作のログに、抽出された前記操作パタンに該当する操作を示す内容が存在するか否かを判定する判定手段と、
前記判定手段が該当する操作を示す内容が存在すると判定した後に前記対象システムが生成するデータを、変換された前記データが使用される処理が開始される前に、前記データ変換操作に基づいて変換する変換手段とを備える
ことを特徴とするデータ変換装置。
【請求項２】
変換手段は、対象システムを使用するユーザの作業を阻害しない量の前記対象システムのリソースを用いてデータを変換する
請求項１記載のデータ変換装置。
【請求項３】
変換手段は、対象システムが生成するデータのうち、優先度の高いデータを変換する
請求項１または請求項２記載のデータ変換装置。
【請求項４】
抽出手段は、時系列データである操作のログをトランザクションデータに変換した上で、操作パタンを抽出する
請求項１から請求項３のうちのいずれか１項に記載のデータ変換装置。
【請求項５】
抽出手段は、時系列データである操作のログを汎化した上でトランザクションデータに変換する
請求項４記載のデータ変換装置。
【請求項６】
変換手段は、トランザクションデータにおける操作パタンの出現頻度に基づいて、所定の時点で生成されたデータに対してデータ変換操作が行われる確率を推定し、推定した前記確率に基づいてデータの変換の優先度を決定する
請求項４または請求項５記載のデータ変換装置。
【請求項７】
変換手段は、忘却曲線を用いて、所定の時点で生成されたデータに対してデータ変換操作が行われる確率を推定する
請求項６記載のデータ変換装置。
【請求項８】
データ変換装置と、分析対象のデータを生成する対象システムとを含むデータ変換システムであって、
前記データ変換装置は、
前記対象システムに対する過去の操作のログから、データ変換操作が行われる前に行われている操作のパタンである操作パタンを抽出する抽出手段と、
前記対象システムに対する操作のログに、抽出された前記操作パタンに該当する操作を示す内容が存在するか否かを判定する判定手段と、
前記判定手段が該当する操作を示す内容が存在すると判定した後に前記対象システムが生成するデータを、変換された前記データが使用される処理が開始される前に、前記データ変換操作に基づいて変換する変換手段とを含む
ことを特徴とするデータ変換システム。
【請求項９】
データ変換装置において実行されるデータ変換方法であって、
前記データ変換装置が、
対象システムに対する過去の操作のログから、データ変換操作が行われる前に行われている操作のパタンである操作パタンを抽出し、
前記対象システムに対する操作のログに、抽出された前記操作パタンに該当する操作を示す内容が存在するか否かを判定し、
該当する操作を示す内容が存在すると判定された後に前記対象システムが生成するデータを、変換された前記データが使用される処理が開始される前に、前記データ変換操作に基づいて変換する
ことを特徴とするデータ変換方法。
【請求項１０】
コンピュータに、
対象システムに対する過去の操作のログから、データ変換操作が行われる前に行われている操作のパタンである操作パタンを抽出する抽出処理、
前記対象システムに対する操作のログに、抽出された前記操作パタンに該当する操作を示す内容が存在するか否かを判定する判定処理、および
該当する操作を示す内容が存在すると判定された後に前記対象システムが生成するデータを、変換された前記データが使用される処理が開始される前に、前記データ変換操作に基づいて変換する変換処理
を実行させるためのデータ変換プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ変換装置、データ変換システム、データ変換方法およびデータ変換プログラムに関し、特に種類が異なるシステム間のデータを授受するデータ管理におけるデータ変換技術が適用されたデータ変換装置、データ変換システム、データ変換方法およびデータ変換プログラムに関する。
【背景技術】
【０００２】
システムが生成したデータに、種類が異なる他のシステムがアクセスする場合が所定の割合で存在する。特に、種類が異なる複数のシステムが使い分けられることが多いデータ分析処理において、システムが生成したデータに、種類が異なる他のシステムがアクセスすることが多い。その理由は、データ分析処理では、データ整形や機械学習等の多様な作業が求められ、一つのシステムが求められる多様な作業を全て実施することは困難であるためである。
【０００３】
データ分析処理において分析者は、各作業に適したシステムを使用する。また、分析者は、作業を実行する際、作業の種類に合わせて使用するアプリケーションを選択する。
【０００４】
例えば、分析者は、データ整形や属性生成の作業にApache Hive（登録商標、以下Hiveという。）やPostgreSQLなどのデータベース(DB)を使用する。また、例えば、分析者は、機械学習の作業にPythonやRなどのプログラミング言語を使用する。
【０００５】
なお、Pythonを使用した場合、ユーザは、対話形式でプログラムを入力できる対話モードを実行できる。すなわち、Pythonは、プログラミング言語としてだけではなくツールとしての側面も有する。
【０００６】
データ分析処理において各作業に適したシステムが使用される場合、例えば、システムＡでデータ整形されたデータが、システムＡと種類が異なるシステムＢにおいて実行される機械学習の対象になる。よって、データ整形されたデータが、システムＡから読み込まれ、システムＢに入力される。
【０００７】
一般的に、種類が異なるシステムは、種類が異なるデータ形式でそれぞれデータを保持する。上記の例では、システムＢは、システムＡが保持するデータのデータ形式を、自身が読み込むことができるデータ形式に変換することが求められる。
【０００８】
また、各アプリケーションも、それぞれに固有のデータ形式でデータを扱う。すなわち、アプリケーションＣで生成されたデータが、種類が異なるアプリケーションＤに読み込まれる際、アプリケーションＣ用のデータ形式からアプリケーションＤ用のデータ形式への変換が求められる。
【０００９】
例えば、分析者がHiveを用いて属性生成を行い、Pythonを用いて機械学習を行う場合を考える。Pythonによる機械学習を実行するシステムは、Hiveに対応するデータ形式であるtext formatや、ORC(Optimized Row Columnar) file formatのデータを、直接機械学習の入力とすることはできない。
【００１０】
Hiveで生成されたデータをPythonによる機械学習の入力とする方法として、例えば以下に示す方法がある。
【００１１】
種類が異なるプログラミング言語をそれぞれ用いた複数のシステム間におけるデータの授受を可能にする、Thriftなどのシリアライズフレームワークがある。
【００１２】
シリアライズフレームワークを用いることによって、Hiveで生成されたデータをシリアライズし、Pythonに対応するデータ形式に合わせてデシリアライズする方法がある。なお、シリアライズは、シリアライズフレームワークによる所定のデータ変換処理であり、デシリアライズはシリアライズに対応する逆変換処理である。
【００１３】
また、Hiveで生成されたデータを一旦CSV(Comma-Separated Values)ファイルなどの、Pythonに対応するデータ形式に変換し、変換されたデータをHiveからダンプする方法がある。ダンプは、Hiveに含まれるデータをファイルとして取得し、通常のファイルシステムに入力する処理である。
【００１４】
ユーザは通常、データベース内のファイルを見ることができない。例えば、「select * from Table」というSQL(Structured Query Language)を実行すると、ユーザは、Tableのビュー（データそのもの）を見ることができるが、CSVなどのファイルとして見ていない。ダンプは、ユーザが通常見ることのできないファイルとして、データベースからデータを取得する処理である。
【００１５】
ダンプされたデータは、標準入力から読み込まれる。上記のように、種類が異なるシステム間においてデータアクセスが行われる場合、データ変換処理が求められる。
【００１６】
分析者は、データ変換処理の実施に所定の時間を要する。例えば、データ分析が対話的に行われるユースケースにおいて、分析者は、データベースなどの属性生成の実施に適したシステムを用いて、属性データを作成する。属性データは、複数の中間データの作成を経て作成される。次いで、分析者は、作成された属性データを入力とする機械学習を実施するために、Pythonなどが導入された異なるシステムを使用する。
【００１７】
上記のユースケースにおいて、機械学習に要する時間が短い場合でも変換処理に要する時間が長い場合、分析者は、全体処理が完了するまで、機械学習に要する時間以上待機する。特に、試行錯誤しながら短時間で分析する対話的な場面において、分析者は、待機させられることが多い。
【００１８】
図１７は、一般的なデータ分析システムの例を示す説明図である。図１７に示すFeature Generator(Hive)で生成されたデータがSAMPOに対応するデータ形式のデータに変換される場合を説明する。SAMPOは、図１７に示すデータ分析システムで実施される機械学習において使用されるツールである。
【００１９】
図１７に示すApache HCatalogは、Hive、Pig、MapReduce等の各Hadoopエコシステムが、多様なデータ形式によりそれぞれが生成したデータにアクセスするための技術である。なお、Apache HCatalogは、Hadoopエコシステム以外のアプリケーションを対象にしない。
【００２０】
図１７に示すHDFS(Hadoop Distributed File System)は、分散処理システムのHadoopが利用する分散ファイルシステムである。独自のファイルシステムを作成できる機能を提供するFUSE(Filesystem in Userspace)を用いれば、ユーザは、HDFSをファイルシステムとして扱うことができる。なお、HDFSが扱う処理の対象に、データ変換処理は含まれていない。
【００２１】
なお、図１７に示すデータ分析システムにおいて、ストレージ層やメタデータ管理層が各構成要素に共有されていてもよい。
【００２２】
図１８は、図１７に示すデータ分析システムにおける操作コマンドの例を示す説明図である。図１８に示す操作コマンドは、Hiveを用いて中間データＴ１、Ｔ２を生成した後に属性データＴ３を作成し、次いでSAMPOを用いて属性データＴ３に対して分析を行った一連の操作に対応する。図１８に示す例は、対話的にクエリ（操作）が発行されている例に対応する。
【００２３】
図１８に示す操作コマンドに対応する操作が行われた後にシステムが出力するクエリログの例を図１９に示す。図１９は、図１７に示すデータ分析システムが出力するクエリログの例を示す説明図である。図１９に示すように、クエリログは、クエリと、クエリが発行された時間情報を有する時系列データである。
【００２４】
図２０は、図１７に示すデータ分析システムにおける発行時刻順に並べられたクエリを示す説明図である。図２０に示すHQL1~4およびSAMPOが、クエリに相当する。また、各クエリの上に位置するデータがクエリの入力データ、下に位置するデータがクエリの出力データである。図２０に示す時間軸において、右に進むほど時間が経過する。
【００２５】
図２０の下部に示すように、データ分析システムにおいて、中間データが生成されるごとに、分析者は、生成されたデータを目視で確認する。次いで、分析者により確認された中間データから属性データが作成され、データ形式が変換された属性データがSAMPOにより分析される。すなわち、図１７に示すデータ分析システムにおいて、分析者による中間データの確認という余分な作業が発生する。
【００２６】
全体処理が完了するまでの時間を短縮する方法の１つとして、分析者が要求してからデータの変換処理が開始されるのではなく、要求される前にデータの変換処理が実施される仕組みを構築する方法がある。しかし、変換を要求されるデータを把握することは困難であるため、事前に適切な変換処理を実施することは容易ではない。
【００２７】
また上記のように、属性生成では、機械学習に使用される属性データが作成される過程で様々な中間データが作成される。属性データ作成後に試行錯誤された結果、作成された中間データが、属性データそのものとして使用されることもある。属性生成の場合も考慮すると、変換を要求される可能性があるデータを事前に特定することは困難である。
【００２８】
しかし、例えばデータベース内の全てのテーブルに対して変換処理を実施すると、新たな問題が生じる。仮に、生成されるデータを全て変換する仕組みが用いられた場合、以下に示す２つの問題が生じる。
【００２９】
第１の問題は、空間が逼迫する可能性が高まることである。空間は、システムにおけるメモリ空間やディスク空間などである。その理由は、データを全て変換すると元のデータと変換後のデータの２種類のデータが生じ、単純に元のデータに要する空間の２倍の空間が求められるためである。
【００３０】
仮に、bruteforceで全てのテーブルが変換された場合、空間内に元のテーブルと変換後のテーブルが存在するため、単純に元のテーブルに要する空間の２倍の空間が求められる。システムにおける空間の使用量には上限があるため、求められる空間が増大する方法には問題がある。
【００３１】
第２の問題は、システムにおいて実行されている他の処理に対して影響を及ぼす可能性があることである。その理由は、全てのデータに対して変換処理が実施されると、システムの計算リソースが逼迫するためである。
【００３２】
システムにおける計算リソースの使用量には上限がある。システムの計算リソースが逼迫すると、例えば、対話的にシステムを使用するユーザの作業が阻害される恐れがある。ユーザの作業が阻害されないように、事前のデータ変換処理は、限られた計算リソースのみを使用することが求められる。すなわち、限られた計算リソースのみを使用して、変換を要求される可能性があるデータのみを、事前に変換する技術が求められる。
【先行技術文献】
【非特許文献】
【００３３】
【非特許文献１】Lazy Maintenance of Materialized Views, Jingren Zhou, Per-Ake Larson and Hicham G. Elmongui, 2007
【発明の概要】
【発明が解決しようとする課題】
【００３４】
変換を要求される可能性があるデータを事前に変換する処理の実行には、２つの問題がある。
【００３５】
第１の問題は、次々と対話的に生成されるデータのうち、変換を要求される可能性があるデータを事前に特定することが困難なことである。
【００３６】
例えば、属性生成では、機械学習に使用される属性データが作成される過程で様々な中間データが多く生成される。属性データ作成後に試行錯誤された結果、生成された中間データが、属性データそのものとして使用されることもある。すなわち、機械学習の入力の候補として、属性データと中間データは区別されない。
【００３７】
第２の問題は、仮にいくつかのデータに関して変換を要求されることが予測できたとしても、変換対象として適切なデータおよび適切な変換のタイミングは自明でないことである。
【００３８】
その理由は、変換処理に使用される計算リソースの未使用量や、変換データが保存される空間の空き容量は時々で変化する。変換対象として適切なデータおよび適切な変換のタイミングは、計算リソースの未使用量や空間の空き容量に依存するからである。
【００３９】
以上により、例えば、分析者が種類の異なるシステムを使い分けながら対話的にデータ分析処理を行う場合、システムで生成されたデータを種類の異なる他のシステムに読み込ませるときに求められるデータ変換処理を、限られたリソースのみを用いて事前に行うことは困難であることが分かる。データ変換処理に要するコストは大きくなる可能性もあり、コストが大きくなると対話的に分析できる処理の特性が低下する。
【００４０】
非特許文献１には、マテリアライズ（物質化）されたテーブルビューのメンテナンス（更新）の実施を必要なときまで遅らせることによって、不要な更新を防ぎ作業効率を高める技術が記載されている。
【００４１】
非特許文献１に記載されている技術は、データ変換に要するコストが大きいことを課題にしており、コストが抑えられるようにメンテナンスの実施計画を組む。しかし、非特許文献１に記載されている技術において、変換されたデータが求められるときを予測し、事前にデータを変換することは想定されていない。よって、変換要求の対象になる可能性が高いデータを高精度に予測し、予測したデータを事前に変換する技術が求められる。
【００４２】
そこで、本発明は、変換されるデータを予測し、予測したデータを事前に変換できるデータ変換装置、データ変換システム、データ変換方法およびデータ変換プログラムを提供することを目的とする。
【課題を解決するための手段】
【００４３】
本発明によるデータ変換装置は、対象システムに対する過去の操作のログから、データ変換操作が行われる前に行われている操作のパタンである操作パタンを抽出する抽出手段と、対象システムに対する操作のログに、抽出された操作パタンに該当する操作を示す内容が存在するか否かを判定する判定手段と、判定手段が該当する操作を示す内容が存在すると判定した後に対象システムが生成するデータを、変換されたデータが使用される処理が開始される前に、データ変換操作に基づいて変換する変換手段とを備えることを特徴とする。
【００４４】
本発明によるデータ変換システムは、データ変換装置と、分析対象のデータを生成する対象システムとを含むデータ変換システムであって、データ変換装置は、対象システムに対する過去の操作のログから、データ変換操作が行われる前に行われている操作のパタンである操作パタンを抽出する抽出手段と、対象システムに対する操作のログに、抽出された操作パタンに該当する操作を示す内容が存在するか否かを判定する判定手段と、判定手段が該当する操作を示す内容が存在すると判定した後に対象システムが生成するデータを、変換されたデータが使用される処理が開始される前に、データ変換操作に基づいて変換する変換手段とを含むことを特徴とする。
【００４５】
本発明によるデータ変換方法は、データ変換装置において実行されるデータ変換方法であって、データ変換装置が、対象システムに対する過去の操作のログから、データ変換操作が行われる前に行われている操作のパタンである操作パタンを抽出し、対象システムに対する操作のログに、抽出された操作パタンに該当する操作を示す内容が存在するか否かを判定し、該当する操作を示す内容が存在すると判定された後に対象システムが生成するデータを、変換されたデータが使用される処理が開始される前に、データ変換操作に基づいて変換することを特徴とする。
【００４６】
本発明によるデータ変換プログラムは、コンピュータに、対象システムに対する過去の操作のログから、データ変換操作が行われる前に行われている操作のパタンである操作パタンを抽出する抽出処理、対象システムに対する操作のログに、抽出された操作パタンに該当する操作を示す内容が存在するか否かを判定する判定処理、および該当する操作を示す内容が存在すると判定された後に対象システムが生成するデータを、変換されたデータが使用される処理が開始される前に、データ変換操作に基づいて変換する変換処理を実行させることを特徴とする。
【発明の効果】
【００４７】
本発明によれば、変換されるデータを予測し、予測したデータを事前に変換できる。
【図面の簡単な説明】
【００４８】
【図１】本発明によるデータ変換システムの実施形態の構成例を示すブロック図である。
【図２】本実施形態のデータ変換装置２００による相関ルールマイニングの例を示す説明図である。
【図３】本発明によるデータ変換システムの実施形態の他の構成例を示すブロック図である。
【図４】本実施形態の予測ルール生成手段２０２による予測ルールの抽出処理の動作を示すフローチャートである
【図５】本実施形態の予測手段２０３による予測ルールの照合処理の動作を示すフローチャートである。
【図６】本実施形態のデータ変換手段２０４によるデータ変換処理の動作を示すフローチャートである。
【図７】本実施例における操作コマンドの例を示す説明図である。
【図８】本実施例におけるクエリログの例を示す説明図である。
【図９】本実施例におけるクエリログを汎化することによって作成された時系列データの例を示す説明図である。
【図１０】本実施例における操作コマンドの他の例を示す説明図である。
【図１１】本実施例における発生時刻順に並べられた汎化クエリと時系列データからのトランザクションの作成方法の例を示す説明図である。
【図１２】本実施例における発生時刻順に並べられた汎化クエリと時系列データからのトランザクションの作成方法の他の例を示す説明図である。
【図１３】本実施例における予測ルール生成手段２０２により計算された頻出アイテム集合の頻度の例を示す説明図である。
【図１４】本実施例におけるデータ変換手段２０４により推定されたデータの変換要求の対象になる確率の例を示す説明図である。
【図１５】本発明によるデータ変換装置の概要を示すブロック図である。
【図１６】本発明によるデータ変換システムの概要を示すブロック図である。
【図１７】一般的なデータ分析システムの例を示す説明図である。
【図１８】図１７に示すデータ分析システムにおける操作コマンドの例を示す説明図である。
【図１９】図１７に示すデータ分析システムが出力するクエリログの例を示す説明図である。
【図２０】図１７に示すデータ分析システムにおける発生時刻順に並べられたクエリを示す説明図である。
【発明を実施するための形態】
【００４９】
［構成の説明］
以下、本発明の実施形態を、図面を参照して説明する。図１は、本発明によるデータ変換システムの実施形態の構成例を示すブロック図である。
【００５０】
図１に示すデータ変換システム１００には、図１７に示すデータ分析システムと、本発明によるデータ変換装置２００が含まれている。図１に示すデータ変換装置２００が、分析システムが変換されたデータを使用する時を予測し、変換されたデータが使用される前にデータを変換する。
【００５１】
図１に示すデータ変換装置２００は、変換要求の対象になる可能性があるデータを、以下のように予測する。データ変換装置２００は、クエリログやsyslog等の、分析操作のログを取得する。次いで、データ変換装置２００は、取得したログから、データ変換が要求される前のログの傾向を捉える。
【００５２】
図２は、本実施形態のデータ変換装置２００による相関ルールマイニングの例を示す説明図である。相関ルールマイニングを実施することによって、データ変換装置２００は、頻出アイテム集合の事前抽出とログとの照合を行う。
【００５３】
図２（Ａ）には、発行時刻順に並べられた、抽象化されたクエリが示されている。Ｈ１〜Ｈ７およびＳがクエリである。また、Ｓは変換操作のクエリである。
【００５４】
図２（Ｂ）には、変換操作（Ｓ）までの操作のセットであるトランザクションが示されている。データ変換装置２００は、頻出する操作のセットを、頻出アイテム集合（図２（Ｂ）に示すＦＩ）として抽出する。図２（Ｂ）には、頻度閾値を０．３としたとき、頻出アイテム集合として｛Ｈ４｝と｛Ｈ２，Ｈ４｝が抽出された例が示されている。
【００５５】
アイテム集合の頻度は、例えば、全トランザクションに対する、アイテム集合を含むトランザクションの割合である。図２（Ｂ）に示す例では、６個のトランザクションのうち、アイテム集合｛Ｈ４｝を含むトランザクションは４個ある。よって、アイテム集合を含むトランザクションの割合は、４／６＝０．６７になる。頻度閾値を０．３とすると、０．６７≧０．３であるため、アイテム集合｛Ｈ４｝は頻出アイテム集合になる。
【００５６】
同様に、アイテム集合｛Ｈ２，Ｈ４｝を含むトランザクションの割合は、２／６＝０．３３になる。頻度閾値を０．３とすると、０．３３≧０．３であるため、アイテム集合｛Ｈ２，Ｈ４｝は頻出アイテム集合になる。
【００５７】
次いで、データ変換装置２００は、抽出された頻出アイテム集合を用いて、監視中のログ（図２（Ａ）に示すリアルタイムログ）のクエリがＦＩに適合するか否かを判定する。データ変換装置２００は、ＦＩに適合したクエリが発行された時刻から変換要求が発行される時刻までに生成される全てのデータを変換する。
【００５８】
以下、データ変換装置２００の具体的な構成および動作を説明する。図３は、本発明によるデータ変換システムの実施形態の他の構成例を示すブロック図である。図３に示すデータ変換システム１００は、データ変換装置２００と、システム３１０と、システム３２０と、メタデータ管理システム３３０と、共通ストレージ３４０とを含む。システム３１０、システム３２０、メタデータ管理システム３３０、および共通ストレージ３４０は、データ変換装置２００に対する外部システムである。
【００５９】
システム３１０の種類とシステム３２０の種類は異なる。システム３１０およびシステム３２０で生成されたデータは、共通ストレージ３４０に格納される。また、共通ストレージ３４０に格納されているデータへのアクセスは、全てメタデータ管理システム３３０を介して行われる。
【００６０】
図３に示すデータ変換装置２００は、ログ蓄積手段２０１と、予測ルール生成手段２０２と、予測手段２０３と、データ変換手段２０４とを含む。データ変換装置２００における各構成要素は、通信ネットワークやバス等を介して通信可能に接続されている。
【００６１】
ログ蓄積手段２０１は、データ変換装置２００が処理対象とするシステム３１０およびシステム３２０に対して、ユーザが発行したクエリのログを収集する機能を有する。なお、ログ蓄積手段２０１は、収集したクエリのログを記憶部（図示せず）に格納してもよい。ログ蓄積手段２０１が有する機能は、外部システム（図３に示すシステム３１０およびシステム３２０）に対するクエリのログを蓄積する単純な機能である。
【００６２】
予測ルール生成手段２０２は、ログ蓄積手段２０１が蓄積した過去のクエリのログに基づいて、データ変換の実施前に生じていたクエリパタンを、予測ルールとして抽出する機能を有する。予測ルール生成手段２０２により抽出される予測ルールが、上記の頻出アイテム集合に相当する。なお、予測ルール生成手段２０２は、抽出した予測ルールを記憶部（図示せず）に格納してもよい。
【００６３】
予測手段２０３は、システム３１０またはシステム３２０に対するクエリのログを、ログの出力と同時に監視する。ログの監視中に、予測手段２０３は、監視対象のログに発生するクエリパタンを検知する。
【００６４】
予測手段２０３は、検知したクエリパタンを、予測ルール生成手段２０２が抽出した予測ルールと照合する。予測ルール生成手段２０２が抽出した予測ルールの中に検知されたクエリパタンに適合する予測ルールがある場合、予測手段２０３は、変換要求の対象になる可能性があるデータを、データ変換手段２０４に通知する。
【００６５】
具体的には、予測手段２０３は、適合する予測ルールの存在が判明した時点から、データ変換要求が発行される時点までに生成されるあらゆるデータを、変換要求の対象になる可能性があるデータとみなす。
【００６６】
データ変換手段２０４は、変換要求の対象になる可能性があるデータのデータ形式を、出力先のシステムに対応したデータ形式に変換する機能を有する。変換にあたって、データ変換手段２０４は、システム３１０またはシステム３２０の計算リソースや空間リソースを監視する。
【００６７】
監視対象のリソースにおいて、変換処理に要するリソース分が使用されずに余っている限り、データ変換手段２０４は、変換要求の対象になる可能性があるとみなされたデータを、可能性が大きいデータから順に事前に変換する。
【００６８】
また、変換処理に要するリソース分が余っていない場合、データ変換手段２０４は、優先度の高いデータのみを変換する。優先度の高いデータのみを変換するとしてもリソースが足りなければ、データ変換手段２０４は、既に投機的に実行されている変換処理のうち、優先度の低いデータに対する変換処理を中止する。なお、本実施形態において、投機的に実行させることは、実行の必要性が不明な処理もひとまず計算機に実行させることを意味する。
【００６９】
優先度の高いデータは、例えば、変換要求の対象になる確率が大きいデータである。また、優先度の高いデータは、変換が実施されるようにユーザから指定されたデータでもよい。
【００７０】
すなわち、データ変換手段２０４は、システムを使用するユーザの作業を阻害しない量のリソースを用いて事前にデータを変換する。なお、本実施形態のデータ分析システムにおいて、ユーザは対話的に分析するため、システムリソースの所定量が使用されずに余ることが想定される。
【００７１】
データ変換手段２０４は、メタデータ管理システム３３０を介して、システム３１０およびシステム３２０がアクセス可能な共通ストレージ３４０に、変換されたデータを格納する。
【００７２】
なお、本実施形態のデータ変換装置２００は、例えば、記憶媒体に格納されているプログラムに従って処理を実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）によって実現される。すなわち、ログ蓄積手段２０１、予測ルール生成手段２０２、予測手段２０３、およびデータ変換手段２０４は、例えば、プログラム制御に従って処理を実行するＣＰＵによって実現される。
【００７３】
また、データ変換装置２００における各部は、ハードウェア回路によって実現されてもよい。
【００７４】
［動作の説明］
以下、本実施形態のデータ変換装置２００の動作を図４〜図６を参照して説明する。
【００７５】
最初に、本実施形態の予測ルール生成手段２０２が予測ルールを抽出する時の動作を、図４を参照して説明する。図４は、本実施形態の予測ルール生成手段２０２による予測ルールの抽出処理の動作を示すフローチャートである。
【００７６】
予測ルール生成手段２０２は、変換元システム、変換先システム、および変換クエリを外部から指定される（ステップＳ１０１）。変換クエリは、データ変換処理を実行するクエリである。
【００７７】
次いで、予測ルール生成手段２０２は、ログ蓄積手段２０１が蓄積したログを整形し、時系列データを作成する（ステップＳ１０２）。
【００７８】
次いで、予測ルール生成手段２０２は、ステップＳ１０２において作成された時系列データから、時系列データに点在する変換クエリが必ず末尾に位置する時系列データを複数作成する（ステップＳ１０３）。
【００７９】
本実施形態において、ステップＳ１０３において作成された時系列データをトランザクションと呼ぶ。また、トランザクションの集合をトランザクションデータと呼ぶ。
【００８０】
トランザクションは、例えば、作成元である時系列データが変換クエリごとに重複なく区切られることによって作成された時系列データである。なお、トランザクション間に重複箇所が存在してもよい。作成元である時系列データからのトランザクションの作成方法は、後述する実施例において説明する。
【００８１】
次いで、予測ルール生成手段２０２は、トランザクションデータから、トランザクションの末尾の変換クエリより前に生じる傾向があると推定されるクエリの発生パタンを、予測ルールとして抽出する（ステップＳ１０４）。
【００８２】
クエリの発生パタンおよび予測ルールは、クエリの集合である。ステップＳ１０４において使用される、クエリの発生パタンが予測ルールとして捉えられる基準は複数考えられる。クエリの発生パタンが予測ルールとして捉えられる基準は、後述する実施例において説明する。
【００８３】
予測ルールを抽出した後、予測ルール生成手段２０２は、予測ルールの抽出処理を終了する。
【００８４】
次に、本実施形態の予測手段２０３が予測ルールを照合する時の動作を、図５を参照して説明する。図５は、本実施形態の予測手段２０３による予測ルールの照合処理の動作を示すフローチャートである。
【００８５】
予測手段２０３は、対象システムに対するクエリのログを、ログの出力と同時に監視および整形する。なお、対象システムは、例えば、図３に示すシステム３１０およびシステム３２０である。
【００８６】
次いで、予測手段２０３は、予測ルール生成手段２０２により抽出された複数の予測ルールと監視対象のログを照合する（ステップＳ２０１）。
【００８７】
予測手段２０３は、予測ルール生成手段２０２により抽出された複数の予測ルールのうち、少なくとも一つの予測ルールにログが適合するか否かを確認する（ステップＳ２０２）。全ての予測ルールにログが適合しない場合（ステップＳ２０２におけるＮｏ）、予測手段２０３は、予測ルールの照合処理を終了する。
【００８８】
少なくとも一つの予測ルールにログが適合する場合（ステップＳ２０２におけるＹｅｓ）、予測手段２０３は、変換要求の対象になる可能性があるデータをデータ変換手段２０４に通知する（ステップＳ２０３）。
【００８９】
具体的には、ログの出力と同時にログが適合する予測ルールが検出されると、予測手段２０３は、予測ルールの検出時点から変換クエリが発生する時点までに生成される全てのデータを、変換要求の対象になる可能性があるデータとみなすように、データ変換手段２０４に通知する。
【００９０】
変換要求の対象になる可能性があるデータをデータ変換手段２０４に通知した後、予測手段２０３は、予測ルールの照合処理を終了する。なお、予測手段２０３自体は、対象システムが稼働している限り、図５に示す処理を実行することによって対象システムに対するクエリのログを監視する。
【００９１】
次に、本実施形態のデータ変換手段２０４がデータのデータ形式を変換する時の動作を、図６を参照して説明する。図６は、本実施形態のデータ変換手段２０４によるデータ変換処理の動作を示すフローチャートである。
【００９２】
データ変換手段２０４は、図５に示すステップＳ２０３の処理における予測手段２０３からの通知を受け取る（ステップＳ３０１）。
【００９３】
データ変換手段２０４は、予測手段２０３からの通知を受け取った時刻から、変換クエリが発生する時刻までに生成される全てのデータを、変換要求の対象になる可能性があるデータとみなす。変換要求の対象になる可能性があるデータとみなした上で、データ変換手段２０４は、データ変換スケジュールを組む。
【００９４】
次いで、データ変換手段２０４は、変換クエリが発生していないか否かを確認する（ステップＳ３０２）。変換クエリが発生していない場合（ステップＳ３０２におけるＹｅｓ）、データ変換手段２０４は、対象システムのリソースを監視し、データ変換に要するリソース分が使用されずに余っているか否かを確認する（ステップＳ３０３）。
【００９５】
監視した結果、対象システムのリソースにデータ変換に要するリソース分が使用されずに余っている場合（ステップＳ３０３におけるＹｅｓ）、データ変換手段２０４は、変換元システムが生成したデータに対するデータ変換処理を投機的に実行する（ステップＳ３０４）。実行した後、データ変換手段２０４は、再度ステップＳ３０２の処理を行う。
【００９６】
監視した結果、対象システムのリソースにデータ変換に要するリソース分が余っていない場合（ステップＳ３０３におけるＮｏ）、データ変換手段２０４は、投機的に実行しているデータ変換処理のうち、変換要求の対象になる確率が小さいデータに対するデータ変換処理を中止する。
【００９７】
なお、優先度の高いデータに対するデータ変換処理に関して、データ変換手段２０４は、予定通り処理を実行する（ステップＳ３０５）。実行した後、データ変換手段２０４は、再度ステップＳ３０２の処理を行う。
【００９８】
データの優先度は、例えば、変換要求の対象になる確率に基づいて決定される。また、データの優先度は、ユーザからの具体的な指示に基づいて決定されてもよい。具体的なデータ変換の方法および変換要求の対象になる確率の計算方法は、後述する実施例において説明する。
【００９９】
変換クエリが発生するまで、データ変換手段２０４は、ステップＳ３０２〜ステップＳ３０５の処理を繰り返し行う。変換クエリが発生した場合（ステップＳ３０２におけるＮｏ）、データ変換手段２０４は、データ変換処理を終了する。
【０１００】
以上、図４〜図６を参照して、予測ルール生成手段２０２、予測手段２０３、およびデータ変換手段２０４のそれぞれの動作の例を説明した。以下、各構成要素の動作を踏まえて、データ変換装置２００の具体的な実施例を説明する。
【実施例】
【０１０１】
以下、本発明の実施例を、図面を参照して説明する。なお、本実施例におけるデータ変換システム１００の構成は、図３に示すデータ変換システム１００の構成例と同様である。
【０１０２】
本実施例において、図３に示すデータ変換システム１００のシステム３１０にはHiveが、システム３２０にはPythonがそれぞれ導入されている。また、データの変換元システムがシステム３１０、データの変換先システムがシステム３２０である。
【０１０３】
すなわち、本実施例において、Hiveを用いて属性生成を行ったシステム３１０が作成した属性データが、システム３２０に導入されているPythonに読み込まれる。システム３２０は、scikit-learn等の分析向けライブラリを用いてPythonによる機械学習を行う。なお、本実施例において、Hiveによる属性生成において作成された属性データを、Pythonが読み込むことが可能なデータに変換するための変換クエリは、Pythonによりシステム３２０に予め実装されている。
【０１０４】
図７は、本実施例における操作コマンドの例を示す説明図である。図７に示す操作コマンドは、Hiveを用いて中間データＴ１、Ｔ２を生成した後に属性データＴ３を作成し、次いでPythonを用いて属性データＴ３に対してロジスティック回帰による分析を行った一連の操作に対応する。
【０１０５】
図７に示す操作コマンドに対応する操作が行われた後にログ蓄積手段２０１が収集するクエリログの例を図８に示す。図８は、本実施例におけるクエリログの例を示す説明図である。
【０１０６】
以下、本実施例における予測ルール生成手段２０２、予測手段２０３、およびデータ変換手段２０４のそれぞれの動作の例を説明する。
【０１０７】
［１．予測ルール生成手段］
［１．１．ログの整形と時系列データの作成］
一般的に、クエリログはそのまま利用された場合、パタンを抽出する対象として適していないことが多い。その理由は、発行されたクエリは発行された時点でのみ使用されるクエリであることが多く、将来同じクエリが発行される可能性は低いためである。
【０１０８】
本発明の対象でもある、過去のログから将来発生する出来事を予測する予測問題では、例えば、クエリログが整形される。本実施例における予測ルール生成手段２０２は、ログに示される内容（クエリ）に対して、汎化等の整形処理を行ってからクエリログを利用する。
【０１０９】
クエリの汎化は、変換クエリの発生の予測精度を高める重要な処理である。汎化には様々な方法があり、本実施例においていくつかの汎化の方法を説明する。
【０１１０】
代表的な汎化の方法として、クエリを構文解析し、パラメタをワイルドカードで置き換える方法がある。パラメタをワイルドカードで置き換える方法が使用された場合、クエリのパラメタ部分が抽象化された際に一致するクエリが同一のクエリとみなされる。
【０１１１】
図８に示すクエリログに対して、ＴやＴ１のテーブル名、idやattr01の属性名などの、ユーザが指定するパラメタがワイルドカードに置き換えられたクエリログに基づいた時系列データを図９に示す。
【０１１２】
図９は、本実施例におけるクエリログを汎化することによって作成された時系列データの例を示す説明図である。図９は、ユーザが指定するパラメタが全て★に置き換えられることによって汎化されたクエリログに対応する。図９に示す時系列データは、図８に示すクエリログが整形されることによって作成された時系列データである。なお、図９における各行の右端に示されているＡ１〜Ａ３、Ｂ１〜Ｂ６は、汎化されたクエリログの各行に対応する汎化クエリを識別する記号である。
【０１１３】
すなわち、本実施例における予測ルール生成手段２０２は、図９に示す汎化されたクエリログに対応する汎化クエリが適合するログにおけるクエリを、汎化クエリと同一のクエリとみなして時系列データを扱う。
【０１１４】
図７に示す操作コマンドに対応する操作が行われた後、新たに図１０に示す操作コマンドに対応する操作が行われる。図１０は、本実施例における操作コマンドの他の例を示す説明図である。
【０１１５】
予測ルール生成手段２０２は、図９に示す汎化されたクエリログに対応する汎化クエリに、各クエリが適合するか否かを確認する。ワイルドカード（図９に示す★）はどのような値でもよいため、予測ルール生成手段２０２は、図１０に示す１つ目のHiveに対するクエリが、図９に示すＡ１の汎化クエリに適合するとみなす。
【０１１６】
同様に、予測ルール生成手段２０２は、図１０に示す２つ目のHiveに対するクエリが、図９に示すＡ３の汎化クエリに適合するとみなす。従って、予測ルール生成手段２０２は、各クエリが、各汎化クエリとそれぞれ同一であるとみなす。
【０１１７】
汎化の他の方法として、クエリを文字列とみなす方法がある。クエリを文字列とみなす場合、文字の類似性に基づいて同一のクエリであるか否かが判定される。類似性の判定には、tf/idf法、編集距離やコサイン類似度など、既存の様々な方法が用いられる。なお、本実施例において、クエリログは汎化されずにそのまま使用されてもよい。
【０１１８】
また、対象システムがデータベースであるクエリの場合、各クエリにより出力されるテーブルのスキーマが同一または類似であれば、各クエリを同一のクエリとみなす方法がある。また、同一または類似のクエリは、同一のクエリとみなされる。
【０１１９】
［１．２．トランザクションデータの作成］
クエリログからトランザクションの生成元になる時系列データが生成されたら、予測手段２０３は、トランザクションデータを作成する。データ変換装置２００には、予め外部から、時系列データにおける変換クエリを示す情報が与えられている。
【０１２０】
図９に示す例において、Ｂ４の汎化クエリが変換クエリである。図９に示すような整形処理を全ログに対して実施することによって得られた時系列データを図１１に示す。図１１は、本実施例における発生時刻順に並べられた汎化クエリと時系列データからのトランザクションの作成方法の例を示す説明図である。
【０１２１】
図１１（Ａ）は、発生時刻順に並べられた汎化クエリを示す。図１１（Ａ）に示すＡ１から６番目のＢまでが過去ログに対応する汎化クエリであり、Ａ７から７番目のＢまでが出力中のログに対応する汎化クエリである。図１１（Ａ）に示す時間軸において、右に進むほど時間が経過する。
【０１２２】
図１１（Ａ）には、変換元システムであるシステム３１０に導入されたHiveに対するクエリと、変換クエリＢ４のみが示されている。なお、図１１（Ａ）において変換クエリＢ４は「Ｂ」と記載されている。
【０１２３】
図１１（Ｂ）は、時系列データから作成されたトランザクションデータを示す。本実施例におけるトランザクションデータは、トランザクションの集合である。また、図１１（Ｂ）に示す例において、トランザクションは、変換クエリＢが必ず末尾に位置する時系列データである。
【０１２４】
変換クエリＢが必ず末尾に位置するトランザクションの作成方法として、様々な方法が考えられる。以下、３つのトランザクションの作成方法を説明する。
【０１２５】
第１のトランザクションの作成方法は、変換クエリＢの発生時刻を境に、作成元の時系列データを重複なく区切り、区切られたデータをトランザクションの単位にする方法である。
【０１２６】
第２のトランザクションの作成方法は、変換クエリＢの発生時刻を終点、ｋ個分前の変換クエリＢの発生時刻を始点とそれぞれして、作成元の時系列データを区切り、区切られたデータをトランザクションの単位にする方法である。なお、第１のトランザクションの作成方法は、ｋ＝１の場合に等しい。
【０１２７】
第１および第２のトランザクションの作成方法を図１１（Ｂ）に示す。図１１（Ｂ）は、ｋ＝１およびｋ＝２のときにそれぞれ作成されるトランザクションデータを示す。トランザクションデータにおける各行が、１つのトランザクションに対応する。なお、図１１（Ｂ）に示すトランザクションにおいて、末尾に位置するＢは省略されている。
【０１２８】
図１１を参照して、ｋ＝２のときの第２のトランザクションの作成方法を説明する。ｋ＝２に対するトランザクションデータの各トランザクション（行）は、Ｂで区切られたｋ個分前までの区間に対応する。よって、ｋ＝２に対するトランザクションデータにおける上からｉ番目のトランザクション（行）は、ｋ＝１に対するトランザクションデータにおける上から（ｉ−１）番目のトランザクション（行）とｉ番目のトランザクション（行）の和集合をとることによって作成される。
【０１２９】
第１のトランザクションの作成方法を用いた場合、トランザクションは容易に作成される。しかし、変換クエリが発生する前のクエリの傾向を検出し損ねる可能性がある。
【０１３０】
例えば、図１１に示す全てのＡ２が、左端のＡ１のクエリによる出力テーブルを入力にする場合、Ａ２とＡ１の間に依存関係が存在する。しかし、Ｂで区切られた区間をトランザクションとする場合、Ａ２とＡ１が同じトランザクションに含まれない可能性がある。
【０１３１】
Ａ２とＡ１が同じトランザクションに含まれない場合、分析者が、Ａ２とＡ１の間の依存関係を見落とす可能性がある。よって、第１のトランザクションの作成方法を用いると、変換クエリが発生する前のクエリの傾向を検出し損ねる可能性がある。
【０１３２】
上記のような見落としを減らすための方法として、複数の過去の区間を１つのトランザクションとみなす第２のトランザクションの作成方法は有用である。
【０１３３】
第３のトランザクションの作成方法は、所定のトランザクションの末尾に位置する変換クエリＢへの入力データを生成するために使用された、全ての過去のクエリを同一のトランザクションに含める方法である。すなわち、第３のトランザクションの作成方法では、入力データと出力データが一致する複数のクエリが１つのトランザクションに含められる。第３のトランザクションの作成方法によるトランザクションの作成例を図１２に示す。
【０１３４】
図１２は、本実施例における発生時刻順に並べられた汎化クエリと時系列データからのトランザクションの作成方法の他の例を示す説明図である。
【０１３５】
図１２（Ａ）は、発生時刻順に並べられた汎化クエリを示す。図１２（Ａ）に示すＡ１から６番目のＢまでが過去ログに対応する汎化クエリであり、Ａ７から７番目のＢまでが出力中のログに対応する汎化クエリである。また、各クエリの上に位置するデータがクエリの入力データ、下に位置するデータがクエリの出力データである。図１２（Ａ）に示す時間軸において、右に進むほど時間が経過する。また、図１２（Ｂ）は、時系列データから作成されたトランザクションデータを示す。
【０１３６】
図１２（Ａ）に示すように、例えば、左から１番目および３番目の区間における、Ｔ４を入力にする変換クエリＢが末尾に位置するトランザクションにおいて、Ｔ４を生成するために使用されたクエリは、Ａ４、Ａ３、Ａ２、Ａ１である。よって、図１２（Ｂ）に示すトランザクションデータにおける上から１番目および３番目のトランザクションに、Ａ４、Ａ３、Ａ２、Ａ１が含まれている。
【０１３７】
［１．３．予測ルールの作り方］
トランザクションデータから予測ルールを作成する方法として、様々な方法が考えられる。以下、２つの予測ルールの作成方法を説明する。
【０１３８】
第１の予測ルールの作成方法は、各トランザクションの末尾からｔ時間前までの期間に存在するクエリを予測ルールとみなす方法である。
【０１３９】
第１の予測ルールの作成方法を用いて、図１１（Ｂ）に示すｋ＝２に対するトランザクションデータから予測ルールを作成する例を説明する。なお、本例において、単位時間ｔごとにクエリが発生している。
【０１４０】
ｋ＝２に対するトランザクションデータの全てのトランザクションにおいて、末尾からｔ＝１前までの期間に存在するクエリはＡ４である。すなわち、末尾からｔ＝１前までの期間に存在するクエリの集合は｛Ａ４｝になる。
【０１４１】
また、ｋ＝２に対するトランザクションデータの各トランザクションにおいて、末尾からｔ＝２前までの期間に存在するクエリは、上からＡ３・Ａ４、Ａ３・Ａ４、Ａ２・Ａ４、Ａ６・Ａ４、Ａ６・Ａ４、Ａ４である。すなわち、末尾からｔ＝２前までの期間に存在するクエリの集合は｛Ａ２，Ａ３，Ａ４，Ａ６｝になる。
【０１４２】
第２の予測ルールの作成方法は、頻出アイテム集合を予測ルールとみなす方法である。
【０１４３】
頻出アイテム集合は、所定の閾値以上の頻度でトランザクションデータ全体に出現するアイテム集合を意味する。アイテムは、本実施例において、トランザクションに含まれるクエリに相当する。
【０１４４】
第２の予測ルールの作成方法を用いて、図１１（Ｂ）に示すｋ＝２に対するトランザクションデータから予測ルールを作成する例を説明する。
【０１４５】
本例における「頻度５０％でアイテム集合が出現」は、トランザクションデータに含まれる全トランザクションのうち、５０％のトランザクションに、アイテム集合が存在することを意味する。
【０１４６】
図１１（Ｂ）に示すように、頻度の閾値を５０％とすると、ｋ＝２に対するトランザクションデータにおける頻出アイテム集合は、｛Ａ２｝、｛Ａ４｝、｛Ａ２，Ａ４｝になる。同様に、頻度の閾値を５０％とすると、ｋ＝１に対するトランザクションデータにおける頻出アイテム集合は、｛Ａ４｝になる。
【０１４７】
また、図１２（Ｂ）に示すように、頻度の閾値を５０％とすると、ｋ＝３に対するトランザクションデータにおける頻出アイテム集合は多数存在する。
【０１４８】
［２．予測手段］
予測手段２０３は、ログの出力と同時にログを監視する。
【０１４９】
図１１（Ａ）および図１２（Ａ）に示すように、本実施例において、システム３１０に導入されたHiveに対してＡ７、Ａ８、Ａ２、Ａ９、Ａ４の順でクエリが発行される。抽出された予測ルールが｛Ａ２｝、｛Ａ４｝、および｛Ａ２，Ａ４｝である場合、監視中のログにおけるＡ２に、予測ルール｛Ａ２｝が最初に適合する。
【０１５０】
予測ルールが適合した場合、予測手段２０３は、適合した後に生成されるあらゆるデータに対して変換を要求される可能性があると予測し、予測した内容をデータ変換手段２０４に通知する。
【０１５１】
［３．データ変換手段］
上記のとおり、データ変換手段２０４は、対象システムのリソースを監視し、データ変換に要するリソースが使用されずに余っている場合、予測手段２０３からの通知を受け取ってから変換クエリが発生するまで、生成されるあらゆるデータを投機的に変換する。
【０１５２】
また、全てのデータ変換に要するリソースが余っていない場合、データ変換手段２０４は、既に投機的に実行しているデータ変換処理のうち、優先度の低いデータに対する変換処理を中止し、優先度の高いデータに対する変換処理のみを継続して実行する。以下、２つのデータの優先度の決定方法を説明する。
【０１５３】
第１のデータの優先度の決定方法は、ユーザからの指示に基づいて優先度を決定する方法である。第１の決定方法において、ユーザは、リソースに余裕がないとき、優先的に変換してほしいデータを事前にデータ変換装置２００に対して指定する。
【０１５４】
全てのデータ変換に要するリソースが余っていない場合、データ変換手段２０４は、指定されたデータ以外のデータに対する変換処理のうち、既に投機的に実行されている変換処理を中止する。また、データ変換手段２０４は、指定されたデータに対する変換処理を継続して実行する。
【０１５５】
第２のデータの優先度の決定方法は、データ変換装置２００が生成されるデータに対して変換要求の対象になる確率を推定し、推定された確率に基づいて優先度を決定する方法である。
【０１５６】
全てのデータ変換に要するリソースが余っていない場合、データ変換手段２０４は、推定された確率が小さいデータに対する変換処理のうち、既に投機的に実行されている変換処理を中止する。また、データ変換手段２０４は、推定された確率が大きいデータに対する変換処理を継続して実行する。また、推定された確率が等しい場合、データ変換手段２０４は、生成された時間が遅いデータを優先して変換してもよい。
【０１５７】
生成されるデータが変換要求の対象になる確率を算出する方法を以下に示す。
【０１５８】
抽出された予測ルールが適合する頻度は、トランザクションデータに依存する。予測ルールが適合する頻度は、統計学的に、変換クエリＢが発生する前に予測ルール（クエリパタン）が生じる確率として捉えられる。
【０１５９】
本実施例における頻出アイテム集合は、データが変換される前に発生するクエリのパタンとして抽出されている。従って、頻出アイテム集合の発生確率は、何らかのクエリのパタンが生じた後にデータが変換される確率に等しくなる。本実施例において、（頻出アイテム集合の頻度）＝（頻出アイテム集合の発生確率）と記載される。
【０１６０】
よって、データ変換装置２００は、各構成要素を以下のように制御することによって、変換が要求されるパタンとして利用される頻出アイテム集合（予測ルール）の頻度から、生成されるデータが変換要求の対象になる確率を算出できる。
【０１６１】
予測ルールを抽出した後、予測ルール生成手段２０２は、各予測ルールの頻度を事前に計算する。予測ルールの頻度が計算された状態で、予測手段２０３は、ログに適合した予測ルールをデータ変換手段２０４に通知する。
【０１６２】
データ変換手段２０４は、適合した予測ルールの頻度と等しい大きさの確率で、予測ルールが適合した後に生成されるデータが変換要求の対象になるとみなす。新しい予測ルールがログに適合すれば、データ変換手段２０４は、新しい予測ルールが適合した後に生成されるデータが変換要求の対象になる確率を、新しい予測ルールの頻度の大きさとみなす。
【０１６３】
予測ルール生成手段２０２による頻出アイテム集合の頻度の計算例を図１３に示す。図１３は、本実施例における予測ルール生成手段２０２により計算された頻出アイテム集合の頻度の例を示す説明図である。
【０１６４】
図１３に示すSupが、頻出アイテム集合の頻度に対応する。なお、Supの単位は％である。例えば、頻出アイテム集合｛Ａ１｝の頻度は８５％である。
【０１６５】
計算された頻出アイテム集合の発生確率（頻度）を用いることによって、データ変換手段２０４が生成されたデータの変換要求の対象になる確率を推定した例を図１４に示す。図１４は、本実施例におけるデータ変換手段２０４により推定されたデータの変換要求の対象になる確率の例を示す説明図である。
【０１６６】
図１４（Ａ）は、発生時刻順に並べられた汎化クエリを示す。また、各クエリの下に位置するデータがクエリの出力データである。図１４（Ａ）に示す時間軸において、右に進むほど時間が経過する。
【０１６７】
図１４（Ｂ）は、推定されたデータの変換要求の対象になる確率の例を示す。図１４（Ｂ）に示す例では、所定の時刻に生成されたデータが変換要求の対象になる確率が、頻出アイテム集合の発生確率に基づいた忘却曲線R(t)=Sup*e^(t/(S*size))で推定されている。
【０１６８】
忘却曲線におけるＳは、忘却曲線において記憶の強さを表すパラメタ（正数）である。値が大きいほど、時間経過に対してR(t)が減少しにくくなる（すなわち、忘れにくくなる）。
【０１６９】
忘却曲線におけるsizeは、クエリのパタンとして用いられるアイテム集合の集合濃度（要素数）である。例えば、アイテム集合｛Ａ４｝の集合濃度は１、アイテム集合｛Ａ４，Ａ７｝の集合濃度は２にそれぞれなる。
【０１７０】
アイテム集合は、集合濃度が大きいほど頻度が小さくなるが、多くのクエリ間の相関がアイテム集合に示される。よって、集合濃度が大きいアイテム集合が適合した場合、適合した後に生成されるデータは、より変換要求の対象になりやすいと考えられる。従って、集合濃度が大きいアイテム集合に対応する忘却曲線は、減少しにくく設計されている。
【０１７１】
図１４（Ａ）に示す例において、例えば時刻ｔ１において、頻出アイテム集合｛Ａ１｝がログに適合する。上記のとおり、｛Ａ１｝の頻度は８５％である。よって、データ変換手段２０４は、時刻ｔ１以降に生成されたデータ（例えば、図１４（Ａ）に示すＴ１）が変換要求の対象になる確率を最初８５％とし、忘却曲線に基づいて時間の経過と共に確率を減少させる。
【０１７２】
また、例えば時刻ｔ３において、頻出アイテム集合｛Ａ１，Ａ３｝と｛Ａ３｝がログに適合する。図１３に示すように、｛Ａ１，Ａ３｝の頻度は８０％、｛Ａ３｝の頻度は８５％である。
【０１７３】
データ変換手段２０４は、適合した頻出アイテム集合の発生確率のうち、最も大きい確率（すなわち、８５％）を採用する。データ変換手段２０４は、時刻ｔ３以降に生成されたデータ（例えば、図１４（Ａ）に示すＴ３）が変換要求の対象になる確率を最初８５％とし、忘却曲線に基づいて時間の経過と共に確率を再び減少させる。
【０１７４】
なお、本実施例において使用される優先度の決定方法は、上記の方法に限定されない。
【０１７５】
本実施形態におけるデータ変換装置は、対話的に分析できる装置の特性を向上できる。その理由は、データ変換手段２０４が、機械学習を実施するために求められるデータ変換処理を事前に行うためである。
【０１７６】
予測手段２０３は、分析者がデータ変換を要求する前に、過去の操作ログから変換要求の対象になる可能性があるデータを予測する。データ変換手段２０４は、予測手段２０３の予測に基づいて、データを事前に変換する。すなわち、属性生成を行った後に機械学習を行う際、分析者は、本実施形態におけるデータ変換装置を使用しない場合に比べて、データ変換に要する時間を待たずに機械学習を行うことができる。また、予測手段２０３が変換要求の対象になる可能性があるデータを予測するので、分析者は、図２０に示すような中間データに対する目視による確認が不要になる。
【０１７７】
本実施形態におけるデータ変換装置を含むデータ分析システムにおいて、システム全体の空間リソースや計算リソースが効率よく使用される。その理由は、データ変換手段２０４は、予測手段２０３が予測した変換要求の対象になる可能性があるデータのみを事前に変換するためである。すなわち、全てのデータが変換される場合に比べて、空間リソースが効率よく使用される。
【０１７８】
また、データ変換手段２０４が変換要求の対象になる可能性が高いデータを優先的に変換するため、計算リソースも効率よく使用される。本実施形態におけるデータ分析システムは、変換要求の対象になる可能性が高いデータを高精度に予測し、限られたリソースのみを用いて、予測されたデータを事前に変換できる。
【０１７９】
次に、本発明の概要を説明する。図１５は、本発明によるデータ変換装置の概要を示すブロック図である。本発明によるデータ変換装置１０は、対象システムに対する過去の操作のログから、データ変換操作が行われる前に行われている操作のパタンである操作パタンを抽出する抽出手段１１（例えば、予測ルール生成手段２０２）と、対象システムに対する操作のログに、抽出された操作パタンに該当する操作を示す内容が存在するか否かを判定する判定手段１２（例えば、予測手段２０３）と、判定手段１２が該当する操作を示す内容が存在すると判定した後に対象システムが生成するデータを、変換されたデータが使用される処理が開始される前に、データ変換操作に基づいて変換する変換手段１３（例えば、データ変換手段２０４）とを備える。
【０１８０】
そのような構成により、データ変換装置は、変換されるデータを予測し、予測したデータを事前に変換できる。
【０１８１】
また、変換手段１３は、対象システムを使用するユーザの作業を阻害しない量の対象システムのリソースを用いてデータを変換してもよい。
【０１８２】
そのような構成により、データ変換装置は、ユーザによる対象システムを使用した作業を阻害せずにデータを変換できる。
【０１８３】
また、変換手段１３は、対象システムが生成するデータのうち、優先度の高いデータを変換してもよい。
【０１８４】
そのような構成により、データ変換装置は、システムリソースが逼迫している時に、優先度の高いデータから順に変換できる。
【０１８５】
また、抽出手段１１は、時系列データである操作のログをトランザクションデータに変換した上で、操作パタンを抽出してもよい。
【０１８６】
そのような構成により、データ変換装置は、全トランザクションにおける操作パタンの出現率に基づいて、操作パタンを抽出できる。
【０１８７】
また、抽出手段１１は、時系列データである操作のログを汎化した上でトランザクションデータに変換してもよい。
【０１８８】
そのような構成により、データ変換装置は、操作パタンに適合する操作のログの対象を広げることができる。
【０１８９】
また、変換手段１３は、トランザクションデータにおける操作パタンの出現頻度に基づいて、所定の時点で生成されたデータに対してデータ変換操作が行われる確率を推定し、推定した確率に基づいてデータの変換の優先度を決定してもよい。
【０１９０】
そのような構成により、データ変換装置は、操作パタンの出現頻度に基づいてデータに対してデータ変換操作が行われる確率を推定し、推定された確率を用いてデータの優先度を決定できる。
【０１９１】
また、変換手段１３は、忘却曲線を用いて、所定の時点で生成されたデータに対してデータ変換操作が行われる確率を推定してもよい。
【０１９２】
そのような構成により、データ変換装置は、忘却曲線を用いて、データに対してデータ変換操作が行われる確率を推定できる。
【０１９３】
また、データ変換装置１０は、対象システムに対する操作のログを蓄積するログ蓄積手段（例えば、ログ蓄積手段２０１）を備えてもよい。
【０１９４】
図１６は、本発明によるデータ変換システムの概要を示すブロック図である。本発明によるデータ変換システム２０は、データ変換装置３０（例えば、データ変換装置２００）と、分析対象のデータを生成する対象システム４０（例えば、システム３１０）とを含むデータ変換システムであって、データ変換装置３０は、対象システム４０に対する過去の操作のログから、データ変換操作が行われる前に行われている操作のパタンである操作パタンを抽出する抽出手段３１（例えば、予測ルール生成手段２０２）と、対象システム４０に対する操作のログに、抽出された操作パタンに該当する操作を示す内容が存在するか否かを判定する判定手段３２（例えば、予測手段２０３）と、判定手段３２が該当する操作を示す内容が存在すると判定した後に対象システム４０が生成するデータを、変換されたデータが使用される処理が開始される前に、データ変換操作に基づいて変換する変換手段３３（例えば、データ変換手段２０４）とを含む。
【０１９５】
そのような構成により、データ変換システムは、変換されるデータを予測し、予測したデータを事前に変換できる。
【産業上の利用可能性】
【０１９６】
本発明は、ユーザが異なるシステムを使い分けて対話的に作業する用途に好適に適用可能である。具体的には、分析ビジネスにおける効率的な分析の用途に好適に適用可能である。
【符号の説明】
【０１９７】
１０、３０、２００  データ変換装置
１１、３１  抽出手段
１２、３２  判定手段
１３、３３  変換手段
２０、１００  データ変換システム
４０  対象システム
２０１  ログ蓄積手段
２０２  予測ルール生成手段
２０３  予測手段
２０４  データ変換手段
３１０、３２０  システム
３３０  メタデータ管理システム
３４０  共通ストレージ
【図１】
0006540218.tif 000002
【図２】
0006540218.tif 000003
【図３】
0006540218.tif 000004
【図４】
0006540218.tif 000005
【図５】
0006540218.tif 000006
【図６】
0006540218.tif 000007
【図７】
0006540218.tif 000008
【図８】
0006540218.tif 000009
【図９】
0006540218.tif 000010
【図１０】
0006540218.tif 000011
【図１１】
0006540218.tif 000012
【図１２】
0006540218.tif 000013
【図１３】
0006540218.tif 000014
【図１４】
0006540218.tif 000015
【図１５】
0006540218.tif 000016
【図１６】
0006540218.tif 000017
【図１７】
0006540218.tif 000018
【図１８】
0006540218.tif 000019
【図１９】
0006540218.tif 000020
【図２０】
0006540218.tif 000021