(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-19
(45)【発行日】2023-06-27
(54)【発明の名称】データフローグラフ構成
(51)【国際特許分類】
G06F 8/34 20180101AFI20230620BHJP
G06F 8/36 20180101ALI20230620BHJP
【FI】
G06F8/34
G06F8/36
(21)【出願番号】P 2019562647
(86)(22)【出願日】2018-06-05
(86)【国際出願番号】 US2018035976
(87)【国際公開番号】W WO2018226637
(87)【国際公開日】2018-12-13
【審査請求日】2021-05-31
(32)【優先日】2017-06-07
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-06-04
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】509123208
【氏名又は名称】アビニシオ テクノロジー エルエルシー
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】エプスタイン,リチャード エー.
(72)【発明者】
【氏名】パルマー,マイク
【審査官】武田 広太郎
(56)【参考文献】
【文献】特表2008-547134(JP,A)
【文献】米国特許出願公開第2015/0242093(US,A1)
【文献】特表2017-500646(JP,A)
【文献】特表2013-528884(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/34
G06F 8/36
(57)【特許請求の範囲】
【請求項1】
第1のコンピュータ実行可能プログラムを構成するための方法であって、
ユーザインターフェースを介して、データソース及びデータターゲットを示す情報を受信することと、
前記ユーザインターフェースにおいて表示される複数のプロセスタイプのセットからプロセスのタイプを選択するために、ユーザが入力を提供するための第1の
構成インターフェースを前記ユーザインターフェースに表示することであって、前記複数のプロセスタイプのそれぞれは、それぞれの第2のコンピュータプログラムに対応し、各第2のコンピュータプログラムは、データレコードを受信し、データレコードを処理し、処理されたデータレコードを出力するように構成可能である、ことと、
プロセスのタイプの選択を受信することに応答して、選択されたタイプのプロセスに関連付けられる一つ以上の特性についての情報についての第2の
構成インターフェースを前記ユーザインターフェースに表示することであって、前記第2の
構成インターフェースは、プロセスの選択されたタイプに基づく、ことと、
前記第2の
構成インターフェースに応答して、選択されたタイプのプロセスに関連付けられる一つ以上の特性についての情報を、前記ユーザインターフェースを通じて、受信することと、
前記データソース及び前記データターゲットを示す前記受信した情報に基づいて、前記第1のコンピュータ実行可能プログラムが実行されるときに、前記第1のコンピュータ実行可能プログラムに、前記データソースからデータレコードを受信させ、処理されたデータレコードを前記データターゲットに出力させる前記第1のコンピュータ実行可能プログラムのそれぞれのパラメータに値を自動的に割り当てることと、
データレコードを受信し、データレコードを処理し、処理されたデータレコードを出力するように構成可能な特定の第2のコンピュータプログラムを参照するために前記第1のコンピュータ実行可能プログラムを、プロセスの選択されたタイプと、プロセスの一つ以上の特性についての受信した情報とに基づいて、自動的に構成することであって、
前記構成することは、
プロセスの選択されたタイプに対応する前記特定の第2のコンピュータプログラムを自動的に識別することと、
プロセスの一つ以上の特性についての受信した情報に基づいて、前記特定の第2のコンピュータプログラムの一つ以上のパラメータのそれぞれについての値を自動的に決定することであって、コンピュータプログラムのパラメータについての値は、コンピュータプログラムが実行されるときに、コンピュータプログラムの振る舞いを定義する、ことと、
データレコードを受信し、データレコードを処理し、処理されたデータレコードを出力することに関して、前記第2のコンピュータプログラムを構成するために、前記特定の第2のコンピュータプログラムのそれぞれのパラメータに、決定された値を自動的に割り当てること、
を含み、
前記第1のコンピュータ実行可能プログラムが実行されるとき、前記特定の第2のコンピュータプログラムのそれぞれのパラメータに、決定された値を割り当てることにより、前記受信された情報により示されるプロセスの特性に従って、前記特定の第2のコンピュータプログラムが振る舞う、方法。
【請求項2】
前記第1のコンピュータ実行可能プログラムは、データ処理コンポーネントを表す1つ以上のノードと、前記データ処理コンポーネント間のデータのフローを表す1つ以上のリンクとを含む第1のデータフローグラフを含む、請求項1に記載の方法。
【請求項3】
第2のコンピュータ実行可能プログラムは、データ処理コンポーネントを表す1つ以上のノードと、前記データ処理コンポーネント間のデータのフローを表す1つ以上のリンクとを含む第2のデータフローグラフを含む、請求項1に記載の方法。
【請求項4】
前記データソースを示す前記情報は、前記データソースのタイプを識別する、請求項1に記載の方法。
【請求項5】
前記データソースを示す前記情報を受信することは、1つ以上のタイプのセットの中から前記データソースの前記タイプの選択を受信することを含む、請求項4に記載の方法。
【請求項6】
前記1つ以上のタイプのセットは、ファイル、テーブル、HDFSデータセット、HIVEテーブル、及びキューのうちの1つ以上を含む、請求項5に記載の方法。
【請求項7】
前記データソースを示す前記情報は、前記データソースの場所を示す情報を含む、請求項1に記載の方法。
【請求項8】
前記データターゲットを示す前記情報は、前記データターゲットのタイプを識別する、請求項1に記載の方法。
【請求項9】
前記データターゲットを示す前記情報を受信することは、1つ以上のタイプのセットの中から前記データターゲットの前記タイプの選択を受信することを含む、請求項8に記載の方法。
【請求項10】
前記1つ以上のタイプのセットは、ファイル、テーブル、HDFSデータセット、HIVEテーブル、及びキューのうちの1つ以上を含む、請求項9に記載の方法。
【請求項11】
前記データターゲットを示す前記情報は、複数のデータターゲットを示す情報を含む、請求項1に記載の方法。
【請求項12】
前記データターゲットを示す前記情報は、前記データターゲットの場所を示す情報を含む、請求項1に記載の方法。
【請求項13】
プロセスの複数のタイプのそれぞれの選択を受信することを含む、請求項1に記載の方法。
【請求項14】
前記プロセスの前記タイプに基づいて、前記第2の
構成インターフェースを決定することを含む、請求項1に記載の方法。
【請求項15】
前記複数のプロセスタイプのセットのプロセスタイプは、マッピングプロセス、フィルタプロセス、重複除去プロセス、集約プロセス、複製プロセス、正規化プロセス、パーティション及びソートプロセス、変更データキャプチャプロセス、並びに結合プロセスのうちの1つ以上を含む、請求項1に記載の方法。
【請求項16】
第1のデータフローグラフの実行時に第2のデータフローグラフを参照するように、第1のデータフローグラフを自動的に構成することを含む、請求項1に記載の方法。
【請求項17】
第2のデータフローグラフを参照するように第1のデータフローグラフを自動的に構成することは、第1データフローグラフの実行中に第2データフローグラフを実行するように第1データフローグラフを構成することを含む、請求項1に記載の方法。
【請求項18】
コンピューティングシステムに第1のコンピュータ実行可能プログラムを構成させるための命令を保存する非一時的コンピュータ可読媒体であって、前記命令が、前記コンピューティングシステムに、
ユーザインターフェースを介して、データソース及びデータターゲットを示す情報を受信することと、
前記ユーザインターフェースにおいて表示される複数のプロセスタイプのセットからプロセスのタイプを選択するために、ユーザが入力を提供するための第1の
構成インターフェースを前記ユーザインターフェースに表示することであって、前記複数のプロセスタイプのそれぞれは、それぞれの第2のコンピュータプログラムに対応し、各第2のコンピュータプログラムは、データレコードを受信し、データレコードを処理し、処理されたデータレコードを出力するように構成可能である、ことと、
プロセスのタイプの選択を受信することに応答して、選択されたタイプのプロセスに関連付けられる一つ以上の特性についての情報についての第2の
構成インターフェースを前記ユーザインターフェースに表示することであって、前記第2の
構成インターフェースは、プロセスの選択されたタイプに基づく、ことと、
前記第2の
構成インターフェースに応答して、選択されたタイプのプロセスに関連付けられる一つ以上の特性についての情報を、前記ユーザインターフェースを通じて、受信することと、
前記データソース及び前記データターゲットを示す前記受信した情報に基づいて、前記第1のコンピュータ実行可能プログラムが実行されるときに、前記第1のコンピュータ実行可能プログラムに、前記データソースからデータレコードを受信させ、処理されたデータレコードを前記データターゲットに出力させる前記第1のコンピュータ実行可能プログラムのそれぞれのパラメータに値を自動的に割り当てることと、
データレコードを受信し、データレコードを処理し、処理されたデータレコードを出力するように構成可能な特定の第2のコンピュータプログラムを参照するために前記第1のコンピュータ実行可能プログラムを、プロセスの選択されたタイプと、プロセスの一つ以上の特性についての受信した情報とに基づいて、自動的に構成することであって、
前記構成することは、
プロセスの選択されたタイプに対応する前記特定の第2のコンピュータプログラムを自動的に識別することと、
プロセスの一つ以上の特性についての受信した情報に基づいて、前記特定の第2のコンピュータプログラムの一つ以上のパラメータのそれぞれについての値を自動的に決定することであって、コンピュータプログラムのパラメータについての値は、コンピュータプログラムが実行されるときに、コンピュータプログラムの振る舞いを定義する、ことと、
データレコードを受信し、データレコードを処理し、処理されたデータレコードを出力することに関して、前記第2のコンピュータプログラムを構成するために、前記特定の第2のコンピュータプログラムのそれぞれのパラメータに、決定された値を自動的に割り当てることと、を含む、ことと、
を実行させるための命令を含み、
前記第1のコンピュータ実行可能プログラムが実行されるとき、前記特定の第2のコンピュータプログラムのそれぞれのパラメータに、決定された値を割り当てることにより、前記受信された情報により示されるプロセスの特性に従って、前記特定の第2のコンピュータプログラムが振る舞う、非一時的コンピュータ可読媒体。
【請求項19】
第1のコンピュータ実行可能プログラムを構成するためのコンピューティングシステムであって、
1つ以上のプロセッサ及びメモリを含み、前記1つ以上のプロセッサ及びメモリが、
ユーザインターフェースを介して、データソース及びデータターゲットを示す情報を受信することと、
前記ユーザインターフェースにおいて表示される複数のプロセスタイプのセットからプロセスのタイプを選択するために、ユーザが入力を提供するための第1の
構成インターフェースを前記ユーザインターフェースに表示することであって、前記複数のプロセスタイプのそれぞれは、それぞれの第2のコンピュータプログラムに対応し、各第2のコンピュータプログラムは、データレコードを受信し、データレコードを処理し、処理されたデータレコードを出力するように構成可能である、ことと、
プロセスのタイプの選択を受信することに応答して、選択されたタイプのプロセスに関連付けられる一つ以上の特性についての情報についての第2の
構成インターフェースを前記ユーザインターフェースに表示することであって、前記第2の
構成インターフェースは、プロセスの選択されたタイプに基づく、ことと、
前記第2の
構成インターフェースに応答して、選択されたタイプのプロセスに関連付けられる一つ以上の特性についての情報を、前記ユーザインターフェースを通じて、受信することと、
前記データソース及び前記データターゲットを示す前記受信した情報に基づいて、前記第1のコンピュータ実行可能プログラムが実行されるときに、前記第1のコンピュータ実行可能プログラムに、前記データソースからデータレコードを受信させ、処理されたデータレコードを前記データターゲットに出力させる前記第1のコンピュータ実行可能プログラムのそれぞれのパラメータに値を自動的に割り当てることと、
データレコードを受信し、データレコードを処理し、処理されたデータレコードを出力するように構成可能な特定の第2のコンピュータプログラムを参照するために前記第1のコンピュータ実行可能プログラムを、プロセスの選択されたタイプと、プロセスの一つ以上の特性についての受信した情報とに基づいて、自動的に構成することであって、
前記構成することは、
プロセスの選択されたタイプに対応する前記特定の第2のコンピュータプログラムを自動的に識別することと、
プロセスの一つ以上の特性についての受信した情報に基づいて、前記特定の第2のコンピュータプログラムの一つ以上のパラメータのそれぞれについての値を自動的に決定することであって、コンピュータプログラムのパラメータについての値は、コンピュータプログラムが実行されるときに、コンピュータプログラムの振る舞いを定義する、ことと、
データレコードを受信し、データレコードを処理し、処理されたデータレコードを出力することに関して、前記第2のコンピュータプログラムを構成するために、前記特定の第2のコンピュータプログラムのそれぞれのパラメータに、決定された値を自動的に割り当てることと、を含む、ことと、
を実行させるための命令を含み、
前記第1のコンピュータ実行可能プログラムが実行されるとき、前記特定の第2のコンピュータプログラムのそれぞれのパラメータに、決定された値を割り当てることにより、前記受信された情報により示されるプロセスの特性に従って、前記特定の第2のコンピュータプログラムが振る舞う、コンピューティングシステム。
【請求項20】
第1のコンピュータ実行可能プログラムを構成するためのコンピューティングシステムであって、
ユーザインターフェースを介して、データソース及びデータターゲットを示す情報を受信する手段と、
前記ユーザインターフェースにおいて表示される複数のプロセスタイプのセットからプロセスのタイプを選択するために、ユーザが入力を提供するための第1の
構成インターフェースを前記ユーザインターフェースに表示する手段であって、前記複数のプロセスタイプのそれぞれは、それぞれの第2のコンピュータプログラムに対応し、各第2のコンピュータプログラムは、データレコードを受信し、データレコードを処理し、処理されたデータレコードを出力するように構成可能である、手段と、
プロセスのタイプの選択を受信することに応答して、選択されたタイプのプロセスに関連付けられる一つ以上の特性についての情報についての第2の
構成インターフェースを前記ユーザインターフェースに表示する手段であって、前記第2の
構成インターフェースは、プロセスの選択されたタイプに基づく、手段と、
前記第2の
構成インターフェースに応答して、選択されたタイプのプロセスに関連付けられる一つ以上の特性についての情報を、前記ユーザインターフェースを通じて、受信する手段と、
前記データソース及び前記データターゲットを示す前記受信した情報に基づいて、前記第1のコンピュータ実行可能プログラムが実行されるときに、前記第1のコンピュータ実行可能プログラムに、前記データソースからデータレコードを受信させ、処理されたデータレコードを前記データターゲットに出力させる前記第1のコンピュータ実行可能プログラムのそれぞれのパラメータに値を自動的に割り当てる手段と、
データレコードを受信し、データレコードを処理し、処理されたデータレコードを出力するように構成可能な特定の第2のコンピュータプログラムを参照するために前記第1のコンピュータ実行可能プログラムを、プロセスの選択されたタイプと、プロセスの一つ以上の特性についての受信した情報とに基づいて、自動的に構成する手段であって、
前記構成することは、
プロセスの選択されたタイプに対応する前記特定の第2のコンピュータプログラムを自動的に識別することと、
プロセスの一つ以上の特性についての受信した情報に基づいて、前記特定の第2のコンピュータプログラムの一つ以上のパラメータのそれぞれについての値を自動的に決定することであって、コンピュータプログラムのパラメータについての値は、コンピュータプログラムが実行されるときに、コンピュータプログラムの振る舞いを定義する、ことと、
データレコードを受信し、データレコードを処理し、処理されたデータレコードを出力することに関して、前記第2のコンピュータプログラムを構成するために、前記特定の第2のコンピュータプログラムのそれぞれのパラメータに、決定された値を自動的に割り当てることと、を含む、手段と、
を含み、
前記第1のコンピュータ実行可能プログラムが実行されるとき、前記特定の第2のコンピュータプログラムのそれぞれのパラメータに、決定された値を割り当てることにより、前記受信された情報により示されるプロセスの特性に従って、前記特定の第2のコンピュータプログラムが振る舞う、コンピューティングシステム。
【請求項21】
前記第1のコンピュータ実行可能プログラムは、データ処理コンポーネントを表す1つ以上のノードと、前記データ処理コンポーネント間のデータのフローを表す1つ以上のリンクとを含む第1のデータフローグラフを含む、請求項18に記載の非一時的コンピュータ可読媒体。
【請求項22】
第2のコンピュータ実行可能プログラムは、データ処理コンポーネントを表す1つ以上のノードと、前記データ処理コンポーネント間のデータのフローを表す1つ以上のリンクとを含む第2のデータフローグラフを含む、請求項18に記載の非一時的コンピュータ可読媒体。
【請求項23】
前記データソースを示す前記情報は、前記データソースのタイプを識別する、請求項18に記載の非一時的コンピュータ可読媒体。
【請求項24】
前記データソースを示す前記情報を受信することは、1つ以上のタイプのセットの中から前記データソースの前記タイプの選択を受信することを含む、請求項23に記載の非一時的コンピュータ可読媒体。
【請求項25】
前記データソースを示す前記情報は、前記データソースの場所を示す情報を含む、請求項18に記載の非一時的コンピュータ可読媒体。
【請求項26】
前記データターゲットを示す前記情報は、前記データターゲットのタイプを識別する、請求項18に記載の非一時的コンピュータ可読媒体。
【請求項27】
前記データターゲットを示す前記情報を受信することは、1つ以上のタイプのセットの中から前記データターゲットの前記タイプの選択を受信することを含む、請求項26に記載の非一時的コンピュータ可読媒体。
【請求項28】
前記データターゲットを示す前記情報は、前記データターゲットの場所を示す情報を含む、請求項18に記載の非一時的コンピュータ可読媒体。
【請求項29】
前記命令は、前記コンピューティングシステムに、プロセスの複数のタイプのそれぞれの選択を受信させるための命令を含む、請求項18に記載の非一時的コンピュータ可読媒体。
【請求項30】
前記命令は、前記コンピューティングシステムに、前記プロセスの前記タイプに基づいて、前記第2の
構成インターフェースを決定させる命令を含む、請求項18に記載の非一時的コンピュータ可読媒体。
【請求項31】
前記複数のプロセスタイプのセットのプロセスタイプは、マッピングプロセス、フィルタプロセス、重複除去プロセス、集約プロセス、複製プロセス、正規化プロセス、パーティション及びソートプロセス、変更データキャプチャプロセス、並びに結合プロセスのうちの1つ以上を含む、請求項18に記載の非一時的コンピュータ可読媒体。
【請求項32】
前記命令は、前記コンピューティングシステムに、第1のデータフローグラフの実行時に第2のデータフローグラフを参照するように、第1のデータフローグラフを自動的に構成させる命令を含む、請求項18に記載の非一時的コンピュータ可読媒体。
【請求項33】
前記コンピューティングシステムに、第2のデータフローグラフを参照するように第1のデータフローグラフを自動的に構成させる命令は、前記コンピューティングシステムに、第1データフローグラフの実行中に第2データフローグラフを実行するように第1データフローグラフを構成させる命令を含む、請求項18に記載の非一時的コンピュータ可読媒体。
【請求項34】
前記第1のコンピュータ実行可能プログラムは、データ処理コンポーネントを表す1つ以上のノードと、前記データ処理コンポーネント間のデータのフローを表す1つ以上のリンクとを含む第1のデータフローグラフを含む、請求項19に記載のコンピューティングシステム。
【請求項35】
第2のコンピュータ実行可能プログラムは、データ処理コンポーネントを表す1つ以上のノードと、前記データ処理コンポーネント間のデータのフローを表す1つ以上のリンクとを含む第2のデータフローグラフを含む、請求項19に記載のコンピューティングシステム。
【請求項36】
前記データソースを示す前記情報は、前記データソースのタイプを識別する、請求項19に記載のコンピューティングシステム。
【請求項37】
前記データソースを示す前記情報を受信することは、1つ以上のタイプのセットの中から前記データソースの前記タイプの選択を受信することを含む、請求項36に記載のコンピューティングシステム。
【請求項38】
前記データソースを示す前記情報は、前記データソースの場所を示す情報を含む、請求項19に記載のコンピューティングシステム。
【請求項39】
前記データターゲットを示す前記情報は、前記データターゲットのタイプを識別する、請求項19に記載のコンピューティングシステム。
【請求項40】
前記データターゲットを示す前記情報を受信することは、1つ以上のタイプのセットの中から前記データターゲットの前記タイプの選択を受信することを含む、請求項39に記載のコンピューティングシステム。
【請求項41】
前記データターゲットを示す前記情報は、前記データターゲットの場所を示す情報を含む、請求項19に記載のコンピューティングシステム。
【請求項42】
前記1つ以上のプロセッサ及びメモリは、プロセスの複数のタイプのそれぞれの選択を受信するように構成されている、請求項19に記載のコンピューティングシステム。
【請求項43】
前記1つ以上のプロセッサ及びメモリは、前記プロセスの前記タイプに基づいて、前記第2の
構成インターフェースを決定するように構成されている、請求項19に記載のコンピューティングシステム。
【請求項44】
前記複数のプロセスタイプのセットのプロセスタイプは、マッピングプロセス、フィルタプロセス、重複除去プロセス、集約プロセス、複製プロセス、正規化プロセス、パーティション及びソートプロセス、変更データキャプチャプロセス、並びに結合プロセスのうちの1つ以上を含む、請求項19に記載のコンピューティングシステム。
【請求項45】
前記1つ以上のプロセッサ及びメモリは、第1のデータフローグラフの実行時に第2のデータフローグラフを参照するように、第1のデータフローグラフを自動的に構成させるように構成されている、請求項19に記載のコンピューティングシステム。
【請求項46】
第2のデータフローグラフを参照するように第1のデータフローグラフを自動的に構成させることは、第1データフローグラフの実行中に第2データフローグラフを実行するように第1データフローグラフを構成させることを含む、請求項19に記載のコンピューティングシステム。
【請求項47】
前記第1のコンピュータ実行可能プログラムは、データソースコンポーネントとデータターゲットコンポーネントとを含み、前記第1のコンピュータ実行可能プログラムのそれぞれのパラメータに値を自動的に割り当てることは、
前記第1のコンピュータ実行可能プログラムのデータソースコンポーネントに、前記データソースコンポーネントのパラメータについての値を割り当てることであって、前記値は、データソースを示す、ことと、
前記第1のコンピュータ実行可能プログラムのデータターゲットコンポーネントに、前記データターゲットコンポーネントのパラメータについての値を割り当てることであって、前記値は、データターゲットを示す、ことと、
を含む、請求項2に記載の方法。
【請求項48】
前記第1のコンピュータ実行可能プログラムは、データ処理コンポーネントを含み、第1のデータフローは、前記データソースコンポーネントを前記データ処理コンポーネントに接続し、第2のデータフローは、前記データ処理コンポーネントを前記データターゲットコンポーネントに接続する、請求項47に記載の方法。
【請求項49】
前記第1のコンピュータ実行可能プログラムを自動的に構成することは、前記第1のコンピュータ実行可能プログラムのデータ処理コンポーネントに、データ処理コンポーネントについてのパラメータについての値を割り当てることを含み、前記値は、プロセスの選択されたタイプが対応する特定の第2のコンピュータプログラムを示す、請求項48に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
優先権の主張
この出願は、2017年6月7日に出願された米国特許出願第62/516,396号、及び2018年6月4日に出願された米国特許出願第15/997,278号に対する優先権を主張するものであり、それら両方の内容は、参照によりその全体が本明細書に組み込まれる。
【背景技術】
【0002】
背景
コンピューティングシステムによって処理されるデータとユーザが対話できるようにするために、ユーザインターフェースを生成し、ユーザに表示することができる。いくつかのユーザインターフェースは、アプリケーションプログラムの静的コンポーネントであり、ユーザインターフェースは、問題の複数のユーザに対して同じように動作する。ユーザインターフェースが特定の目的に対してオーダーメイドされるように、アプリケーションプログラムのユーザによっていくつかのユーザインターフェースを定義できる。例えば、アプリケーションプログラムにより、複数のユーザインターフェースを指定でき、ユーザは、複数のユーザインターフェースの中から選択することができる。
【発明の概要】
【課題を解決するための手段】
【0003】
概要
一態様では、第1のコンピュータ実行可能プログラムを構成するための方法は、ユーザインターフェースを介してデータソース及びデータターゲットを示す情報を受信することと、ユーザインターフェースを介してプロセスの特性評価を受信することとを含み、特性評価には、プロセスのタイプと、プロセスに関連付けられたそれぞれの特性の値が含まれる。方法は、受信した情報に基づいて、第1のコンピュータ実行可能プログラムのそれぞれのパラメータに値を自動的に割り当てて、第1のコンピュータ実行可能プログラムに、実行時に、データソースからデータを受信させ、データターゲットにデータを出力させることを含む。方法は、受信したプロセスの特性評価に基づいて、第2のコンピュータ実行可能プログラムを参照するように、第1のコンピュータ実行可能プログラムを自動的に構成することを含む。構成することは、プロセスのタイプに基づいて第2のコンピュータ実行可能プログラムを識別することと、プロセスに関連付けられたそれぞれの特性の値に基づいて第2のコンピュータ実行可能プログラムのそれぞれのパラメータに値を割り当てることと、を含む。
【0004】
実施形態は、以下の特徴のうちの1つ以上を含むことができる。
【0005】
第1のコンピュータ実行可能プログラムは、データ処理コンポーネントを表す1つ以上のノードと、データ処理コンポーネント間のデータのフローを表す1つ以上のリンクとを含む第1のデータフローグラフを含む。
【0006】
第2のコンピュータ実行可能プログラムは、データ処理コンポーネントを表す1つ以上のノードと、データ処理コンポーネント間のデータのフローを表す1つ以上のリンクとを含む第2のデータフローグラフを含む。
【0007】
データソースを示す情報は、データソースのタイプを識別する。データソースを示す情報を受信することは、1つ以上のタイプのセットの中からデータソースのタイプの選択を受信することを含む。1つ以上のタイプのセットは、ファイル、テーブル、HDFSデータセット、HIVEテーブル、及びキューのうちの1つ以上を含む。
【0008】
データソースを示す情報は、データソースの場所を示す情報を含む。
【0009】
データターゲットを示す情報は、データターゲットのタイプを識別する。データターゲットを示す情報を受信することは、1つ以上のタイプのセットの中からデータターゲットのタイプの選択を受信することを含む。1つ以上のタイプのセットは、ファイル、テーブル、HDFSデータセット、HIVEテーブル、及びキューのうちの1つ以上を含む。
【0010】
データターゲットを示す情報は、複数のデータターゲットを示す情報を含む。
【0011】
データターゲットを示す情報は、データターゲットの場所を示す情報を含む。
【0012】
プロセスの特性評価は、複数のプロセスの各々の特性評価を含む。
【0013】
方法は、プロセスのタイプに基づいて、プロセスに関連付けられた特性を判定することを含む。
【0014】
プロセスの特性評価の受信には、1つ以上のプロセスのセットの中からの特定のプロセスの選択を受信することが含まれる。セットのプロセスには、マッピングプロセス、フィルタプロセス、重複除去プロセス、集約プロセス、複製プロセス、正規化プロセス、パーティション及びソートプロセス、変更データキャプチャプロセス、並びに結合プロセスのうちの1つ以上が含まれる。
【0015】
方法は、第1のデータフローグラフの実行時に第2のデータフローグラフを参照するように、第1のデータフローグラフを自動的に構成することを含む。
【0016】
第2のデータフローグラフを参照するように第1のデータフローグラフを自動的に構成することは、第1データフローグラフの実行中に第2データフローグラフを実行するように第1データフローグラフを構成することを含む。
【0017】
一態様では、非一時的コンピュータ可読媒体は、コンピューティングシステムに、第1のコンピュータ実行可能プログラムを構成させるための命令を保存する。命令は、コンピューティングシステムに、ユーザインターフェースを介して、データソース及びデータターゲットを示す情報を受信させ、ユーザインターフェースを介して、プロセスのタイプと、プロセスに関連付けられたそれぞれの特性の値とを含む、特性評価を受信させ、受信した情報に基づいて、第1のコンピュータ実行可能プログラムのそれぞれのパラメータに値を自動的に割り当てて、第1のコンピュータ実行可能プログラムに、実行時に、データソースからデータを受信させ、データターゲットにデータを出力させ、プロセスの受信した特性評価に基づいて、第2のコンピュータ実行可能プログラムを参照するように、第1のコンピュータ実行可能プログラムを自動的に構成させる、ための命令を含む。構成することは、プロセスのタイプに基づいて第2のコンピュータ実行可能プログラムを識別することと、プロセスに関連付けられたそれぞれの特性の値に基づいて第2のコンピュータ実行可能プログラムのそれぞれのパラメータに値を割り当てることと、を含む。
【0018】
一態様では、第1のコンピュータ実行可能プログラムを構成するためのコンピューティングシステムは、1つ以上のプロセッサ及びメモリを含み、1つ以上のプロセッサ及びメモリは、ユーザインターフェースを介して、データソース及びデータターゲットを示す情報を受信し、ユーザインターフェースを介して、プロセスのタイプと、プロセスに関連付けられたそれぞれの特性の値とを含む、特性評価を受信し、受信した情報に基づいて、第1のコンピュータ実行可能プログラムのそれぞれのパラメータに値を自動的に割り当てて、第1のコンピュータ実行可能プログラムに、実行時に、データソースからデータを受信し、データターゲットにデータを出力し、プロセスの受信した特性評価に基づいて、第2のコンピュータ実行可能プログラムを参照するように、第1のコンピュータ実行可能プログラムを自動的に構成する、ように構成されている。構成することは、プロセスのタイプに基づいて第2のコンピュータ実行可能プログラムを識別することと、プロセスに関連付けられたそれぞれの特性の値に基づいて第2のコンピュータ実行可能プログラムのそれぞれのパラメータに値を割り当てることと、を含む。
【0019】
一態様では、第1のコンピュータ実行可能プログラムを構成するためのコンピューティングシステムは、ユーザインターフェースを介して、データソース及びデータターゲットを示す情報を受信するための手段と、ユーザインターフェースを介して、プロセスのタイプと、プロセスに関連付けられたそれぞれの特性の値とを含む、特性評価を受信するための手段と、受信した情報に基づいて、第1のコンピュータ実行可能プログラムのそれぞれのパラメータに値を自動的に割り当てて、第1のコンピュータ実行可能プログラムに、実行時に、データソースからデータを受信し、データターゲットにデータを出力するための手段と、プロセスの受信した特性評価に基づいて、第2のコンピュータ実行可能プログラムを参照するように、第1のコンピュータ実行可能プログラムを自動的に構成するための手段と、を含む。構成することは、プロセスのタイプに基づいて第2のコンピュータ実行可能プログラムを識別することと、プロセスに関連付けられたそれぞれの特性の値に基づいて第2のコンピュータ実行可能プログラムのそれぞれのパラメータに値を割り当てることと、を含む。
【図面の簡単な説明】
【0020】
図面の簡単な説明
【
図3】
図3は、ユーザインターフェースの図である。
【
図6】
図6は、例示的なスクリーンショットである。
【
図7】
図7は、例示的なスクリーンショットである。
【
図8】
図8は、例示的なスクリーンショットである。
【発明を実施するための形態】
【0021】
詳細な説明
ここでは、ユーザが提供する特性に基づいてデータフローグラフを構成するアプローチについて説明する。特性は、データフローグラフによって処理されるデータソース、データフローグラフからのデータ出力のターゲットを定義でき、データフローグラフによってデータに対して実行される処理を定義できる。実行する処理のタイプは、利用可能なオプションのライブラリから選択できる。一般的で再利用可能なデータフローグラフは、これらの特性に従ってパラメータ化される。
【0022】
図1を参照すると、データフローグラフを構成するための例示的なシステム10は、各々が様々な記憶フォーマット(例えば、データベーステーブル、スプレッドシートファイル、フラットテキストファイル、又はメインフレームによって使用されるネイティブフォーマット)のいずれかでデータを保存できる、ストレージデバイス、又はオンラインデータストリームへの接続など、1つ以上のデータソースを含み得るデータソース12を含む。実行環境14は、グラフ構成モジュール16及びユーザインターフェースモジュール22を含む。実行環境14は、UNIXオペレーティングシステムなどの適切なオペレーティングシステムの制御下で、1つ以上の汎用コンピュータ上でホストされてもよい。例えば、実行環境14は、ローカル(例えば、SMPコンピュータなどのマルチプロセッサシステム)、若しくはローカル分散型(例えば、クラスタ又はMPPとして結合された複数のプロセッサ)か、リモート、若しくはリモート分散型(例えば、LAN若しくはWANネットワークを介して結合された複数のプロセッサ)かのいずれか、又はそれらの任意の組み合わせである、複数の中央処理装置(CPU)を使用するコンピュータシステムの構成を含む、マルチノード並列コンピューティング環境を含むことができる。
【0023】
以下により詳細に説明するように、グラフ構成モジュール16は、データフローグラフの構成を変更する。ユーザインターフェースモジュール22は、構成情報をユーザ30に表示し、構成アクションをユーザ30から受信する。ユーザインターフェースモジュール22はまた、ユーザのアクションに基づいてデータフローグラフを構成するグラフ構成モジュール16と通信する。例えば、データフローグラフを、データソース12に保存できる。データソース12を提供するストレージデバイスは、例えば、実行環境14を実行しているコンピュータ(例えば、ハードドライブ18)に接続された記憶媒体上に保存されている実行環境14に対してローカルであるか、又は、例えば、ローカル若しくはワイドエリアデータネットワークを介して実行環境14を実行しているコンピュータと通信中のリモートシステム(例えば、メインフレーム20)上でホストされている実行環境14に対してリモートであり得る。
【0024】
実行環境は、ユーザインターフェースを表示するためにユーザインターフェースモジュール22によって使用される情報を含むデータストレージシステム26と通信している。データストレージシステム26はまた、データストレージシステム26に保存され、ユーザインターフェースモジュール22がユーザインターフェースを表示するために使用するユーザインターフェースを開発者30が開発できる開発環境28にアクセス可能である。
【0025】
いくつかの実装において、データソース12は、頂点間の有向リンク(作業要素のフローを表す)によって接続された頂点(コンポーネント又はデータセット)を含むデータフローグラフとしてアプリケーションを開発するためのシステムである。例えば、そのような環境は、参照により本明細書に組み込まれる、「Managing Parameters for Graph-Based Applications」と題する、米国特許出願公開第2007/0011668号に、より詳細に記載されている。
【0026】
データフローグラフは、1つ以上のデータソースからのデータを処理するデータフローグラフ実行環境内で実行されるコンピュータプログラムである。データソースからのデータは、データフローグラフに従って操作及び処理され、1つ以上のデータシンクにエクスポートされる。データソース及びシンクには、例えば、ファイル、データベース、データストリーム、又はキューを含むことができる。データフローグラフは、少なくとも1つのデータ入力からのデータを処理し、少なくとも1つのデータ出力にデータを提供するためのコードを各々が含むデータ処理コンポーネントを表すノードと、データソース及び/又はシンクにアクセスするためのデータセットオブジェクトを表すノードと、を含む有向グラフとして表される。ノードは、コンポーネント間のデータフローを表す有向リンクによって接続され、データソースで始まり、データシンクで終わる。アップストリームコンポーネントのデータ出力ポートは、ダウンストリームコンポーネントのデータ入力ポートに接続される。データフローグラフは、データセットオブジェクトによって表される異なるデータソース及び異なるデータシンクに再利用できる。データフローグラフの実装に使用されるデータ構造及びプログラムコードは、例えば、異なるソース及びシンクを容易に置換することができるようにパラメータ化されることによって、複数の異なる構成をサポートすることができる。更に、いくつかの構成では、データフローグラフのフローは、コンポーネント又は一連のコンポーネントをバイパスできるように、パラメータの使用によって変更される場合がある。一般に、パラメータは、構成又は変更できるデータフローグラフのプロパティを表す。例えば、プロパティは、データフローグラフを使用するたびに変更でき、データフローグラフは、変更の結果として異なるように動作を実行する場合がある。データフローグラフは、コンパイル時に、特定のアクションを実行するためにデータフローグラフプリコンパイルを変更することにより、又は実行時に、パラメータを設定するか、若しくはデータフローグラフで使用される構成ファイルを変更することにより、構成することができる。
【0027】
例えば、
図2を参照すると、一般的なデータフローグラフ100は、データソース102、コンポーネント104、及びデータシンク106a~106nを含む。データソース102は、コンポーネント104の入力ポートに接続されている。コンポーネント104の出力ポートは、データシンク106a~106nに接続されている。データソース、コンポーネント、及びデータシンク間の接続は、データフローグラフを通じたデータフローを定義する。
【0028】
データソース102、コンポーネント104、及びデータシンク106a~106nの各々は、パラメータセット108、110、112a~112nにそれぞれ関連付けられ、各パラメータセットは1つ以上のパラメータを含む。パラメータは、データフローグラフの挙動を定義する。例えば、パラメータは、物理ディスク上のデータソース又はデータシンクの場所を定義できる。パラメータはまた、ソートコンポーネントがコンポーネントへのデータ入力をソートする方法など、コンポーネントの挙動を定義できる。いくつかの例では、パラメータセットのパラメータ値は、データフローグラフの実行時に入力される。
【0029】
いくつかの例では、あるパラメータ値が、別のパラメータ値に依存する場合がある。例えば、データソースは、特定のディレクトリ内のファイルに保存され得る。データソースのパラメータセットには、「DIRECTORY」と呼ばれる第1のパラメータ、及び「FILENAME」と呼ばれる第2のパラメータを含むことができる。この例では、FILENAMEパラメータは、DIRECTORYパラメータに依存する(例えば、DIRECTORYは「/usr/local/」であり得、FILENAMEは「input.dat」であり得る)。パラメータはまた、他のコンポーネントのパラメータにも依存する場合がある。例えば、データフローグラフのデータシンクの物理的な場所は、データフローグラフのデータソースの物理的な場所に依存する場合がある。例えば、データシンクには、データソースのDIRECTORYパラメータに依存するFILENAMEパラメータを含むパラメータセットを含むことができる(例えば、データシンクのFILENAMEパラメータは、値「/usr/local/」がデータソースのDIRECTORYパラメータから取得される「/usr/local/output.dat」であり得る)。
【0030】
コンポーネント104は、サブグラフと呼ばれることもある1つ以上の他のデータフローグラフ120a~120nを参照するグラフインターフェースコンポーネントとすることができる。データフローグラフ100は、実行時に、コンポーネント104によって参照されるサブグラフを動的にロードして実行し、例えば、サブグラフ120a~120nによって提供される様々な機能にデータフローグラフ100が柔軟にアクセスすることを可能にする。コンポーネント104の1つ以上のパラメータは、コンポーネント104によって参照される特定のサブグラフ120a~120nを定義する。各サブグラフ120a~120nはまた、1つ以上のパラメータを含むパラメータセット122a~122nに関連付けられ、各パラメータが対応するサブグラフの挙動を定義する。
【0031】
データフローグラフの構築は、場合によっては、本質的に高度に技術的である場合がある。特定のビジネス目標を達成するために書かれているが、グラフの根本的な構成及び構造は、技術的な考慮事項に基づいて判定される。例えば、グラフコンポーネントを選択して、再利用性を最大化し、又は並列処理をサポートすることができる。他方、グラフの使用方法と使用場所は、主として、ビジネス上の意思決定であり得る。パラメータ化されたデータフローグラフに関連付けられたパラメータの一部を使用することにより、その実装の背後にある技術的な複雑さをユーザが理解する必要なしに、ビジネスユーザがデータフローグラフをカスタマイズすることを可能にする。パラメータ化されたデータフローグラフは、カスタマイズを簡素化し、再利用を容易にする。
【0032】
データフローグラフを構築するためにパラメータ値を識別するためのインターフェースは、クライアントマシン上に表示できる。いくつかの実装では、クライアントは、パラメータインターフェースを提供するクライアント上のWebブラウザーを使用して、及びクライアント側の処理に何らかの機能を提供するスクリプト言語を使用して、サーバ上で実行している開発環境にアクセスすることができる。スクリプト言語は、サーバと通信して、パラメータを更新し、他の必要な動作を実行できる。この通信は、構築中のグラフに対するオブジェクト及び関連付けられたパラメータ値を保存する開発環境を実行しているクライアントとサーバと間の通信を変換するブリッジマシンを介して生じ得る。このインターフェースにより、たとえユーザにデータフローグラフ及びデータフローグラフ構成に関する技術的な知識がなくても、ユーザは、パラメータ化されたデータフローグラフのパラメータを構成することができる。
【0033】
クライアントデバイス上に提示される構成インターフェースにより、ユーザが
図1のグラフ構成モジュール16にアクセスすることが可能になる。構成インターフェースを介して、ユーザは、データフローグラフ構成に関する技術的知識を必要とすることなく、データソース、データシンク、及びデータフローグラフによって実行される変換の特性を指定することができる。ユーザが指定した特性に基づいて、パラメータ値を、パラメータセット108、110、112a~112n、122a~122nに割り当てることができ、それゆえに、ユーザが指定した特性に従ってデータフローグラフの挙動を定義できる。
【0034】
構成インターフェース内では、パラメータセット108、110、112a~112nのパラメータは、例えば、技術的な考慮事項ではなくビジネス上の考慮事項を反映して、ユーザと対話するために、グループに結合して再編成することができる。ユーザ入力に基づいてパラメータの値を受信するための構成インターフェースでは、サーバ上の開発環境の態様によって必ずしも制限されない柔軟な方法で、パラメータ間の関係に従って、異なるパラメータを表示することができる。構成インターフェースの例は、米国特許出願公開第2011/0145748号に記載されており、その内容は参照によりその全体が本明細書に組み込まれる。
【0035】
図3を参照すると、構成インターフェース300により、ユーザはデータフローグラフ100のパラメータに値を割り当てることが可能になる。
図3の例では、パラメータは、データソース102のパラメータを表すソースアイコン302、コンポーネント104のパラメータを表す変換アイコン304、及び各々がデータシンク106a~106nのうちの対応する1つのパラメータを表すシンクアイコン306a~306n、によって表されるパラメータの第1グループに分割される。ユーザは、各アイコンに関連付けられた特性を入力できる。ユーザが入力した特性に基づいて、データソース102、データシンク106a~106n、及びコンポーネント104のパラメータ値を判定することができる。
【0036】
図3の例では、ソースアイコン302に関連付けられた第1の特性は、ユーザがテキストを入力できるテキストボックス308として表示される。テキストのタイプは、制限することができ(例えば、整数、浮動小数点値、文字列、若しくは他のタイプ)、又は任意のタイプのテキストを受け入れることができる。第2の特性は、事前入力された値とともにドロップダウンリスト310として表示される。第3の特性は、ラジオボタン312として表示される。第4の特性用のフィールド314により、ユーザはより多くのテキストを入力することができる。他のタイプの表示もまた使用できる。例えば、ユーザは、ファイルセレクタを開いて、データソースとして使用する特定のデータセットを選択でき、又はネットワークを介してデータセットにアクセス若しくはダウンロードする場所を選択でき得る。シンクアイコン306a~306n及び変換アイコン304に関連付けられた特性もまた入力することができる。
【0037】
ソースアイコン302又はシンクアイコン306a~306nに関連付けられた特性は、データソース102、又はデータシンク106a~106nのうちの1つに対するデータセットのタイプを示す特性を含むことができる。例えば、ユーザは、ファイル、テーブル、HDFS(Hadoop分散ファイルシステム)データセット、HIVEテーブル、キュー、又は他のタイプなど、サポートされているタイプのリストの中からデータセットのタイプを選択するように促され得る。ファイルとは、ファイルとして記述でき、又はデータフローグラフ100の実装と互換性のあるレコードフォーマットで定義できる形式を有するデータを意味する。例えば、MVS(複数仮想記憶)ファイルは、ファイルの一例である。ユーザは、データセットのパス又は場所を指定するように促され得る。ユーザが促される他の特性は、ユーザが選択したデータセットのタイプに依存してもよい。例えば、ユーザは、データセットのレコードフォーマット、データセットのキー、テーブルデータセットの構成ファイル、圧縮若しくは暗号化のタイプ、又は他の特性に関連する特性を入力することができる。複数のデータシンクが使用される場合、各データシンクは、その独自のタイプのデータセット、及び他の関連する特性を有することができる。
【0038】
ソースアイコン302に関連付けられた入力特性は、実行時にデータフローグラフが適切なソースからデータを受信するように、データソース102を自動的にパラメータ化するために使用される。同様に、各シンクアイコン306a~306nに関連付けられた入力特性は、実行時にデータフローグラフ100からのデータ出力を適切な宛先に送信するように、各データシンク106a~106nを自動的にパラメータ化するために使用される。
【0039】
変換アイコン304に関連付けられた特性は、データソースからのデータに対して実行される処理のタイプを示す特性を含むことができる。例えば、ユーザは、サポートされているプロセスのライブラリの中からプロセスのタイプを選択するように促され得る。各プロセスは、コンポーネント104によって参照され得る、以前に構築され、保存されたサブグラフ120a~120nに対応する。例えば、システムは、マッピングプロセス、フィルタプロセス、重複除去プロセス(重複排除プロセスとも呼ばれる)、集約プロセス、複製プロセス、正規化プロセス、パーティション及びソートプロセス、変更データキャプチャプロセス、結合プロセス、又は他のプロセスなどのプロセスをサポートすることができる。ユーザが促される他の特性は、プロセスのタイプに依存し得る。例えば、マッピングプロセスの場合、ユーザは、マッピングルールを入力し、マッピング用のターゲットデータセットを識別できる。フィルタプロセスの場合、ユーザは、フィルタルールを入力できる。重複排除プロセスの場合、ユーザは、重複排除キーを入力し、レコード選択ルールを指定できる。結合プロセスの場合、ユーザは、結合データセットを識別し、結合ルールを定義できる。いくつかの例では、ユーザは、複数のプロセスを選択し、選択したプロセスの所望のシーケンスを示すことができる。
【0040】
変換アイコン304に関連付けられた入力特性は、コンポーネント104並びに任意の関連するサブグラフ120a~120nを自動的にパラメータ化するために使用される。コンポーネント104は、ユーザによって選択されたプロセスのタイプに対応するサブグラフを参照するようにパラメータ化される。参照される各サブグラフの各々はまた、対応するプロセスに対してユーザが入力した特性に基づいてパラメータ化される。データフローグラフ100は、実行されると、ユーザが入力した特性に基づくパラメータ化によって定義されている各々の参照されたサブグラフの挙動とともに、コンポーネントによって参照されたサブグラフ120a~120nの各々を実行する。例えば、データフローグラフ100は、サブグラフの実行中にデータが保存されないシリアルパイプラインプロセスで、参照されるサブグラフ120a~120nの各々を実行することができる。
【0041】
ここで説明する例では、システムは、単一のデータソース、及び最大2つのデータシンク、5つのデータシンク、10のデータシンク、20のデータシンク、又は別の数のデータシンクなどの複数のデータシンクをサポートする。各データシンク用のパラメータは、例えば、各データシンクが、異なるタイプのデータセットであり得るか、及び/又はその独自のパラメータセットを有し得るように、個別に定義することができる。いくつかの例では、システムは、複数のデータソースをサポートでき、例えば、複数のソースからのデータは、結合プロセス、ルックアッププロセス、又は他のタイプのプロセスを使用して処理することができる。例えば、結合プロセス、ルックアッププロセス、又は結合プロセスとルックアッププロセスとの両方の組み合わせによって、複数のソースを、効果的な単一のソースに結合することができる。いくつかの例では、システムは、単一のデータシンクをサポートできる。
【0042】
いくつかの例では、システムは、データソースの詳細及び処理ステップのセットを提供するユーザ入力に基づいて、構成を自動的に生成することができる。例えば、ユーザは、スプレッドシートなどのユーザインターフェースを介してデータソース及び処理ステップのセットの詳細を提供することができ、システムは、ユーザが入力した詳細に基づいてコンピュータプログラムを自動的に構成することができる。
【0043】
図4を参照すると、第1のコンピュータ実行可能プログラムを構成するための例示的なプロセスにおいて、データソース及びデータターゲットを示す情報が受信される(400)。例えば、情報は、データセットのタイプ、データセットの場所又はパス、及びデータセットに関する他の特性を示すことができる。プロセスの特性評価が受信される(402)。特性評価には、プロセスのタイプ、及びプロセスのそれぞれの特性の値が含まれる。
【0044】
受信した情報に基づいて、第1のコンピュータ実行可能プログラムのそれぞれのパラメータに値が自動的に割り当てられ(404)、第1のコンピュータ実行可能プログラムに、プログラムの実行時に、データソースからデータを受信させ、データターゲットにデータを出力させる。例えば、第1のコンピュータ実行可能プログラムは、データフローグラフとすることができる。
【0045】
プロセスの受信した特性評価に基づいて、第1のコンピュータ実行可能プログラムは、第2のコンピュータ実行可能プログラムを参照するように自動的に構成される(406)。構成することは、プロセスのタイプに基づいて、第2のコンピュータ実行可能プログラムを識別することを含む(408)。構成することはまた、プロセスに関連付けられたそれぞれの特性の値に基づいて、第2のコンピュータ実行可能プログラムのそれぞれのパラメータに値を割り当てることを含む(410)。例えば、第2のコンピュータ実行可能プログラムは、サブグラフとすることができる。
【0046】
図5A~
図5Gは、ユーザがデータソース又はデータターゲットについての情報を入力できる構成インターフェースの例である。
図5Aを参照すると、ユーザは、ソースデータセット又はターゲットデータセットのタイプを選択するように促される。
【0047】
図5B及び
図5Cを参照すると、データセットのタイプがファイルである場合、ユーザは、ファイルのURL、ファイルのレコードフォーマット、ファイルが圧縮若しくは暗号化されているか又はその両方かどうか、ファイル、ファイルのナチュラルキー、ファイルのデータ順序キーを読み取り若しくは書き込みするかどうか、又は他のパラメータ、のうちの1つ以上など、検証の詳細及び特性を入力するように促される。
【0048】
図5Dを参照すると、物理ファイルのrpath又はリポジトリ名など、データセットについてのメタデータを入力できる。
【0049】
図5Eを参照すると、データセットのタイプがテーブルである場合、ユーザは、テーブル若しくはクエリ(例えば、SQLクエリ)を使用するかどうか、テーブル、テーブルのデータベース構成ファイル、テーブルのナチュラルキー、テーブルのデータ順序キーを読み取り若しくは書き込みするかどうか、又は他のパラメータなど、特性を入力するように促される。クエリが選択されている場合、ユーザはクエリを指定できる。
【0050】
図5Fを参照すると、データセットのタイプがHDFSデータセットである場合、ユーザは、HDFSファイル、HDFSファイルシステムのパス、HDFSファイルの名前、HDFSファイルのサフィックス(もしあれば)、レコードフォーマットファイルへのパスを読み取り若しくは書き込みするかどうか、又は他の様々な特性のいずれか、のうちの1つ以上など、HDFSデータセットを説明する特性を入力するように促される。ユーザは、読み取り又は書き込みするHDFSファイルのタイプなど、未解釈ファイル(例えば、非圧縮、非フォーマットテキスト(例えば、ASCII若しくはUTF8)若しくはバイナリデータ)、Apache Optimized Row Columnarフォーマットなどの行列フォーマット、Apache Parquetなどの列記憶フォーマット、Hadoopシーケンスファイルなどのキーと値のペアを含むバイナリファイル、Apache Avroなどのバイナリファイルフォーマット、テキストデータ、又は他のタイプ、などのファイルタイプ又はフォーマットを示す特性を提供することができる。ユーザは、gzip、Snappy、Deflate、bzip2、zlib、LZ4、LZO、又は圧縮の他のタイプなど、圧縮のタイプを示す特性を提供できる。ユーザは、既存のHDFSデータセットから直接派生し得るHDFSデータセット用のレコードフォーマットを供給することができ、又はレコードフォーマットを提供することができる。いくつかの例では、ファイルのタイプ、圧縮のタイプ、又はその両方の選択に応じて、ユーザに追加の特性の入力を促すことができる。
【0051】
図5Gを参照すると、データセットのタイプがHIVEテーブルである場合、ユーザは、HIVEテーブル、HIVEテーブルのファイルフォーマット、レコードフォーマット、レコードフォーマットファイルのパス、データベースを読み取り若しくは書き込みするかどうか、テーブルが存在するかどうか、テーブル、又は他の様々な特性のうちのいずれか、のうちの1つ以上など、HIVEテーブルを説明する特性を入力するように促される。いくつかの例では、テーブルのタイプ及び/又は圧縮のタイプの選択に応じて、ユーザに追加の特性の入力を促すことができる。
【0052】
図6は、ユーザが処理ステップを定義することができる構成インターフェース600の例である。
図6の例では、ソースデータセット602、及び2つのターゲットデータセット604a、604bが、すでに定義されている。処理ステップウィンドウ606により、ユーザは、ソースデータセット上で実行される処理ステップを選択することができる。
【0053】
図7は、一連の処理ステップがユーザによって指定されたフィードを示す構成インターフェース700の例である。ソースデータセット702が定義されている。4つの処理ステップ、すなわち、マッピングステップ704、重複排除ステップ706、第2のマッピングステップ708、及び結合ステップ710もまた定義されている。各プロセスに対する様々な特性が指定されている。
【0054】
構成インターフェース700に示すフィードに基づいてデータフローグラフがパラメータ化されると、データソースは、ソースデータセットウィンドウ702で指定されたソーステーブルTeradata_cc_transからデータを受信するように構成される。データフローグラフのコンポーネントは、マッピングサブグラフ、重複排除サブグラフ、マッピングサブグラフを再度、及び結合サブグラフを参照するように構成される。参照される各サブグラフは、それぞれのプロセスのウィンドウ704~710に示される特性に従ってパラメータ化される。
【0055】
構成インターフェース700におけるフィードからわかり得るように、ユーザは、グラフ構成の詳細な技術的理解を必要とすることなく、データフローグラフの構成の特性を入力することができる。例えば、
図7の例では、ユーザは、ユーザが処理したいデータソース、及び処理されたデータの宛先(図示せず)を知っている。ユーザは、例えば1つ以上のフィールドのマッピングを変更するために、ソースデータをソースデータ自身にマッピングしたいことを知っている。ユーザは、重複排除キー{amount}を使用し、且つ、各グループの第1のレコードを保持して、マッピングされたデータを重複排除したいことを知っている。重複排除ステップ後、ユーザは、データを再びデータ自身にマッピングすることを望む。最後に、ユーザは、重複排除され、マッピングされたデータを、テーブルmixed_cc_accountsに結合することを望む。すなわち、このプロセスフローをセットアップするために、ユーザは、一般的なデータ処理フレームワークを理解できるが、データフローグラフの構成方法を知る必要はない。
【0056】
いくつかの例では、構成インターフェース700を介して、ユーザは、ソースデータセット702として使用されるテストデータのセットを選択できる。例えば、非常に大きなデータセット(例えば、実際の顧客レコードを有するデータセット)を使用してデータフローグラフをテストするのではなく、ユーザは、より迅速に処理できるより小さなデータセットを選択できる。いくつかの例では、例えばテスト目的で、ユーザは、実際の動作時に、データフローグラフがその処理されたデータを送信する宛先とは異なる処理されたデータ用の宛先を選択することができる。例えば、ユーザは、実際の顧客レコードでデータセットを上書きしないように、テストデータの宛先を選択できる。ソースデータセット702及び処理されたデータの宛先に関係なく、他のプロセス706~708の構成は変更されないままであるため、ユーザがソースデータセット及び/又は宛先を思い通りに更新するのは簡単である。
【0057】
いくつかの例では、構成インターフェース700は、ユーザが入力したパラメータが意味をなすかどうかの指標を提供することができる。例えば、ユーザが入力したプロセスキーを、互いに対して検証できる。例えば、ユーザが、第1のキーを使用してデータセットを重複排除するデータフローグラフを作成し、第2のキーを使用して結果として得られる重複排除されたデータをソートする場合、構成インターフェースにアラートを表示できる。
【0058】
いくつかの例では、ユーザがデータフローグラフを構成した後、システムは、例えば処理時間又は計算コストを削減するために、データフローグラフを実行する方法を判定することができる。例えば、所与のプロセスの場合、システムは、アップストリームプロセスで使用されるキーなど、1つ以上のアップストリームプロセスのパラメータに基づいて、データを再分割するかどうかを判定することができる。一例では、同様のキーがアップストリームプロセスで使用される場合、システムは、ダウンストリームプロセスで同じキーを用いてデータを再分割する必要はないと判定してもよい。再パーティション化又はソートが適切かどうかの判定は、ユーザの入力なしで自動的に実行できる。
【0059】
いくつかの例では、データフローグラフの実行中に、データフローグラフのパフォーマンスを示す情報を構成インターフェース700内に表示することができる。情報には、各処理ステップに出入りするレコードの数を示す情報を含むことができる。例えば、重複排除ステップ706は、レコード登録の数、レコード削除の数、及び重複として破棄されたレコードの数を、記録及び表示することができる。結合ステップ710は、第1のデータセットからのレコード数、第2のデータセットからのレコード数、記録削除されたレコード数、及び各データセットから破棄されたレコード数を記録及び表示することができる。この情報は、例えば、ユーザが意図した方法でデータフローグラフを構成したかどうかを示す、迅速なフィードバックをユーザに提供できるため、非技術的ユーザがデータフローグラフのトラブルシューティング及びデバッグを行うための方法を提供する。例えば、
図8を参照すると、115,911個のレコードが重複排除ステップに読み込まれ、そのうち重複として108,191個が破棄されたことを確認した非技術的ユーザは、この情報を使用して、重複排除キーなどのパラメータが正しく構成されていない可能性があることを判定できる。
【0060】
いくつかの例では、構成インターフェース700は、ユーザがデータフローグラフを構築及び構成できるスプレッドシートインターフェースとして提示することができる。
【0061】
いくつかの例では、例えば、スプレッドシート、データベース、又は他の場所におけるデータなど、使用されるデータを識別する特性に基づいて、ソースデータセット、ターゲットデータセット、又はそれらの両方を作成することができる。
【0062】
図9A及び
図9Bを参照すると、いくつかの例では、処理されたデータをデータフローグラフからデータターゲットに送信する前に、マッピング又はフィルタプロセスなどのターゲット固有のプロセスを、それぞれ適用することができる。
【0063】
図10を参照すると、クライアントシステム802は、ユーザに構成インターフェース804を表示していてもよい。構成インターフェース804を介したユーザとの対話に基づいて生成されたパラメータセット814は、サーバ808上に保存されてもよい。その結果、構成インターフェース804によって行われた変更は、ブリッジ806を介してクライアント802からサーバ808に送信される。矢印820によって表されるように、クライアント802は、例えば、シンプルオブジェクトアクセスプロトコル(SOAP)を使用して送信されるメッセージなどの1つのフォーマットで、ブリッジ806にメッセージを送信する。ブリッジ806は、メッセージを新しいフォーマットに変換し、必要に応じて、サーバ808とのクライアントセッションを開始する。矢印822によって表されるように、ブリッジ806は、例えばCOM+メッセージである、サーバ808によって理解されるフォーマットで、サーバ808にメッセージを送信する。サーバ808は、メッセージを受信し、パラメータセットを更新する。矢印824によって表されるように、サーバ808は、クライアント802によって受信された入力によりパラメータセットに生じた任意の変更を含む応答を、ブリッジ806に送信する。ブリッジ806は、メッセージをデコードし、クライアント802に対する応答メッセージを作成する。矢印826で表されるように、ブリッジ806は、クライアント802に応答メッセージを送信する。クライアント802は、構成インターフェース804を更新して、上述の前提条件の失敗により以前には隠されていた任意のコンポーネントの表示を含む変更を反映する。
【0064】
ユーザはまた、完全であってもなくてもよい、現在のパラメータセットに基づくサンプルデータを使用して構築されているデータフローグラフを実行したいことをクライアント802に示してもよい。上記のように、クライアント802は、ブリッジ806を介してサーバ808にメッセージを送信する。サーバ808は、パラメータセットに任意の変更を適用し、サーバで実行されているプロセス816は、データフローグラフをコンパイルする。コンパイルされたデータフローグラフは、サンプルデータセット810、812からデータを受信し、コンパイルされたデータフローグラフを実行する。データフローグラフは、出力データセット818に要求された出力を生成する。データフローグラフの出力は、クライアント802によって要求された中間データであり、必ずしも、データフローグラフの完全な実行によって生成され得るデータではない。
【0065】
上述のように、結果として得られるデータは、ブリッジ806を介してサーバ808からクライアント802に送信される。
【0066】
上述のグラフ構成アプローチは、コンピュータ上で実行するためのソフトウェアを使用して実装することができる。例えば、ソフトウェアは、各々が少なくとも1つのプロセッサ、少なくとも1つのデータストレージシステム(揮発性及び不揮発性メモリ及び/又は記憶要素を含む)、少なくとも1つの入力デバイス又はポート、並びに少なくとも1つの出力デバイス又はポートを含む、1つ以上のプログラムされた又はプログラム可能なコンピュータシステム(分散、クライアント/サーバ、又はグリッドなどの様々なアーキテクチャであり得る)上で実行する1つ以上のコンピュータプログラムにおいてプロシージャを形成する。ソフトウェアは、例えば、計算グラフの設計及び構成に関連する他のサービスを提供する、より大きなプログラムの1つ以上のモジュールを形成してもよい。グラフのノード及び要素は、コンピュータ可読媒体に保存されたデータ構造、又はデータリポジトリに保存されたデータモデルに準拠する他の構造化データとして実装できる。
【0067】
ソフトウェアは、汎用若しくは専用のプログラム可能なコンピュータによって読み取り可能なCD-ROMなどの記憶媒体で提供されるか、又はネットワークの通信媒体を介してソフトウェアが実行されるコンピュータに配信(伝搬信号で符号化)されてもよい。全ての機能は、専用コンピュータ上で実行することも、コプロセッサなどの専用ハードウェアを使用して実行することもできる。ソフトウェアは、ソフトウェアによって指定された計算の異なる部分が異なるコンピュータによって実行される分散方式で実装されてもよい。そのような各コンピュータプログラムは、好ましくは、汎用又は専用のプログラム可能なコンピュータによって読み取り可能な記憶媒体又はデバイス(例えば、ソリッドステートメモリ若しくは媒体、又は磁気若しくは光学媒体)に保存又はダウンロードされ、記憶媒体又はデバイスがコンピュータシステムによって読み取られるときにコンピュータを構成及び動作して、本明細書で説明する手順を実行する。本発明のシステムはまた、コンピュータプログラムで構成されたコンピュータ可読記憶媒体として実装されると考えることができ、その場合、そのように構成された記憶媒体は、コンピュータシステムを、本明細書で説明する機能を実行する特定及び所定の方法で動作させる。
【0068】
本発明のいくつかの実施形態を説明してきた。それにもかかわらず、本発明の精神及び範囲から逸脱することなく、様々な修正を行うことができることを理解されたい。例えば、上述の手順の一部は順序に依存しない場合があり、したがって、説明した順序とは異なる順序で実行することができる。
【0069】
他の実装もまた、以下の特許請求の範囲内にある。