JP2017515180A - ビッグ・データ・リポジトリにおけるデータ・セットの処理 - Google Patents

ビッグ・データ・リポジトリにおけるデータ・セットの処理 Download PDF

Info

Publication number
JP2017515180A
JP2017515180A JP2016553316A JP2016553316A JP2017515180A JP 2017515180 A JP2017515180 A JP 2017515180A JP 2016553316 A JP2016553316 A JP 2016553316A JP 2016553316 A JP2016553316 A JP 2016553316A JP 2017515180 A JP2017515180 A JP 2017515180A
Authority
JP
Japan
Prior art keywords
data
agent
data set
agents
execution
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
JP2016553316A
Other languages
English (en)
Other versions
JP6505123B2 (ja
Inventor
セイレット、ヤニック
スミス、ハラルド、シー.
マイアー、ドクター.アルベルト
ウルフソーン、ダニエル、シー.
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2017515180A publication Critical patent/JP2017515180A/ja
Application granted granted Critical
Publication of JP6505123B2 publication Critical patent/JP6505123B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Document Processing Apparatus (AREA)

Abstract

【課題】本発明は、少なくとも非構造化データを格納するために、データ・リポジトリ(104)において複数のデータ・セット(105、106、108、110〜113、DB1、DB2)を処理するための方法を提供する。【解決手段】方法は、− エージェント(150〜168)のセットを準備するステップ(302)であって、各エージェントはデータ・セットのうちの一つ以上の処理をトリガするよう動作可能であり、前記エージェントに対し指定された一つ以上の条件が満たされた場合、前記エージェント各々の実行が自動的にトリガされ、これら条件の少なくとも一つは、前記エージェントによって処理のトリガが可能なデータ・セットの存在、構造、内容もしくは注釈またはこれらの組み合わせに関する、該準備するステップと、− これらエージェントのうちの第一エージェントを実行するステップ(304)と、− 該第一エージェントによって第一データ・セットの注釈(115)を更新するステップ(306)と、− エージェントのうちの第二エージェントを実行するステップ(308)であって、前記実行は、第一データ・セットの更新された注釈が第二エージェントの条件を満たすことによってトリガされ、これにより、第一データ・セットの注釈のさらなる更新をトリガする、前記実行するステップと、を含む。【選択図】図1

Description

本開示は、ビッグ・データ・リポジトリにおけるデータ処理の分野に関する。
データが、データ・ウェアハウス、マスタ・データ管理(MDM:master data management)またはビッグ・データ分析プログラムなどの情報管理プログラムで使用可能になる前に、複数の内部および外部ソースからの生データを、最終ユーザが有意義な仕方で使えるようなフォーマットで、統合されたデータ・リポジトリに組み入れるための多くのステップが必要である。最初に、特定のタスクのため必要な全情報を包含するデータ・ソース群を識別する必要がある。しかして、ユーザは、例えば、マニュアルの精査で、または利用可能なデータ・セットに対する意味データ・プロファイリング・ツールの実行をマニュアルでトリガすることによって、利用可能なデータ・セットの意味内容を知る必要がある。ユーザは、データ・プロファイリング・プロジェクトを開始し、関連性があると自分が考えるソースを組み入れることができる。しかしながら、前記のステップは、ユーザがどのようなソースが分析されるべきであるかを知っていることを既に必要としている。興味深いデータ・ソースが見逃されているかもしれない。さらに、ユーザは、どの種類の分析ツールがどの種類のデータ・フォーマットを必要とするかを知る必要があるので、利用可能なデータ・セットおよびツールになじむための時間と労力とを費やさなければならない。
データ組み入れは、一部のデータ・セットが、最終ユーザまたは最終ユーザの一部のグループには提示すべきでない秘密情報を含み得るという事実によって、さらに複雑になる可能性がある。利用可能なデータ・セットのデータ品質を確実にし、向上させることも課題となり得る。元のデータ・セット中にはデータが重複して格納されていたり、一部のデータ記録についての矛盾した情報が含まれていたり、または相異なるデータ・フォーマットおよび標準で提示されていたりする。
従来技術には、前述の要件の一部を満たせる複数の製品およびアプローチが存在するが、前記のツールは、ユーザのマニュアル制御および設定、もしくは事前定義された固定的ワークフロー・スキーマのいずれかに依存する。ユーザまたはワークフロー・スキーマは、特定の問題を解決するために、ツールのどの一つが、データ・セットのどの一つに、どの時点で適用されなければならないかを明確に特定する必要がある。マニュアルのデータ前処理およびプロファイリング・アプローチは、組み入れ対象のデータの量が少なく、且つ比較的複雑さの低い状況でだけ用いることが可能である。事前定義された、ワークフローベースのデータ処理アプローチは、処理対象のデータ・セットの定められたシーケンスを必要とし、これにより、前記データ・セットのシンタックスおよび内容が前もって分かる。かかるデータは、ワークフローベースのデータ処理あるいは別途処理の両方に関連して、しばしば構造化データと呼ばれる。
しかしながら、ビッグ・データ環境では、大量のデータを組み込んで処理する必要があり、組み込み対象のデータの内容も、シンタックスも、シーケンスも、ファイル・フォーマットも事前に知ることはできない。データ・セットに限らず、シンタックスおよび内容が前もって不明なかかるデータは、しばしば非構造化データと呼ばれる。特定のデータ・セットが、どのような場合に何時利用可能になり得るのか予見できないことがある。人間が、関与するデータ処理タスクの複雑さと動的性状を取り扱うのは不可能なので、マニュアルのアプローチを適用することはできない。また、事前定義されたワークフローに依存するアプローチも、動的に供給される新規データを動的に組み入れて処理するために必要となり得る全てのデータ前処理、プロファイリング、および分析ステップの種類およびシーケンスを予見するのは不可能なので適用可能ではない。しかして、マニュアル・アプローチもワークフローベースのアプローチも、ビッグ・データ環境によって取り扱いの対象となるデータの量、構造的および意味的不均質性、並びに予測不可能さに対処することができない。
例えば、特許文献1は、製造環境から得た生データを、報告目的で前記データをロードするため準備する方法を開示している。提示されたアプローチは、ETL作業と類似のどちらかといえば固定的なものである。特許文献2は、固定的データ処理スキーマに基づいて、異種混成データ・ソースからのデータを読み取り、準備するための自動化された方法によるビジネス分析のためのデータの変換を記述している。
米国特許第006381556(B1)号 米国特許第006643635(B2)号
ビッグ・データ環境では、大量のデータを組み込んで処理する必要があり、組み込み対象のデータの内容も、シンタックスも、シーケンスも、ファイル・フォーマットも事前に知ることはできない。データ・セットに限らず、シンタックスおよび内容が前もって不明なかかるデータは、しばしば非構造化データと呼ばれる。特定のデータ・セットが、どのような場合に何時利用可能になり得るのか予見できないことがある。人間が、関与するデータ処理タスクの複雑さと動的性状を取り扱うのは不可能なので、マニュアルのアプローチを適用することはできない。また、事前定義されたワークフローに依存するアプローチも、動的に供給される新規データを動的に組み入れて処理するために必要となり得る全てのデータ前処理、プロファイリング、および分析ステップの種類およびシーケンスを予見するのは不可能なので適用可能ではない。しかして、マニュアル・アプローチもワークフローベースのアプローチも、ビッグ・データ環境によって取り扱いの対象となるデータの量、構造的および意味的不均質性、並びに予測不可能さに対処することができない。
本発明の諸実施形態の目的は、ビッグ・データ環境におけるデータを処理するための改良されたアプローチを提供することである。この改良は、ビッグ・データ・リポジトリ中に搬送されることになる、または既に収納されているデータの処理を計画し、トリガし、管理するのに人間ユーザが費やさねばならない時間および作業の低減に関係し得る。また、この改良は、分析データ処理の向上された品質および秘密データの向上された安全性への、レガシ・データ処理プログラムのシームレスな組み入れにも関係し得る。さらに、利用可能性、内容、および構造が動的に変化し前もって予見することができないデータを、適切かつ柔軟に取り扱い、処理する、ビッグ・データ・リポジトリの能力も向上が可能である。
前記目的は、独立請求項の主題によって解決される。有利な諸実施形態が従属請求項に記述される。
本明細書で用いるデータ・リポジトリまたは「ビッグ・データ(Big Data)」リポジトリとは、構造化および非構造化データ・セットを格納し管理するためのデータ・コンテナである。ビッグ・データ・リポジトリ中への組み込み対象のデータ・セットは、意味的に、もしくは構文的にまたはその両方で異質であり得る。組み込みまたは処理対象のデータ・セットの順序、意味内容、ソースもしくは構文様式、またはこれらの組み合わせが予測不可能なこともある。連続的に新規データ・セットを組み込みながら既存のデータ・セットを処理する必要があり得る。ビッグ・データ・リポジトリによって管理可能なデータの量は、例えば、数十億〜数兆の記録を包含する、数ペタバイト(1,024テラバイト)または数エクサバイト(1,024ペタバイト)の範囲内など、大きなものとなり得る。ビッグ・データ・リポジトリに格納する対象となるデータの量は、従来式のデータベースおよびソフトウェア技法では処理ができないことがある。これらのデータは、(少なくとも一部において)データ分析のためには、不完全、機密、冗長的、不整合、または構文的に不適であり得る。
「注釈(annotation)」は、他のデータについて記述し該データに関連付けられたメタデータ(例えば、コメント、説明、一つ以上のタグまたはマークアップのセット、属性値のペアなど)である。注釈は、特定のデータ・セットに対し収集され、前記データ・セットに関連付けて格納されたメタデータであってよい。メタデータは、(データ構造の設計および仕様に関する)構造的メタデータもしくは(データ内容についての)記述的メタデータまたはその両方から成ってもよい。
用語「データ処理(data processing)」は、任意の種類のデータ・セットの前処理または処理を指し得る。例えば、データ処理は、任意の種類の意味的、統計的または構文的データ分析、データ・セットの書式設定、変換、マスキング、訂正、分割および組み合わせなどに言及し得る。
「条件(condition)」は、例えば処理対象のデータ・セットなど、特定のエンティティに関する語句であって、満されることも満たされないこともある。
「プログラム・エンジン(program engine)」は、例えば、アプリケーション・プログラム、スクリプト、(ウェブ)サービス、プログラム・モジュール、データベース・ルーティンなど、任意の種類の実行可能プログラム・ロジックである。
「エージェント(agent)」は、一つ以上の指定された条件を有し、前記条件の充足に応じ実行が自動的にトリガされる、例えば、アプリケーション・プログラム、スクリプト、(ウェブ)サービス、プログラム・モジュール、データベース・ルーティンなどの任意の種類の実行可能プログラム・ロジックである。前記条件の少なくとも一部は、前記エージェントによる処理の対象となるデータ・セット(前記データ・セットの注釈を含む)に関連する。エージェントは、データ・セットを、直接的に、あるいは本明細書では「プログラム・エンジン」と言われる他のプログラムの助力を得て間接的に処理することができる。
一態様において、本発明は、ビッグ・データ・リポジトリにおいて複数のデータ・セットを処理するためのコンピュータ実装の方法に関する。
エージェントのセットが提供される。各エージェントは、データ・セットのうちの一つ以上の処理をトリガするよう動作可能である。前記エージェントの各々の実行は、前記エージェントに指定された一つ以上の条件が満たされた場合に自動的にトリガされる。これらエージェント各々の条件の少なくとも一つは、前記エージェントによって処理がトリガされ得るデータ・セットの存在、構造、内容もしくは注釈、またはこれらの組み合わせに関する。例えば、ビッグ・データ・リポジトリ内での新規データ・セットの生成、または外部データ・セットのビッグ・データ・リポジトリ中への取り込みは、前記生成されたまたは取り込まれたデータ・セットが、ビッグ・データ・リポジトリ内に「存在」するとの条件を指定されているエージェントの実行をトリガするイベントを表現し得る。
本方法は、これらエージェントのうちの第一エージェントを実行するステップを含む。前記実行は、データ・セットのうちの第一データ・セットに関する該第一エージェントの条件が満たされることによってトリガされる。第一エージェントの実行は第一データ・セットの処理をトリガする。次いで、この第一データ・セットの注釈が、第一エージェントによって更新される。これにより、第一データ・セットの処理の結果が前記注釈中に含まれる。前記結果をもたらした第一データ・セットの処理は、第一エージェントによってトリガされたものである。特定のデータ・セットの注釈の「更新」は、前記データ・セットの既存の注釈の修正もしくは増補またはその両方を含んでもよく、あるいは前記データ・セットの注釈の新規生成であってもよい。前記新規のまたは更新された注釈は、前記データ・セットの処理の結果を含むことができる。
本方法は、これらエージェントのうちの第二エージェントを実行するステップをさらに含む。前記第二エージェントの実行は、第二エージェントの条件を満たす、第一データ・セットの更新された注釈によってトリガされる。第二エージェントの実行は、第一データ・セットのさらなる処理をトリガする。第二エージェントは、前記さらなる処理から得られた結果によって、第一データ・セットの注釈をさらに更新する。
諸実施形態によれば、エージェントのセットの各エージェントは、前記エージェントによる処理の対象となるデータ・セットのうちの一つの注釈の更新、もしくはビッグ・データ・リポジトリ中の新規データ・セットの検出、またはその両方によりによってだけトリガされ得る。前記検出は、ビッグ・データ・リポジトリのリポジトリ・マネージャによって実行することができる。前記エージェントの実行は、処理されたデータ・セットの注釈の更新をもたらす。この更新には、処理されたデータ・セットに対する注釈の最初の生成が含まれてよい。
いくつかの実施形態によれば、エージェントのセットは、前記エージェントによる処理対象のデータ・セットのうちの一つの注釈の更新によってだけトリガされ得る複数のエージェントのサブセットを含む。これら複数のエージェントは、ユーザに対し処理済みのデータ・セットまたは前記処理の何らかの結果を出力するために、データ・セットを自動的に処理および作成するよう動作可能である。前記エージェントのシーケンスは、データ・セット関連の条件の充足だけに基づいて実行され、しかして、完全にデータ駆動である動的且つ自動的に決定された処理タスクのシーケンスをたどる。
いくつかの実施形態によれば、データ・セットの処理は、エージェントによって直接的に実施される。さらなる諸実施形態によれば、ビッグ・データ・リポジトリは、複数のプログラム・エンジンによりアクセス可能である。各プログラム・エンジンはデータ・セットの少なくとも一つを処理するように動作可能である。エージェントの少なくとも一部は、それぞれに割り当てられたプログラム・エンジンの一つを有し、それぞれ、それらに割り当てられたプログラム・エンジンへのインターフェースを含む。これらエージェントは、それらのインターフェースを介して、それらそれぞれに割り当てられたプログラム・エンジンの実行を起動することによってデータ・セットの一つ以上の処理をトリガする。前記の特徴は、全プログラム・エージェントを、例えば、Java(R)、EJB(R)、.NET(R)などの第一プログラム言語またはフレームワークによって実装することを可能にできる一方、レガシ・プログラムであってもよい異なるフレームワークのプログラム・エンジンによっても実際の処理を行うことができる。
呼び出されたプログラム・エンジンは、呼び出したエージェントに処理の結果を返せばよい。呼び出したエージェントは、前記結果を(直接的に、または何らかの追加処理ステップの後)使うことができ、前記結果またはその派生物を前記データ・セットの注釈に追加することができる。これに加えまたは換えて、エージェントは、派生データ・セットを生成するために前記結果を用いてもよい。
諸実施形態によれば、本方法は、プログラム・エンジンの各々に対し、タスク・キューを備えるステップをさらに含む。エージェントの一つによる、これらエンジンの一つの実行のトリガは、前記一つのプログラム・エンジンによるデータ・セットの一つ以上を処理するためのタスクを、前記プログラム・エンジンのタスク・キューに追加することを含む。タスク・キューへの前記タスクの追加は、前記エージェントによって実行される。次いで、前記一つのプログラム・エンジンは、前記プログラム・エンジンのタスク・キューの順番に従って、一つ以上のデータ・セットを処理する。しかして、これらの複数のタスク・キューは、相異なる複数のエージェントにより実行をトリガされたタスクの処理を編成し管理することを可能にできる。
諸実施形態によれば、ビッグ・データ・リポジトリは、作業負荷マネージャに動作可能に連結される。エージェントの少なくとも一部は、同等なプログラム・エンジンのセットの実行をトリガするよう動作可能である。本明細書で用いる「同等なプログラム・エンジン」とは、データ・セットの所与の一つから同一の処理結果を生成するよう動作可能なプログラム・エンジンである。しかして、同等な処理エンジンは、機能的に相互に置き換えることができる。作業負荷マネージャは、例えば所定の時間間隔で(例えば、ミリ秒、秒、または分ごとに)、プログラム・エンジンの各々から作業負荷情報を反復して受信する。この作業負荷情報は、前記プログラム・エンジンの稼働率を示すものであってよい。特定のプログラム・エンジンの稼働率は、例えば、前記処理エンジンのキュー中のタスクの数によって特定することが可能である。これに加えてまたは換えて、プログラム・エンジンの稼働率は、例えば、CPU、ストレージ、メモリ、ネットワーク・トラフィックなどリソースの消費率を示すパラメータなど、前記プログラム・エンジンをホストするコンピュータ・システムの稼働率情報を含んでもよい。
作業負荷マネージャは、入力として受信された作業負荷情報を用い、エージェントの一つに割り当てられた同等なプログラム・エンジンの少なくとも一つのセットに対し、最低の容量消費を有するプログラム・エンジンを反復して自動的に判定する。次いで、作業負荷マネージャは、同等なプログラム・エンジンの前記セットが割り当てられたエージェントに対し、前記判定されたプログラム・エンジンの指摘を提示する。前記指摘を受信した後、前記エージェントは、前記エージェントに割り当てられた他の同等なプログラム・エンジンのどれか一つの実行をトリガするのではなく、指摘されたプログラム・エンジンの実行を選択的にトリガする。
諸実施形態によれば、プログラム・エンジンのどの一つの作業負荷情報も、前記プログラム・エンジンのタスク・キュー中に現在格納されているタスクの数を含む。
諸実施形態によれば、エージェントの少なくとも一部には、優先番号が割り当てられている。ビッグ・データ・リポジトリは、連続的に全てのエージェントのインスタンス化もしくは実行またはその両方を監視し何らかの監視情報を取得しているエージェント・マネージャに、動作可能に連結されている。エージェント・マネージャは、この情報に基づいて、少なくとも二つのエージェントが同一のデータ・セットを処理しようとしていることを自動的に判定する。これに加えてまたは換えて、エージェント・マネージャは、エージェントの少なくとも二つが、両方のエージェントに同時には提供できない計算リソース(例えば、CPU、メモリもしくはストレージ容量、または使われていないプログラム・エンジン)を要求していることを判定する。エージェント・マネージャは、該少なくとも二つのエージェントの優先番号を評価し、最高優先番号を有するエージェントに対し選択的に実行を許可する。エージェント・マネージャは、他の全ての評価されたエージェントを、恒久的にあるいは少なくとも最高の優先番号を有するエージェントの実行が終了するまで、阻止することが可能である。エージェントのこの優先付けは、いろいろな状況に対しフレキシブルに対応するデータ処理システムを提供することができる。例えば、二つのエージェント(またはそれらそれぞれの処理エンジン)が或る特定のデータ・セットへのアクセスを必要とすることがある。しかしながら、矛盾のあるデータ記録の生成を禁ずるため、前記データ・セットへのアクセスは、一度に一つのエージェント(または処理エンジン)だけに認可することが可能である。
いくつかの実施形態によれば、データ・セットの少なくとも一部には優先番号が割り当てられている。ビッグ・データ・リポジトリは、エージェント・マネージャに動作可能に連結される。エージェント・マネージャは、全てのエージェントのインスタンス化もしくは実行またはその両方を、連続的に監視する。エージェント・マネージャは、この監視情報に基づいて、エージェントの一つが、データ・セットのうちの二つ以上の相異なるデータ・セットの処理をトリガするために起動されたことを自動的に判定する。このとき、エージェント・マネージャは、前記二つ以上の相異なるデータ・セットの優先番号を評価する。エージェント・マネージャは、前記評価に基づいて、前記エージェントに、より高い優先番号を割り当てられたデータ・セットの処理をトリガさせる。エージェント・マネージャは、例えば、より低い優先番号を有する全ての他の評価されたデータ・セットが、少なくとも最高の優先番号を有する評価されたデータ・セットの処理が終了するまで、前記エージェントによって処理されるのを阻止することができる。あるいは、複数の同等な処理エンジンが利用可能で、前記エージェントに割り当てられている場合は、エージェント・マネージャは、前記エージェントに、最高の優先番号を有するデータ・セットの第一処理エンジンによる実行をトリガし、より低い優先番号を有するデータ・セットの第一処理エンジンと同等な第二処理エンジンによる実行をトリガするようにさせることも同様に可能である。
いくつかの実施形態によれば、処理エンジンの少なくとも一部は、Nのデータ・セットを並行して処理するよう動作可能にでき、Nは「1」より大きい整数である。このような場合、エージェント・マネージャは、最高の優先番号を有するNのデータ・セットを選択することが可能で、処理エンジンによって前記選択されたNのデータ・セットの並行処理をさせることができる。
相異なるデータ・セットの実行の優先付けは、エージェント・マネージャが、より高い優先番号を有するデータ・セットを処理するタスクを、前記処理の実行を予定されているプログラム・エンジンのキューのトップに移動することによって実施すればよい。より低い優先度を有する他のデータ・セットは、プログラム・エンジンの能力が処理可能になり次第、前記処理エンジンによって処理されることになる。これにより、一部のデータ・セットを他のセットよりも優先化することを可能にできる。エージェント群とデータ・セット群とが、割り当て優先番号を有することが可能な場合、両方の優先番号が、例えば何らかのルールに基づいてエージェント・マネージャによって評価される。
諸実施形態によれば、ビッグ・データ・リポジトリ、またはビッグ・データ・リポジトリと相互運用可能なアプリケーション・プログラムもしくはモジュールは、ユーザにグラフィカル・ユーザ・インターフェース(GUI:graphical user interface)を提供する。ビッグ・データ・リポジトリは、GUIを介してユーザから構成データを受信し、受信された構成データに従って、一つ以上のエージェントの条件を修正する。これに加えてまたは換えて、ビッグ・データ・リポジトリは、一つ以上のエージェントの優先番号、もしくは一つ以上のデータ・セットに割り当てられた優先番号、またはその両方を修正する。前記修正は、受信された構成データに従って実行される。
諸実施形態によれば、第一エージェント、または第一エージェントによりトリガされたプログラム・エンジンは、第二データ・セットを生成する。この第二データ・セットは、第一データ・セットの派生セットである。該派生データ・セットは、誤謬のある、冗長な、もしくは秘密のデータまたはこれらの組み合わせが除去された、あるいは適切なデータ・フォーマットに転換された、浄化済みデータ・セットにすることが可能である。第一データ・セットの注釈を更新することは、第一データ・セットの注釈に、生成された第二データ・セットのストレージ場所をポイントするリンクを増補することを含む。第二エージェントの実行は、生成された第二データ・セットを、第二エージェントまたは第二エージェントにより呼び出されたプログラム・エンジンによって、その後さらに処理される第一データ・セットとして用いることを含んでもよい。これは、さらなる処理ステップのためのベースとして、処理されたまたは別途に改善されたデータ・セットへの、自動化された完全に透過な切り替えを可能にでき、この「透過」とは、ユーザが、自分が取り組んでいるデータ・セットが実際は変更されていることを認識さえもできないことを意味する。例えば、第二データ・セットは、構文解析オペレーションにより、CSVファイルから成る第一データ・セットから導出されたリレーショナル・データベース・テーブルであり得る。多くの分析用または他のプログラム・エンジンに対し、CSVファイルよりも、リレーショナル・データベース・テーブルを用いて作業する方が容易である。派生データ・セットの他の例は、いかなる秘密データも含まないマスクされたデータ・セットであり得る。
諸実施形態によれば、複数のプログラム・エンジンは、以下のプログラム・エンジンの型の少なくとも二つを任意の組み合わせで含む。
・ ファイル・フォーマットの識別タスクまたはファイル構文の識別タスクを実行するよう動作可能なプログラム・エンジン。前記プログラム・エンジンは、ファイル・フォーマット情報または構文情報を使ってデータ・セットに注釈を付けることができる。
・ データ・セットを、他のプログラム・エンジンの動作必要性に適合するように変換するため、抽出・変換・書き込み(ETL:extract−transform−load)タスクを実行するよう動作可能なプログラム・エンジン。変換の対象となるデータ・セットは、ビッグ・データ・リポジトリによって取り込まれたか、ビッグ・データ・リポジトリ内で生成されたものであってよい。通常、意味プロファイリング・ツールもしくはユーザまたはその両方は、データが、CSV、RDF、バイナリまたはXMLファイル、またはリレーショナルもしくは縦欄式データベース・テーブルなど特定の構文様式で提示されることを必要とする。前記の場合において、利用可能なデータ・セットは、データ・プロファイリング・ツールによって解釈が可能なフォーマットに変換される必要がある。
・ 例えば、誤謬のある、冗長な、あいまいな、失効した、または矛盾のあるデータ記録など、低品質のデータ記録を、処理されるデータ・セットから自動的に除去するため、データの品質チェックを実行するように動作可能なプログラム・エンジン。これに加えてまたは換えて、前記プログラム・エンジンは、処理されるデータ・セットの注釈に、前記データ・セットの自動的に判定された品質レベルを増補するよう動作可能にされてもよい。
・ 処理されるデータ・セットから、秘密データ値もしくは秘密データ記録を自動的に除去するため、もしくは処理されるデータ・セットの注釈に、前記データ・セットから一切の秘密データが成功裏に除去されたことについての情報を増補するため、またはその両方のため、データ・マスキング・オペレーションを実行するよう動作可能なプログラム・エンジン。
・ 技術的要件もしくはビジネス要件またはその両方に従って、処理されるデータ・セット中のデータ記録を、自動的に訂正し、標準化し、または処理するためのマスタ・データ管理(MDM)オペレーションを実行するよう動作可能なプログラム・エンジン。MDMオペレーションは、或る組織全体を通して、データを、収集し、集約し、整合させ、一元管理し、品質保証し、持続し、もしくは配信すること、またはこれらの組み合わせを行うことを含み得る。これに加えてまたは換えて、前記プログラム・エンジンは、処理されるデータ・セットの注釈に、前記MDMオペレーションの結果についての情報を増補できるようにすることも可能である。
・ 処理されるデータ・セットのデータ分析を実行する、もしくは処理されるデータ・セットの注釈に前記データ分析の結果を増補するまたはその両方を行うよう動作可能なプログラム・エンジン。前記分析は、例えば、テキスト分析または統計的分析を含んでよい。
また、前記プログラム・エンジンの少なくとも一部は、処理されたデータ・セットのレビューのため、ユーザへの通知を生成可能なようにすることができる。
諸実施形態によれば、ビッグ・データ・リポジトリのユーザに対して検索索引データ構造体が提供される。この検索索引データ構造体は、ユーザが、検索基準(例えば、指定された最低限の品質レベルを有する、人物情報を包含するデータ・セットを読み出す)に整合するデータ・セット一式を読み出すため検索を実行する、もしくは選択されたデータ・セットの前記索引データ構造体上のデータ記録に対する検索を実行する、またはその両方を実行することを可能にする。データ・セットのどれか一つに対して、エージェントのどれか一つによって生成された注釈は、データ処理をトリガしたエージェントによって、検索索引データ構造体に絶え間なく自動的に加えられる。これらの注釈には、ビッグ・データ・リポジトリ中に当初にロードされたデータ・セット中には包含されていなかった可能性のある追加のメタデータおよび分析結果を含めることができる。
諸実施形態によれば、エージェントの一つは、自動的に(且つ、望ましくはユーザには透過に)前記検索索引データ構造体の第一ポインタを、第二ポインタによって置き換えることが可能である。前記の置き換えは、前記生成された第二データ・セットがデータ・セット群の第一データ・セットの派生セットである場合に実行される。第一ポインタは、第一データ・セットをポイントし、第二ポインタは第二データ・セットをポイントする。前記の特徴は、索引ベースの検索を行う際に、新規データ・セットへの完全に自動的で且つ透過な切り替えを可能にすることができる。このクエリは、キーワード検索とし、またはそれを含むことができるが、もっと複雑なクエリとすることも可能である。例えば、エージェントが第二の派生データ・セットを導出した元の第一データ・セットに対するクエリは、第一データ・セットの代わりに、第二データ・セットからのデータを透過に返すことになろう。検索は、例えば、「人物氏名および住所型のデータを包含し、そのデータ品質指標が80%より高い、全てのデータ・セットを検索せよ」といったものにできよう。データ品質エージェントは、指標を包含する注釈(例えば、行の80%が有効である)を生成することが可能である。次いで、検索基準がその種の数値指標を含むことができる。しかして、エージェントのカスケードにより追加の注釈(メタデータ)を自動的に生成することによって、そして前記注釈を検索指標に自動的に組み込むことによって、検索の品質が自動的に向上される。
諸実施形態によれば、エージェントの少なくとも一部は、ネットワークを介して相互に接続された相異なるコンピュータ・システム上でホストされる。それぞれのエージェントにトリガされたプログラム・エンジンの少なくとも一部は、トリガしたエージェントと同じコンピュータ・システム上でホストされるレガシ・アプリケーションである。
実施形態の如何によって、ビッグ・データ・リポジトリは、Hadoop(R)などの分散型ファイル・システム、非分散型ファイル・システム、リレーショナルもしくは縦欄式データベース、内容管理システム、または他の同等なシステムもしくはフレームワークに基づいて実装すればよい。
さらなる態様において、本発明は、プロセッサによる実行のためのマシン実行可能命令を含むコンピュータ可読ストレージ媒体に関する。これらの命令の実行は、プロセッサに、前述の実施形態のいずれか一つによる方法を実行させる。
さらなる態様において、本発明は、プロセッサおよびコンピュータ可読ストレージ媒体を含むコンピュータ・システムに関する。このコンピュータ可読ストレージ媒体はビッグ・データ・リポジトリを含む。ビッグ・データ・リポジトリは、複数のデータ・セット、およびプロセッサによる実行のためのマシン実行可能命令を含む。これらの命令の実行は、プロセッサに、前述の実施形態のいずれか一つによる方法を実行させる。
当業者には当然のことながら、前述の実施形態の特徴は相互に組み合わせることが可能である。本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化することができる。従って、本発明の態様は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、あるいは、一般に本明細書では全て「回路」、「モジュール」、または「システム」といわれることもある、ソフトウェアおよびハードウェア態様を組み合わせた実施形態の形を取ることが可能である。さらに、本発明の態様は、具体化されたコンピュータ可読プログラム・コードを有する一つ以上のコンピュータ可読媒体(群)中に具現化されたコンピュータ・プログラム製品の形を取ることもできる。
本発明の前述および他の項目、特徴、および利点は、図面と併せ、以下の本発明の諸実施形態のより具体的な説明を読むことによってより良く理解することができよう。
ビッグ・データ・リポジトリを含むコンピュータ・システムのブロック図である。 前記コンピュータ・システムの分散型の別形を表す。 複数のデータ・セットを処理する方法のフローチャートである。
図1は、プロセッサ194およびコンピュータ可読ストレージ媒体195を含むコンピュータ・システム180を表す。ストレージ媒体は単一のストレージ媒体であっても、複数の接続されたストレージ媒体から成っていてもよい。また、プロセッサも、相互に動作可能に連結された複数のプロセッサから成っていてもよい。これら複数のストレージ媒体およびプロセッサは、例えば、クラウド環境によって提供され管理されてもよい。コンピュータ・システムはビッグ・データ・リポジトリ104をホストし、該リポジトリは、Hadoop(R)などの分散型ファイル・システムに基づくことができる。該リポジトリは、複数の異なるエージェント150〜168によって生成もしくは処理またはその両方が行われる、複数のデータ・セット105、106、110〜113、108、DB1、DB2を含み得る。エージェントは、データ・セットを処理するため、および、ファイル・フォーマット認識、カラム分析、ETLオペレーション、データ・プロファイリングなどのタスクを実行するために、全く異なる型のプログラム・エンジン124〜138を呼び出すことができる。
エージェントは、データ・セットの一つに対する該エージェントの実行が、前記エージェントに関連付けられた全ての条件が満たされるイベントによってトリガされる、コンポーネントである。前記条件は、処理対象のデータ・セットの注釈を含め、前記データ・セットの特徴に、全面的にまたは少なくとも部分的に関連し得る。例えば、或るデータ・セットへのカラム分析の開始に対する条件が、前記データ・セットへの新規注釈の追加であることがあり、これによって、前記注釈は、当該データ・セットが構文解析され、リレーショナル・テーブルの形式(これは、カラム・データ分析を実行するのに適したフォーマットである)を有する派生データ・セットが生成されたことを示すことになる。エージェントは、データ・セットを処理するために、内部のプログラム・ロジックを使うか、または外部のプログラム・ロジックを呼び出すことができる。前記プログラム・ロジックは、処理されたデータ・セットの注釈を生成または更新するため、もしくは派生データ・セットを生成するため、またはその両方のためエージェントによって使用される処理結果を提供することが可能である。例えば、ファイル・フォーマットを認識するためのエージェントは、認識されたファイル・フォーマットを表す注釈を生成することになろう。データ・フォーマット変換ジョブを使って派生データ・セットを生成するためのエージェントは、その派生データ・セットをポイントし、そのフォーマットについてのメタ情報を含む注釈を生成することができよう。各エージェントには、それぞれのエージェントをトリガする条件が満たされた時点で、いかに緊急にデータ処理タスクを開始すべきかを示す優先番号を割り当てておくことができる。
登録されたエージェントおよびそれらの起動をそれぞれトリガする条件の一覧は、エージェント構成データベース172に格納されている。エージェント・マネージャ174は、リポジトリ・モニタ102からイベントを受信し、(或る特定の最近更新されたデータ・セットに対し、複数のエージェントの条件が満たされている場合)エージェント構成データベース172中に格納されたエージェントの構成に基づいて、どのエージェントがどのデータ・セットを実行すべきかを決めることができる、一本のプログラム・ロジックである。エージェント・マネージャが、或るデータ・セットに対して或るエージェントを起動するための条件が満たされていることを検出したならば、該マネージャは、エージェント実行タスクをグローバル・タスク・キュー196中にセットする。グローバル・タスク・キューは、データ・セット106、DB2の一つに対し、それぞれのエージェント150、154、162によって処理される対象の複数のタスクT1〜T3を含むことができる。このキュー中のエージェントのタスクの位置は、そのエージェントの優先番号、もしくは実行のための自身のタスクが既にキューの中にあるエージェントの優先番号、もしくはタスクがキューに入れられた時間、またはこれらの組み合わせの如何による。また、キュー中のタスクの順序は、実行時にユーザによって、例えば、ユーザがエージェントに割り当てられた条件および優先番号を変更してデータ・セットの少なくとも一部に割り当てられた優先番号を修正することを可能にするグラフィカル・ユーザ・インターフェース170を介して、修正されてもよい。
図2に表されているように、作業負荷マネージャ176は、グローバル・タスク・キューもプログラム・エンジンのキューも監視する。作業負荷マネージャは、複数の同等なプログラム・エンジンが、エージェントの一つによって実行されるデータ処理タスクのために利用可能な場合、前記エージェントの前記処理タスクを、ジョブ・キューが比較的空いている同等な処理エンジン、もしくは空いているCPU/メモリ/ストレージ容量を有するコンピュータ・システム上で実行されている同等な処理エンジン、またはその両方に割り当てることになる。データ処理タスクを終了すると、前記タスクを実行し何らかの注釈を生成または更新したエージェントまたはプログラム・エンジンは、生成または更新された注釈を、検索索引データ構造体191に自動的に含めることが可能である。検索索引データ構造体は、アプリケーション・クライアント122の任意のユーザ171が、ネットワーク192を介してビッグ・データ・リポジトリの内容を迅速に検索することを可能にする。前記検索は、キーワード検索であっても、またはデータ・セットの注釈中に包含されるメタデータをも評価するもっと複雑な検索(例えば、完全性および品質が>90%の、人物データを包含する全データ・セットに対する検索)であってもよい。
ユーザ171が或る特定のデータ・セットを読み出す選択をしたとき、実際に読み出されたデータ・セットのバージョンは、例えばDB1またはDB2など、浄化または変換オペレーションの結果として生成された、前記特定のデータ・セットの派生データ・セットであるかもしれない。検索結果として、当初の、構文解析前/標準化前のフラット・ファイル・フォーマット108の特定のデータ・セットを返す代わりに、派生したデータ・セットまたはそのデータ記録の一部が返される。また、ユーザが、マニュアルで注釈を更新し注釈を追加または削除する特権を有するようにもでき、これにより、検索索引データ構造体には、例えば、検索索引データ構造体を注釈データベース114に格納されている注釈に絶えず同期させているバックグラウンド・ジョブを使って、その更新が自動的に増補される。この検索機能は、検索索引データ構造体191に検索サービス103を提供しているアプリケーション・サーバ118の助力を受けることが可能である。ユーザ171は、データ・アクセス・サービス120を介して、ビッグ・データ・リポジトリ104のデータ・セットの注釈115をマニュアルで編集してもよい。
注釈は、それらのデータ・セットそれぞれの識別子116に関連させて、注釈データベース114中に格納することができる。注釈データベース114は、ビッグ・データ・リポジトリの中もしくはその外部のいずれかに配置することができよう。データ・セットの注釈には、方針およびルールをさらに含めることができよう。それらの方針およびルールは、どのような状況下で、データが、マスクされ、是正され、品質チェックされ、不要部削除されなければならないかなどを規定可能である。リポジトリ・モニタ102は、注釈データベース中の注釈115に対する一切の変更、およびビッグ・データ・リポジトリ104中に包含されるファイルの数および種類の一切の変更を監視する。リポジトリ・モニタは、何らかの変更が検出された場合、イベントをスローする。前記イベントは、全てのエージェント、または前記種類のイベントのリスナーとして登録されている少なくとも一部のエージェントに対し、それらそれぞれに割り当てられた条件を評価させ、それらの全条件が満たされている場合、それらそれぞれに割り当てられたデータ・セット(群)の処理を自動的にトリガさせることができる。
例えば、リポジトリ・モニタが、以下のフラット・ファイル(clients.txt(クライアント・テキスト))の様式で新規のデータ・セットがビッグ・データ・リポジトリ104中に取り込まれたことを検出することがあろう。そのデータ・セットがまだ注釈を持たないことがある。リポジトリ・モニタは、その場所、およびそれが「clients.txt」と名付けられたファイルである事実だけを知っている。前記ファイルは、以下を含んでいるかもしれない。
> “1576”、“Cliff Langlais(クリフ・ラングレ)”、“35 Livery Street(リバティ通り), Birmingham(バーミンガム)”、“28451”、“single(未婚)”、“inactive(無職)”
> “1277”、“Patrice Merkel(パトリス・マーケル)”、“Daimler Strasse(ダイムラー通り) 3 Wiernsheim(ヴィールンスハイム)”、“75444”、“divorced(離婚)”、“employee(被雇用者)”
> “1287”、“Catherine Coon(キャサリン・クーン)”、“Schilllenbergweg(シーレンベルグウェグ) 10 Sundern(スンダーン)”、“59846”、“married(既婚)”、“inactive(無職)”
> [・・・]
最初に、フラット・ファイル・フォーマットの検出に特化されたエージェントを実行することができ、前記エージェントが、条件「属性[フォーマット]に対する注釈が存在しない」との条件を指定されていてもよい。前記エージェントは、ビッグ・データ・リポジトリ内に、注釈中の属性「フォーマット」に対する値を割り当てられていない新規データ・セットが検出されるたびに、自動的に実行されることになる。当エージェントは、ライン、反復する分離記号などの存在をチェックするテキスト分析ルーティンを実行することができる。当エージェントは、新規ファイルが高い確実性で、特定の区切り文字によって分離されたカンマ分離値ファイル(CSVファイル:comma separated valuesファイル)であることを検出することが可能である。フォーマットが認識されない場合、当エージェントは、同じエージェントが前記データ・セットを再度処理するのを防ぐために、前記データ・セットに関連付けて、注釈「フォーマット=不明」を注釈データベース114中に格納することになる。さらに、前記注釈は、他のエージェントが当該データ・セットをさらに処理するのを防ぎ、これにより、誤った派生データ・セットの生成を防止することができる。フォーマットが認識された場合、前記データ・セットに対し、キー値ペア「フォーマット=[CSV]」を含む注釈が生成されることになる。
前記データ・セットのフォーマットが別のエージェントによって「生テキスト」または「CSV」または「XML」として識別されたならば、別のエージェントが、データ・セット中の正規表現に対する探索をすることができる。正規表現は、例えば、clients.txtファイルから、人の名前、住所および職業を抽出するために用いることが可能である。前記エージェントは、条件「フォーマット=[CSVまたはXMLまたはプレインテキスト]」を指定されていてもよく、前記clients.txtファイルの注釈が、特性値ペア「フォーマット=CSV」を含んでい次第、そのclients.txtファイルを処理するため自動的にトリガされてよい。処理されたclients.txtデータ・セットの注釈を更新するための前記他のエージェントにより生成される出力は、前記ファイル中で識別された「住所」および「職業」などのエンティティ型、すなわち「エンティティ型=[人名、住所、職業]」を含むことが可能である。
clients.txtファイルを処理するための第三エージェント「A3」は、データをファイルから抽出し、抽出されたデータをリレーショナル・データベース・テーブル中に格納することによって、人名および住所を含む構造化CSVファイルを構文解析するように特化されたエージェントとすることができる。前記第三エージェントの条件は、「フォーマット=プレインテキストまたはCSV」と「エンティティ型=人名OR住所」と「エージェントA3=未実行」とであるように見え得る。後者の条件は、エージェント「A3」がまだ実行されていない(このclients.txtデータ・セットに対し、まだ、リレーショナル・テーブル形式の派生データがない)ことを暗示している。エージェントA3の成功裏の実行の後、このclients.txtデータ・セットの注釈は、「エージェントA3=実行済み」に更新することができる。さらに、派生データ・セットのリンクまたは識別子を、例えば「派生データ・セット=クライアントDB」などとして、当初のclients.txtファイルの注釈に追加することも可能である。他のエージェントは、該clients.txtファイルを、これが人名または他の名付けられたエンティティを包含しているかどうかにかかわらず、処理するよう動作可能とすることができる。前記エージェントの実行は、構文解析対象のファイルのフォーマットだけによってトリガされ、個々のカラムの意味内容に関係なく構文解析ジョブを行うことが可能である。
第四および第六エージェントは、注釈特性「派生データ・セット」が、値、例えば派生リレーショナル・データベースの識別子、が指定されているイベントに応じ実行されてよい。第四および第六エージェントは、クライアントの住所を正規化するための正規化ステップ、もしくは郵便番号など様々なパラメータに対する統計的解析またはクラスタリング・アルゴリズム、またはこれらの両方を実施することができる。この標準化タスクの結果は、従前のものに置き換わることになる新規の派生構造化テーブルとすればよい。例えば、従前のテーブルは、全住所データを包含する単一のカラム「住所」を包含していたものであり得るが、新規の派生構造化テーブルは、「通り」、「番地」および「郵便番号」に対する別々のカラムを含むことが可能である。標準化エージェントを実行した後、同じエージェントが当該データ・セットに対し再度の実行をするのを防ぐために、注釈「標準化済み=yes」が標準化済みのデータ・セットに追加されることになる。
また、これらエージェントのセットは、ユーザ固有のエージェントを含んでよい。ユーザの特権の如何によって、派生データ・セットを生成するために相異なるユーザ固有エージェントがトリガされてもよい。例えば、第一ユーザには一部の秘密データを検証することが許されるが第二ユーザには許されない場合、第一ユーザに固有の第一エージェントは、当初のデータ・セットの一部の秘密データをなお含んだ派生データ・セットを生成できるが、第二ユーザに対し、異なったユーザ固有のエージェントによって生成される派生データ・セットは一切の秘密データが浄化されるようにすることができる。
本発明の諸実施形態の特徴は、これらが、ユーザの一切のマニュアルでの介入なしに、且つ、プログラマによる前もって定義された固定的なワークフローの準備なしに、任意の種類のデータ統合、前処理、または処理タスクの高度にフレキシブルで完全に自動化された実行を可能にするので、有利であり得る。全てのステップを、データ駆動方式で完全に自動的に実行することが可能で、新規データ・セットまたは前記データ・セットに対する新規注釈が生成される場合、もしくは既存の注釈が更新される場合、またはその両方の場合、前記データ・セットを処理するよう動作可能な一つ以上のエージェントの条件が満たされ得る。前記条件が満たされると、前記条件を指定されたそれぞれのエージェントの実行が完全に自動的にトリガできる。前記エージェントの実行が前記データ・セットの処理をトリガする。しかして、多くの場合、特定のエージェントのプログラマが、利用可能なデータに関して知る必要がある唯一の情報は、前記データ・セットを実際に処理するため、前記エージェントまたは前記エージェントによってトリガされる別のプログラムの意味的および構文的要件に関するものである。他のエージェントに対するデータ・セットの前処理を、前記他のエージェントが存在することも知らずにできる新規の完全に機能するエージェントを、実行されているビッグ・データ・リポジトリに追補するために、プログラマは、「全体的ワークフロー」または全ての他の(おそらくは数百または数千の)エージェントの要件を知る必要はない。これは、多数の異なる相互依存のある取り込み、前処理、分析、およびデータ処理タスクのエクスポートに対応している複雑なビッグ・データ・リポジトリの生成および維持を容易にすることができる。
例えば、前記データ・セットに対し特定の前処理または処理ステップが(成功裏にまたは不成功裏に)実施されたことを示す状態情報によって、注釈を更新することが可能である。データ・セットの注釈の更新は、そのデータ・セットが、現在は、別のエージェントが前記データ・セットをさらに処理するために必要としている正しいファイル・フォーマットまたは構文になっていることを示すことができる。データ・セットの処理は、エージェントによって直接的に、あるいは前記エージェントに呼び出された追加のアプリケーション・プログラム(本明細書ではプログラム・エンジンと言う)を使って実行することが可能である。
一部のエージェントの条件は、全面的にまたは少なくとも部分的に、一つ以上のデータ・セットの注釈を対象とすることにできよう。また、これらは、特定のファイル名もしくはファイル型(例えば、特定のファイル拡張子によって示されるもの)を有するファイルの存在、または前記データ・セットの何らかの注釈の存在もしくは不在を対象としてもよい。例えば、或るエージェントは、外部データ・ソースからのまだ注釈されていないXMLファイルの成功裏の取り込みによってトリガされてもよい。
前記エージェントのシーケンスの実行は、データ・セットに関する条件の充足だけに基づかせることが可能で、しかして、処理するタスクの、完全にデータ駆動である動的且つ自動的に決定されたシーケンスをたどればよい。前記の特徴は、複雑なビッグ・データ・リポジトリを生成し維持するためのプログラマの時間と労力とを大きく低減することが可能であるため有利であり得る。どのエージェントも、他のエージェントのどこからも直接呼び出されることがないので、プログラマは、既存のエージェントのどの実行可能ソース・コードも修正したり再コンパイルしたりする必要はない。これらエージェントの動的動作は、それらそれぞれに指定された条件、および前記条件が参照する動的に更新された注釈だけに依存する。優先的に、これらの条件は、ビッグ・データ・リポジトリの実行時にユーザによって編集可能であり、これにより、前記条件の修正は、有効にするためにエージェントまたは他のプログラム・モジュールの再コンパイルをする必要がなくなる。
エージェントが、前述のインターフェースによって一つ以上のデータ・セットの処理をトリガできることは、例えばJava(R)、EJB(R)、.NET(R)などの第一プログラム言語またはフレームワークに従って全てのプログラム・エージェントを実装することを可能にし、一方、実際の処理は、これもレガシ・プログラムであってよい異なるフレームワークのプログラム・エンジンによって行える。しかして、特定のデータ・セットを処理するためのプログラム・エンジンとして、前記レガシ・プログラムを呼び出すよう動作可能な追加エージェントを用いることによって、コードの一切の再コンパイルも再記述もなしに、レガシ・データの前処理および処理プログラムを容易に組み込むことが可能である。
エージェントが、他の同等な複数のプログラム・エンジンのいずれか一つではなくて、指摘されたプログラム・エンジンの実行を選択的にトリガできることは、複数の同等なプログラム・エンジンが或る特定のデータ処理タスクを実行することが可能な場合に、前記タスクを最低の容量消費のプログラム・エンジンに割り当てられるので、有利であり得る。しかして、ボトルネックを回避することが可能で、利用可能なハードウェア・リソースをより効率的に使用することができる。
どの一つのプログラム・エンジンの作業負荷情報も、前記プログラム・エンジンのタスク・キュー中に現在格納されているタスクの数を含むのが可能なことは、これらのタスク・キューが、ビッグ・データ・リポジトリのユーザまたはシステム・コンポーネントが処理エンジンの負荷についての情報を収集し、特定のデータ・セットを処理するため、空き容量を有する処理エンジンを選択できようにするので、有利であり得る。
ユーザにとってより関係の深いまたはより重要なデータ・セットの処理をトリガしている、エージェントの一つを優先することによって、ビッグ・データ・リポジトリは、ユーザに関連性の高い情報をより迅速に選択的に提供することができる。
一部のデータ・セットを他よりも優先することは、ビッグ・データ・リポジトリのフレキシビリティ、正確さ、およびパフォーマンスの向上を可能にする。エージェントおよびデータ・セット両方の優先番号が、エージェント・マネージャによって評価されれば、エージェントは、処理されるデータの重要さ、および実行対象の処理の型に基づいて、動的に、高度にフレキシブルに、完全自動的にデータ・セットを処理することができる。システムの複雑でフレキシブルに適合された動作を達成するために、複雑な事前定義されたワークフローの必要はない。
例えば、エージェント・マネージャは、エージェントxの処理対象となる全データ・セットで最高の優先番号を有するデータ・セットである、データ・セットZの処理をトリガするよう動作可能なエージェントxを判定するよう動作可能にすることができる。エージェント・マネージャは、例えば前記判定されたエージェントxの全ての条件を評価することによって、前記エージェントの全ての条件が満たされるよう前記エージェントxに先行して実行されなければならない他のエージェントを自動的に判定する。このステップは、エージェントxの全条件が満たされるよう実行される必要のある依存鎖中の全エージェントを識別するために、他の判定されたエージェントの全ての条件に対して繰り返して行うことができる。次いで、エージェント・マネージャは、この依存鎖の全てのエージェントをグローバル・タスク・キューの中にセットし、これにより、前記キュー中のタスクの順序によって、前記依存鎖の全エージェントが正しいシーケンス順で実行されることが確実になる。これは、ユーザが、例えばGUIを介し、エージェントxに対しデータ・セットZに最高の優先番号を割り当てることによって、データ・セットZがエージェントxにより可及的速やかに処理されるべきことを指定することができるので、有利であり得る。エージェント・マネージャは、エージェントxが実行可能になる前に、実行される必要のある、エージェントxの依存鎖中の全ての他のエージェントを自動的に判定することが可能である。エージェント・マネージャは、次いで、例えば、識別された全エージェントに割り当てられた優先番号を自動的に上昇させることによって、前記全エージェントをグローバル・タスク・キューの最上部にセットすることになる。しかして、ユーザは、エージェントxが開始可能となる前に、実行されなければならないエージェントの依存鎖について知る必要がない。
ビッグ・データ・リポジトリはユーザから構成データを受信することが可能で、前記構成データに従って、エージェントの条件、エージェントのうちの一つ以上の優先番号もしくはデータ・セットのうちの一つ以上に割り当てられた優先番号またはそれらの両方を修正可能であることは、ユーザが、ソース・コードの一切の再コンパイルなしに、構成データを編集することによって、データ処理の動作を容易に適合できるので、有利であり得る。また、ユーザは、複雑なデータ処理ワークフローを知る必要も指定する必要もない。ユーザは、例えば、特定の入力ファイルの処理、または特定の処理タスク/エージェントを開始できる前に満たされるべき条件での処理など、いくつかの側面の構成だけに全面的に集中すればよい。
注釈の検索索引データ構造体中への自動的な組み込みは、これらの注釈が、ビッグ・データ・リポジトリの中に当初にロードされたデータ・セット中に包含されていなかった可能性のある追加のメタ情報および分析結果を含み得るので、検索を速め、その精度を向上することができる。
これらデータ・セット、ビッグ・データ・リポジトリ、エージェント、およびプログラム・エンジンは、コンピュータ可読ストレージ媒体195に格納することが可能である。一つ以上のコンピュータ可読媒体の任意の組み合わせを用いることが可能である。コンピュータ可読媒体は、コンピュータ可読信号媒体であっても、コンピュータ可読ストレージ媒体であってもよい。コンピュータ可読ストレージ媒体は、例えば、以下に限らないが、電子的、磁気的、光学的、電磁気的、赤外線、または半導体の、システム、装置、またはデバイス、あるいは前述の任意の適切な組み合わせであってよい。コンピュータ可読ストレージ媒体のさらに具体的な例(非包括的リスト)には、一つ以上の配線を有する電気接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read−only memory)、消去およびプログラムの可能読み取り専用メモリ(EPROM(erasable programmable read−only memory)またはフラッシュ・メモリ)、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disc read−only memory)、光ストレージ・デバイス、磁気ストレージ・デバイス、または前述の任意の適切な組み合わせが含まれよう。本明細書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置、もしくはデバイスによって、またはこれらに関連させて使用するためのプログラムを、包含または格納できる任意の有形媒体であってよい。
コンピュータ可読信号媒体には、例えばベースバンド中にまたは搬送波の一部として具現化されたコンピュータ可読プログラム・コードを有する、伝播データ信号を含めることができる。かかる伝播信号は、以下に限らないが、電磁気的、光学的、またはこれらの任意の適切な組み合わせを含め、さまざまな形態の任意の形を取ることが可能である。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではないが、命令実行システム、装置、もしくはデバイスによって、またはこれらに関連させて使用するためのプログラムの通信、伝播、または伝送が可能な任意のコンピュータ可読媒体であってよい。コンピュータ可読媒体上に具現化されたプログラム・コードは、以下に限らないが、無線、有線、光ファイバ・ケーブル、RFなど、または前述の任意の適した組み合わせを含め、任意の適切な媒体を用いて送信することができる。
本発明の態様のオペレーションを実行するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および、“C”プログラミング言語または類似のプログラミング言語などの従来式手続き型プログラミング言語を含め、一つ以上のプログラミング言語の任意の組み合わせで記述することができる。このプログラム・コードは、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータで専ら実行することも、ユーザのコンピュータで部分的に実行することもでき、一部をユーザのコンピュータで一部を遠隔コンピュータで実行することもでき、あるいは遠隔のコンピュータまたはサーバで専ら実行することもできる。後者の場合は、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することもでき、あるいは(例えばインターネット・サービス・プロバイダを使いインターネットを介し)外部のコンピュータへの接続を行うことも可能である。
本開示の実施形態による方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら、本開示の態様が説明されている。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、および、フローチャート図もしくはブロック図またはその両方中のブロックの組み合わせは、コンピュータ・プログラム命令によって実装することが可能である。これらのコンピュータ・プログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに提供し、そのコンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に特定されている機能群/動作群を実装するための手段を生成するようにすることができる。また、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに対し特定の仕方で機能するよう命令することが可能なこれらのコンピュータ・プログラム命令を、コンピュータ可読媒体に格納し、そのコンピュータ可読媒体に格納された命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に特定されている機能/動作を実装する命令群を包含する製造品を作り出せるようにすることができる。
さらに、コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードし、そのコンピュータ上、他のプログラム可能装置上、または他のデバイス上で一連のオペレーション・ステップを実行させて、コンピュータ実装のプロセスを作り出し、当該コンピュータ上もしくは他のプログラム可能装置上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に特定されている機能群/動作群を実装するためのプロセスを提供するようにすることも可能である。図面のブロック図は、本開示の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品から可能となる実装のアーキテクチャ、機能性、およびオペレーションを示している。この点に関し、ブロック図中の各ブロックは、特定の論理機能(群)を実装するための一つ以上の実行可能命令を含む、モジュール、セグメント、またはコードの部分を表し得る。また、一部の別の実装においては、上記で説明された機能が、開示された順序から外れて行われ得ることに留意すべきである。例えば、連続して教示された2つのブロックが、関与する機能性に応じ、実際にはほぼ同時に実行されることがあり、時にはこれらのブロックが逆の順序で実行されることもあり得る。さらに、ブロック図の各ブロック、およびブロック図中のブロック群の組み合わせは、特定の機能または動作を実施する特殊用途ハードウェア・ベースのシステム、または特殊用途ハードウェアとコンピュータ命令との組み合わせによって実装可能なことにも留意すべきである。本明細書で使用する用語は、単に特定の実施形態を説明する目的のためのものであり、本発明を限定することは意図されていない。本明細書で用いられた、単数形「ある(“a”、“an”)」、および「該(“the”)」は、文脈上明確に別途に示されていなければ、複数形も同じように含むことが意図されている。さらに、当然のことながら、本明細書で用いられる「含む(“comprise”)」もしくは「含んでいる(“comprising”)」またはその両方は、述べられた特徴、完全体(integer)、ステップ、オペレーション、エレメント、もしくはコンポーネント、またはこれらの組み合わせの存在を特定するが、一つ以上の他の特徴、完全体、ステップ、オペレーション、エレメント、コンポーネント、もしくはこれらの群、または上記の組み合わせの存在または追加を排除するものではない。添付の請求項中のミーンズ・プラス・ファンクションまたはステップ・プラス・ファンクションの要素全ての、対応する構造、材料、動作および均等物は、具体的に請求された他の請求要素と組み合わせてその機能を実施するための、一切の構造、材料または動作を包含することが意図されている。本発明の記述は、例示および説明の目的で提示されたもので、網羅的であることも、または本発明を開示した形態に限定することも意図されていない。当業者には、本発明の範囲および趣旨から逸脱することのない多くの修改および変形が明白であろう。諸実施形態は、本発明の原理および実際的な応用を最善説明し、他の当業者が、意図する特定の用途に適したさまざまな修改を加えた様々な実施形態に関して、本発明を理解できるように選択し説明されたものである。
図2は、図1に表されたコンピュータ・システムの分散型の別形を示す。エージェント162〜168、206、および対応するプログラム・エンジン134〜138、208の少なくとも一部は、コンピュータ・システム202上で実行されている他のエージェントおよびプログラム・エンジンとは別のコンピュータ・システム204によってホストされる。エージェント・マネージャは、ウェブ・サービス、EJB(R)、.NET(R)などの通信フレームワークに基づくネットワークを介して遠隔のエージェントとやり取りすることが可能である。このアーキテクチャは、(遠隔の)レガシ・システムの組み込みを可能にすることができる。データ・セットは、エージェント150〜168、206の特定の一つによる前記データ・セットの処理の緊急度を示す、優先番号D.1〜D.5の割り当てを受けることが可能である。さらに、各エージェントも優先番号P.1〜P.7の割り当て受けることができ、これらは、2つ以上のエージェントが特定のリソースに対し競っている場合に、それらエージェントのどの一つが最初に実行されるかを決めることを可能にする。作業負荷マネージャ176は、プログラム・エンジン124〜136、208の各々から、それぞれのプログラム・エンジンまたは前記プログラム・エンジンをホストしているコンピュータ・システムの稼働率を示す作業負荷情報を反復して受信することができる。作業負荷マネージャは、前記プログラム・エンジンが割り当てられている各エージェントに対し、前記作業負荷を提示する。この情報は、複数の同等な処理エンジンを割り当てられているエージェントが、例えば、同等な処理エンジンのセット中の最も空いたキューQ1〜Q9を有する一つなど、現在、最低の容量消費を有するプログラム・エンジンの実行を選択的にトリガすることを可能にする。
処理エンジン固有のキューQ1〜Q9と組み合わせてグローバル・タスク・キュー196を用いることは、処理エンジン中の遊休時間を回避することにより、パフォーマンスの向上に助力することができ、作業負荷マネージャは、エージェントに前記ジョブ・エンジンの実行をトリガさせる前に、特定の処理エンジンの可用性を定期的にチェックする代わりに、グローバル・ジョブ・キューに包含されている(特定のデータ・セットに対し特定のエージェントを実行するための)タスクを、たとえプログラム・エンジンにより現在実行されているタスクが実際に完了する前であっても、処理エンジン固有の複数のキューの適切な一つの中にセットするだけでよい。しかして、そのプログラム・エンジンは、次のタスクを遅滞なく開始することができる。
図3は、上記で既に説明したように、ビッグ・データ・リポジトリ104のデータ・セットを処理するための方法のフローチャートを示す。第一ステップ302で、エージェント150〜168のセットが準備される。各エージェントは、データ・セット105、106、110〜113、108、DB1、DB2の一つ以上の処理をトリガするよう動作可能である。前記エージェント各々の実行は、前記エージェントに対し指定された一つ以上の条件が満たされた場合に自動的にトリガされる。ステップ304で、エージェントのうちの第一エージェントが実行されてよい。この第一エージェントの実行は、例えば、ビッグ・データ・リポジトリ104の中に取り込まれたフラット・ファイルなどの第一データ・セットの処理をトリガする。第一エージェントによって第一データ・セットが処理された後、ステップ306で、第一エージェントは第一データ・セットの注釈を更新し、これにより前記処理の結果を前記注釈に含める。ステップ308で、第一データ・セットの更新された注釈が第二エージェントの条件を満たすとのイベントによって、第二エージェントの実行がトリガされる。第二エージェントの実行が第一データ・セットのさらなる処理と、第二エージェントによる第一データ・セットの注釈のさらなる更新とをもたらす。

Claims (15)

  1. 少なくとも非構造化データを格納するために、データ・リポジトリ(104)において複数のデータ・セット(105、106、108、110〜113、DB1、DB2)を処理するためのコンピュータ実装の方法であって、前記方法は、
    − エージェント(150〜168)のセットを準備するステップ(302)であって、各エージェントは前記データ・セットのうちの一つ以上の前記処理をトリガするよう動作可能であり、前記エージェントに対し指定された一つ以上の条件が満たされた場合、前記エージェント各々の前記実行が自動的にトリガされ、前記条件の少なくとも一つは、前記エージェントによって処理のトリガが可能な前記データ・セットの存在、構造、内容もしくは注釈またはこれらの組み合わせに関する、前記準備するステップと、
    − 前記エージェントのうちの第一エージェントを実行するステップ(304)であって、前記実行は、前記データ・セットのうちの第一データ・セットに関する前記第一エージェントの前記条件が満たされることによってトリガされ、前記第一エージェントの前記実行は、前記第一データ・セットの前記処理をトリガする、前記実行するステップと、
    − 前記第一エージェントによって前記第一データ・セットの前記注釈(115)を更新するステップ(306)であって、これにより、前記第一エージェントによってトリガされた前記第一データ・セットの前記処理の結果を前記注釈中に含める、前記更新するステップと、
    − 前記エージェントのうちの第二エージェントを実行するステップ(308)であって、前記実行は、前記第一データ・セットの前記更新された注釈が前記第二エージェントの前記条件を満たすことによってトリガされ、前記第二エージェントの前記実行は、前記第二エージェントによる前記第一データ・セットのさらなる処理および前記第一データ・セットの前記注釈のさらなる更新をトリガする、前記実行するステップと、
    を含む、コンピュータ実装の方法。
  2. エージェントの前記セットの各エージェントは、前記エージェントによって処理される対象の前記データ・セットのうちの一つの前記注釈の更新および前記データ・リポジトリ中での新規データ・セットの検出だけによってトリガでき、前記エージェントの前記実行が前記処理されたデータ・セットの前記注釈の更新をもたらす、請求項1に記載のコンピュータ実装の方法。
  3. − 前記データ・リポジトリは、それぞれが前記データ・セットの少なくとも一つを処理するよう動作可能な、複数のプログラム・エンジン(124〜138)によってアクセス可能であり、
    − 前記エージェントの少なくとも一部は、それぞれ、前記プログラム・エンジンの一つを割り当てられており、それぞれ、それらの割り当てられたプログラム・エンジンへのインターフェースを含み、
    − 前記エージェントは、自分のインターフェースを介し、それぞれに割り当てられたプログラム・エンジンの前記実行を起動することによって、前記データ・セットのうちの一つ以上の前記処理をトリガする、
    請求項1〜2のいずれか一項に記載のコンピュータ実装の方法。
  4. − 前記プログラム・エンジンの各々に対しジョブ・キュー(Q1〜Q9)を準備するステップであって、前記エージェントの一つによる前記エンジンの一つの前記実行の前記トリガは、前記一つのプログラム・エンジンにより前記データ・セットの一つ以上を処理するためのジョブを、前記プログラム・エンジンの前記ジョブ・キューに追加するステップを含み、前記ジョブ・キューへの前記ジョブの前記追加は前記エージェントによって実行される、前記準備するステップ、
    をさらに含み、
    前記一つのプログラム・エンジンによる処理の対象となる前記データ・セットの一つ以上は、前記プログラム・エンジンのジョブ・キューの順番に従って前記プログラム・エンジンによって処理される、
    請求項3に記載のコンピュータ実装の方法。
  5. 前記データ・リポジトリが作業負荷マネージャ(176)に動作可能に連結され、前記エージェントの少なくとも一部は、同等なプログラム・エンジンのセット(124、126)の前記実行をトリガするよう動作可能であり、ここで、同等なプログラム・エンジンは前記データ・セットの一つから同一の処理結果を生成するよう動作可能であり、前記方法は、
    − 前記作業負荷マネージャが、前記プログラム・エンジンの各々から作業負荷情報を反復して受信するステップであって、前記作業負荷情報は前記プログラム・エンジンの稼働率もしくは前記プログラム・エンジンをホストしているコンピュータ・システムの稼働率またはその両方を示す、前記受信するステップと、
    − 前記作業負荷マネージャが、前記受信された作業負荷情報を入力として使って、前記エージェントの一つに割り当てられている同等なプログラム・エンジンの少なくとも一つのセットに対し、最低の容量消費を有する前記プログラム・エンジンを反復的且つ自動的に判定するステップと、
    − 前記作業負荷マネージャが、前記判定されたプログラム・エンジンの指摘を、同等なプログラム・エンジンの前記セットを割り当てられている前記エージェントに提示するステップと、
    − 前記指摘を受信した前記エージェントが、前記エージェントに割り当てられた他の同等なプログラム・エンジンのどれか一つの実行をトリガするのでなく、前記指摘されたプログラム・エンジンの前記実行を選択的にトリガするステップと、
    をさらに含む、請求項3〜4のいずれか一項に記載のコンピュータ実装の方法。
  6. 前記プログラム・エンジンのいずれか一つの前記作業負荷情報が、前記プログラム・エンジンの前記ジョブ・キュー(Q1〜Q9)中に現在格納されているジョブの数を含む、請求項5に記載のコンピュータ実装の方法。
  7. 前記データ・リポジトリがエージェント・マネージャ(174)に動作可能に連結されており、前記エージェントの少なくとも一部には優先番号(P.1〜P.7)を割り当てられており、前記方法は、
    − 前記エージェント・マネージャが、全ての前記エージェントの前記インスタンス化もしくは実行またはその両方を連続的に監視するステップと、
    − 前記エージェント・マネージャが、前記監視から得られた情報に基づいて、前記エージェントの少なくとも二つが前記データ・セットの同じ一つを処理する試みをしていること、もしくは前記エージェントの前記少なくとも二つが、両方のエージェントに同時には提供できない計算リソースを要求していること、またはその両方を自動的に判定するするステップと、
    − 前記エージェント・マネージャが、前記少なくとも二つのエージェントの前記優先番号(P.1〜P.7)を評価し、最高の優先番号を有する前記エージェントに実行を選択的に許可するステップと、
    をさらに含む、請求項1〜6のいずれか一項に記載のコンピュータ実装の方法。
  8. 前記データ・リポジトリがエージェント・マネージャ(174)に動作可能に連結されており、前記データ・セットの少なくとも一部には優先番号(D.1〜D.5)が割り当てられており、前記方法は、
    − 前記エージェント・マネージャが、全ての前記エージェントの前記インスタンス化もしくは実行またはその両方を連続的に監視するステップと、
    − 前記エージェント・マネージャが、前記監視から得られた情報に基づいて、前記エージェントの一つが、前記データ・セットの相異なる二つ以上のデータ・セットの前記処理をトリガするため始動されたことを自動的に判定するステップと、
    − 前記エージェント・マネージャが、前記二つ以上の相異なるデータ・セットの前記優先番号(D.1〜D.5)を評価するステップと、
    − 前記エージェント・マネージャが、前記評価に基づいて、前記エージェントに、前記データ・セットのそれぞれの前記優先番号(D.1〜D.5)に従って、前記データ・セットの前記処理をトリガさせるステップと、
    をさらに含む、請求項1〜7のいずれか一項に記載のコンピュータ実装の方法。
  9. − グラフィカル・ユーザ・インターフェース(170)を準備するステップと、
    − 前記グラフィカル・ユーザ・インターフェースを介し、前記データ・リポジトリのユーザ(171)から構成データを受信するステップと、
    − 前記受信された構成データに従って、前記エージェントのうちの一つ以上の前記条件を修正するステップ、もしくは前記エージェントのうちの一つ以上の前記優先番号を修正するステップ、もしくは前記データ・セットの一つ以上に割り当てられた優先番号を修正するステップ、またはこれらの組み合わせのステップであって、前記修正は前記受信された構成データに従って実行される、前記修正するステップと、
    をさらに含む、請求項1〜8のいずれか一項に記載のコンピュータ実装の方法。
  10. 前記エージェントのうちの前記第一エージェントの前記実行が、
    − 前記第一エージェントによって、または前記第一エージェントによりトリガされたプログラム・エンジンによって、第二データ・セット(DB1、DB2)を生成するステップであって、前記第二データ・セットは前記第一データ・セット(105、106、108、110、111、112、113)の派生セットである、前記生成するステップ、
    を含み、
    前記第一データ・セットの前記注釈(115)の前記更新が、前記第一データ・セット前記注釈にリンクを追加するステップを含み、前記リンクは前記生成された第二データ・セット(DB1、DB2)のストレージ場所をポイントし、
    前記第二エージェントの前記実行は、前記生成された第二データ・セットを、前記第二エージェントによってさらに処理されることになる前記第一データ・セットとして用いるステップを含む、
    請求項1〜9のいずれか一項に記載のコンピュータ実装の方法。
  11. 前記複数のプログラム・エンジンが、次の種類のプログラム・エンジン:
    − データ・セット(110)にファイル・フォーマット情報または構文情報の注釈付けをするための、ファイル・フォーマット識別タスクまたはファイル構文識別タスクを実行するプログラム・エンジン(208)、
    − データ・セットを、前記プログラム・エンジンのうちの他のプログラム・エンジンの動作必要性に適合するように変換するため、抽出・変換・書き込み(ETL)タスクを実行するプログラム・エンジン(124〜128)、
    − 前記処理されるデータ・セットから低品質のデータ記録を自動的に除去するため、もしくは前記処理されるデータ・セットの前記注釈に、前記データ・セットの自動的に判定された品質レベルを増補するため、またはその両方のために、データの品質チェックを実行するプログラム・エンジン(130)、
    − 前記処理されるデータ・セットから、秘密データ値または秘密データ記録を自動的に除去するため、もしくは前記処理されるデータ・セットの前記注釈に、前記データ・セットから一切の秘密データが成功裏に除去されたことについての情報を増補するため、またはその両方のため、データ・マスキング・オペレーションを実行するプログラム・エンジン(132)、
    − 技術的要件もしくはビジネス要件またはその両方に従って、前記処理されるデータ・セット中の前記データ記録を、自動的に訂正し、標準化し、もしくは処理するため、もしくは前記処理されるデータ・セットの前記注釈に、前記MDMオペレーションの結果についての情報を増補するため、またはその両方のため、マスタ・データ管理(MDM)オペレーションを実行するプログラム・エンジン(138)、
    − 前記処理されるデータ・セットのデータ分析を実行する、もしくは前記処理されるデータ・セットの前記注釈に前記データ分析の結果を増補する、またはその両方をするプログラム・エンジン(134、136)、
    のうちの少なくとも二つを、任意の種類の組み合わせで含む、請求項3〜10のいずれか一項に記載のコンピュータ実装の方法。
  12. − 前記データ・リポジトリのユーザに検索索引データ構造体(191)を提供するステップであって、前記検索索引データ構造体は、前記ユーザが、検索基準に整合するデータ・セット一式を読み出すため、もしくは前記データ・セットの選択されたもののデータ記録を読み出すため、またはその両方を行うために、検索を実行することを可能にする、前記提供するステップ、
    − 前記データ・セットのいずれか一つに対して前記エージェントのいずれか一つによって生成された注釈を、前記検索索引データ構造体に連続的に且つ自動的に加えるステップ、もしくは、
    − 前記エージェントの一つによって、前記検索索引データ構造体の第一ポインタを第二ポインタに自動的に置き換えるステップであって、前記置き換えるステップは、前記データ・セットのうちの第一データ・セットの処理の派生セットとして、前記データ・セットのうちの第二データ・セットが前記生成された場合に実行され、前記第一ポインタは前記第一データ・セットをポイントし、前記第二ポインタは前記第二データ・セットをポイントする、前記置き換えるステップ、
    またはこれらステップの組み合わせ、
    をさらに含む、請求項1〜11のいずれか一項に記載のコンピュータ実装の方法。
  13. 前記エージェントの少なくとも一部が、ネットワーク(192)を介して相互に接続された異なるコンピュータ・システム(202、204)上にホストされており、それぞれのエージェントによってトリガされる前記プログラム・エンジンの少なくとも一部は、前記トリガするエージェントと同じコンピュータ・システム上にホストされるレガシ・アプリケーションである、請求項3〜11のいずれか一項に記載のコンピュータ実装の方法。
  14. プロセッサ(194)による実行のためのマシン実行可能命令を含むコンピュータ可読ストレージ媒体(302)であって、前記命令の前記実行が、前記プロセッサに前記の請求項1〜13のいずれか一項に記載の前記ステップを実行させる、コンピュータ可読ストレージ媒体。
  15. − プロセッサ(194)と、
    − 少なくとも非構造化データを格納するためのデータ・リポジトリを含むコンピュータ可読ストレージ媒体(302)であって、前記データ・リポジトリ(104)は複数のデータ・セット(105、106、108、110〜113、DB1、DB2)を含み、前記コンピュータ可読ストレージ媒体は前記プロセッサが実行するためのマシン実行可能命令をさらに含み、前記命令の前記実行が、前記プロセッサに、
    − エージェント(150〜168)のセットを準備するステップ(302)であって、各エージェントは前記データ・セットのうちの一つ以上の前記処理をトリガするよう動作可能であり、前記エージェントに対し指定された一つ以上の条件が満たされた場合、前記エージェント各々の前記実行が自動的にトリガされ、前記条件の少なくとも一つは、前記エージェントによって処理のトリガが可能な前記データ・セットの存在、構造、内容もしくは注釈またはこれらの組み合わせに関する、前記準備するステップと、
    − 前記エージェントのうちの第一エージェントを実行するステップ(304)であって、前記実行は、前記データ・セットのうちの第一データ・セットに関する前記第一エージェントの前記条件が満たされることによってトリガされ、前記第一エージェントの前記実行は、前記第一データ・セットの前記処理をトリガする、前記実行するステップと、
    − 前記第一エージェントによって前記第一データ・セットの前記注釈(115)を更新するステップ(306)であって、これにより、前記第一エージェントによってトリガされた前記第一データ・セットの前記処理の結果を前記注釈中に含める、前記更新するステップと、
    − 前記エージェントのうちの第二エージェントを実行するステップ(308)であって、前記実行は、前記第一データ・セットの前記更新された注釈が前記第二エージェントの前記条件を満たすことによってトリガされ、前記第二エージェントの前記実行は、前記第二エージェントによる前記第一データ・セットのさらなる処理および前記第一データ・セットの前記注釈のさらなる更新をトリガする、前記実行するステップと、
    を含む方法実行させる、前記コンピュータ可読ストレージ媒体と、
    を含む、コンピュータ・システム(180)。
JP2016553316A 2014-03-14 2015-02-18 ビッグ・データ・リポジトリにおけるデータ・セットの処理 Active JP6505123B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1404523.1A GB2524074A (en) 2014-03-14 2014-03-14 Processing data sets in a big data repository
GB1404523.1 2014-03-14
PCT/IB2015/051233 WO2015136395A1 (en) 2014-03-14 2015-02-18 Processing data sets in a big data repository

Publications (2)

Publication Number Publication Date
JP2017515180A true JP2017515180A (ja) 2017-06-08
JP6505123B2 JP6505123B2 (ja) 2019-04-24

Family

ID=50634736

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016553316A Active JP6505123B2 (ja) 2014-03-14 2015-02-18 ビッグ・データ・リポジトリにおけるデータ・セットの処理

Country Status (6)

Country Link
US (2) US10338960B2 (ja)
JP (1) JP6505123B2 (ja)
CN (1) CN106104533B (ja)
DE (1) DE112015000347T5 (ja)
GB (2) GB2524074A (ja)
WO (1) WO2015136395A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190054741A (ko) * 2017-11-14 2019-05-22 주식회사 케이티 데이터의 품질 관리 방법 및 장치
JP2021009528A (ja) * 2019-06-30 2021-01-28 大 益滿 データベースと情報処理システム

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671955B2 (en) 2012-06-05 2020-06-02 Dimensional Insight Incorporated Dynamic generation of guided pages
US10445674B2 (en) 2012-06-05 2019-10-15 Dimensional Insight Incorporated Measure factory
US10755233B2 (en) 2012-06-05 2020-08-25 Dimensional Insight Incorporated Guided page navigation
US9274668B2 (en) 2012-06-05 2016-03-01 Dimensional Insight Incorporated Guided page navigation
GB2524074A (en) 2014-03-14 2015-09-16 Ibm Processing data sets in a big data repository
CA2931041C (en) * 2014-11-14 2017-03-28 Mark Shtern Systems and methods of controlled sharing of big data
US9934257B2 (en) * 2015-07-14 2018-04-03 American Express Travel Related Services Company, Inc. System and method for recursive metadata layers on big data sets
US10055426B2 (en) 2015-11-18 2018-08-21 American Express Travel Related Services Company, Inc. System and method transforming source data into output data in big data environments
US10585864B2 (en) 2016-11-11 2020-03-10 International Business Machines Corporation Computing the need for standardization of a set of values
US10592813B1 (en) * 2016-11-29 2020-03-17 EMC IP Holding Company LLC Methods and apparatus for data operation pre-processing with probabilistic estimation of operation value
US11481239B2 (en) 2016-12-07 2022-10-25 Vmware, Inc. Apparatus and methods to incorporate external system to approve deployment provisioning
US10152356B2 (en) 2016-12-07 2018-12-11 Vmware, Inc. Methods and apparatus for limiting data transferred over the network by interpreting part of the data as a metaproperty
US10552180B2 (en) 2016-12-07 2020-02-04 Vmware, Inc. Methods, systems, and apparatus to trigger a workflow in a cloud computing environment
US10817293B2 (en) * 2017-04-28 2020-10-27 Tenstorrent Inc. Processing core with metadata actuated conditional graph execution
US10977016B2 (en) 2017-10-31 2021-04-13 EMC IP Holding Company LLC Management of data using templates
US11086901B2 (en) 2018-01-31 2021-08-10 EMC IP Holding Company LLC Method and system for efficient data replication in big data environment
US11188865B2 (en) 2018-07-13 2021-11-30 Dimensional Insight Incorporated Assisted analytics
CN109395399A (zh) * 2018-09-26 2019-03-01 深圳市云歌人工智能技术有限公司 数据处理以及显示信息的方法和装置
US11017874B2 (en) 2019-05-03 2021-05-25 International Business Machines Corporation Data and memory reorganization
WO2020232157A1 (en) * 2019-05-14 2020-11-19 Pricewaterhousecoopers Llp System and methods for generating secure ephemeral cloud-based computing resources for data operations
US11232074B2 (en) 2020-05-19 2022-01-25 EMC IP Holding Company LLC Systems and methods for searching deduplicated data
US11461140B2 (en) * 2020-05-19 2022-10-04 EMC IP Holding Company LLC Systems and methods for controller-worker architecture for searching a storage system
US20220114189A1 (en) * 2020-10-14 2022-04-14 International Business Machines Corporation Extraction of structured information from unstructured documents
CN113378519B (zh) * 2021-06-29 2024-08-27 平安国际融资租赁有限公司 文本导出方法、系统、计算机设备与计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002108903A (ja) * 2000-09-29 2002-04-12 Toshiba Corp データ収集システムおよびデータ収集方法およびプログラムを記録した媒体およびプログラム製品
JP2004206694A (ja) * 2002-12-10 2004-07-22 Hewlett-Packard Development Co Lp 要件ベースワークフローを動的に順序付けするシステムおよび方法
JP2004362596A (ja) * 2003-06-06 2004-12-24 Microsoft Corp 自動タスク生成方法およびシステム
JP2011138317A (ja) * 2009-12-28 2011-07-14 Hitachi Solutions Ltd プローブ情報管理システム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6339775B1 (en) 1997-11-07 2002-01-15 Informatica Corporation Apparatus and method for performing data transformations in data warehousing
MXPA02000660A (es) 1999-07-20 2003-07-21 Primentia Inc Metodo y sistema para organizar datos.
US6381556B1 (en) 1999-08-02 2002-04-30 Ciena Corporation Data analyzer system and method for manufacturing control environment
US7028253B1 (en) * 2000-10-10 2006-04-11 Eastman Kodak Company Agent for integrated annotation and retrieval of images
US20020128998A1 (en) * 2001-03-07 2002-09-12 David Kil Automatic data explorer that determines relationships among original and derived fields
US6643635B2 (en) 2001-03-15 2003-11-04 Sagemetrics Corporation Methods for dynamically accessing, processing, and presenting data acquired from disparate data sources
US7620661B2 (en) 2005-10-27 2009-11-17 International Business Machines Corporation Method for improving the performance of database loggers using agent coordination
CN1992640B (zh) 2005-12-28 2010-05-05 中兴通讯股份有限公司 一种基于交换机后台的多业务接入单元的数据同步方法
US7912816B2 (en) * 2007-04-18 2011-03-22 Alumni Data Inc. Adaptive archive data management
US8423534B2 (en) * 2008-11-18 2013-04-16 Teradata Us, Inc. Actively managing resource bottlenecks in a database system
US9077727B2 (en) 2008-12-30 2015-07-07 Telecom Italia S.P.A. Method and system for data management in peer-to-peer network
CN101477568A (zh) 2009-02-12 2009-07-08 清华大学 一种结构化数据和非结构化数据综合检索的方法
CN101510206A (zh) * 2009-02-19 2009-08-19 北京思普科科技开发有限公司 一种非结构化数据查询方法
DE202011110863U1 (de) * 2010-04-05 2017-01-13 Google Inc. Spaltenspeicher Darstellungen von Datensätzen
US8666998B2 (en) * 2010-09-14 2014-03-04 International Business Machines Corporation Handling data sets
US9396290B2 (en) 2011-06-09 2016-07-19 Cloudian Holdings, Inc. Hybrid data management system and method for managing large, varying datasets
EP2761510A4 (en) * 2011-09-29 2015-08-05 Cirro Inc UNIFORM QUESTION ENGINE TO ASSEMBLE DATA INTERROGATION BETWEEN STRUCTURED AND UNSTRUCTURED DATA
US20130232157A1 (en) 2012-03-05 2013-09-05 Tammer Eric Kamel Systems and methods for processing unstructured numerical data
US9411853B1 (en) * 2012-08-03 2016-08-09 Healthstudio, LLC In-memory aggregation system and method of multidimensional data processing for enhancing speed and scalability
CN103092952A (zh) * 2013-01-15 2013-05-08 深圳市连用科技有限公司 一种海量非结构化数据的存储系统和管理方法
CN103310022B (zh) 2013-07-05 2016-08-31 湘潭大学 一种保护定值在线追踪系统及其方法
GB2524074A (en) 2014-03-14 2015-09-16 Ibm Processing data sets in a big data repository

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002108903A (ja) * 2000-09-29 2002-04-12 Toshiba Corp データ収集システムおよびデータ収集方法およびプログラムを記録した媒体およびプログラム製品
JP2004206694A (ja) * 2002-12-10 2004-07-22 Hewlett-Packard Development Co Lp 要件ベースワークフローを動的に順序付けするシステムおよび方法
JP2004362596A (ja) * 2003-06-06 2004-12-24 Microsoft Corp 自動タスク生成方法およびシステム
JP2011138317A (ja) * 2009-12-28 2011-07-14 Hitachi Solutions Ltd プローブ情報管理システム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190054741A (ko) * 2017-11-14 2019-05-22 주식회사 케이티 데이터의 품질 관리 방법 및 장치
KR102507837B1 (ko) 2017-11-14 2023-03-07 주식회사 케이티 데이터의 품질 관리 방법 및 장치
JP2021009528A (ja) * 2019-06-30 2021-01-28 大 益滿 データベースと情報処理システム

Also Published As

Publication number Publication date
US10338960B2 (en) 2019-07-02
CN106104533A (zh) 2016-11-09
US20170139746A1 (en) 2017-05-18
JP6505123B2 (ja) 2019-04-24
GB2524074A (en) 2015-09-16
GB201616819D0 (en) 2016-11-16
US20180349184A1 (en) 2018-12-06
GB2539599A (en) 2016-12-21
CN106104533B (zh) 2019-10-18
GB201404523D0 (en) 2014-04-30
DE112015000347T5 (de) 2016-09-29
WO2015136395A1 (en) 2015-09-17
US10635486B2 (en) 2020-04-28

Similar Documents

Publication Publication Date Title
US10635486B2 (en) Processing data sets in a big data repository
US10599684B2 (en) Data relationships storage platform
WO2020238597A1 (zh) 基于Hadoop的数据更新方法、装置、系统及介质
US9146994B2 (en) Pivot facets for text mining and search
CN110908641B (zh) 基于可视化的流计算平台、方法、设备和存储介质
WO2017008650A1 (zh) 一种用于过滤数据的设备及方法
CN109213826B (zh) 数据处理方法和设备
CN112835924A (zh) 实时计算任务处理方法、装置、设备及存储介质
US20180129712A1 (en) Data provenance and data pedigree tracking
US11657069B1 (en) Dynamic compilation of machine learning models based on hardware configurations
CN111966692A (zh) 针对数据仓库的数据处理方法、介质、装置和计算设备
JP2006318146A (ja) 情報管理システム
US11636124B1 (en) Integrating query optimization with machine learning model prediction
CN113962597A (zh) 一种数据分析方法、装置、电子设备及存储介质
CN113886111B (zh) 一种基于工作流的数据分析模型计算引擎系统及运行方法
US11354313B2 (en) Transforming a user-defined table function to a derived table in a database management system
CN112579705A (zh) 元数据采集方法、装置、计算机设备和存储介质
Wang et al. High volumes of event stream indexing and efficient multi-keyword searching for cloud monitoring
Venkatesan et al. PoN: Open source solution for real-time data analysis
JP2016194907A (ja) キャッシュメモリを更新する装置、プログラム、及び方法
JP7470769B1 (ja) クラウドのapiの変更を分析する方法
CN113553320B (zh) 数据质量监控方法及装置
EP3289454B1 (en) Online data management system
Sarangi Optimizing the efficiency of data-intensive Data Mashups using Map-Reduce
Yang Big Data Process Mining in Python

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180828

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190109

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190326

R150 Certificate of patent or registration of utility model

Ref document number: 6505123

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150