(57)【要約】【課題】データ分析処理を効率よく行う。【解決手段】データ分析システムは、処理実行部に現在デプロイされている資材の更新情報である現在デプロイ情報を記憶し、ソースコードの変更を受け付け、変更されたソースコードに基づきビルドを実行して新たな資材を生成し、現在デプロイ情報と新たな資材の更新情報との差を示す情報である変更情報を生成する。データ分析システムは、データ分析処理の実行に際し変更情報に基づき当該データ分析処理の処理要素の変更有無を判断し、変更されていると判断した場合、変更された処理要素よりも前に実行されるように分析処理定義情報に定義されている処理要素の実行を省略し、変更された処理要素よりも前に実行されるように定義されている処理要素が過去に生成したデータを用いて、変更された処理要素からデータ分析処理を実行する。【選択図】図１２
2019021176.tif 000002
【特許請求の範囲】
【請求項１】
データ分析処理を構成している複数の処理要素の実行順序を定義した情報を含む分析処理定義情報を記憶する記憶部と、
デプロイされている資材により前記分析処理定義情報に従って前記処理要素を実行し、前記処理要素の夫々が生成するデータを記憶する処理実行部と、
前記処理要素のソースコードに基づきビルドを実行してデプロイ対象となる資材を生成するビルド実行部と、
前記処理実行部に現在デプロイされている資材の更新情報である現在デプロイ情報を記憶し、前記ソースコードの変更を受け付け、変更された前記ソースコードに基づきビルドを実行して新たな前記資材を生成し、前記現在デプロイ情報と前記新たな資材の更新情報との差を示す情報である変更情報を生成する変更管理部と、
を含み、
前記処理実行部は、前記データ分析処理の実行に際し前記変更情報に基づき当該データ分析処理の前記処理要素の変更有無を判断し、変更されていると判断した場合、変更された前記処理要素よりも前に実行されるように前記分析処理定義情報に定義されている前記処理要素の実行を省略し、前記変更された処理要素よりも前に実行されるように前記分析処理定義情報に定義されている処理要素によって過去に生成された前記データを用いて、前記変更された処理要素から処理を実行する、
データ分析システム。
【請求項２】
請求項１に記載のデータ分析システムであって、
前記資材はアプリケーションアーカイブであり、
前記現在デプロイ情報は、前記アプリケーションアーカイブに含まれているコンポーネントの更新情報を含み、
前記変更情報は、前記現在デプロイ情報の前記更新情報と前記新たな資材の前記アプリケーションアーカイブに含まれているコンポーネントの前記更新情報との差を示す情報を含む、
データ分析システム。
【請求項３】
請求項２に記載のデータ分析システムであって、
前記処理要素の夫々は一つの前記アプリケーションアーカイブによって実現され、
前記ビルド実行部は、前記ソースコードに基づくコンポーネントがいずれの前記アプリケーションアーカイブに含まれているかを示す情報を管理し、
前記変更管理部は、前記ビルド実行部から取得される前記情報に基づき、前記アプリケーションアーカイブと前記コンポーネントとの対応を示す情報を含んだ前記変更情報を生成する、
データ分析システム。
【請求項４】
請求項１乃至３のいずれか一項に記載のデータ分析システムであって、
前記変更管理部は、前記ソースコードの変更を受け付けるソースコード変更情報受付部を有する、
データ分析システム。
【請求項５】
請求項１乃至３のいずれか一項に記載のデータ分析システムであって、
前記処理実行部は、前記分析処理定義情報を受け付けて記憶する分析処理定義情報受付部を有する、
データ分析システム。
【請求項６】
請求項１乃至３のいずれか一項に記載のデータ分析システムであって、
前記省略を行うか否かをユーザに選択させるユーザインタフェースを備え、
前記処理実行部は、前記ユーザインタフェースを介して前記省略を行わない旨が選択された場合、前記処理要素の変更有無に拘わらず、前記分析処理定義情報に定義されている前記処理要素を最初から順に実行する、
データ分析システム。
【請求項７】
情報処理装置が、
データ分析処理を構成している複数の処理要素の実行順序を定義した情報を含む分析処理定義情報を記憶するステップ、
デプロイされている資材により前記分析処理定義情報に従って前記処理要素を実行し、前記処理要素の夫々が生成するデータを記憶するステップ、
前記処理要素のソースコードに基づきビルドを実行してデプロイ対象となる資材を生成するステップ、
現在デプロイされている資材の更新情報である現在デプロイ情報を記憶し、前記ソースコードの変更を受け付け、変更された前記ソースコードに基づきビルドを実行して新たな前記資材を生成し、前記現在デプロイ情報と前記新たな資材の更新情報との差を示す情報である変更情報を生成するステップ、
前記データ分析処理の実行に際し前記変更情報に基づき当該データ分析処理の前記処理要素の変更有無を判断し、変更されていると判断した場合、変更された前記処理要素よりも前に実行されるように前記分析処理定義情報に定義されている前記処理要素の実行を省略し、前記変更された処理要素よりも前に実行されるように前記分析処理定義情報に定義されている処理要素が過去に生成した前記データを用いて、前記変更された処理要素から処理を実行するステップ、
を実行する、データ分析方法。
【請求項８】
請求項７に記載のデータ分析方法であって、
前記資材はアプリケーションアーカイブであり、
前記現在デプロイ情報は、前記アプリケーションアーカイブに含まれているコンポーネントの更新情報を含み、
前記変更情報は、前記現在デプロイ情報の前記更新情報と前記新たな資材の前記アプリケーションアーカイブに含まれているコンポーネントの前記更新情報との差を示す情報を含む、
データ分析方法。
【請求項９】
請求項８に記載のデータ分析方法であって、
前記処理要素の夫々は一つの前記アプリケーションアーカイブによって実現され、
前記情報処理装置が、
前記ソースコードに基づくコンポーネントがいずれの前記アプリケーションアーカイブに含まれているかを示す情報を管理するステップ、
前記情報に基づき、前記アプリケーションアーカイブと前記コンポーネントとの対応を示す情報を含んだ前記変更情報を生成するステップ、
をさらに実行する、データ分析方法。
【請求項１０】
請求項７乃至９のいずれか一項に記載のデータ分析方法であって、
前記情報処理装置が、前記ソースコードの変更を受け付けるステップ、
をさらに実行する、データ分析方法。
【請求項１１】
請求項７乃至９のいずれか一項に記載のデータ分析方法であって、
前記情報処理装置が、前記分析処理定義情報を受け付けて記憶するステップ、
をさらに実行する、データ分析方法。
【請求項１２】
請求項７乃至９のいずれか一項に記載のデータ分析方法であって、
前記情報処理装置は、前記省略を行うか否かをユーザに選択させるユーザインタフェースを備え、
前記情報処理装置が、前記ユーザインタフェースを介して前記省略を行わない旨が選択された場合、前記処理要素の変更有無に拘わらず、前記分析処理定義情報に定義されている前記処理要素を最初から順に実行するステップ、
をさらに実行する、データ分析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ分析システム、及びデータ分析方法に関する。
【背景技術】
【０００２】
特許文献１には、「分析処理の中間段階で生成されるデータを効率よく保存して中間データを再利用する」、「分析の中間段階で生成されたデータを保存しておき、保存したデータに対するフィードバック情報を定量化したものを評価値として受け付け、評価値が与えられなかった中間データについては優先的に削除する一方で、特に高い評価値を受け付けた中間データに対しては、類似するデータの分析処理を行い、比較対象となるデータの分析や派生的に想定される分析が高速に行えるように、バックグラウンド処理で中間データの自動管理を行う。」と記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２９１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
情報処理装置を用いたデータ分析業務においては試行錯誤を繰り返しながら作業を進めていくことが多い。とくにビッグデータ等の大量のデータを対象としたデータ分析においては、データ分析処理を構成している、データの収集、加工、分類、検索、分析、機械学習、可視化等を行う処理要素のアルゴリズム（ロジック）を調整しつつ作業を進めていくことが多い。
【０００５】
しかしこうした作業においては、一部の処理要素を変更する度にデータ分析処理の全体を最初から実行し直す必要があり、対象となるデータが膨大であったり処理が複雑な場合は結果を得るまでに長時間を要し、データ分析業務の効率化を阻害する要因となっている。ここで上記特許文献１には、中間データを再利用することが記載されているが、一連の分析処理の途中から再実行する観点に基づく仕組みについては何ら開示されていない。
【０００６】
本発明は、データ分析業務を効率よく行うことが可能な、データ分析システム及びデータ分析方法を提供することを目的としている。
【課題を解決するための手段】
【０００７】
本発明の一つは、データ分析システムであって、データ分析処理を構成している複数の処理要素の実行順序を定義した情報を含む分析処理定義情報を記憶する記憶部と、デプロイされている資材により前記分析処理定義情報に従って前記処理要素を実行し、前記処理要素の夫々が生成するデータを記憶する処理実行部と、前記処理要素のソースコードに基づきビルドを実行してデプロイ対象となる資材を生成するビルド実行部と、前記処理実行部に現在デプロイされている資材の更新情報である現在デプロイ情報を記憶し、前記ソースコードの変更を受け付け、変更された前記ソースコードに基づきビルドを実行して新たな前記資材を生成し、前記現在デプロイ情報と前記新たな資材の更新情報との差を示す情報である変更情報を生成する変更管理部と、を含み、前記処理実行部は、前記データ分析処理の実行に際し前記変更情報に基づき当該データ分析処理の前記処理要素の変更有無を判断し、変更されていると判断した場合、変更された前記処理要素よりも前に実行されるように前記分析処理定義情報に定義されている前記処理要素の実行を省略し、前記変更された処理要素の前に実行されるように前記分析処理定義情報に定義されている処理要素が
過去に生成した前記データを用いて、前記変更された処理要素から処理を実行する。
【０００８】
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄、及び図面により明らかにされる。
【発明の効果】
【０００９】
本発明によれば、データ分析業務を効率よく行うことができる。
【図面の簡単な説明】
【００１０】
【図１】データ分析システムの概略的な構成を示す図である。
【図２】データ分析システムの実現に用いられる情報処理装置の一例である。
【図３】ソース管理装置、ビルド装置、及び変更管理装置の夫々が備える機能、及びこれらの装置が管理する情報（データ）を説明する図である。
【図４】変更管理装置及び実行装置が備える機能、及びこれらの装置が管理する情報（データ）を説明する図である。
【図５】分析処理定義情報の一例である。
【図６】現在デプロイ情報の一例である。
【図７】変更情報の一例である。
【図８】データ分析システムにおいて行われる処理を説明するシーケンス図である。
【図９】実行装置が行う処理を説明するフローチャートである。
【図１０】データレイクにおけるデータの管理形態の一例を示す図である。
【図１１】実行装置が実行する分析処理の流れと分析処理によってデータレイクに格納されるデータの関係を示す図である。
【図１２】実行装置が実行する分析処理の流れと分析処理によってデータレイクに格納されるデータの関係を示す図である。
【図１３】実行要求指示画面の一例である。
【発明を実施するための形態】
【００１１】
以下、実施形態につき図面を参照しつつ説明する。以下の説明において、同一又は類似する構成に同一の符号を付して重複した説明を省略することがある。
【００１２】
図１に実施形態として説明するデータ分析システム１の概略的な構成を示している。データ分析システム１は、サーバセグメント２及びユーザセグメント３の各管理セグメントに所属する情報処理装置を含む。サーバセグメント２に所属する情報処理装置とユーザセグメント３に所属する情報処理装置とは、通信ネットワーク５を介して通信可能に接続されている。通信ネットワーク５は、例えば、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、インターネット（Internet）、専用線等である。
【００１３】
データ分析システム１のユーザ（データ分析業務を行う者。例えば、データサイエンティスト、データ分析に関する処理（以下、データ分析処理と称する。）のプログラムの開発や保守を行う者等。）は、ユーザセグメント３に所属するユーザ端末１１０を利用してサーバセグメント２に所属する情報処理装置にアクセスする。
【００１４】
同図に示すように、サーバセグメント２は、ソース管理装置１０１、ビルド装置１０２、変更管理装置１０３、及び実行装置１０４の複数の情報処理装置を含む。尚、本例では、このように複数の情報処理装置に機能を分散させているが、複数の機能を一つ以上の共通の情報処理装置に実現させるようにしてもよい。
【００１５】
図２は、サーバセグメント２に所属する、ソース管理装置１０１、ビルド装置１０２、変更管理装置１０３、実行装置１０４、及びユーザセグメント３に所属するユーザ端末１
１０、の夫々の実現に用いられる情報処理装置の一例（以下、情報処理装置１０と称する。）である。同図に示すように、情報処理装置１０は、プロセッサ１１、記憶装置１２、入力装置１３、出力装置１４、及び通信装置１５を備える。これらはバス等の通信手段を介して互いに通信可能に接続されている。尚、情報処理装置１０の全部または一部の構成を、例えば、クラウドシステムにおけるクラウドサーバ等の仮想的な資源を用いて実現する構成としてもよい。
【００１６】
プロセッサ１１は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro-Processing Unit）、ＧＰＵ（Graphics Processing Unit）等を用いて構成される。ソース管理装置１０１、ビルド装置１０２、変更管理装置１０３、実行装置１０４、及びユーザ端末１１０の全部又は一部の機能は、例えば、プロセッサ１１が、記憶装置１２に格納されているプログラムを読み出して実行することにより実現される。情報処理装置１０は、例えば、オペレーティングシステム、ファイルシステム、デバイスドライバ、ＤＢＭＳ（DataBase Management System）等の機能を備えていてもよい。後述するソースリポジトリ１０６、アーカイブリポジトリ１０７、データレイク１０８、現在デプロイ情報１６０、及び変更情報１７０は、例えば、ＤＢＭＳを用いて実現もしくは管理することができる。
【００１７】
記憶装置１２は、例えば、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、不揮発性半導体メモリ（Non-volatile memory）、ハードディスクドライブ、ＳＳ
Ｄ（Solid State Drive）等であり、プログラムやデータを記憶する。記憶装置１２に格
納される各情報（データ）は、例えば、ファイルシステムやＤＢＭＳによって管理される。
【００１８】
入力装置１３は、外部入力を受け付けるユーザインタフェースであり、例えば、キーボード、マウス、タッチパネル等である。出力装置１４は、処理経過や処理結果等の各種情報を外部に提供するユーザインタフェースであり、例えば、画像表示装置（液晶モニタ、ＬＣＤ（Liquid Crystal Display）、グラフィックカード等）、印字装置等である。
【００１９】
通信装置１５は、他の装置との間での通信を実現する装置であり、例えば、ＮＩＣ（Network Interface Card）や無線通信モジュールを用いて構成される。尚、例えば、情報処理装置１０が、通信装置１５を介して外部入力を受け付ける構成としてもよい。また例えば、情報処理装置１０が、処理経過や処理結果等の各種情報を通信装置１５を介して外部に提供する構成としてもよい。
【００２０】
図３は、サーバセグメント２に所属する、ソース管理装置１０１、ビルド装置１０２、及び変更管理装置１０３の夫々が備える機能、並びにこれらの装置が管理する情報（データ）を説明する図である。
【００２１】
ソース管理装置１０１は、プログラム管理部２０１を有する。ソース管理装置１０１は、ソースリポジトリ１０６を管理する。
【００２２】
ユーザがユーザ端末１１０を介してソース管理装置１０１にアクセスし、データ分析処理のソースコード（以下、分析ロジックとも称する。）をコミット（登録）すると、プログラム管理部２０１は、ユーザが作成もしくは更新したソースコードをソースリポジトリ１０６に登録する。プログラム管理部２０１は、ソースリポジトリ１０６に格納されているソースコードの更新情報（リビジョン情報、バージョン情報等）の管理を行う。例えば、プログラム管理部２０１は、同じタイミングでコミットされた一群のソースコードに同一の更新情報を付与する。ソースコードは、例えば、Ｊａｖａ（登録商標）言語等を用いて記述される。
【００２３】
ビルド装置１０２は、ビルド実行部２０２を有する。ビルド装置１０２は、アーカイブリポジトリ１０７を管理する。アーカイブリポジトリ１０７には、ビルドを実行することにより生成される、実行装置１０４へのデプロイ（本番展開）の対象となる資材（以下、デプロイ対象資材とも称する。）が格納される。本例では、上記資材はアプリケーションアーカイブであるものとする。アプリケーションアーカイブの一例として、Ｊａｖａ（登録商標）における「ｊａｒ」ファイルがある。
【００２４】
変更管理装置１０３は、変更管理部２０３を有する。変更管理装置１０３は、現在デプロイ情報１６０及び変更情報１７０を管理する。現在デプロイ情報１６０は、実行装置１０４に現在デプロイされているアプリケーションアーカイブに含まれている各コンポーネント（アプリケーションアーカイブの構成要素。例えば、ソースコードに対応する実行モジュール等。）の更新情報を含む。一方、変更情報１７０は、直近に実行されたビルドで生成されたアプリケーションアーカイブに含まれている各コンポーネントの更新情報と現在デプロイ情報１６０の各コンポーネントの更新情報との差を示す情報を含む。
【００２５】
変更管理部２０３は、ユーザ端末１１０から「変更情報の生成指示」を受信すると、ソース管理装置１０１から、ソースコードに関する情報（各ソースコードのプログラム名（例えば、後述する図６のプログラム名１６２）と各ソースコードの更新情報（例えば、後述する図６の更新情報１６３）を含む。以下、ソース情報とも称する。）を取得する。
【００２６】
また変更管理部２０３は、ビルド装置１０２からアプリケーションアーカイブに関する情報（どのコンポーネントがどのアプリケーションアーカイブにパッケージングされるかを示す情報（例えば、後述する図６のアプリケーションアーカイブ名１６１とプログラム名１６２との対応を示す情報。）を含む。以下、ビルド情報と称する。）を取得する。
【００２７】
変更管理部２０３は、直近に実行されたビルドにより生成されたアプリケーションアーカイブに含まれている各コンポーネントの更新情報を現在デプロイ情報１６０の更新情報と比較することにより両者の差を特定し、特定した結果を変更情報１７０として出力する。変更情報１７０の詳細については後述する。
【００２８】
変更管理部２０３は、ユーザ端末１１０から「現在デプロイ情報の更新指示」を受信すると、変更情報１７０の内容に基づき、現在デプロイ情報１６０を最新の内容に更新する。
【００２９】
図４は、サーバセグメント２に所属する、変更管理装置１０３及び実行装置１０４が備える機能、並びにこれらの装置が管理する情報（データ）を説明する図である。
【００３０】
実行装置１０４（処理実行部）は、実行要求受付部３０１、処理実行制御部３０２、コマンド呼出部３０３、分析ロジック実行部３０４、及びデータ入出力部３０５の各機能を有する。このうち実行要求受付部３０１、処理実行制御部３０２、コマンド呼出部３０３、及びデータ入出力部３０５は、例えば、データ分析業務を行うためのプラットフォームシステム（基盤システム）として予めユーザに提供される。
【００３１】
同図に示すように、実行装置１０４は、データレイク１０８を管理する。データレイク１０８には、例えば、分析対象となるデータ（例えば、Ｗｅｂサイトから取得されるデータ、ＳＮＳ（Social Networking Service）から取得されたデータ、センサから収集した
データ、ＰＯＳ（point of sale）データ、アンケートデータ、いわゆるビックデータ等
。以下、分析対象データとも称する。）、実行装置１０４が実行するデータ分析処理の各処理断面で生成（後述する処理要素が実行される度に生成）されるデータ（以下、中間データとも称する。）、分析処理の結果に関する情報を含んだデータ（以下、結果データと
も称する。）等が管理される。
【００３２】
データレイク１０８は、例えば、分析対象データを当該分析対象データの取得元の形式（ネイティブフォーマット）で蓄積記憶し、データ入出力部３０５からの要求に応じて分析対象データを必要とされる形式のデータ（構造化データ、半構造化データ、非構造化データ等）に変換してデータ入出力部３０５に提供する。尚、上記変換は、例えば、ＥＴＬツール（ETL:Extract/Transform/Load）を用いて行われる。
【００３３】
実行装置１０４は、分析処理定義情報３０６を記憶する。分析処理定義情報３０６には、データ分析処理を構成する複数の処理要素の実行順序を指定した情報が記述される。分析処理定義情報３０６は、例えば、実行装置１０４やユーザ端末１１０が提供する設定機能を利用してユーザが作成する。本例では、分析処理定義情報３０６はデプロイ対象資材の一つであるものとする。
【００３４】
図５に分析処理定義情報３０６の一例を示す。同図に示すように、分析処理定義情報３０６には、順に実行される各処理要素の夫々の実行制御文が実行順に記述されている。本例では、処理要素１〜処理要素５までの５つの処理要素が実行順に記述されている。各実行制御文は、実行コマンドとその実行対象となるファイル（Ｊａｖａ（登録商標）における「ｊａｒ」形式ファイル）のファイル名の記述とを含む。
【００３５】
図４に戻り、実行要求受付部３０１は、ユーザ端末１１０からデータ分析処理の実行要求を受け付ける。尚、分析処理定義情報３０６は、予め実行装置１０４に格納しておくようにしてもよいが、例えば、実行要求受付部３０１が、ユーザ端末１１０から、上記実行要求とともに分析処理定義情報３０６を受け付けて記憶するようにしてもよい。実行要求受付部３０１は、上記実行要求を受け付けると、処理実行制御部３０２にデータ分析処理の実行指示を行う。また実行要求受付部３０１は、上記実行指示によるデータ分析処理の実行結果をユーザ端末１１０に提供する。
【００３６】
処理実行制御部３０２は、データ分析処理の実行を制御する。処理実行制御部３０２は、現在デプロイされているアプリケーションアーカイブにより分析処理定義情報３０６に従ってデータ分析処理を実行する。処理実行制御部３０２は、実行要求受付部３０１から上記実行指示を受けると変更管理装置１０３の変更管理部２０３から変更情報１７０を取得し、変更情報１７０の内容をコマンド呼出部３０３に入力する。
【００３７】
コマンド呼出部３０３は、分析処理定義情報３０６に従ってデータ分析処理を実行（分析処理定義情報３０６に記述されている処理要素を実行）する。コマンド呼出部３０３は、分析ロジック実行部３０４と連係しつつ分析処理を実行する。コマンド呼出部３０３は、後述する第２実行モードが選択されている場合、変更情報１７０に基づき、各処理要素の変更有無（処理要素を実現するアプリケーションアーカイブの変更有無）を確認する。処理要素に変更がある場合、分析処理定義情報３０６に記述されている処理要素のうち省略可能な処理要素の実行を省略（スキップ）する。
【００３８】
分析ロジック実行部３０４は、コマンド呼出部３０３から呼び出された実行コマンド（処理要素）を実行する。分析ロジック実行部３０４は、処理要素の実行に際してデータレイク１０８にアクセス（データの入力又は出力）する必要がある場合、データ入出力部３０５と連携して処理を進める。
【００３９】
データ入出力部３０５は、例えば、データアクセスオブジェクトとして機能し、分析ロジック実行部３０４からの要求に応じてデータレイク１０８にアクセスする。
【００４０】
図６は前述した現在デプロイ情報１６０の一例である。同図に示すように、現在デプロイ情報１６０は、アプリケーションアーカイブ名１６１、プログラム名１６２、及び更新情報１６３の各項目を有する一つ以上のレコードで構成されている。
【００４１】
アプリケーションアーカイブ名１６１には、アプリケーションアーカイブを特定する情報が設定される。本例では、アプリケーションアーカイブ名１６１に「ｊａｒ」ファイルのファイル名（以下、アプリケーションアーカイブ名とも称する。）を設定している。プログラム名１６２には、ソースコードを特定する情報が設定される。本例ではソースコードのプログラム名を設定している。更新情報１６３には、上記ソースコードのリビジョン情報が設定される。
【００４２】
図７は前述した変更情報１７０の一例である。同図に示すように、変更情報１７０は、アプリケーションアーカイブ名１７１、プログラム名１７２、更新情報１７３、及び差分情報１７４の各項目を有する一つ以上のレコードで構成されている。
【００４３】
上記項目のうち、アプリケーションアーカイブ名１７１、プログラム名１７２、及び更新情報１７３については、現在デプロイ情報１６０のアプリケーションアーカイブ名１６１、プログラム名１６２、及び更新情報１６３と夫々同様であるので説明を省略する。差分情報１７４には、現在デプロイ情報１６０とソースコードの変更後に実行されたビルドにより生成された新たなアプリケーションアーカイブに関する情報との差を示す情報が設定される。本例の場合、ソースコードが変更（コンポーネントの更新情報が変更）されていれば「あり」が設定され、ソースコードが変更されていなければ空白が設定される。
【００４４】
図８は、データ分析システム１において行われる処理（ユーザにより変更されたソースコードがコミットされた後に行われるデータ分析処理の流れ）を説明するシーケンス図である。以下、同図とともに順に説明する。
【００４５】
まずユーザ端末１１０からソース管理装置１０１に対してコミット対象のソースコード及び当該ソースコードのコミット指示が送信される。ソース管理装置１０１は、上記ソースコードのコミット指示を受信すると、上記コミット指示とともに受信したソースコードをソースリポジトリ１０６にコミット（登録）する（Ｓ８０１）。
【００４６】
続いて、ユーザ端末１１０からソース管理装置１０１に対してビルドの実行指示が送信される（Ｓ８０２）。上記実行指示を受信すると、ビルド装置１０２は、ソース管理装置１０１に対してソースコードの取得要求を送信する（Ｓ８０３）。
【００４７】
ソース管理装置１０１は、上記取得要求を受信すると、ビルド装置１０２にビルドに際して必要となるソースコードを送信する（Ｓ８０４）。
【００４８】
ビルド装置１０２は、ソース管理装置１０１からソースコードを受信すると、受信したソースコードを用いてビルドを実行し、アプリケーションアーカイブを生成する（Ｓ８０５）。尚、生成された上記アプリケーションアーカイブは後述するデプロイ処理におけるデプロイ対象資材となる。
【００４９】
続いて、ユーザ端末１１０から変更管理装置１０３に変更情報の生成指示が送信される（Ｓ８０６）。上記生成指示を受信すると、変更管理装置１０３は、ソース管理装置１０１にソース情報の取得要求を送信する（Ｓ８０７）。ソース管理装置１０１は、上記取得要求を受信すると、ソース情報を変更管理装置１０３に送信する（Ｓ８０８）。
【００５０】
続いて、変更管理装置１０３からビルド装置１０２に対してビルド時のビルド情報の取
得要求が送信される（Ｓ８０９）。ビルド装置１０２は、上記取得要求を受信すると、ビルド情報を変更管理装置１０３に送信する（Ｓ８１０）。
【００５１】
尚、取得したソース情報とビルド情報に基づき、変更管理装置１０３は、ソースコードのリビジョン情報やソースコードがいずれのアプリケーションアーカイブに含まれるかといった情報を取得することが可能になる。
【００５２】
続いて、変更管理装置１０３は、現在デプロイ情報１６０と取得したソース情報及びビルド情報とに基づき変更情報１７０を生成する（Ｓ８１１，Ｓ８１２）。変更情報１７０を生成すると、変更管理装置１０３は、ユーザ端末１１０に変更情報１７０の生成完了通知を送信する（Ｓ８１３）。
【００５３】
続いて、ユーザ端末１１０からビルド装置１０２にデプロイ対象資材の取得要求が送信される（Ｓ８１４）。ビルド装置１０２は、上記取得要求を受信すると、デプロイ資材をユーザ端末１１０に送信する（Ｓ８１５）。ユーザ端末１１０は、デプロイ対象資材を受信すると、受信したデプロイ対象資材を実行装置１０４にデプロイする（Ｓ８１６）。
【００５４】
続いて、ユーザ端末１１０から変更管理装置１０３に現在デプロイ情報１６０の更新指示が送信される（Ｓ８１７）。変更管理装置１０３は、上記更新指示を受信すると、変更情報１７０の内容に基づき、現在デプロイ情報１６０を最新の内容に更新する（Ｓ８１８）。現在デプロイ情報１６０を更新すると、変更管理装置１０３は、ユーザ端末１１０に現在デプロイ情報１６０の更新完了通知を送信する（Ｓ８１９）。
【００５５】
続いて、ユーザ端末１１０から実行装置１０４にデータ分析処理の実行指示が送信される（Ｓ８２０）。尚、上記実行指示に際し、ユーザは、ユーザ端末１１０に対して、分析処理定義情報３０６に記述されている処理要素を最初から最後まで順に実行する実行モード（以下、第１実行モードと称する。）と、分析処理定義情報３０６に記述されている処理要素のうち、ソースコード（コンポーネント）が変更された処理要素よりも前の処理要素の実行を省略（スキップ）し、ソースコードが変更された処理要素以降の処理要素から順に再実行する実行モード（以下、第２実行モードと称する。）のうちのいずれかを指定することができる。ユーザが第２実行モードを選択した場合、実行装置１０４は、過去に行われたデータ分析処理で生成されてデータレイク１０８に格納されているデータを再利用してソースコードが変更された処理要素以降の処理要素を実行する。
【００５６】
実行装置１０４は、ユーザ端末１１０から上記実行指示を受信すると、実行指示を受け付けた旨の応答をユーザ端末１１０に送信する（Ｓ８２１）。尚、実行装置１０４によるデータ分析処理は、例えば、ユーザ端末１１０とは独立して（非同期で）行ってもよい。
【００５７】
データ分析処理の実行に先立ち、実行装置１０４は、変更情報１７０の取得要求を変更管理装置１０３に送信する（Ｓ８２２）。変更管理装置１０３は、上記取得要求を受信すると、変更情報１７０を実行装置１０４に送信する（Ｓ８２３）。
【００５８】
変更情報１７０を受信すると、実行装置１０４は、ユーザが選択した実行モードでデータ分析処理を実行する（Ｓ８２４）。尚、Ｓ８２４の処理の詳細については後述する。
【００５９】
データ分析処理の実行後、実行装置１０４は、データ分析処理の結果（結果データ）をデータレイク１０８に格納する（Ｓ８２５）。
【００６０】
図９は、図８のＳ８２４にて実行装置１０４が行う処理の詳細を説明するフローチャートである。以下、同図とともに説明する。
【００６１】
まず実行装置１０４は、ユーザ端末１１０から受信した実行指示に対応してこれから実行するデータ分析処理に識別子（以下、実行ＩＤと称する。）を付与する（Ｓ９０１）。
【００６２】
続いて、実行装置１０４は、変更管理装置１０３から変更情報１７０を取得する（Ｓ９０２）。
【００６３】
続いて、実行装置１０４は、いずれの実行モードが選択されているかを判断する（Ｓ９０３）。第１実行モードが選択されている場合（Ｓ９０３：第１実行モード）、実行装置１０４は、分析処理定義情報３０６に記述されている処理要素を最初から最後まで順に実行する（Ｓ９０４〜Ｓ９０７）。一方、第２実行モードが選択されている場合（Ｓ９０３：第２実行モード）、処理はＳ９１０に進む。
【００６４】
Ｓ９１０では、実行装置１０４は、分析処理定義情報３０６に最初に記述されている処理要素を選択する。続いて、実行装置１０４は、変更情報１７０に基づき、選択中の処理要素が変更されているか否か（処理要素を実現するアプリケーションアーカイブのコンポーネントが変更されているか否か）を判断する（Ｓ９１１）。選択中の処理要素が変更されている場合（Ｓ９１１：ＹＥＳ）、処理はＳ９０５に進み、実行装置１０４は、選択中の処理要素から分析処理定義情報３０６に記述されている最後の処理要素まで順に処理を実行する（Ｓ９０５〜Ｓ９０７）。
【００６５】
一方、選択中の処理要素が変更されていない場合（Ｓ９１１：ＮＯ）、処理はＳ９１２に進む。Ｓ９１２では、実行装置１０４は、選択中の処理要素の実行を省略（スキップ）する。続いて、実行装置１０４は、分析処理定義情報３０６に後続の処理要素が記述されているか否かを判断する（Ｓ９１３）。後続の処理要素が記述されている場合（Ｓ９１１：ＹＥＳ）、実行装置１０４は、次の処理要素を選択し直し（Ｓ９１４）、新たに選択した処理要素についてＳ９１１からの処理を行う。一方、後続の処理要素が記述されていない場合（即ちデータ処理要素の全ての処理要素が変更されていない場合）（Ｓ９１１：ＮＯ）、処理は終了する。
【００６６】
尚、処理要素の実行を省略（スキップ）した（Ｓ９１２）後にＳ９１１からＳ９０５に進んで（Ｓ９１１：ＹＥＳ）分析処理定義情報３０６に記述されている処理要素のうち途中の処理要素からデータ分析処理を再実行する場合、実行装置１０４は、再実行する処理要素に、過去のデータ分析処理（ソースコードが変更される前に行われたデータ分析処理）において、再実行を開始する処理要素の前（例えば直前）の処理要素（再実行を開始する処理要素よりも前（例えば直前）に実行されるように分析処理定義情報３０６に記述されている処理要素）によって生成されたデータ（入力データや中間データ）を入力として与える。尚、上記再実行に際し、例えば、当該再実行を開始する処理要素の前に実行されるように分析処理定義情報３０６に記述されている処理要素が過去に生成したデータのうちいずれのデータを用いるかを、データ分析処理の態様に応じて設定（自動設定、ユーザ設定等）できるようにしてもよい。
【００６７】
図１０は、データレイク１０８におけるデータの管理形態の一例である。同図に示すように、この例では、データレイク１０８に、図９のＳ９０１において分析処理に付与された実行ＩＤ毎（実行装置１０４がユーザ端末１１０から受け付けたデータ分析処理の実行指示毎）にデータ空間が確保されている。データ空間は、例えば、実行装置１０４が実行ＩＤを付与した際にデータ入出力部３０５又はデータレイク１０８によって自動的に確保される。この例では、データレイク１０８に、実行ＩＤが「１」のデータ分析処理について確保されたデータ空間１０１０と、実行ＩＤが「２」のデータ分析処理について確保されたデータ空間１０２０とが設けられている。各データ空間には、データ分析処理の各処
理要素によって生成されるデータ（入力データ、中間データ、結果データ等）が格納される（本例では、「キー」と値「値」の組み合わせを含む一つ以上のレコードで構成されたデータを一例として示している。）。
【００６８】
図１１は、実行装置１０４がデータ分析処理の流れとデータ分析処理が実行されることによりデータレイク１０８に格納されるデータ（テーブル）との関係を示す図である。以下、同図とともに説明する。
【００６９】
まず実行装置１０４は、データ分析処理に実行ＩＤとして「１」を付与し、データレイク１０８に実行ＩＤが「１」のデータ空間１１５０を確保する（図９のＳ９０１）。
【００７０】
続いて、実行装置１０４が処理要素１（Ｓ１１１１）を実行することにより、データレイク１０８の実行ＩＤが「１」のデータ空間１１５０にテーブル１（入力データ）１１５１が格納される（図９のＳ９０４）。
【００７１】
続いて、実行装置１０４が処理要素２（Ｓ１１１２）、処理要素３（Ｓ１１１３）、及び処理要素４（Ｓ１１１４）を順に実行することにより、実行ＩＤが「１」のデータ空間１１５０に、テーブル２（中間データ）１１５２、テーブル３（中間データ）１１５３、及びテーブル４（中間データ）１１５４が順に生成される。
【００７２】
続いて、実行装置１０４が処理要素５（Ｓ１１１５）を実行することにより、実行ＩＤが「１」のデータ空間１１５０にテーブル５（結果データ）１１５５が生成される（図９のＳ９０５〜Ｓ９０７）。
【００７３】
図１２は、図１１に示したデータ分析処理が実行された後、処理要素３（Ｓ１１１３）が変更（処理要素３のソースコードが変更）されてビルドが行われ、その後にデータ分析処理が再実行された場合におけるデータ分析処理の流れと、データレイク１０８に格納されるデータ（テーブル）との関係を示す図である。この例では、実行装置１０４は、図１１に示したデータ分析処理で生成されたデータ（テーブル）を利用してデータ分析処理を再実行する。
【００７４】
まず実行装置１０４は、再実行するデータ分析処理に実行ＩＤとして「２」を付与し、データレイク１０８に実行ＩＤが「２」のデータ空間１２５０を確保する（図９のＳ９０１）。尚、図１２に示すデータ分析処理が行われる際、データ空間１１５０はデータレイク１０８に確保されたままであり、図１１に示したデータ分析処理においてデータ空間１１５０に格納されたデータは全てデータレイク１０８に格納されている（残っている）ものとする。
【００７５】
続いて、実行装置１０４は、変更情報１７０に基づき処理要素１（Ｓ１１１１）及び処理要素２（Ｓ１１１２）が変更されていないことを確認し、処理要素１（Ｓ１１１１）及び処理要素２（Ｓ１１１２）の実行を省略（スキップ）する（図９の（Ｓ９１１：ＮＯ）及びＳ９１２）。
【００７６】
続いて、実行装置１０４は、処理要素３（Ｓ１１１３）のソースコードが変更されていることを確認し、図１１に示したデータ分析処理で生成されたテーブル２（中間データ）１１５２を入力として処理要素３（Ｓ１１１３）を実行する。これによりデータレイク１０８の実行ＩＤが「２」のデータ空間１２５０にテーブル３（中間データ）１１６１が格納される。
【００７７】
続いて、実行装置１０４は、処理要素４（Ｓ１１１４）及び処理要素５（Ｓ１１１５）
を実行し、これにより実行ＩＤが「２」のデータ空間１２５０にテーブル４（中間データ）１１６２及びテーブル５（結果データ）１１６５が格納される（図９の（Ｓ９１１：ＹＥＳ）、Ｓ９０５〜Ｓ９０７）。
【００７８】
図１３は、図４でユーザがユーザ端末１１０を介して実行装置１０４にデータ分析処理の実行要求を行う際、ユーザ端末１１０がユーザに提供するユーザインタフェース（実行要求指示画面１３００）の一例である。同図に示すように、実行要求指示画面１３００は、データ分析処理の指定欄１３１１、実行モードの選択欄１３１２、及び実行要求指示ボタン１３１３を含む。
【００７９】
ユーザは、データ分析処理の指定欄１３１１にデータ分析処理の識別子（データ分析処理ＩＤ）を指定することで、実行装置１０４に実行させようとするデータ分析処理を指定することができる。またユーザは、実行モードの選択欄１３１２を介して前述した実行モードを指定することができる。またユーザは、実行要求指示ボタン１３１３を操作することで、データ分析処理の実行要求を実行装置１０４に対して行うことができる。
【００８０】
以上に説明したように、本実施形態のデータ分析システム１にあっては、変更された処理要素を自動的に特定し、特定した処理要素から、過去に実行されたデータ分析処理で生成されたデータを利用して再実行するので、効率よくデータ分析処理を実行することができる。尚、本実施形態のデータ分析システム１によれば、例えば、大規模なプロジェクト等においてデータ分析システム１が複数のユーザで共有され、デプロイ対象資材の更新状況を正確に把握することが難しい場合でも、省略可能な処理要素を正確に特定することが可能であり、効率よくデータ分析業務を進めることができる。
【００８１】
ところで、本発明は以上に説明した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また上記実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００８２】
また上記の各構成、機能部、処理部、処理手段等は、それらの一部又は全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、ＳＳＤ等の記録装置、又はＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【００８３】
また上記の各図において、制御線や情報線は説明上必要と考えられるものを示しており、必ずしも実装上の全ての制御線や情報線を示しているとは限らない。例えば、実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
【００８４】
また以上に説明したデータ分析システム１の各種機能部、各種処理部、各種データベースの配置形態は一例に過ぎない。各種機能部、各種処理部、各種データベースの配置形態はデータ分析システム１が備えるハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。
【００８５】
また前述したデータベースの構成（スキーマ（Schema）等）は、リソースの効率的な利用、処理効率向上、アクセス効率向上、検索効率向上等の観点から柔軟に変更し得る。
【符号の説明】
【００８６】
１  データ分析システム、２  サーバセグメント、３  ユーザセグメント、５  通信ネットワーク、１０  情報処理装置、１０１  ソース管理装置、１０２  ビルド装置、１０３
変更管理装置、１０４  実行装置、１０６  ソースリポジトリ、１０７  アーカイブリポジトリ、１０８  データレイク、１１０  ユーザ端末、１６０  現在デプロイ情報、１７０  変更情報、２０１  プログラム管理部、２０２  ビルド実行部、２０３  変更管理部、３０１  実行要求受付部、３０２  処理実行制御部、３０３  コマンド呼出部、３０４  分析ロジック実行部、３０５  データ入出力部、３０６  分析処理定義情報
【図１】
2019021176.tif 000003
【図２】
2019021176.tif 000004
【図３】
2019021176.tif 000005
【図４】
2019021176.tif 000006
【図５】
2019021176.tif 000007
【図６】
2019021176.tif 000008
【図７】
2019021176.tif 000009
【図８】
2019021176.tif 000010
【図９】
2019021176.tif 000011
【図１０】
2019021176.tif 000012
【図１１】
2019021176.tif 000013
【図１２】
2019021176.tif 000014
【図１３】
2019021176.tif 000015