JP2021508389A - データ処理システムにおけるジョブ管理 - Google Patents

データ処理システムにおけるジョブ管理 Download PDF

Info

Publication number
JP2021508389A
JP2021508389A JP2020529139A JP2020529139A JP2021508389A JP 2021508389 A JP2021508389 A JP 2021508389A JP 2020529139 A JP2020529139 A JP 2020529139A JP 2020529139 A JP2020529139 A JP 2020529139A JP 2021508389 A JP2021508389 A JP 2021508389A
Authority
JP
Japan
Prior art keywords
data
job
processing
central
shard
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
JP2020529139A
Other languages
English (en)
Other versions
JP2021508389A5 (ja
JP7185982B2 (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 JP2021508389A publication Critical patent/JP2021508389A/ja
Publication of JP2021508389A5 publication Critical patent/JP2021508389A5/ja
Application granted granted Critical
Publication of JP7185982B2 publication Critical patent/JP7185982B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • 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/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications

Abstract

【課題】モジュール化されたデータ処理システムおよびその使用方法が提供される。
【解決手段】現在のジョブの処理は、以前に処理されたジョブにつき生成されたデータを、二つのジョブがパラメータ構成を共有する範囲で再使用することができる。同様に、二つのジョブがいくつかのパラメータ構成を共有する場合には、以前に処理されたジョブの処理中に生成された処理モジュールの出力が、現在のジョブを処理する処理モジュールへの入力として使用されることができる。
【選択図】図1

Description

本発明の実施形態は、一般に、データ・モデリングおよび機械学習に関し、特に、データ・モデリングおよび機械学習のためのデータ処理パイプラインにおけるジョブ管理に関する。
予測データ・モデリング・システムまたは機械学習システムなどのデータ処理システムが一つ以上のジョブを処理する。ジョブは、アプリケーション・プログラミング・インタフェース(API:application programming interface)による処理のためのデータのセットおよびパラメータ構成のセットを参照し、APIは、データ処理の目的(データ・モデルの生成など)を達成するためにジョブのパラメータ構成によって規定されるジョブのデータのセットを処理するためのプログラミング命令のセットを含む。ジョブのパラメータ構成は、パラメータ・ファイルにおいて定義されうる。パラメータ構成のセットは、ジョブの一部であるかまたはジョブに関連すると考えられうる。ジョブの構成の例は、その実行に必要な特定のAPI、APIが処理すべきデータ・セット、およびその他の処理構成である。
データ・サイエンティストは、様々な構成およびデータ・セットをもつジョブを処理することにより、データ処理システムを試験的に利用することが多い。データ・サイエンティストは、パラメータ構成の違いから得られた処理結果に基づいて、分析するデータについての洞察を導出しうる。例えば、データ・サイエンティストは、様々なパラメータ構成の多数のジョブを試験的に実行して、処理結果に影響を与えるデータ特徴セットを識別しうる。一部のパラメータ構成の違いは結果に大きな影響を与えうるが、影響が小さいものもあり、影響がないものもありうる。データ・サイエンティストは、観察される変動を用いて予測データ・モデルを作成することができ、特定の目的のために機械学習プロセスを誘導することができる。
データ処理プラットフォーム上でジョブを効率的に処理するための方法、コンピュータ・プログラム、およびシステムを提供する。
本発明の実施形態は、データ処理プラットフォーム上でジョブを処理するための方法、コンピュータ・プログラム製品、およびシステムを提供する。本発明の一態様によれば、データ処理プラットフォームは、処理のために第一ジョブを受け取る。第一ジョブは、データ処理プラットフォームの処理パイプラインによる第一ジョブの実行のためのパラメータ構成のセットを有する。データ処理プラットフォームは、処理パイプラインの一つ以上の処理モジュールを介して、第一ジョブの少なくとも一部分を実行する。実行は、少なくとも一つのデータ・シャードを使用するステップであって、データ・シャードは、第二ジョブの一部分の実行中に生成されたデータベースからのデータのパーティションである、ステップを含み、一つ以上の処理モジュールのうちの少なくとも一つの処理モジュールの出力を使用するステップをさらに含む。出力は、第二ジョブの一部分の実行中に生成される。
本発明の一態様によれば、第二ジョブの一つ以上の部分は、第一ジョブのいずれの部分を実行するよりも前に処理される。
本発明の一態様によれば、処理モジュールは、一つ以上のアプリケーション・プログラミング・インタフェース(API)を含む。
本発明の一態様によれば、データ処理システムによって処理されるジョブのパラメータ構成は、ジョブに関連するそれぞれのパラメータ・ファイルにおいて定義される。
本発明の一態様によれば、第二ジョブの一部分の実行中に生成された少なくとも一つのデータ・シャードを含むデータ・シャードは、中央データ・サービスによって管理される。
本発明の一態様によれば、中央データ・サービスは仮想化されている。
本発明の一態様によれば、中央データ・サービスは、中央データ・リポジトリおよび中央メタデータ・リポジトリを含む。
本発明の一態様によれば、中央メタデータ・リポジトリは、中央データ・リポジトリに記憶されたデータ・シャード(パーティション)についてのメタデータ・ファイルのセットを含み、処理パイプラインの処理モジュールの出力についての追加のメタデータ・ファイルのセットをさらに含む。
本発明の一態様によれば、データ処理システムは、第二ジョブの一部分の実行中に生成された少なくとも一つのデータ・シャードを、データ・シャードについてのメタデータ・ファイルに示される位置からプルし、既知のデータ・シャードによって定義されない任意のデータを、生データ・ソースからプルする。
本発明の一態様によれば、少なくとも一つのデータ・シャードをプルするステップ、および既知のデータ・シャードによって定義されないデータをプルするステップは、グラフィカル・ユーザ・インタフェース(GUI:graphical user interface)を介したユーザの選択に基づいてトリガされる。
本発明の一態様によれば、データ処理プラットフォーム上でジョブを処理するための方法は、処理のために第一ジョブを受け取る。第一ジョブは、データ処理プラットフォームの処理パイプラインによる第一ジョブの実行のためのパラメータ構成のセットを有する。処理モジュールは、一つ以上のアプリケーション・プログラミング・インタフェース(API)を含む。本方法は、処理パイプラインの一つ以上の処理モジュールを介して、第一ジョブの少なくとも一部分を実行する。実行は、第二ジョブの一部分の実行中に生成された少なくとも一つのデータ・シャードを使用するステップと、一つ以上の処理モジュールのうちの少なくとも一つの処理モジュールの出力を使用するステップとを含む。出力は、第二ジョブの一部分の実行中に生成され、第二ジョブの一つ以上の部分は、第一ジョブのいずれの部分を実行するよりも前に処理される。第二ジョブの一部分の実行中に生成された少なくとも一つのデータ・シャードを含むデータ・シャードは、中央データ・リポジトリと中央メタデータ・リポジトリとを有する中央データ・サービスによって管理される。第一ジョブの少なくとも一部分を実行するステップは、第二ジョブの一部分の実行中に生成された少なくとも一つのデータ・シャードを、データ・シャードについてのメタデータ・ファイルに示される位置からプルするステップと、既知のデータ・シャードによって定義されない任意のデータを、生データ・ソースからプルするステップとをさらに含む。
本発明の一実施形態による、データ処理システム100のブロック図である。 本発明の一実施形態による、処理システム100(図1)によって使用される増分データの編成の一例である。 本発明の一実施形態による、図2に示されたデータ・シャードの一つについてのメタデータ・ファイルの一例である。 本発明の一実施形態による、データ処理システム100(図1)のある機能のための方法400の一例である。 本発明の一実施形態による、ジョブを横断してAPIコンポーネント出力を再使用するための方法500の一例である。 本発明の一実施形態による、以前のジョブを処理することによって生成されたデータ・シャードおよびAPI出力を再使用するための例示的なグラフィカル・ユーザ・インタフェース(GUI)600である。 本発明の一実施形態による、ジョブ・ステータスを監視するための例示的なGUI700である。 本発明の一実施形態による、図1のデータ処理システムの様々なコンポーネントを実施するための例示的なコンピューティング・デバイスである。
従来技術の予測データ・モデリング・システムまたは機械学習システムのようなデータ処理システムは、いくつかの理由で制限される。第一に、そのようなシステムは、ストリーミング・データおよび増分データ(incremental data)の取り扱いの際に非効率的である。ストリーミング・データおよび増分データとは、処理されるべき全てのデータが直ちに利用可能ではないデータ流入のプロセスを指す。これは例えば、データがある程度定期的に収集され、前の処理結果を改善するために新たに利用可能なデータを処理することが望ましい場合に当てはまりうる。換言すれば、行われる処理は通常、新たなデータがシステムに入ってくるのにしたがって増分的に更新されねばならない。従来技術では、このようなシステムは通常、様々なデータ・ソースからデータをロードまたは「再プル」し、同じデータの一部に対して過去の処理ステップを繰り返す。データの再プルによりリソース・コストが増加し、処理時間が遅くなる。これらの欠点は、オンライン・トランザクション処理(OLTP)業務運用に悪影響を与える。
第二に、そのようなシステムはモジュール化されず、したがって処理モジュールからの部分的結果を再使用するように装備されていない。換言すれば、従来技術のシステムにおける処理パラダイムは、新たなデータが入ってくるたびに、過去の処理結果を再使用することなく全ての処理動作を繰り返すことである。
第三に、このような従来技術のシステムは、予測学習器を、このような学習器が使用される場合に不必要に再訓練する。訓練は増分訓練(incremental training)に対応せず、代わりに全データ・セット(古いデータ・セットと増分的に新しいデータ・セット)を用いて予測学習器モデルを再訓練することに依存する。
したがって、増分データを効率的に処理するモジュール化されたデータ処理パイプライン管理ソリューションが必要である。
従来技術における上述の限界は例であり、先行技術の限界の網羅的なリストであることを意図するものではない。さらに、従来技術の特定の欠点に対処することは、本発明の任意の所与の実施形態の必要な特徴ではない。出願人の発明は特許請求の範囲によって定義される。
開示された本発明の態様は、データ処理システムにおけるジョブのモジュール化された処理を提供する。特許請求された本発明の実施形態の議論を容易にするために、最初に様々な図の概要が提供される。その後、各図または図のセットがさらに詳しく説明される。
例えば、図1は、データ処理システム100の概要を提供する。データ処理システム100は一般に処理のためのジョブを受け取る。従来技術のシステムとは対照的に、データ処理システム100はモジュール化され、一般に、増分的に再プルされるデータ(すなわち以前の時間増分にわたり増分単位で取得されるデータ)の再使用、およびパイプライン・モジュール出力の再使用を可能にする。
図2は、処理システム100(図1)によって使用される増分データの編成の一例を提供する。図示された例のデータは、日付にしたがってシャードに編成される。
図3は、図2に示されたデータ・シャードの一つについてのメタデータ・ファイルの一例を提供する。
図4は、データ処理システム100(図1)のある機能のための方法400の一例を提供する。
図5は、ジョブを横断してAPIコンポーネント出力を再使用するための方法500の一例を提供する。
図6は、以前のジョブを処理することによって生成されたデータ・シャードおよびAPI出力を再使用するための例示的なグラフィカル・ユーザ・インタフェース(GUI)600を提供する。
図7は、ジョブ・ステータスを監視するための例示的なGUI700を提供する。
図8は、図1のデータ処理システムの様々なコンポーネントを実施するための例示的なコンピューティング・デバイスを提供する。
ここで図1を参照すると、データ処理システム100は、本発明の一実施形態によるデータを処理するためのコンピューティング・システムである。データ処理システム100は、以下で図13に関連してより詳細に説明されるように、単一の物理デバイスまたは物理および仮想コンピューティング・リソースの集合でありうる。
データ処理システム100は、一般に、データ処理パイプライン102、生データベース104(「元データ・ソース」とも呼称される)、中央データ・サービス120、および一つ以上のクライアント150(クライアントはデータ処理システム100の様々な態様に関与するためにデータ・サイエンティストにより使用または操作されるユーザ・デバイスを表す)を含む。これらのそれぞれが、以下でより詳しく説明される。
データ処理パイプライン102は、本発明の一実施形態による一つ以上のジョブの実行のための処理パイプラインである。図示の実施形態では、データ処理パイプライン102は、二つの構成要素である処理パイプライン、取り込みパイプライン106とオンデマンド・モデリング・パイプライン110とを含む。
取り込みパイプライン106は、一般に、中央データ・サービス120から生データおよびメタデータを受け取り、データを一つ以上の処理段階またはモジュールを通じて処理し、結果を処理済みデータ108として出力する。取り込みパイプライン106のモジュールには、データ選択モジュール106A(処理されるべきデータを選択する)、確認モジュール106B(データの完全性を検証する)、集約および特徴抽出モジュール106C(データ・セット内の特徴を識別する)、および疎行列変換モジュール106D(疎行列を管理する)が含まれる。
オンデマンド・モデリング・パイプライン110は、一般に、取り込みパイプライン106から処理済みデータ108を受け取り、データを一つ以上の処理段階またはモジュールを通じて処理し、一つ以上のレポート112を出力する。オンデマンド・モデリング・パイプライン110のモジュールには、処理済みデータ108から訓練およびテスト・データ・セットを生成するための生成モジュール110A、訓練およびテスト・データ・セットから特徴を事前選択する特徴事前選択モジュール110B、事前選択された特徴に基づいてデータ・モデルを訓練するモデル訓練モジュール110C、ならびに訓練されたモデルを分析下の特定のデータ・セットに当てはめて一つ以上のレポート112を生成するレポーティング・モジュール110Dが含まれる。
図1を続けて参照すると、図示の実施形態によれば、データ処理システム100におけるデータ・ソースは、生データ・ソース104(「元データ・ソース」とも呼称される)と中央データ・サービス120とに論理的または物理的に区分される。生データ・ソース104は、データ・サイエンティストが(クライアントを介して)記憶、監視、研究、調査またはその他のやり方で処理したいデータを記憶するデータベースである。生データ・ソース104に記憶されるデータは、幾分未処理の形態である(すなわち必ずしも特定のジョブまたは特定の処理モジュールのためにキュレートされていない)が、この生データの一部または全部の処理された形態が、中央データ・サービス120のデータベースに記憶されうる。
中央データ・サービス120は、生データ・ソース104の上に構築される物理または仮想化レイヤ(例えばデータベース)である。従来技術とは対照的に、クライアントはジョブ処理動作におけるデータの必要性のために生データ・ソース104を直接利用するのではなく、中央データ・サービス120を利用する。この編成および構造が、データ処理システム100でのようなモジュール化された処理パイプラインにおいて前処理されたデータを再使用する新規な能力に寄与する。
中央データ・サービス120の機能は、中央データ・リポジトリ122および中央メタデータ・レジストリ124により可能になる。中央データ・リポジトリ122は、以前に処理されたデータ(すなわち処理パイプライン102の一つ以上の処理モジュールにより処理された後の生データ・ソース104からの生データ)へのアクセスを容易にする機能コンポーネントである。中央データ・リポジトリ122に記憶されるデータは、データ・シャードに編成される。中央データ・リポジトリ122は、物理もしくは仮想データベース、Hadoop分散ファイルシステム(HDFS:Hadoop Distributed File System)、任意の他のファイルシステム、またはデータ・シャード位置レジストリであってもよい。
データ・シャードは、日付および時刻値(例えばデータ・シャードが生成される日付および時刻に対応する)によってなど、様々なやり方で編成されうる。簡単のために、図示の実施形態では、所与のデータ・シャードが、「YYYY‐MM」のフォーマット、すなわち所与のデータ・シャードが生成された年を表す四桁の数字と月を表す二桁の数字とを有する文字列IDで識別される。
一般に、中央データ・サービス120は、必要に応じて、すなわちデータが中央データ・リポジトリ124にデータ・シャードとして存在しないときに、生データ・ソース104から生データを「プル」する。この機能により、データ処理システム100は、処理パイプライン・モジュールによって既にプルおよび処理されている生データを「再プル」および再処理するのを回避することが可能になる。開示された本発明の実施形態のこれらおよびその他の特徴は、以下の議論においてより明確になる。
図1を続けて参照すると、開示されたデータ処理システム100およびその様々なコンポーネントの構成は、従来技術とは対照的に、二種類のデータ再使用、プルされた増分データの再使用と、モジュール出力の再使用とを可能にする。他の様々な図に提供される実例に関連して詳細を提供する前に、ここで簡単な要約を提供する。
増分的にプルされるデータの再使用に関しては、データ処理システム100は、処理パイプライン102のモジュールにより必要に応じて生データをプルし、プルされたデータをデータ・シャードに編成し、データ・シャードについてのメタデータ・ファイルを生成する。処理パイプライン102のモジュールがあるデータを必要とするとき、データ処理システム100は、そのデータが既にデータ・シャードとして存在するか否かをチェックする(例えば中央データ・サービス120が様々なデータ・シャードについてのメタデータ・ファイルをチェックする)。データを再プルするのではなく、データ処理システム100は、単純にモジュールに対し関連するデータ・シャードへのポインタ(例えばプルパス)を提供する。中央データ・リポジトリ122のデータ・シャードに既に存在しないデータはいずれも、生データ・ソース104からプルされる(その後、プルされたデータにつき対応するデータ・シャードおよびメタデータ・ファイルが生成される)。
モジュール出力の再使用および再使用に関しては、モジュールまたはAPI1〜7を使用した処理のためにデータ処理システム100に投入されたジョブAおよびジョブBの二つのジョブを考える。この例では、二つのジョブはAPI1〜4のパラメータ構成が同じであるが、残りのAPIのパラメータ構成は異なると仮定する。さらに、ジョブAは完全に処理されていると仮定する。クライアント(データ・サイエンティスト、またはより一般的にはユーザ)は、ジョブAの処理中に生成されたAPI1〜4の出力を再使用し、API5でジョブBの新たな処理を開始することにより、データ処理システム100を利用してジョブBを処理しうる。データ処理システム100は、APIおよびジョブのトポロジおよび依存関係を検出して、どのモジュールが以前に処理されたジョブおよびモジュールのどの出力を使用できるかを判断しうる。これらの判断を行う際に、データ処理システム100は、各データ・シャードについてのメタデータ・ファイルを使用して、どのジョブまたはモジュールがそれを生成し、他のどのジョブまたはモジュールがそれらを使用できるかを判断しうる。
ここで図2を参照すると、一実施形態による、処理システム100(図1)により使用される増分データ(すなわち増分的にプルされ様々な処理パイプライン102によって使用される生データ)の編成の例200が提供される。図示された例のデータは、日付にしたがってシャード(フラグメントまたはパーティション)に編成される。データは、パッキング・リスト・ファイル(「.pkl」)のリストとして表示され、各ファイル名は、モジュール名(例えば「dfCode」、「dfCost」および「dfpmpm」)と、それに続く四桁の年および二桁の月の識別子を含む。
ここで図3を参照すると、図2に示されたデータ・シャードの一つ、より具体的には「dfpmpm2013‐06.pkl」と呼称されるデータ・シャードについてのメタデータ・ファイル300の例が提供される。図3のメタデータ・ファイルは、所与の共有データについての情報が追跡されうる方法の一例にすぎない。表1は、図3の例示的なメタデータ・ファイルの注釈付きの形態である。このデータ・シャードについてのメタデータ・ファイルは、データ・シャード、それがいつ作成されたか、それがどこに記憶されているか(例えばプルパスによる。データ・シャードが最初に記憶された場所から再プルまたはコピーされる必要はない)、それを生成した処理パイプラインのタイプ、およびデータ・シャードが含む情報のフォーマットを記述する。この情報は、このデータ・シャードのデータが処理パイプラインの別のモジュールによる再使用に適するか否かを判断するために、本発明の実施形態によって使用されうる。
Figure 2021508389
図4は、本発明の一実施形態による、データ処理システム100(図1)の生データ・ソース104および中央データ・サービス120からデータをプルするための方法400の例を提供する。方法400の様々な機能またはステップは、データ処理システム100の一つ以上のプロセッサによって実行可能なプログラミング命令によって可能になる。以下の説明では、各ステップは、データ処理システム100の特定のコンポーネントによって実行可能であるものとして記載されうるが、これは説明のためにすぎない。ステップまたは機能は、本発明の精神または範囲から逸脱することなく、他のやり方で実質的に同じ様式で実行されて、実質的に同じ結果が達成されうる。
図4を続けて参照すると、処理パイプライン102は、所与のAPI(すなわちそのモジュールの一つ)でジョブの実行を開始する(ステップ402)。ジョブの処理を開始するステップは、ジョブ要求を検出するステップを含みうる。
処理パイプライン102は、ジョブ要求およびそのパラメータ・ファイルを受け取り、ジョブの仕様を判断するためにパラメータ・ファイルを読み込む(ステップ404)。
処理パイプライン102は、ジョブの処理に使用されることが見込まれるデータ・シャードのリストを生成する(ステップ406)。使用されることが見込まれるデータ・シャードのリストを生成するステップは、中央データ・サービス120と通信して行われうる。例えば、処理パイプライン102は、ジョブの仕様を中央データ・サービス120に通信して、所与のAPIでのジョブの処理に必要なデータを特定しうる。中央データ・サービス120は、ジョブのパラメータ構成を使用して中央メタデータ・レジストリ124を検索する。検索から結果が得られないこともあり、または検索から一つ以上のマッチするメタデータ・ファイル(すなわち現在保留中のジョブを処理するためにデータが再使用されうるデータ・シャードに対応するメタデータ・ファイル)が得られることもある。検索から結果が得られない場合には、対応するデータが生データ・ソース104からプルされる。しかし、検索から結果が得られた場合には、必要とされるデータが対応するデータ・シャードからプルされる。このようにして、現在実行中のAPIはデータを「再プル」する必要がなく、以前にプルされたデータを再使用する。これははるかに効率的であり、以前にプルされたデータがAPIの必要性に基づいて既にキュレートされているために可能である。処理の準備のためにデータが再び集められる必要はない。
したがって、生成された見込みデータ・シャードのリスト(ステップ406)に基づいて、中央データ・サービス120は、その中央メタデータ・レジストリ122内の既存のデータ・シャードをチェックし(ステップ408)、欠損データを生データ・ソース104から取得し(ステップ410)、新たに取得されたデータについて対応するデータ・シャードおよびメタデータ・ファイルを生成し(ステップ412)、それらを中央データ・リポジトリ122および中央メタデータ・レジストリ124にそれぞれ加える。
これによって方法400は、以前にプルされたデータを再使用するための機構を提供し、新たにプルされたデータを後で再使用できるように処理する。ジョブAおよびジョブBの例を再び参照すると、ジョブBを処理する際には、データ処理システム100は、ジョブBについてのAPI1の実行を開始する。データ処理システム100は、ジョブB、API1のためのデータ・シャードおよびパラメータ構成が、ジョブA、API1のためのものと同じであることを検出する。データ処理システム100は、データが「再プル」される必要がないように、ジョブAのために以前にプルされたデータ・シャードを再使用するために、方法400のステップを実行する。データ処理システム100は、ジョブB、API2〜4のために方法400の一部または全部のステップの実行を同じやり方で繰り返す(ただし、この実行順序は説明のためのものにすぎず、例えば一度に複数のAPIで方法の多数または全てのステップが同時に行われても異なる順序で行われてもよい)。ある時点で、データ処理システム100は、API5のパラメータ構成がジョブAとジョブBとで異なると判断する。したがって、データ処理システム100は、ジョブAの事前にプルされたデータに依存せずにAPI5を使用してジョブBを処理するが、API1〜4を使用してジョブBを処理するためにはそのようなデータを使用する。
図5は、本発明の一実施形態による、データ処理システム100(図1)でプロセス・ジョブを横断してAPI出力を再使用するための方法500の例を提供する。方法500の様々な機能またはステップは、データ処理システム100の一つ以上のプロセッサによって実行可能なプログラミング命令によって可能になる。以下の説明では、各ステップは、データ処理システム100の特定のコンポーネントによって実行可能であるものとして記載されうるが、これは説明のためにすぎない。ステップまたは機能は、本発明の精神または範囲から逸脱することなく、他のやり方で実質的に同じ様式で実行されて、実質的に同じ結果が達成されうる。
ここで図1および5を参照すると、API出力が選択される(ステップ502)。選択されたAPI出力は、第一ジョブを処理する間にAPIによって生成された出力である。選択は、第二ジョブを処理する一つ以上のAPIをサポートする処理パイプライン102によって(手動でユーザまたは自動的に)行われうる。ジョブAおよびジョブBならびにAPI1〜7の例を再び参照すると、ジョブAはAPI1〜7を使用して処理され、各APIがその処理に基づいて出力を生成する。ジョブBが、処理のためにデータ処理システム100に到着する。そのパラメータ構成は、API1〜4に関してはジョブBと同じであるため、API4の出力はジョブBのために再使用されうる。したがって、再使用のためにAPI4の出力が選択される(ステップ502)。
処理パイプライン102は、出力が再使用されようとしているAPIに関するメタデータについて中央データ・サービス120に問い合わせる(ステップ504)。APIを介したジョブの処理に基づいて生成されたメタデータ・ファイルの例が表2に提供される。この例では、メタデータ・ファイルに出力が記録されているAPIは、API1〜4である。
Figure 2021508389
中央データ・サービス120は、(既に処理された)第一ジョブと(これから処理される)第二ジョブとが同じパラメータ構成を共有するか否かを検証する(判断ステップ506)。検証は、各ジョブのパラメータ・ファイルおよび問題のAPIのメタデータ・ファイル(例えば表2のメタデータ・ファイル)を調べることによって行われる。
検証が失敗した場合(判断ステップ510のnoの分岐)、すなわち第一ジョブと第二ジョブとが同じパラメータ構成を共有しない場合には、プロセスは終了する(ステップ514)。終了は、例えば、クライアント150に(手動選択ステップ502を仮定して)、第一ジョブの処理に基づいて生成された選択されたAPI出力が第二ジョブの処理に使用できないというメッセージを通信するステップを含みうる。
一方で、検証が成功した場合には(判断ステップ506のyesの分岐)、中央データ・サービス120は、選択されたAPIの出力へのプルパス(例えばサーバアドレスおよびディレクトリ情報)を取得する(ステップ508)。処理は、データの存在および整合性の検証に続く(判断ステップ510)。データが存在しないかまたは完全でない場合には(判断ステップ510のnoの分岐)、処理は終了する(判断ステップ506の後の終了と同様である)。データが存在し完全である場合には(判断ステップ510のyesの分岐)、中央データ・サービス120は、(第一ジョブの処理時に出力された)第一ジョブについての選択されたAPIの出力を読み込み(ステップ512)、その出力を使用して第二ジョブについて次のAPIの実行を開始する。
処理パイプライン120は、次のAPIを使用して第二ジョブのためにその処理機能を行うと、その出力を記憶のために中央データ・サービス120に通信する。表3は、ジョブAの実行後に生成されたAPI1〜4の出力に基づくジョブBの実行後に記憶されるAPI5の出力の例を示す。
Figure 2021508389
ここで図6を参照すると、以前のジョブを処理することによって生成されたデータ・シャードおよびAPI出力を再使用するための例示的なグラフィカル・ユーザ・インタフェース(GUI)600が提供される。図示された例では、「現在のジョブ」および「再使用ジョブ」の二つのジョブが参照される。他所では、これらのジョブは文脈に応じて第一ジョブおよび第二ジョブ、またはジョブAおよびジョブBと呼称されている。図6の「再使用API結果」は、(ここでは)API4.1の出力を指す。GUI600はクライアント510に対し、利用可能な出力を有する二つのAPIであるAPI4.1およびAPI5のうちの一つを選択するためのドロップダウン・メニューを提供する。これらの設定を使用して「現在のジョブ」の実行を開始すると、データ処理システム100は、既存のデータ・シャードおよびAPI出力を使用して「現在のジョブ」を処理するか、または「現在のジョブ」と「再使用ジョブ」のパラメータ構成がマッチしない場合には、処理が成功しなかったかもしくは行えないというクライアントへのメッセージとともにプロセスを終了する。本発明の実施形態は、代わりに使用するための提案されるAPI、提案されるデータ・シャード、または提案される他のジョブを提供しうる。関連する実施形態では、提案は最初に行われる。
ここで図7を参照すると、ジョブ・ステータスを監視するための例示的なGUI700が提供される。クライアントは、適切なジョブのAPI出力を選択するためにGUI700を使用してジョブ・ステータスを監視しうる。図示された例では、二つのジョブが示される。第一ジョブはAPI1〜7に関連し(一部は示されておらず、一部はサブAPIを有する)、それらの一部は第一ジョブのために実行されており、関連する出力を有する。第二ジョブは同じAPIに関連するが、いずれのAPIも第二ジョブに関しては実行されていない。二つの図示されたジョブがAPI1〜4.1で構成パラメータを共有する(しかし4.2では共有しない)と仮定すると、データ処理プラットフォーム100は、第一ジョブの処理時に生成されたAPI1〜4.1の出力を使用することによって、API5を介して第二ジョブの処理を開始しうる。
ここで図8を参照すると、本発明の一実施形態による、(クラウド・コンピューティング・ノードでありうる)例示的なコンピューティング・デバイスの概略図が示される。コンピューティング・デバイス10は、適切なクラウド・コンピューティング・ノードの一例にすぎず、本明細書に記載される本発明の実施形態の使用または機能性の範囲に関する制限を示唆することを意図したものではない。コンピューティング・デバイス10は、データ処理システム100(図1)の物理および仮想デバイスの一つ以上の例である。
コンピューティング・デバイス10には、多数の他の汎用または専用コンピューティング・システム環境または構成で動作可能であるコンピュータ・システム/サーバ12が存在する。コンピュータ・システム/サーバ12での使用に適しうる周知のコンピューティング・システム、環境、および/または構成の例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラム可能家電、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまたはデバイスのいずれかを含む分散クラウド・コンピューティング環境などが含まれるが、これらに限定されない。
コンピュータ・システム/サーバ12は、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的文脈で説明されうる。一般に、プログラム・モジュールは、特定のタスクを行うかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含みうる。コンピュータ・システム/サーバ12は、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクが実行される分散クラウド・コンピューティング環境において実施されうる。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルおよびリモートの両方のコンピュータ・システム・ストレージ媒体に配置されうる。
図8に示すように、コンピューティング・デバイス10のコンピュータ・システム/サーバ12は、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム/サーバ12のコンポーネントは、一つ以上のプロセッサまたは処理ユニット16、システム・メモリ28、およびシステム・メモリ28を含む様々なシステム・コンポーネントをプロセッサ16に結合するバス18を含みうるが、これらに限定されない。
バス18は、メモリバスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、および様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含むいくつかのタイプのバス構造いずれかの一つ以上を表す。限定ではなく例として、このようなアーキテクチャは、業界標準アーキテクチャ(ISA:Industry Standard Architecture)バス、マイクロ・チャネル・アーキテクチャ(MCA:Micro Channel Architecture)バス、拡張ISA(EISA:Enhanced ISA)バス、ビデオ・エレクトロニクス規格協会(VESA:Video Electronics Standards Association)ローカル・バス、および周辺コンポーネント相互接続(PCI:Peripheral Component Interconnects)バスを含む。
コンピュータ・システム/サーバ12は通常、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ12によってアクセス可能な任意の利用可能な媒体であってよく、揮発性および不揮発性媒体、取り外し可能および取り外し不可能媒体の両方を含む。
システム・メモリ28は、ランダム・アクセス・メモリ(RAM:random access memory)30および/またはキャッシュ・メモリ32などの揮発性メモリの形態のコンピュータ・システム可読媒体を含みうる。コンピュータ・システム/サーバ12は、他の取り外し可能/取り外し不能、揮発性/不揮発性コンピュータ・システム・ストレージ媒体をさらに含みうる。単なる例として、取り外し不能不揮発性磁気媒体(図示せず、一般に「ハード・ドライブ」と呼称される)に読み書きするためにストレージ・システム34が提供されうる。図示されないが、取り外し可能不揮発性磁気ディスク(例えば「フレキシブル・ディスク」)に読み書きするための磁気ディスク・ドライブ、およびCD‐ROM、DVD‐ROMまたはその他の光媒体などの取り外し可能不揮発性光ディスクに読み書きするための光ディスク・ドライブが提供されうる。そのような場合には、それぞれが一つ以上のデータ媒体インタフェースによってバス18に接続されうる。以下でさらに図示および説明されるように、メモリ28は、本発明の実施形態の機能を遂行するように構成されたプログラム・モジュールのセット(例えば少なくとも一つ)を有する少なくとも一つのプログラム製品を含みうる。
限定ではなく例として、メモリ28にプログラム・モジュール42のセット(少なくとも一つ)を有するプログラム/ユーティリティ40が記憶されることができ、オペレーティング・システム、一つ以上のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データも記憶されうる。オペレーティング・システム、一つ以上のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれまたはそれらの何らかの組み合わせは、ネットワーキング環境の実装を含みうる。プログラム・モジュール42は一般に、本明細書に記載される本発明の実施形態の機能および/または方法論を遂行する。
コンピュータ・システム/サーバ12は、キーボード、ポインティング・デバイス、ディスプレイ24などの一つ以上の外部デバイス14、ユーザがコンピュータ・システム/サーバ12とインタラクトすることを可能にする一つ以上のデバイス、および/または、コンピュータ・システム/サーバ12が一つ以上の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えばネットワーク・カード、モデムなど)とも通信しうる。そのような通信は、入力/出力(I/O)インタフェース22を介して生じうる。さらに、コンピュータ・システム/サーバ12は、ネットワーク・アダプタ20を介してローカル・エリア・ネットワーク(LAN:local area network)、一般的なワイド・エリア・ネットワーク(WAN:wide area network)、および/または公衆ネットワーク(例えばインターネット)などの一つ以上のネットワークと通信しうる。図示のように、ネットワーク・アダプタ20は、バス18を介してコンピュータ・システム/サーバ12の他のコンポーネントと通信する。図示はされないが、コンピュータ・システム/サーバ12と併せて他のハードウェアおよび/またはソフトウェア・コンポーネントが使用されうることを理解されたい。例としては、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイバル・ストレージ・システムなどが含まれるがこれに限定されない。
ここで、本発明の実施形態を一般的に参照すると、実施形態は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、および/またはコンピュータ・プログラム製品でありうる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を遂行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(単数または複数)を含みうる。
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用するための命令を保持および記憶しうる有形のデバイスでありうる。コンピュータ可読ストレージ媒体は、例えば電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または以上の任意の適切な組み合わせでありうるがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リードオンリ・メモリ(ROM:read−only memory)、消去可能プログラム可能リードオンリ・メモリ(EPROM:erasable programmable read−only memory、またはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク・リードオンリ・メモリ(CD‐ROM:compact disk read−only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フレキシブル・ディスク、パンチカードまたは命令が記録された溝内の隆起構造体などの機械的にエンコードされたデバイス、および以上の任意の適切な組み合わせを含む。本明細書で使用されるところのコンピュータ可読ストレージ媒体は、電波もしくはその他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を通じて伝播する電磁波(例えば光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号などの一時的信号そのものと解釈されてはならない。
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークおよび/または無線ネットワークを介して外部コンピュータもしくは外部ストレージ・デバイスに、ダウンロードされうる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、および/またはエッジ・サーバを含みうる。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体への記憶のためにコンピュータ可読プログラム命令を転送する。
本発明の動作を遂行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction−set−architecture)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、または、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む一つ以上のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードでありうる。コンピュータ可読プログラム命令は、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンド・アロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上で、および部分的にリモート・コンピュータ上で、または全体的にリモート・コンピュータもしくはサーバ上で実行しうる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続され得、または、(例えばインターネット・サービス・プロバイダを使用してインターネットを通じて)外部コンピュータに接続がなされうる。いくつかの実施形態において、例えばプログラム可能論理回路、フィールドプログラム可能ゲート・アレイ(FPGA)、またはプログラム可能ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を行うためにコンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによってコンピュータ可読プログラム命令を実行しうる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図および/またはブロック図を参照して本明細書に説明される。フローチャート図および/またはブロック図の各ブロック、およびフローチャート図および/またはブロック図のブロックの組み合わせは、コンピュータ可読プログラム命令によって実施されうることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能データ処理装置のプロセッサを介して実行する命令がフローチャートおよび/またはブロック図の単数または複数のブロックに指定された機能/行為を実施するための手段を生み出すように、汎用コンピュータ、専用コンピュータ、またはその他のプログラム可能データ処理装置のプロセッサに提供されてマシンを生成しうる。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読ストレージ媒体がフローチャートおよび/またはブロック図の単数または複数のブロックに指定された機能/行為の態様を実施する命令を含む製品を含むように、コンピュータ、プログラム可能データ処理装置および/または他のデバイスに特定の様式で機能するように指示しうるコンピュータ可読ストレージ媒体に記憶されてもよい。
コンピュータ可読プログラム命令は、コンピュータ、その他のプログラム可能装置、またはその他のデバイス上で実行する命令がフローチャートおよび/またはブロック図の単数または複数のブロックに指定された機能/行為を実施するように、コンピュータにより実施されるプロセスを生成するために、コンピュータ、その他のプログラム可能データ処理装置、またはその他のデバイスにロードされて、コンピュータ、その他のプログラム可能装置、またはその他のデバイス上で一連の動作ステップを行わせることもできる。
図面のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能性、および動作を示す。この点に関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能(単数または複数)を実施するための一つ以上の実行可能命令を含むモジュール、セグメント、または命令の部分を表しうる。いくつかの代替的実施態様では、ブロックに記された機能は、図面に記された順序以外の順序で生じうる。例えば、連続して示される二つのブロックは、実際には、関連する機能性に応じて実質的に同時に実行されてもよく、またはブロックが逆の順序で実行されうる場合もある。ブロック図および/またはフローチャートの各ブロック、ならびにブロック図および/またはフローチャートのブロックの組み合わせは、指定された機能または行為を行うかまたは専用ハードウェアおよびコンピュータ命令の組み合わせを遂行する専用ハードウェア・ベースのシステムによって実施されうることにも留意されたい。

Claims (25)

  1. データ処理プラットフォーム上でジョブを処理するための方法であって、
    処理のために第一ジョブを受け取るステップであって、前記第一ジョブは、前記データ処理プラットフォームの処理パイプラインによる前記第一ジョブの実行のためのパラメータ構成のセットを有する、ステップと、
    前記処理パイプラインの一つ以上の処理モジュールを介して、前記第一ジョブの少なくとも一部分を実行するステップと、
    を含み、
    前記実行するステップは、第二ジョブの一部分の実行中に生成された少なくとも一つのデータ・シャードを使用するステップを含み、前記一つ以上の処理モジュールのうちの少なくとも一つの処理モジュールの出力を使用するステップであって、前記出力は、前記第二ジョブの一部分の実行中に生成される、ステップをさらに含む、
    方法。
  2. 前記第二ジョブの一つ以上の部分は、前記第一ジョブのいずれの部分を実行するよりも前に処理される、請求項1に記載の方法。
  3. 前記処理モジュールは、一つ以上のアプリケーション・プログラミング・インタフェース(API)を含む、請求項1に記載の方法。
  4. 前記データ処理システムによって処理されるジョブのパラメータ構成は、前記ジョブに関連するそれぞれのパラメータ・ファイルにおいて定義される、請求項1に記載の方法。
  5. 前記第二ジョブの一部分の実行中に生成された前記少なくとも一つのデータ・シャードを含むデータ・シャードは、中央データ・サービスによって管理される、請求項1に記載の方法。
  6. 前記中央データ・サービスは仮想化されている、請求項1に記載の方法。
  7. 前記中央データ・サービスは、中央データ・リポジトリおよび中央メタデータ・リポジトリを含む、請求項1に記載の方法。
  8. 前記中央メタデータ・リポジトリは、前記中央データ・リポジトリに記憶されたデータ・シャードについてのメタデータ・ファイルのセットを含み、前記処理パイプラインの処理モジュールの出力についての追加のメタデータ・ファイルのセットをさらに含む、請求項7に記載の方法。
  9. 前記第二ジョブの前記一部分の実行中に生成された前記少なくとも一つのデータ・シャードを、前記データ・シャードについてのメタデータ・ファイルに示される位置からプルするステップと、
    既知のデータ・シャードによって定義されない任意のデータを、生データ・ソースからプルするステップと
    をさらに含む、請求項1に記載の方法。
  10. 前記少なくとも一つのデータ・シャードをプルするステップ、および既知のデータ・シャードによって定義されない前記データをプルするステップは、グラフィカル・ユーザ・インタフェース(GUI)を介したユーザの選択に基づいてトリガされる、請求項9に記載の方法。
  11. データ処理プラットフォーム上でジョブを処理するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、プログラム・コードが具体化された非一時的な有形のストレージ・デバイスを含み、前記プログラム・コードは、方法を行うためにコンピュータのプロセッサによって実行可能であり、前記方法は、
    前記プロセッサによって、処理のために第一ジョブを受け取るステップであって、前記第一ジョブは、前記データ処理プラットフォームの処理パイプラインによる前記第一ジョブの実行のためのパラメータ構成のセットを有する、ステップと、
    前記プロセッサによって、前記処理パイプラインの一つ以上の処理モジュールを介して、前記第一ジョブの少なくとも一部分を実行するステップと、
    を含み、
    前記実行するステップは、第二ジョブの一部分の実行中に生成された少なくとも一つのデータ・シャードを使用するステップを含み、前記一つ以上の処理モジュールのうちの少なくとも一つの処理モジュールの出力を使用するステップであって、前記出力は、前記第二ジョブの一部分の実行中に生成される、ステップをさらに含む、
    コンピュータ・プログラム製品。
  12. 前記第二ジョブの一つ以上の部分は、前記第一ジョブのいずれの部分を実行するよりも前に処理される、請求項11に記載のコンピュータ・プログラム製品。
  13. 前記処理モジュールは、一つ以上のアプリケーション・プログラミング・インタフェース(API)を含む、請求項11に記載のコンピュータ・プログラム製品。
  14. 前記データ処理システムによって処理されるジョブのパラメータ構成は、前記ジョブに関連するそれぞれのパラメータ・ファイルにおいて定義される、請求項11に記載のコンピュータ・プログラム製品。
  15. 前記第二ジョブの一部分の実行中に生成された前記少なくとも一つのデータ・シャードを含むデータ・シャードは、中央データ・サービスによって管理される、請求項11に記載のコンピュータ・プログラム製品。
  16. 前記中央データ・サービスは仮想化されている、請求項11に記載のコンピュータ・プログラム製品。
  17. 前記中央データ・サービスは、中央データ・リポジトリおよび中央メタデータ・リポジトリを含む、請求項11に記載のコンピュータ・プログラム製品。
  18. 前記中央メタデータ・リポジトリは、前記中央データ・リポジトリに記憶されたデータ・シャードについてのメタデータ・ファイルのセットを含み、前記処理パイプラインの処理モジュールの出力についての追加のメタデータ・ファイルのセットをさらに含む、請求項17に記載のコンピュータ・プログラム製品。
  19. 前記プロセッサによって、第二ジョブの一部分の実行中に生成された少なくとも一つのデータ・シャードを、データ・シャードについてのメタデータ・ファイルに示される位置からプルするステップと、
    前記プロセッサによって、既知のデータ・シャードによって定義されない任意のデータを、生データ・ソースからプルするステップと
    をさらに含む、請求項11に記載のコンピュータ・プログラム製品。
  20. 前記少なくとも一つのデータ・シャードをプルするステップ、および既知のデータ・シャードによって定義されない前記データをプルするステップは、グラフィカル・ユーザ・インタフェース(GUI)を介したユーザの選択に基づいてトリガされる、請求項19に記載のコンピュータ・プログラム製品。
  21. データ処理プラットフォーム上でジョブを処理するためのコンピュータ・システムであって、
    一つ以上のプロセッサと一つ以上の有形のストレージ・デバイスとを各々が有する一つ以上のコンピュータ・デバイスと、
    前記一つ以上のストレージ・デバイスのうちの少なくとも一つに具体化されたプログラムと、
    を含み、
    前記プログラムは、前記一つ以上のプロセッサによる実行のための複数のプログラム命令を有し、前記プログラム命令は、
    処理のために第一ジョブを受け取るステップであって、前記第一ジョブは、前記データ処理プラットフォームの処理パイプラインによる前記第一ジョブの実行のためのパラメータ構成のセットを有する、ステップと、
    前記処理パイプラインの一つ以上の処理モジュールを介して、前記第一ジョブの少なくとも一部分を実行するステップと、のための命令を含み、
    前記実行するステップは、第二ジョブの一部分の実行中に生成された少なくとも一つのデータ・シャードを使用するステップを含み、前記一つ以上の処理モジュールのうちの少なくとも一つの処理モジュールの出力を使用するステップであって、前記出力は、前記第二ジョブの一部分の実行中に生成される、ステップをさらに含む、
    コンピュータ・システム。
  22. 前記第二ジョブの一つ以上の部分は、前記第一ジョブのいずれの部分を実行するよりも前に処理される、請求項21に記載のコンピュータ・システム。
  23. 前記処理モジュールは、一つ以上のアプリケーション・プログラミング・インタフェース(API)を含む、請求項21に記載のコンピュータ・システム。
  24. 前記データ処理プラットフォームは、中央データ・サービスを含み、前記中央データ・サービスは、中央データ・リポジトリおよび中央メタデータ・リポジトリを含み、前記中央メタデータ・リポジトリは、前記中央データ・リポジトリに記憶されたデータ・シャードについてのメタデータ・ファイルのセットを含み、前記処理パイプラインの処理モジュールの出力についての追加のメタデータ・ファイルのセットをさらに含む、請求項21に記載のコンピュータ・システム。
  25. データ処理プラットフォーム上でジョブを処理するための方法であって、
    処理のために第一ジョブを受け取るステップであって、前記第一ジョブは、前記データ処理プラットフォームの処理パイプラインによる前記第一ジョブの実行のためのパラメータ構成のセットを有し、前記処理モジュールは、一つ以上のアプリケーション・プログラミング・インタフェース(API)を含む、ステップと、
    前記処理パイプラインの一つ以上の処理モジュールを介して、前記第一ジョブの少なくとも一部分を実行するステップと、
    を含み、
    前記実行するステップは、第二ジョブの一部分の実行中に生成された少なくとも一つのデータ・シャードを使用するステップを含み、前記一つ以上の処理モジュールのうちの少なくとも一つの処理モジュールの出力を使用するステップであって、前記出力は、前記第二ジョブの一部分の実行中に生成される、ステップをさらに含み、
    前記第二ジョブの一つ以上の部分は、前記第一ジョブのいずれの部分を実行するよりも前に処理され、
    前記第二ジョブの一部分の実行中に生成された前記少なくとも一つのデータ・シャードを含むデータ・シャードは、中央データ・リポジトリと中央メタデータ・リポジトリとを含む中央データ・サービスによって管理され、
    前記第一ジョブの前記少なくとも一部分を実行するステップは、
    第二ジョブの一部分の実行中に生成された少なくとも一つのデータ・シャードを、データ・シャードについてのメタデータ・ファイルに示される位置からプルするステップと、
    既知のデータ・シャードによって定義されない任意のデータを、生データ・ソースからプルするステップと
    をさらに含む、
    方法。
JP2020529139A 2017-12-08 2018-12-06 データ処理システムにおけるジョブ管理 Active JP7185982B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/835,824 2017-12-08
US15/835,824 US11061905B2 (en) 2017-12-08 2017-12-08 Job management in data processing system
PCT/IB2018/059692 WO2019111188A1 (en) 2017-12-08 2018-12-06 Job management in data processing system

Publications (3)

Publication Number Publication Date
JP2021508389A true JP2021508389A (ja) 2021-03-04
JP2021508389A5 JP2021508389A5 (ja) 2021-07-26
JP7185982B2 JP7185982B2 (ja) 2022-12-08

Family

ID=66696193

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020529139A Active JP7185982B2 (ja) 2017-12-08 2018-12-06 データ処理システムにおけるジョブ管理

Country Status (6)

Country Link
US (1) US11061905B2 (ja)
JP (1) JP7185982B2 (ja)
CN (1) CN111295648A (ja)
DE (1) DE112018005620T5 (ja)
GB (1) GB2583608B (ja)
WO (1) WO2019111188A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11061905B2 (en) 2017-12-08 2021-07-13 International Business Machines Corporation Job management in data processing system
US11194773B2 (en) * 2019-09-12 2021-12-07 Oracle International Corporation Integration of existing databases into a sharding environment
US11940975B2 (en) * 2020-09-28 2024-03-26 International Business Machines Corporation Database distribution to avoid contention

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000082061A (ja) * 1998-09-04 2000-03-21 Toshiba Corp 結果再利用情報処理システム
US20090300038A1 (en) * 2008-05-28 2009-12-03 Ying Chen Methods and Apparatus for Reuse Optimization of a Data Storage Process Using an Ordered Structure
JP2011002911A (ja) * 2009-06-16 2011-01-06 Hitachi Ltd データ分析システム及び方法
JP2012160014A (ja) * 2011-01-31 2012-08-23 Nippon Telegr & Teleph Corp <Ntt> データ分析及び機械学習処理装置及び方法及びプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030177046A1 (en) 2001-12-03 2003-09-18 John Socha-Leialoha Method and system for reusing components
US7117500B2 (en) 2001-12-20 2006-10-03 Cadence Design Systems, Inc. Mechanism for managing execution of interdependent aggregated processes
US8677320B2 (en) 2011-04-06 2014-03-18 Mosaic, Inc. Software testing supporting high reuse of test data
KR101365464B1 (ko) 2012-03-05 2014-02-20 네이버비즈니스플랫폼 주식회사 데이터베이스 미들웨어를 이용한 데이터 관리 시스템 및 방법
US9218573B1 (en) 2012-05-22 2015-12-22 Google Inc. Training a model using parameter server shards
US9298760B1 (en) * 2012-08-03 2016-03-29 Google Inc. Method for shard assignment in a large-scale data processing job
US20140108421A1 (en) * 2012-10-04 2014-04-17 Codefutures Corporation Partitioning database data in a sharded database
US10521671B2 (en) * 2014-02-28 2019-12-31 Second Spectrum, Inc. Methods and systems of spatiotemporal pattern recognition for video content development
US11093468B1 (en) 2014-03-31 2021-08-17 EMC IP Holding Company LLC Advanced metadata management
JP6388374B2 (ja) 2014-05-26 2018-09-12 キヤノン株式会社 情報処理装置及、情報処理装置の制御方法及びプログラム
EP4328816A1 (en) * 2014-06-30 2024-02-28 Amazon Technologies, Inc. Machine learning service
CN105511957B (zh) * 2014-09-25 2019-05-07 国际商业机器公司 用于生成作业告警的方法和系统
US10354188B2 (en) * 2016-08-02 2019-07-16 Microsoft Technology Licensing, Llc Extracting facts from unstructured information
US20180130024A1 (en) * 2016-11-08 2018-05-10 Facebook, Inc. Systems and methods to identify resumes based on staged machine learning models
US11061905B2 (en) 2017-12-08 2021-07-13 International Business Machines Corporation Job management in data processing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000082061A (ja) * 1998-09-04 2000-03-21 Toshiba Corp 結果再利用情報処理システム
US20090300038A1 (en) * 2008-05-28 2009-12-03 Ying Chen Methods and Apparatus for Reuse Optimization of a Data Storage Process Using an Ordered Structure
JP2011002911A (ja) * 2009-06-16 2011-01-06 Hitachi Ltd データ分析システム及び方法
JP2012160014A (ja) * 2011-01-31 2012-08-23 Nippon Telegr & Teleph Corp <Ntt> データ分析及び機械学習処理装置及び方法及びプログラム

Also Published As

Publication number Publication date
WO2019111188A1 (en) 2019-06-13
US20190179943A1 (en) 2019-06-13
GB202009966D0 (en) 2020-08-12
DE112018005620T5 (de) 2020-07-23
GB2583608B (en) 2022-02-09
US11061905B2 (en) 2021-07-13
GB2583608A (en) 2020-11-04
CN111295648A (zh) 2020-06-16
JP7185982B2 (ja) 2022-12-08

Similar Documents

Publication Publication Date Title
US10528585B2 (en) ETL tool interface for remote mainframes
US9727625B2 (en) Parallel transaction messages for database replication
US11294958B2 (en) Managing a distributed knowledge graph
US10353874B2 (en) Method and apparatus for associating information
US11734937B1 (en) Creating text classification machine learning models
US10877846B2 (en) Performing a closure merge operation
US20140081901A1 (en) Sharing modeling data between plug-in applications
JP2021508389A (ja) データ処理システムにおけるジョブ管理
US11630647B2 (en) Method and system for configuring processes of software applications using activity fragments
US10698722B2 (en) Virtual machine migration across cloud computing providers
US9619518B2 (en) Tracking tuples to reduce redundancy in a graph
US11693878B2 (en) Generation of a dataset in the format of a machine learning framework
US11461292B2 (en) Quick data exploration
US20230169354A1 (en) Annotation of a Machine Learning Pipeline with Operational Semantics to Support Distributed Lineage Tracking
WO2020237665A1 (zh) 协助用户使用自动化系统的设备、方法和计算机可读介质
US20190258705A1 (en) Applying Matching Data Transformation Information Based on a User&#39;s Editing of Data within a Document
Nguyen Setting Up a Hadoop System in Cloud A Lab Activity for Big Data Analytics

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210518

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210525

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220705

RD16 Notification of change of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7436

Effective date: 20221004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221025

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20221025

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20221115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221124

R150 Certificate of patent or registration of utility model

Ref document number: 7185982

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150