(57)【要約】  データを変換し、構造化データセット内にロードするための実行可能アプリケーションを生成するための方法は、ネットワーク化されたデータソースから受信されるデータフィードを構造化データベースへと構造化するためのパラメータの値を指定するメタデータファイルを受信することを含む。メタデータファイルはデータフィードを変換するための論理規則を指定する。各データフィードの論理的整合性を保証するために、パラメータの値及び複数のデータフィードを変換するための論理規則を検証する。検証したパラメータの値及び論理規則に従って各データフィードを変換するための標準を指定するデータ規則を生成する。１つ又は複数のデータソースからデータフィードを含むソースデータを受信し、データ規則に準拠する構造化データレコードのための１つ又は複数の標準を満たす構造化データへとソースデータを変換するように構成される実行可能アプリケーションを生成する。
2021530766.tif 000002
【特許請求の範囲】
【請求項１】
１つ又は複数のネットワーク化されたデータソースからのデータを記憶するためにデータを変換し、構造化データセット内にロードするための実行可能アプリケーションを自動生成するための方法であって、
パラメータの値及びデータフィードを変換するための論理規則を指定する規則セットマッピングを指定する少なくとも１つのメタデータファイルを受信することであって、各データフィードはネットワーク化されたデータソースから受信される、受信すること及び構造化データセット内に結果をロードすること、
前記パラメータの前記値及び前記データフィードを変換するための前記論理規則が各データフィードについて不整合でないことを検証すること、
前記パラメータの前記検証済みの値及び各データフィードを前記構造化データセット内にロードするための変換レコードへと変換するための前記検証済みの論理規則に従って１つ又は複数の標準を指定するデータ規則を生成すること、及び
ランタイム環境のための実行可能データ処理アプリケーションを生成することであって、前記実行可能データ処理アプリケーションは、
１つ又は複数のデータソースからデータフィードを含むソースデータを受信し、
前記生成したデータ規則に準拠する前記構造化データセットの前記１つ又は複数の標準を満たす変換データへと前記ソースデータを変換する
ように構成可能である、生成すること
を含む、方法。
【請求項２】
前記実行可能データ処理アプリケーションがデータフローグラフ、データフローサブグラフ、又は複数のデータフローグラフを含む、請求項１に記載の方法。
【請求項３】
前記構造化データセットがデータベースを含む、請求項１又は２に記載の方法。
【請求項４】
前記ソースデータがデータレコードを含み、前記メタデータファイルのパラメータは前記ソースデータの前記データレコードに関するキー値を表す前記データレコードのフィールドを指定する、請求項１〜３の何れか一項に記載の方法。
【請求項５】
前記メタデータファイルのパラメータが、前記ソースデータの前記キー値を表す前記フィールドと前記構造化データセットの別のキー値を表す前記構造化データセットの別のフィールドとの間のマッピングを指定する、請求項４に従属する請求項１〜３の何れか一項に記載の方法。
【請求項６】
前記メタデータファイルのパラメータが前記キー値の形式を指定し、前記実行可能データ処理アプリケーションは前記パラメータによって指定された前記形式を有するように前記キー値を変換するように構成される、請求項４に従属する請求項１〜３の何れか一項に記載の方法。
【請求項７】
データ記憶域からパラメータのデフォルト値を取得すること、及び
前記パラメータの前記デフォルト値に基づいて前記データ規則を定めること
を更に含む、請求項１〜６の何れか一項に記載の方法。
【請求項８】
論理規則が前記構造化データセットのフィールドに関する形式を指定し、前記フィールドはデータ履歴値を含む、請求項１〜７の何れか一項に記載の方法。
【請求項９】
前記データ履歴値は、前記データ履歴値を含む前記構造化データセットが更新されるときを示すタイムスタンプを含む、請求項８に従属する請求項１〜７の何れか一項に記載の方法。
【請求項１０】
前記メタデータファイルを受信することが、前記メタデータファイルのヘッダー行を構文解析してどのパラメータが前記メタデータファイル内で指定値を有するのかを決定することを含む、請求項１〜９の何れか一項に記載の方法。
【請求項１１】
前記データ規則によって定められる前記構造化データセットのための前記１つ又は複数の標準を満たす構造化データへと前記ソースデータを変換することが、
前記ソースデータの少なくとも２つの異なる部分が同一のキー値を指定すると判定すること、及び
前記ソースデータの前記２つの異なる部分の少なくとも１つについて新たなキー値を指定することであって、前記新たなキー値は前記同一のキー値と異なり、前記構造化データセットのキーシーケンスに基づく、指定すること
を含む、請求項１〜１０の何れか一項に記載の方法。
【請求項１２】
前記少なくとも１つのメタデータファイルによって指定されていない１つ又は複数の追加のパラメータのための１つ又は複数のデフォルト値を取得することを含み、前記データ規則を定めることは前記１つ又は複数の追加のパラメータの前記デフォルト値に基づく、請求項１〜１１の何れか一項に記載の方法。
【請求項１３】
前記メタデータファイルが、前記変換レコードの値を解釈するためのラベルを指定する１つ又は複数の意味規則を含む、請求項１〜１２の何れか一項に記載の方法。
【請求項１４】
前記メタデータファイルの前記パラメータが、前記変換レコード内に含めるための許容データ値を指定するデータ品質パラメータを含む、請求項１〜１３の何れか一項に記載の方法。
【請求項１５】
前記メタデータファイルの前記パラメータが、前記変換レコードのためのキーマッピングスキームを指定するデータ完全性パラメータを含む、請求項１〜１４の何れか一項に記載の方法。
【請求項１６】
前記メタデータファイルの前記パラメータは、前記構造化データセットの前記変換レコードが読み出し最適化されるように構成されるか、又は書き込み最適化されるように構成されるかを指定するデータレポートパラメータを含む、請求項１〜１５の何れか一項に記載の方法。
【請求項１７】
前記パラメータの前記値及び複数の前記データフィードを変換するための前記論理規則が各データフィードについて不整合でないことを検証することが、キーサロゲーション規則を指定するフィード固有メタデータ及びデータ履歴化規則を指定するロード固有メタデータの検査を行うことを含む、請求項１〜１６の何れか一項に記載の方法。
【請求項１８】
前記実行可能データ処理アプリケーションが前記変換データを前記構造化データセット内にロードするように更に構成される、請求項１〜１７の何れか一項に記載の方法。
【請求項１９】
前記実行可能アプリケーションを前記ランタイム環境によって実行することを更に含み、前記実行することが、
１つ又は複数のデータソースからデータフィードを含む前記ソースデータを受信すること、及び
前記１つ又は複数の標準を満たす前記変換データへと前記ソースデータを変換すること、
前記データ規則に準拠する前記変換データを前記構造化データベース内にロードすること
を含む、請求項１〜１８の何れか一項に記載の方法。
【請求項２０】
１つ又は複数のネットワーク化されたデータソースからのデータを記憶するためにデータを変換し、構造化データセット内にロードするための実行可能データ処理アプリケーションを生成するためのシステムであって、
パラメータの値及びデータフィードを変換するための論理規則を指定する少なくとも１つのメタデータファイルを受信することであって、各データフィードはネットワーク化されたデータソースから受信される、受信すること及び構造化データセット内に結果をロードすることを行うように構成されるインタフェースと、
前記パラメータの前記値及び複数の前記データフィードを変換するための前記論理規則が各データフィードについて不整合でないことを検証すること、及び
前記パラメータの前記検証済みの値及び前記データフィードの各データフィードを前記構造化データセット内にロードするための変換レコードへと変換するための前記検証済みの論理規則に従って１つ又は複数の標準を指定するデータ規則を生成すること
を行うように構成されるコンフィギュレータと、
ランタイム環境のための実行可能データ処理アプリケーションを生成するように構成されるアプリケーション生成エンジンであって、前記実行可能データ処理アプリケーションは、
１つ又は複数のデータソースからデータフィードを含むソースデータを受信し、
前記生成したデータ規則に準拠する前記構造化データセットのための前記１つ又は複数の標準を満たす変換データへと前記ソースデータを変換する
ように構成可能である、アプリケーション生成エンジンと
を含む、システム。
【請求項２１】
前記実行可能データ処理アプリケーションがデータフローグラフ、データフローサブグラフ、又は複数のデータフローグラフを含む、請求項２０に記載のシステム。
【請求項２２】
前記構造化データセットがデータベースを含む、請求項２０又は２１に記載のシステム。
【請求項２３】
前記ソースデータがデータレコードを含み、前記メタデータファイルのパラメータは前記ソースデータの前記データレコードに関するキー値を表す前記データレコードのフィールドを指定する、請求項２０〜２２の何れか一項に記載のシステム。
【請求項２４】
前記メタデータファイルの前記パラメータのパラメータが、前記キー値を表す前記ソースデータの前記フィールドと前記構造化データセットの別のキー値を表す前記構造化データセットの別のフィールドとの間のマッピングを指定する、請求項２３に従属する請求項２０〜２２の何れか一項に記載のシステム。
【請求項２５】
前記メタデータファイルの前記パラメータのパラメータが前記構造化データセットの構造化データセットのための前記キー値の形式を指定し、前記実行可能データ処理アプリケーションは前記パラメータによって指定された前記形式を有するように前記キー値を変換するように構成される、請求項２３に従属する請求項２０〜２２の何れか一項に記載のシステム。
【請求項２６】
前記コンフィギュレータが、
データ記憶域からパラメータのデフォルト値を取得し、
前記パラメータの前記デフォルト値に基づいて前記データ規則を定める
ように更に構成される、請求項２０〜２５の何れか一項に記載のシステム。
【請求項２７】
論理規則が前記構造化データセットのフィールドに関する形式を指定し、前記フィールドは履歴データを含む、請求項２０〜２６の何れか一項に記載のシステム。
【請求項２８】
前記メタデータファイルを受信することが、前記メタデータファイルのヘッダー行を構文解析してどのパラメータが前記メタデータファイル内で指定値を有するのかを決定することを含む、請求項２０〜２７の何れか一項に記載のシステム。
【請求項２９】
前記データ規則によって定められる前記構造化データセットのための前記１つ又は複数の標準を満たす変換データへと前記ソースデータを変換することが、
前記ソースデータの少なくとも２つの異なる部分が同一のキー値を指定すると判定すること、及び
前記ソースデータの前記２つの異なる部分の少なくとも１つについて新たなキー値を指定することであって、前記新たなキー値は前記同一のキー値と異なり、前記構造化データセットのキーシーケンスに基づく、指定すること
を含む、請求項２０〜２８の何れか一項に記載のシステム。
【請求項３０】
前記少なくとも１つのメタデータファイルによって指定されていない１つ又は複数の追加のパラメータのための１つ又は複数のデフォルト値を取得することを含み、前記データ規則を定めることは前記１つ又は複数の追加のパラメータの前記デフォルト値に基づく、請求項２０〜２９の何れか一項に記載のシステム。
【請求項３１】
前記メタデータファイルが、前記構造化データセットのデータの解釈を指定する１つ又は複数の意味規則を含む、請求項２０〜３０の何れか一項に記載のシステム。
【請求項３２】
前記メタデータファイルの前記パラメータが、前記構造化データセット内に含めるための許容データ値を指定するデータ品質パラメータを含む、請求項２０〜３１の何れか一項に記載のシステム。
【請求項３３】
前記メタデータファイルの前記パラメータが、前記構造化データセットのためのキーマッピングスキームを指定するデータ完全性パラメータを含む、請求項２０〜３２の何れか一項に記載のシステム。
【請求項３４】
前記メタデータファイルの前記パラメータは、前記構造化データセットの前記構造化データセットが読み出し最適化されるように構成されるか、又は書き込み最適化されるように構成されるかを指定するデータレポートパラメータを含む、請求項２０〜３３の何れか一項に記載のシステム。
【請求項３５】
前記パラメータの前記値及び複数の前記データフィードを変換するための前記論理規則が各データフィードについて不整合でないことを検証することが、キーサロゲーション規則を指定するフィード固有メタデータ及びデータ履歴化規則を指定するロード固有メタデータの検査を行うことを含む、請求項２０〜３４の何れか一項に記載のシステム。
【請求項３６】
前記実行可能データ処理アプリケーションが前記変換データを前記構造化データセット内にロードするように更に構成される、請求項２０〜３５の何れか一項に記載のシステム。
【請求項３７】
前記実行可能アプリケーションを前記ランタイム環境によって実行するように構成可能なランタイムシステムを更に含み、前記実行することが、
１つ又は複数のデータソースからデータフィードを含む前記ソースデータを受信すること、及び
前記１つ又は複数の標準を満たす前記変換データへと前記ソースデータを変換すること、
前記データ規則に準拠する前記変換データを前記構造化データベース内にロードすること
を含む、請求項２０〜３６の何れか一項に記載のシステム。
【請求項３８】
１つ又は複数のネットワーク化されたデータソースからのデータを記憶するためにデータを変換し、構造化データセット内にロードするための実行可能データ処理アプリケーションを生成するための操作を実行するように構成される１つ又は複数のプロセッサによって実行可能な命令を記憶する、１つ又は複数の非一時的コンピュータ可読媒体であって、前記操作は、
パラメータの値及びデータフィードを変換するための論理規則を指定する少なくとも１つのメタデータファイルを受信することであって、各データフィードはネットワーク化されたデータソースから受信される、受信すること及び構造化データセット内に結果をロードすること、
前記パラメータの前記値及び複数の前記データフィードを変換するための前記論理規則が各データフィードについて不整合でないことを検証すること、
前記パラメータの前記検証済みの値及び前記データフィードの各データフィードを構造化データセットへと変換するための前記検証済みの論理規則に従って１つ又は複数の標準を指定するデータ規則を生成すること、及び
ランタイム環境のための実行可能データ処理アプリケーションを生成することであって、前記実行可能データ処理アプリケーションは、
１つ又は複数のデータソースからデータフィードを含むソースデータを受信し、
前記生成したデータ規則に準拠する前記構造化データセットのための前記１つ又は複数の標準を満たす変換データへと前記ソースデータを変換する
ように構成可能である、生成すること
を含む、１つ又は複数の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の主張
本願は、参照によりその全内容が本明細書に援用される２０１８年７月１９日に出願された米国特許出願第６２／７００，６８４号に対する優先権を米国特許法第１１９条（ｅ）の下で主張する。
【０００２】
技術分野
本願は、データを変換し、データウェアハウス内にロードするためのソフトウェアを生成し、更新し、維持するためのシステム及び方法を記載する。
【背景技術】
【０００３】
背景
データウェアハウスは、典型的には幾つかの異種のソースからのデータを格納するためのシステムを含む。例えばデータウェアハウスは複数のソースから受信されるデータを記憶することができ、ソースの一部は他のソースと異なる種類のものであり得る。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要
データウェアハウス内に記憶される前に、データはデータウェアハウスの標準に準拠するように前処理される。データはそのレコードを識別するキー値を有することができ、それらは参照完全性に関して検査することができ、又は標的データウェアハウス内の参照系の中で不整合でないサロゲートキー値と置換することができる。データは、従来の履歴化スキームに従ってデータの変更履歴を表すために変換することができる。データは、そのロードの時間、修正の時間、又は現在の状態等の属性に関係する追加情報で装飾することができる。データは、情報を更新する、欠損した情報を補う、及び誤りを訂正するためにデータウェアハウス内の既存のレコードとマージすることができる。データは標的テーブル及び補助の履歴テーブルにロードすることができる。これらの前処理タスクを達成するためのコードが、論理規則及びパラメータの値を指定するメタデータファイルを受信するコンパイラによって生成され、更新され、維持され、かかる規則及びパラメータは標的データウェアハウスによって与えられ、入力データを変換するために実行時に実行すべきアクションを指定し、その結果、例えば記憶先のウェアハウス内で構造化データがデータの完全性及び／又は読み出しの最適化を維持するやり方でこのデータは構造化される。
【０００５】
一態様では、１つ又は複数のネットワーク化されたデータソースからのデータを記憶するためにデータを変換し、構造化データセット内にロードするためのアプリケーションを自動生成するためのプロセスを記載する。このプロセスは、パラメータの値及びデータフィードを変換するための論理規則を指定する少なくとも１つのメタデータファイルを受信することであって、各データフィードはネットワーク化されたデータソースから受信される、受信すること及び構造化データセット内に結果をロードすることを含む。このプロセスは、パラメータの値及び複数のデータフィードを変換するための論理規則が各データフィードについて不整合でないことを検証すること、パラメータの検証済みの値及びデータフィードの各データフィードを構造化データレコードへと変換するための検証済みの論理規則に従って１つ又は複数の標準を指定するデータ規則を生成することを含む。このプロセスは、ランタイム環境のための少なくともデータ処理アプリケーションを生成することを含む。生成されるデータ処理アプリケーションは、１つ又は複数のデータソースからデータフィードを含むソースデータを受信し、生成したデータ規則に準拠する構造化データレコードのための１つ又は複数の標準を満たす構造化データへとソースデータを変換するように構成することができる。
【０００６】
一部の実装形態では、データ処理アプリケーションがデータフローグラフ、データフローサブグラフ、又は複数のデータフローグラフを含む。一部の実装形態では、構造化データセットがデータベースを含む。
【０００７】
概して、ソースデータはデータレコードを含み、メタデータファイルのパラメータはソースデータのデータレコードに関するキー値を表すデータレコードのフィールドを指定する。一部の実装形態では、メタデータファイルのパラメータが、ソースデータのキー値を表すフィールドと構造化データレコードの別のキー値を表す構造化データレコードの別のフィールドとの間のマッピングを指定する。メタデータファイルのパラメータはキー値の形式を指定し、パラメータによって指定された形式を有するようにキー値は変換される。
【０００８】
一部の実装形態では、このプロセスはデータ記憶域からパラメータのデフォルト値を取得すること、及びパラメータのデフォルト値に基づいてデータ規則を定めることを含む。概して論理規則は構造化データレコードのフィールドに関する形式を指定し、フィールドはデータ履歴値を含む。一態様では、データ履歴値はデータ履歴値を含む構造化データレコードが更新されたときを示すタイムスタンプを含む。
【０００９】
一部の実装形態では、メタデータファイルを受信することが、メタデータファイルのヘッダー行を構文解析してどのパラメータがメタデータファイル内で指定値を有するのかを決定することを含む。
【００１０】
一部の実装形態では、データ規則によって定められる構造化データレコードのための１つ又は複数の標準を満たす構造化データへとソースデータを変換することが、ソースデータの少なくとも２つの異なる部分が同一のキー値を指定すると判定すること、及びソースデータの２つの異なる部分の少なくとも１つについて新たなキー値を指定することであって、新たなキー値は同一のキー値と異なり、構造化データレコードのキーシーケンスに基づく、指定することを含む。
【００１１】
一部の実装形態では、このプロセスが、少なくとも１つのメタデータファイルによって指定されていない１つ又は複数の追加のパラメータのための１つ又は複数のデフォルト値を取得することを含み、データ規則を定めることは１つ又は複数の追加のパラメータのデフォルト値に基づく。概して、メタデータファイルは構造化データレコードのデータの解釈を指定する１つ又は複数の意味規則を含む。
【００１２】
一部の実装形態では、メタデータファイルのパラメータが、構造化データレコード内に含めるための許容データ値を指定するデータ品質パラメータを含む。一部の実装形態では、メタデータファイルのパラメータが、構造化データレコードのためのキーマッピングスキームを指定するデータ完全性パラメータを含む。一部の実装形態では、メタデータファイルのパラメータは、構造化データセットの構造化データレコードが読み出し最適化されるように構成されるか、又は書き込み最適化されるように構成されるかを指定するデータレポートパラメータを含む。
【００１３】
一態様では、パラメータの値及び複数のデータフィードを変換するための論理規則が各データフィードについて論理的に不整合でないことを検証することが、キーサロゲーション規則を指定するフィード固有メタデータ及びデータ履歴化規則を指定するロード固有メタデータの検査を行うことを含む。
【００１４】
一部の実装形態では、データ処理アプリケーションが構造化データを構造化データセット内にロードするように更に構成される。アクションは、少なくとも１つのデータフローグラフを含む複数のデータ処理アプリケーションを生成することを含み、複数のデータフローグラフは実行可能アプリケーションを形成する。
【００１５】
本発明の他の特徴及び利点が以下の説明及び添付の特許請求の範囲から明らかになる。
【図面の簡単な説明】
【００１６】
図面の簡単な説明
【図１Ａ】メタデータ駆動データウェアハウスアプリケーション用のコンパイル環境のシステム図である。
【図１Ｂ】メタデータ駆動データウェアハウスアプリケーション用のランタイム環境のシステム図である。
【図２Ａ】図１Ａのコンパイル環境内でコンパイルされるメタデータ駆動データウェアハウスアプリケーションの一例を示す。
【図２Ｂ】メタデータ駆動データウェアハウスアプリケーション用のデータフローグラフをコンパイルするための環境の一例を示す。
【図３】コンポーネントを含むデータフローグラフの一例を示す。
【図４】メタデータ駆動ウェアハウスアプリケーションに属するランタイムシステムの一例を示す。
【図５】データウェアハウス用のデータを変換するためのグラフの例を示す。
【図６】データウェアハウス用のデータを変換するための環境の一例を示す。
【図７】メタデータ駆動ウェアハウスアプリケーション用のデータフローグラフをコンパイルするためのアクションの流れ図を含む。
【図８】メタデータ駆動ウェアハウスアプリケーションのデータフローグラフによる、データウェアハウスに対するデータの実行時の変換及びロードのためのアクションの流れ図を含む。
【発明を実施するための形態】
【００１７】
詳細な説明
本明細書は、データを変換し、データウェアハウス内にロードするための実行可能コードを生成し、更新し、維持するためのシステム及び方法を記載する。データウェアハウスは、既定の標準（例えば形式、履歴化スキーム等）に従って構造化データを構造化データレコード内に記憶するデータ記憶設備である。メタデータ駆動ウェアハウス（ＭＤＷ：metadata-driven warehouse）システムはコンパイラを含み、コンパイラは実行時に使用するためのデータ処理コンピュータプログラム（例えばメタデータ駆動ウェアハウスアプリケーションを構成する実行可能データフローグラフのコンポーネント及び関連ファイル）を生成するために、データウェアハウス内のデータ記憶域の既定の標準を表すメタデータを含む論理規則及びパラメータを使用する。これらのプログラムは、データウェアハウス内に記憶するために他の計算システムからのデータを準備する。実行可能データフローグラフは、データフローグラフ内に含まれるコンポーネント（このコンポーネントはひいてはデータ処理機能を実行する実行可能コードを含み又は表す）を使用してデータを処理する一種のコンピュータプログラムである。この説明では、データフローグラフが表すコンポーネントがアクションを実行するように構成される場合、それらのアクションを実行するものとしてデータフローグラフを記述する。コンポーネントは、入力データを読み出すためのデータソース、グラフによって処理されたデータを出力し又は記憶するためのデータシンク、及び入力データを処理するデータ処理コンポーネントを含み得る。データフローグラフをコンパイルすることは、コードを実行しデータフローグラフ内で表すことができる論理コンポーネントを生成することを含む。コンポーネントの構成は、データがどのように処理されるのかを決定する。次いで１つ又は複数の実行可能データフローグラフが実行可能メタデータウェアハウスアプリケーションを形成する。メタデータウェアハウスアプリケーションは、ランタイムシステム上のランタイム環境内で実行される。ランタイムシステムは１つ又は複数のデータソースからデータを受信し、データウェアハウス内に記憶するために受信データを構築するように構成される。
【００１８】
概してメタデータ駆動ウェアハウスシステムは、コンパイラに与えられるウェアハウスメタデータを含む、論理規則及びパラメータに基づく実行可能データフローグラフを生成する。パラメータは特定の実行可能データフローグラフがデータを処理するやり方を定める。データフローグラフは、データウェアハウス内に記憶するためのデータを準備するためにランタイムアプリケーションによって実行される。
【００１９】
図１Ａは、データウェアハウス（メタデータ駆動ウェアハウスとも呼ぶ）内に記憶するためにデータを変換するように構成される実行可能アプリケーションを生成するためのコンパイル環境１００の一例を示す。コンパイル環境１００は、１つ又は複数の実行可能データフローグラフを含む実行可能アプリケーション１１８を生成する（例えば構成する）ためのメタデータ駆動ウェアハウス（ＭＤＷ）コンパイラ１０２を含む。データフローグラフは、図１Ｂのメタデータ駆動ウェアハウス（ＭＤＷ）ランタイムシステム１２４等のランタイムシステムによって実行可能なアプリケーション１１８を概して形成する。より具体的には、アプリケーション１１８の実行可能データフローグラフを構成することは、ランタイム環境１２０内で実行されたときデータフローグラフ内で指定された１つ又は複数の操作を実行する実行可能コードをコンパイルすることを含む。コンパイル環境内でＭＤＷコンパイラ１０２によって生成されると、実行可能アプリケーション１１８の実行可能データフローグラフがランタイム環境１２０内で実行される。アプリケーション１１８は、図２Ａに関して後で説明するようにワークフローオーケストレータ（プラン）、パラメータセットファイル等、実行中にデータフローグラフと共に使用される追加のファイルも含むことができる。
【００２０】
図１Ｂに示すランタイム環境１２０内で、実行可能アプリケーション１１８がＭＤＷランタイムシステム１２４によって実行される。ＭＤＷランタイムシステム１２４は、１つ又は複数のデータソース１０４ａ、１０４ｂ、及び１０４ｃからそれぞれソースデータ１１２（例えばソースデータ１１２ａ、１１２ｂ、及び１１２ｃ）を受信し、データウェアハウス１０６のデータ規則（例えば既定の標準）に準拠する変換データ１１４へとそのデータを（アプリケーション１１８の実行可能論理によって）変換し、変換データを記憶するためにデータウェアハウス１０６に送信するように構成される。
【００２１】
アプリケーション１１８の実行可能データフローグラフは、ネットワーク化されたデータソース１０４等の１つ又は複数のデータソースからのデータを処理するデータフローグラフ実行環境（例えばＭＤＷランタイムシステム１２４）内で実行されるコンピュータプログラムである。ネットワーク化されたデータソース１０４からのデータは、データフローグラフに従って操作され処理（例えば変換）され、データウェアハウス１０６に送出される。実行可能データフローグラフは、少なくとも１つのデータ入力又はソースからのデータを処理し少なくとも１つのデータシンク又は出力にデータを与えるためのコードをそれぞれ含むデータ処理コンポーネント等のコンポーネントを表すノード、並びにネットワーク化されたデータソース１０４及び／又はデータウェアハウス１０６にアクセスするためのデータセットオブジェクトを表すノードを含む有向グラフとして表される。ノードは、データソースから始まりデータシンクで終わるコンポーネント間のデータフローを表す有向リンクによって接続される。上流コンポーネントのデータ出力ポートは下流コンポーネントのデータ入力ポートに接続される。データフローグラフは、データセットオブジェクトによって表される様々なデータソース及び様々なデータシンクに再利用することができる。データフローグラフを実装するために使用されるデータ構造及びプログラムコードは、様々なネットワーク化されたデータソース１０４（又は様々なデータウェアハウス）を容易に置換できるようにパラメータ化することにより、複数の異なる構成をサポートすることができる。更に一部の構成では、パラメータを使用することによってデータフローグラフのフローを変えることができ、それによりコンポーネント又は一連のコンポーネントをバイパスすることができる。概して、パラメータは構成し又は変更することができるデータフローグラフの特性を表す。例えばデータフローグラフの用途によって特性を変更することができ、データフローグラフはその変更を理由に操作を異なるように実行することができる。データフローグラフを実行するためのシステムは、参照によりその全体を本明細書に援用する「グラフとして表される計算の実行（EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS）」と題された米国特許第５，９６６，０７２号の中で記載されている。
【００２２】
データフローグラフは、特定のアクションを実行するようにデータフローグラフのプリコンパイルを変更することによってコンパイル時に、又はデータフローグラフによって使用されるパラメータを設定し若しくは構成ファイルを変更することによって実行時に構成することができる。一部の実装形態では、ＭＤＷランタイムシステム１２４によって実行されるアプリケーション１１８のデータフローグラフが、クライアント装置及びバックエンドシステム１０８（以降クライアント装置１０８）から受信されるデータ（例えばメタデータファイル１１０）からＭＤＷコンパイラ１０２においてコンパイルされる。一部の実装形態では、ＭＤＷ、ランタイムシステム１２４によって実行されるデータフローグラフの１つ又は複数がＭＤＷコンパイラ１０２によりクライアント装置１０８によってコンパイルされ、データフローグラフを実行するためにそのデータがＭＤＷランタイムシステム１２４に送信される。この事例では、コンパイルされたアプリケーション１１８がソースデータ１１２の少なくとも一部に対して作用することができる。ソースデータ１１２を共同的に処理するために、コンパイルされたアプリケーション１１８はデータウェアハウス１０６によって生成されコンパイルされる１つ又は複数の他のデータフローグラフと統合され得る。アプリケーション１１８のデータフローグラフは図３に関してより詳細に説明する。データフローグラフを策定し構成するための環境は、参照によりその全体を本明細書に援用する「グラフベースアプリケーション用のパラメータの管理（Managing Parameters for Graph-Based Applications）」と題された米国特許第７，７１６，６３０号の中でより詳細に記載されている。
【００２３】
データウェアハウス１０６は、１つ又は複数のネットワーク化されたデータソース１０４からの変換ソースデータ１１２のリポジトリを含む。データウェアハウス１０６内に記憶されるデータ（例えば変換データ１１４）は、データウェアハウスのデータ規則に準拠するように構成される。データウェアハウス１０６のデータ規則は、データウェアハウスがデータをどのようにロードし、記憶し、更新するのかを決定する。データウェアハウス１０６内に記憶されるデータはデータ規則に準拠する。データ規則は、データレポート、データ分析、データマイニング等のデータウェアハウス１０６の１つ又は複数の応用、及び他の同様の応用を円滑化する。
【００２４】
データウェアハウス１０６のデータ規則は、データウェアハウス１０６内に記憶するためにデータ（例えばソースデータ１１２）をどのように変換するのかを定める。データ規則は論理規則であり、複数のファイルを様々な形式で含むことができる。例えばデータ規則は、データ品質規則を指定する第１のファイル及びキー処理規則を指定する第２のファイルを含むことができる。データ規則のファイルは、ソースデータ１１２を変換するためのパラメータの１つ又は複数の値を定めることができるメタデータを含む。データ規則のパラメータは、データウェアハウス１０６の構成が厳密にどうあるべきかを示す。例えばデータウェアハウス１０６のデータ規則は、データウェアハウス１０６からデータをどのように取得するのか、及びデータをどのように抽出し、変換し、データウェアハウス１０６にロードするのかを指定する。例えば、データウェアハウス１０６のデータ規則はデータ辞書を含むことができる。データ辞書は、データウェアハウス１０６によって記憶データがどのように処理されるのかを定めるメタデータを含む。例えばデータ辞書は、記憶データの意味、他のデータとの関係、記憶データの発生源、用途、及び形式を指定することができる。
【００２５】
概して、データ規則はＭＤＷコンパイラ１０２においてコンパイルが行われる前に１つ又は複数の装置によって定められる。例えばデータ規則内に含まれるデータ品質規則は事前に定め、アプリケーション１１８のデータフローグラフをコンパイルするためにＭＤＷコンパイラ１０２によって受信され得る。一部の態様では、データ規則の少なくとも一部をクライアント装置１０８において定めることができる。例えばデータ規則はクライアント装置１０８上のアプリケーションに関連するインタフェースを介して（例えばユーザによって）定めることができ、定められたデータ規則はＭＤＷコンパイラ１０２に送信することができる。別の例では、データ規則がクライアント装置１０８以外の装置において定められる。更に別の例では、データ規則の少なくとも一部がＭＤＷコンパイラ１０２に関連するインタフェースによって定められる。
【００２６】
まず、データ規則はデータウェアハウス１０６内に記憶されるデータのデータ履歴に関する標準を指定する。データ履歴は、データウェアハウス１０６内のデータが特定の標準に従ってどのように維持されるのかを指定する。標準は、データウェアハウス１０６のデータレコード内にデータをどのように入力するのかに関する１組の規則を含む。これらの規則は様々なデータウェアハウスごとに異なり得る。概して規則は、特定のデータウェアハウスに関するデータのロード及びレコードの更新を標準化する。履歴化と呼ぶこともあるデータ履歴は、データウェアハウス１０６がデータウェアハウス１０６内のデータの変更（例えば更新）を時間と共に正しく記録することを確実にする。
【００２７】
データウェアハウス１０６は様々な時点（例えば各時点）においてデータウェアハウス１０６のコンテンツのレコードを記憶することができ、このことはデータウェアハウス１０６のコンテンツのスナップショットを別のシステムが特定の瞬間におけるその状態に応じて要求することを可能にする。データウェアハウス１０６のデータエントリが追加され、追加されたデータがデータウェアハウス内のそのデータの最新版である場合（例えば該当する場合はそのデータが変更された場合）、データ履歴はロギングの標準的な技法によって使用可能にすることができる。
【００２８】
例えばデータレコードは、データレコードがデータウェアハウス１０６に何時追加されたのかを示すタイムスタンプ（例えば日付フィールド）を含むことができる。データレコードが更新されると第２の新たなレコードが生成され、第２のレコードは第２のレコードを第１のレコードに関連付ける識別子を含む。第２のレコードは、レコードが追加されたときを示すタイムスタンプ（例えば日付フィールド）を含む。第２のレコードは、第２のレコードがそのデータの最新版（例えば現在有効なデータ）であることを示すデータを含む。次いで、第１のレコードがもはや最新の（例えば現在有効な）データではないことを示すデータを含むように第１のデータレコードが更新される。第１のレコードは、第１のレコードが最新のデータを含んでいた期間を代わりに示すように更新される。このようにしてデータウェアハウス１０６によって維持されるデータ履歴は、様々な時点（例えば時間のスライス）においてデータウェアハウス１０６内に記憶されるデータをレポートすることを可能にする。データ履歴の上記の例はデータウェアハウス１０６内で使用可能な或る特定の方法だが、データ履歴を維持する他の方法がデータウェアハウス１０６によって使用されてもよい。データウェアハウス１０６のデータ規則は、データウェアハウスのデータ履歴にどの規定を使用すべきかを示す。
【００２９】
第２に、データ規則はデータウェアハウス１０６のデータ品質に関する標準を指定する規則を含む。データ品質とは、データが記憶されているアプリケーションの１つ又は複数の要件をデータウェアハウス内に記憶されているデータが満たす確実性を指す。例えばアプリケーションの要件は、データレコードの１つ又は複数のフィールドがデータで埋められていること、データが最新であること、及びデータが特定の形式を有することを含み得る。本質的に、（ＭＤＷランタイムシステム１２４にとって外部の）アプリケーションはデータウェアハウス１０６にデータを要求し、要求に応答してデータを予期された形式で確実に受信することができる。
【００３０】
データウェアハウス１０６のデータ品質は、データウェアハウス内に記憶されるデータが、データウェアハウス１０６内に記憶されるデータを使用している（例えば取得及び処理している）アプリケーションの要件を満たすことを確実にする。データ品質は、記憶されているデータの完全性、妥当性、正確度、一貫性、可用性、及び適時性の標準を保証する１組のデータ処理ステップによって実装される。
【００３１】
例えばデータ品質は、各データレコードが１つ又は複数のネットワーク化されたデータソース１０４からのデータで正しく埋められていることを保証する。データがＭＤＷランタイムシステム１２４によって取り込まれると、そのデータの完全性、冗長性、フォーマッティング、正確度等が検査される。データの不完全な、正しくない、不正確な、又は無関係な部分を識別し、識別したデータを置換し、修正し、又は削除することを含むデータクレンジングプロセスを使用してもよい。一部の実装形態では、ネットワーク化されたデータソース１０４の複数が同じデータを参照する（例えば２つのソースが同じデータレコードの複製を含む）場合、データエントリをマージする。データウェアハウス内に記憶するには変換データ１１４がどの標準を満たさなければならないのか等、データウェアハウス１０６のデータ規則はデータウェアハウスに関するデータ品質の要件を指定する。ＭＤＷランタイムシステム１２４は、データウェアハウス１０６のデータ規則に従ってソースデータ１１２を変換データ１１４に変換する。
【００３２】
第３に、データ規則はデータウェアハウス１０６のデータがデータ完全性の標準をどのように満たすのかを指定する。データ完全性は、記憶されているデータがそのデータのライフスパンにわたって正確である及び一貫している程度を指す。データ完全性は、データウェアハウス１０６の特定のデータにアクセスする能力を含む。例えばデータ規則は、データエントリがどのようにインデックス付けされるのか（例えば各レコードにどのキー値が割り当てられるのか）を指定する。別の例では、データ規則は第１のデータレコード内の参照がどのように第２のデータレコードを指すように構成されるのかを指定する。別の例ではデータ完全性は、各レコードが他のレコードによって参照可能な有効なインデックス又はキー値を有することを保証する。データ完全性は、（例えばＭＤＷランタイムシステム１２４にとって外部の）アプリケーションがデータウェアハウス１０６内のデータレコードのデータを要求した場合、データウェアハウスから正しいデータが返され、要求されなかった他のデータは除外されることを保証する。正しいデータは、アプリケーションによる照会の中で示されるデータレコードのデータ、データレコード、及び／又はデータフィールドを含み得る。アプリケーションがデータウェアハウス１０６のデータに確実にアクセスするために、データウェアハウス１０６のデータエントリ間のデータウェアハウス１０６内で指定されたマッピングが有効でなければならない。
【００３３】
データウェアハウス１０６のデータ完全性は、データウェアハウス１０６内に記憶されるデータがそのデータのライフサイクルにわたって一貫しており正確であること、及びデータウェアハウス内のデータに対する照会に応答して予期されたデータが返されることを保証する。データ完全性は、データウェアハウス１０６内のデータに対して実行される記憶、取得、又は処理操作の結果として意図しないデータ変更がないことを保証する。例えばデータ完全性の規則は、データが読み出される前、変更される前等にバッファにロードされることを指定することができる。データウェアハウス１０６のデータ完全性は、実体完全性、参照完全性、領域完全性、又はユーザによって定められる何らかの完全性の標準の少なくとも１つが保たれることを保証する。例えば参照完全性は、データウェアハウス１０６内で第１のキーがどのように第２のキーを参照するのかを指定することができる。参照完全性は、参照が構造化データの有効なインデックス（例えばキー値）を指すこと及び参照論理内の無限ループが生じないことを保証する。別の例では、実体完全性はデータウェアハウス内に記憶されるデータレコードのどのフィールドが各データレコードの主キーを含むのか及びそれがどのキー値を有するのかを指定することができる。例えば実体完全性データは、データウェアハウス内の構造化データの第１のフィールドがキーフィールドであること、及びこのフィールドがそれぞれ少なくとも４桁有する１超の間の１６進のキー値を有することを指定することができる。データウェアハウス１０６のデータ規則は、どのキーマッピングが許可され、どの標準にキーマッピングが準拠するのかを定める。例えばキーマッピングは１つの異なるテーブル若しくはレコード又は複数の他のテーブル若しくはレコードを参照可能とすることができる。キーマッピングのリストはキーマッピングスキームと呼ぶことができる。
【００３４】
第４に、データ規則はデータウェアハウス１０６がデータレポートに関してどのように構成されるのかを指定する。データウェアハウス１０６内に記憶されるデータは、データウェアハウス１０６の機能を損なわないやり方で要求に応答してレポートされる。データ規則はデータウェアハウス１０６内のデータをどのように記憶するのかを指定し、そのためデータウェアハウスの性能に影響を与えることなしにデータウェアハウスからデータを読み出すことができる。例えばデータウェアハウス内のデータは書き込み最適化することができ、それにより、読み出しラインは書き込みのための他のレコードへのアクセスに影響を及ぼすことなしに単一のレコードにアクセスするように構成される。かかるスキームはデータベースからの読み出しを遅くする可能性がある一方、データベースにデータを書き込む時間を改善する。対照的に、データ規則は構造化データを読み出し最適化することを指定することができる。このことは書き込みラインが一度に単一のデータレコードにしかアクセスしないことを意味し、データベースから一度に大量のデータを読み出すことに悪影響を及ぼすのを防ぐ。従って、データウェアハウスの機能を乱すことなしにデータウェアハウス１０６のデータを要求側システムにレポートすることができる。一部の例では、要求側システムはデータウェアハウス１０６にデータを要求する、ＭＤＷランタイムシステム１２４にとって外部の計算システムである。一部の実装形態では、データウェアハウス１０６が読み出し最適化される（例えば書き込み操作又は他の種類の操作とは対照的に読み出し操作について最適化される）。例えば、データウェアハウス１０６のデータは非正規化データを含み得る。データウェアハウス１０６のデータを非正規化することは、（例えば正規化データベースに対して）読み出し操作中の関係テーブルへの依存を減らすために関連データをグループ化すること（例えば一部の事例では冗長なデータの複製を追加すること）を含む。各レコードは読み出し操作に必要な全てのデータを含み、データを読み出すために（例えば２つのエントリを結合する）結合操作は必要ない。これは読み出し最適化されたデータベースの具体例だが、データウェアハウス１０６を読み出し最適化するために他の方法を使用することができる。一部の実装形態では、データウェアハウス１０６のデータに対する要求が殆ど又は全く行われない予定された期間中（例えば夜間）にデータウェアハウス１０６が更新される。データウェアハウス１０６のデータ規則はデータウェアハウス１０６が読み出し最適化されるやり方を反映し、データウェアハウスの読み出し／書き込みスケジュールを制約する。
【００３５】
図１Ａに戻り、コンパイル環境１００内で、ＭＤＷコンパイラ１０２は実行可能アプリケーション１１８の１つ又は複数の実行可能データフローグラフを生成するように構成され、ランタイム環境１２０内で実行されるときデータウェアハウス１０６内に記憶するために１つ又は複数のデータソース１０４からのデータを準備する。ＭＤＷコンパイラ１０２によって生成されるアプリケーション１１８の機能は、上記で説明したようにデータウェアハウス１０６のデータ規則を定めるメタデータファイル１１０内のメタデータパラメータ及び規則セットマッピング１２６内の論理規則によって定められる。規則セットマッピング１２６及びメタデータファイル１１０の具体的なコンテンツは図２Ａ〜図２Ｂに関して説明する。
【００３６】
ＭＤＷコンパイラ１０２は、データウェアハウス１０６のデータ規則をメタデータファイル１１０及び規則セットマッピング１２６の形で受信する。メタデータファイル１１０及び規則セットマッピング１２６は、上記で説明したようにデータ履歴、データ品質、データ完全性、及びデータレポートに関してデータウェアハウス１０６がどのように構成されるのかに関するパラメータのそれぞれを含む。ＭＤＷコンパイラ１０２は、データウェアハウス１０６のデータ規則のパラメータを使用してアプリケーション１１８のデータフローグラフを生成するように構成される。アプリケーション１１８は、ネットワーク化されたデータソース１０４からのソースデータ１１２をデータウェアハウス１０６内にロードされる変換データ１１４へと変換するように構成される。
【００３７】
メタデータファイル１１０は、データウェアハウス１０６内にデータを記憶するためのデータ規則を含み又は表す。メタデータファイル１１０のメタデータは、データウェアハウス１０６内に記憶される変換データ１１４の形式を指定するパラメータ値を含む。
【００３８】
例えばメタデータファイル１１０は、ネットワーク化されたデータソース１０４のオペレーショナルデータベース１０４ｂのシステムの様々なキー値を単一のインデックスへとどのように組み合わせるのかを指定する。この例では、システムの様々なオペレーショナルデータベース１０４ｂが互いに冗長なキー値を含むことができる。メタデータファイル１１０は、これらの冗長なキー値をデータウェアハウス１０６内の統一インデックスのための固有のキー値へとどのように変換するのかを指定する。この操作は、例えば「００１」の操作キー値がデータウェアハウス１０６内でまだ表されていないと判定し、従ってデータウェアハウス１０６にとって固有の新たな値にオペレーショナルデータベース１０４ｂのキー値「００１」を変換することを含み得る。
【００３９】
メタデータファイル１１０内で指定されるパラメータの数は変わり得る。概して、メタデータファイル１１０は変換データ１１４の形式及び処理を決定するのに必要な全てのパラメータの値を含む。一部の実装形態では、１つ又は複数のパラメータが指定値を有さない場合、それらの１つ又は複数のパラメータについて所定のデフォルト値を置換する。ユーザは、変換データ１１４の特定の処理を指定するために、例えばデータウェアハウス１０６の特定の形式への変換データ１１４の準拠を指定するために、メタデータファイル１１０を修正してパラメータの値を必要に応じて変えることができる。一部の実装形態では、メタデータファイル１１０がカンマ区切り（ＣＳＶ）ファイル、スプレッドシートファイル（ＸＬＳ）、又はクライアント装置１０８のユーザによって直接編集可能なそのような他のファイルを含む。一部の実装形態では、メタデータファイル１１０がユーザによって変更可能なデフォルト値を有する全てのパラメータを含む。メタデータファイル１１０は何百ものパラメータを含み得るが、ユーザは特定のデータウェアハウス１０６又はデータウェアハウス１０６の一部分について少数の（例えば＜３０の）パラメータを調節するだけでもよい場合がある。編集されないパラメータはデフォルト値のままである。
【００４０】
一部の実装形態では、ＭＤＷランタイムシステム１２４がメタデータファイル１１０を実行時に検査してメタデータファイルを完璧であるものとして（例えばＭＤＷコンパイラ１０２がメタデータファイルからグラフをインスタンス化できることを）検証する。例えばユーザは２０個未満のパラメータを編集し、他のパラメータをデフォルト値のままにしておくことができる。一部の実装形態では、編集可能なパラメータ値の数が数百程度である。様々なデータフローグラフのデフォルトパラメータ値はユーザが編集しているファイル内で表示することができ、又はユーザにパラメータ値を提示することなしにＭＤＷランタイムシステム１２４に関連するライブラリ（不図示）から実行時に取得することができる。一部の実装形態では、ライブラリがＭＤＷランタイムシステム１２４の記憶域の一部である。ライブラリは（例えばテーブルからの）各パラメータのデフォルト値を表すデータを記憶する。例えばＭＤＷコンパイラ１０２は.csvファイルのヘッダー行を検査してメタデータファイル１１０内にどのパラメータが含まれているのかを突き止め、残りのパラメータのデフォルト値をライブラリから取得する。一部の実装形態では、（例えばデータフローグラフをインスタンス化するとき）ＭＤＷランタイムシステム１２４がメタデータファイル１１０を実行時に検証しようと試みる。検証は、ソースデータ１１２を変換するためのデータフローグラフを自動でインスタンス化するのに必要なデータをメタデータファイル１１０が含むと判定することを含む。例えば検証は、矛盾、欠損値、無効値等がないことを確実にするためにメタデータファイル１１０内で与えられるパラメータ値を検査することを含む。
【００４１】
実行時に検証される編集可能ファイルに加えて又はその代わりに、メタデータファイル１１０はユーザインタフェースから生成することができる。例えばクライアント装置１０８上のデータ取り込みインタフェース（不図示）内で、様々なパラメータオプションがユーザに提示される。ユーザはメニュー及び他のコントロールからパラメータを選択し、それらのパラメータの値を所望の通りに挿入することができる。メタデータファイル１１０はＭＤＷコンパイラ１０２により実行時よりも前にプログラムによって検証することができる。例えばデータ取り込みインタフェースは、ユーザがパラメータの無効値、矛盾値を入力すること、（例えばパラメータがデフォルト値を有さない場合）値を空白のままにしておくこと等を許可しないプログラムを含む。
【００４２】
ＭＤＷコンパイラ１０２は、データウェアハウス１０６内に記憶するためにソースデータ１１２を変換データ１１４へと変換するアプリケーション１１８を生成するために、メタデータファイル１１０内で指定されているパラメータの値を使用する。パラメータの値は、ＭＤＷコンパイラ１０２によって生成されるデータフローグラフのそれぞれが厳密にどの操作を行うのか（例えば各グラフがソースデータ１１２を変換データ１１４へとどのように変換するのか）を指定する。換言すれば、メタデータファイルのパラメータはデータフローグラフをインスタンス化するために使用される。
【００４３】
メタデータファイル１１０に加えて、ＭＤＷコンパイラ１０２は規則セットマッピング１２６からのデータを使用してデータフローグラフをコンパイルする。先に記載したように、規則セットマッピング１２６はアプリケーション１１８のデータフローグラフを生成するために受信され使用される前に別のアプリケーションによって定められ得る。規則セットマッピング１２６は単一のソース又は多くのソースからの規則セットを含むことができる。
【００４４】
規則セットマッピング１２６は論理規則を含むことができる。論理規則は、受信した入力に基づいて決定される出力を定め、特定の応用に特有のターム（term）を使用して概して定められる。規則はクライアント装置１０８のデータ取り込みインタフェースによって編集することができる。例えば規則を修正するために、規則エディタ（ビジネスルールエディタ、ＢＲＥ等）インタフェースをクライアント装置１０８のユーザに提示することができる。ＢＲＥの例は、参照によりその全体を本明細書に援用する米国特許第９，００２，７７０号の中で記載されている。
【００４５】
一部の実装形態では、規則セットマッピング１２６が意味ファイルを含むことができる。意味ファイルは、変換データ１１４内でデータが何を表すのかを示す（例えば「USD=U.S. Dollar」であること等を指定する）。意味ファイルは、変換データ１１４内でデータが何を表しているのかを明らかにするために使用することができる。例えばデータレコードの２つの異なるフィールドが同じ種類の値を表している（例えばどちらもU.S. dollarを表している）場合、規則セットマッピング１２６はそれらのデータフィールドが互いに同じ形式を有することを指定することができる。一部の実装形態では、参照によりその全体を本明細書に援用する、２０１８年６月４日に出願された米国特許出願第１５／９９７，２７８号の中で記載されているインタフェース等の別のインタフェースを使用することができる。規則セットマッピング１２６は提供する例に限定されない。むしろ、規則セットマッピング１２６はソースデータ１１２を１組の特定のデータ規則に準拠する変換データ１１４へと変換するために使用される他の論理規則を含むことができる。
【００４６】
一部の実装形態では、規則セットマッピング１２６を編集のために第１のユーザに公開することができる一方、メタデータファイル１１０は編集のために第２の異なるユーザに公開される。この形態は、非技術系ユーザがメタデータファイル１１０にアクセスすることなしにデータウェアハウス１０６のための規則セットマッピング１２６を決定することを可能にすることができる。経験を積んだ開発者はメタデータファイル１１０にアクセスしそれを操作し、データウェアハウス１０６、キーマッピング等の参照完全性をどのように強制するのかを決定する（例えばデータウェアハウス１０６内の参照が正しく有効であることを保証する）ことができる。このようにして、経験を積んだユーザ又は技術系ユーザがデータウェアハウス１０６の規則のそれぞれを指定することを必要とすることなしに、データウェアハウス１０６の完全性を保つことができる。
【００４７】
メタデータファイル１１０及び／又は規則セットマッピング１２６は、例えばクライアント装置１０８のユーザインタフェース１２２によってクライアント装置１０８に与えられる。クライアント装置１０８はグラフ構成モジュールを含む。クライアント装置１０８は、POSIX準拠オペレーティングシステム（例えばUNIX、Linux等）等の適切なオペレーティングシステムの制御下にある１つ又は複数の汎用コンピュータを含み得る。例えばクライアント装置１０８は、ローカルの（例えばＳＭＰコンピュータ等のマルチプロセッサシステム）、又はローカルに分散された（例えばクラスタ又はＭＰＰとして結合される複数のプロセッサ）、又は遠隔的、又は遠隔的に分散された（例えばＬＡＮ又はＷＡＮネットワークによって結合される複数のプロセッサ）、又はそれらのものの任意の組み合わせである複数の中央処理装置（ＣＰＵ）を使用するコンピュータシステムの構成を含む、マルチノード並列計算環境を含み得る。クライアント装置１０８は単一の装置として図示するが、クライアント装置１０８は、ソースデータ１１２を変換データ１１４へと変換するように構成されるアプリケーション１１８を生成するためにメタデータファイル１１０の一部をＭＤＷコンパイラ１０２にそれぞれ送信する１つ又は複数の装置を表し得る。ユーザインタフェース１２２は、クライアント装置のユーザが規則セットマッピング１２６及び／又はメタデータファイル１１０のパラメータを指定できるようにするユーザ対話型インタフェースを含む。一部の実装形態では、ユーザインタフェース用の論理がクライアント装置自体の上で実行される一方、ＭＤＷコンパイラ１０２はクライアント装置と通信するバックエンドシステム（サーバ等）の上で実行される。
【００４８】
図１Ｂに戻り、ランタイム環境１２０が示されている。ＭＤＷランタイムシステム１２４は１つ又は複数のネットワーク化されたデータソース１０４からデータを受信する。ネットワーク化されたデータソース１０４は、データウェアハウス１０６内に記憶するためにＭＤＷランタイムシステム１２４にデータを送信するように構成される計算システム及び記憶装置を含み得る。ネットワーク化されたデータソース１０４は、そのそれぞれが様々な記憶形式の何れか（例えばデータベーステーブル、スプレッドシートファイル、フラットテキストファイル、又はメインフレームによって使用されるネイティブ形式）でデータを記憶し得る、記憶装置又はオンラインデータストリームへの接続等、ソースデータ１１２の１つ又は複数のソースを含む。一部の実装形態では、ネットワーク化されたデータソース１０４が、メインフレーム１０４ａ、１つ又は複数のオペレーショナルデータベース１０４ｂ、及び１つ又は複数のクライアントシステム１０４ｃのそれぞれの１つを含む。ＭＤＷランタイムシステム１２４はソースデータ１１２を受信し、そのソースデータに対して１つ又は複数の操作を実行して変換データ１１４を生成する。
【００４９】
ＭＤＷランタイムシステム１２４は、データウェアハウス１０６内に記憶されるようにソースデータ１１２を構成する。換言すれば、ＭＤＷランタイムシステム１２４はソースデータ１１２を変換データ１１４に変換するが、データウェアハウス１０６がその上で動作する物理記憶システムハードウェアはＭＤＷランタイムシステム１２４によるデータウェアハウスの構成よりも前に存在することができる。一部の実装形態では、メタデータファイル１１０が既存のデータウェアハウス（データウェアハウス１０６であり得る）の要件を指定する。この例では、ＭＤＷランタイムシステム１２４は、データウェアハウス１０６内に記憶される追加のソースデータ１１２を準備することにより既に初期化されているデータウェアハウス１０６を維持する（例えばデータウェアハウス１０６のデータを更新する）。一部の実装形態では、ＭＤＷランタイムシステム１２４が（例えば既存のハードウェア記憶域上の）データウェアハウス１０６を初期化し、その後データウェアハウス１０６を更新及び／又は維持する。ＭＤＷランタイムシステム１２４は、１つ又は複数のデータフローグラフを使用し、データウェアハウス１０６内に記憶する準備が整った変換データ１１４へとソースデータ１１２を変換する。
【００５０】
ネットワーク化されたデータソース１０４からのソースデータ１１２は、データウェアハウス１０６内に記憶される任意のデータを含むことができる。先に述べたように、ソースデータ１１２はオペレーショナルデータベース１０４ｂ、メインフレーム１０４ａ、及びクライアントシステム１０４ｃ等の多くの異なる種類のソースからのものとすることができ、各ソースはＭＤＷランタイムシステム１２４に送信するソースデータ１１２を様々なやり方で構成する（例えばフォーマットする）ことができる。ソースデータ１１２は、フラットファイル及び関係テーブルの何れか又は両方を含むことができる。データ自体は、ネットワーク化されたデータソース１０４がデータウェアハウス１０６内に記憶しようとする如何なる内容も含むことができる。
【００５１】
ＭＤＷランタイムシステム１２４は、データウェアハウス１０６内に記憶するために適切にフォーマットされた変換データ１１４へとソースデータ１１２を変換する。ＭＤＷランタイムシステム１２４はソースデータ１１２を受信し、実行時のデータウェアハウス１０６の状態に基づいてソースデータ１１２を変換データ１１４へと変換する。アプリケーション１１８は概して実行時の前にコンパイルされ、ソースデータ１１２がデータソース１０４から受信されるときソースデータ１１２に対して操作する。ＭＤＷランタイムシステム１２４はデータウェアハウス１０６からデータを受信して、ソースデータ１１２を変換データ１１４にどのように変換するのかを決定することができる。例えばＭＤＷランタイムシステム１２４は、ソースデータ１１２のキー値がデータウェアハウス１０６内のキー値として使用するのにさもなければ有効だと仮定し、データウェアハウス１０６に対する検査を実行してソースデータ１１２のキー値がデータウェアハウス１０６内に既にあるかどうかを判定することができる。この例では、ソースデータ１１２の所与のデータレコードに関して、データウェアハウス１０６にデータレコードをロードすることをランタイムシステムが許可すべきかどうかをデータウェアハウス１０６から受信されるデータがＭＤＷランタイムシステム１２４に知らせることができる。別の事例では、ソースデータ１１２の所与のデータレコードに関して、ランタイムシステムがデータレコードに対するキーサロゲーションをどのように実行するのか、又はキーサロゲートを少しでも生成すべきかどうかをデータウェアハウス１０６から受信されるデータがＭＤＷランタイムシステム１２４に知らせることができる。
【００５２】
変換データ１１４は、アプリケーション１１８をコンパイルするために使用されるデータ規則を満たす。例えば変換データ１１４は、先に記載したデータ履歴、データ品質、データ完全性、及びデータレポートの少なくともそれぞれに関するデータ規則を満たす。例えば、変換データ１１４のデータレコードの各フィールドはその個々のフィールドの正しいデータを指定の形式で含み、レコードのキー値は使用されているインデキシングの規定に準拠する。データレコードに正しいキー値を割り当てることは、レコードのサロゲートキー値（例えばキーサロゲーション）をＭＤＷランタイムシステム１２４によって実行時に決定することを必要とし得る。
【００５３】
図２Ａに移り、コンパイル環境１００が示されている。コンパイル環境１００は、メタデータファイル１１０を受信しアプリケーション１１８を生成するように構成されるＭＤＷコンパイラ１０２を含む。メタデータファイル１１０はメタデータファイル階層２００を含む。メタデータファイル階層は、アプリケーション１１８を生成するために使用されるメタデータファイル１１０及び規則セットマッピング１２６を含む。アプリケーション１１８はアプリケーションディレクトリ２１６内の実行可能ファイルを含み、実行可能ファイルはソースデータ１１２を変換データ１１４へと変換するために実行中にデータフローグラフによって参照される（例えばグラフファイル２２４としての）データフローグラフ及び他のファイルを含む。
【００５４】
先に説明したように、メタデータファイル１１０は、ＭＤＷコンパイラ１０２がソースデータ１１２を処理するために生成するアプリケーション１１８のデータフローグラフの機能を決定するためにＭＤＷコンパイラ１０２が使用するパラメータの値を含む。パラメータの値は、キー処理、データ履歴化、データ品質の強制、及びデータウェアハウス１０６内へのデータロード等の機能をデータフローグラフがどのように実行するのかを決定する。
【００５５】
メタデータディレクトリ２００は、図１Ａの規則セットマッピング１２６及びメタデータファイル１１０を含む。メタデータディレクトリ２００は、バイナリファイル２０２（例えば.binファイル）、レコード形式ファイル２０４（例えば.dmlファイル）、グラフファイル（例えば.mpファイル）、及び状態ファイル２０８を含む。メタデータディレクトリ２００内に示すディレクトリは例示目的で含めており、メタデータディレクトリ２００内には他のディレクトリが含まれてもよい。一部の実装形態では、図示のファイルの一部がメタデータファイル１１０内に含まれない。例えば、アプリケーション１１８内の生成済みのデータフローグラフと共に実行するように構成される標準データフローグラフを概して含むグラフファイル（不図示）はメタデータファイルから省くことができ、ＭＤＷコンパイラ１０２によって生成され得る。
【００５６】
概してレコード形式ファイル２０４は、グラフファイル２２４のレコード形式を定めるために使用される.dmlファイルを含む。概して状態ファイル２０８は、ソースデータ１１２をデータウェアハウス１０６用の変換データ１１４に変換するデータフローグラフを生成するための特定のパラメータを定める。ＭＤＷコンパイラ１０２は、ＤＭＬファイル及び状態ファイル２０８のパラメータを使用してアプリケーションのデータフローグラフを生成する。状態ファイル２０８は、グローバルファイル２１０、メタデータ駆動ウェアハウス（ＭＤＷ）フィードファイル２１２、及びＭＤＷロードファイル２１４を含む。例えばグローバルファイル２１０は、ソースデータ１１２を変換するためのスキーマ定義並びにキータイプ及びシーケンス定義を含む。例えばグローバルファイルは、キーサロゲーションのためにどのキーサービスを照会するのかを含むことができる。グローバルファイル２１０は、ＭＤＷコンパイラ１０２によってコンパイルされるグラフごとのパラメータのリスト及びそれらの関連する値を含む１つ又は複数の.CSVファイル（又は他のテーブル）を含み得る。パラメータは、デフォルト値又はユーザによって更新されている値とすることができる。ＭＤＷフィード２１２は、データウェアハウス１０６のためのＭＤＷフィードパラメータを含む。とりわけＭＤＷフィード２１２は、上記で説明したメタデータウェアハウスのデータ規則に従い全てのロードについて、データウェアハウス１０６内にロードするために変換データ１１４をどのように準備するのかを定める。例えばＭＤＷフィード２１２は、変換データ１１４の準備対象であるデータウェアハウス１０６のテーブル等のフィードパラメータ、及びキー処理統計情報をログするための規則を含むことができる。データウェアハウスロード２１４は、ロード固有パラメータが定められている場合、データウェアハウス１０６内への特定のロードごとのパラメータ（例えばデータ履歴化規則）を含むことができる。
【００５７】
メタデータファイル１１０及び規則セットマッピング１２６は、概して実行可能ファイルではない。むしろこれらは、アプリケーションがコンパイルされた後でユーザ又はウェアハウスが実行可能アプリケーションディレクトリ２１６の挙動を指定することができる編集可能ファイルである。ユーザは、クライアント装置１０８のユーザインタフェース（例えば図１Ａのユーザインタフェース１２２）によって値を設定することができる。ユーザインタフェース１２２は、メタデータファイル１１０内の値を変えるためのガイド付きオプションを提示し、矛盾、循環論理、又は他の潜在的な誤りがメタデータファイル１１０内に導入されるのを防ぐために変更を制約するのを助けることができる。例えばユーザインタフェース１２２は、編集可能なパラメータだけを提示することができる。ユーザインタフェース１２２は、１つ又は複数の他のパラメータ値と矛盾する値等の無効値にユーザがパラメータを変えるのを制限することができる。一部の実装形態では、検出された論理的不整合をユーザインタフェースが強調表示することができる。一部の実装形態では、ユーザインタフェース１２２が更新されたパラメータにおける最初の論理的不整合を認め、１つ又は複数の他のパラメータを論理的に整合した値に後で更新することができる。例えば第１のパラメータを変更することが、２つの追加のパラメータが指定の値に変更されることを引き起こすことを示す警告をユーザインタフェース１２２上に提示することができる。
【００５８】
図２Ａを続けると、メタデータ駆動データウェアハウスのアプリケーションファイル階層２１６の一例（以下、アプリケーションディレクトリ２１６）が示されている。アプリケーションファイル階層２１６は図１Ａのコンパイル環境内でコンパイルされる。アプリケーションディレクトリ２１６のアプリケーションファイル２１８は、データウェアハウス１０６内に記憶するためにソースデータ１１２を変換データ１１４へと変換するためにＭＤＷランタイムシステム１２４内で実行するための実行可能コードを含む。アプリケーションファイル２１８は、実行中に実行可能コードによって参照される（例えばメタデータファイル１１０及び規則セットマッピング１２６からの）メタデータ及び規則セットマッピングを含む。例えばアプリケーションファイル２１８は、規則セットマッピング１２６及びメタデータファイル１１０によって定められるデータ規則に従ってソースデータ１１２を変換データ１１４へと変換するのに必要な、グラフファイル２２４として記憶される全てのデータフローグラフを含む。データフローグラフは、アプリケーションファイル２１８内の実行可能コード（例えばグラフファイル２２４）によって表される。概して、図２Ａに関して記載するメタデータ階層２００のメタデータファイル１１０は、アプリケーションファイル２１８のファイル内にあるパラメータの値を定める。換言すれば、アプリケーションの１つ又は複数のファイルを生成するために及び／又はデータフローグラフが実行中に参照するパラメータ値を定めるために、アプリケーションファイル２１８のコンパイル中にメタデータ階層のメタデータファイル１１０が使用される。
【００５９】
図２Ａに示すアプリケーションファイル２１８の例は、ファイル階層（概してディレクトリ階層）形式で示されている。規則セットマッピング１２６及びメタデータファイル１１０のパラメータは、ファイル階層内のアプリケーションファイル２１８の１つ又は複数の経路を定める。パラメータは、ソースデータ１１２を変換するためにアプリケーションファイル２１８内で入手可能な第２の代替的変換ではなく、変換のライブラリの第１の変換がデータフローグラフによって使用されることを示し得る。例えば第１の変換はデータ品質に関する第１の規則を含み得るのに対し、第２の変換はデータ品質に関する第２の異なる規則を含む。パラメータは所与の状況においてどのデータ品質規則が妥当かを示すことができる。
【００６０】
このアプリケーションファイル２１８の例は、バイナリファイル２２０（例えば.binファイル）、レコード形式ファイル２２２（例えば.dmlファイル）、グラフファイル２２４（例えば.mpファイル）、パラメータセットファイル２２６、及び変換ファイル２２８（例えば.xfrファイル）を含むディレクトリを含む。これらのディレクトリは説明のための例として示したが、アプリケーションファイル２１８は、データウェアハウス１０６のデータ規則に従ってソースデータ１１２を変換データ１１４へとＭＤＷランタイムシステム１２４に変換させるように構成されるファイルを有する他のディレクトリを含むことができる。
【００６１】
グラフファイル２２４はデータフローグラフを形成し、バイナリファイル２２０、レコード形式ファイル２２２、及び変換関数ファイル２３０等、アプリケーションディレクトリ２１６内の他のファイルを参照する。パラメータセットファイル２２８は、グラフファイル２２４内で定められるデータフローグラフのパラメータ値を手動でオーバライドするために使用することができる。変換ファイル２３０は、グラフファイル２２４のデータフローグラフの１つ又は複数のコンポーネント内で実行される、アプリケーションディレクトリ２１６のために定められる関数（例えばデータ履歴化及びレポート論理）を含むことができる。
【００６２】
図２Ｂは、メタデータ階層２００のメタデータファイル１１０から実行可能アプリケーションディレクトリ２１６にアプリケーション１１８をコンパイルすること等、メタデータ駆動データウェアハウス１０６用のデータフローグラフをコンパイルするための環境の一例を示す。
【００６３】
メタデータファイル１１０は、ＭＤＷランタイムシステム１２４のフィードグラフを定める。例えばメタデータファイル１１０は、任意の取得データに関するキーサロゲーション、キー処理、及びデータの履歴化を定める。フィード／ロードの定義はコンパイル段階中に自動で行われる。規則セットマッピング及びデータ品質メトリクの受信後、フィード／ロードの定義がコンパイル段階中に自動で行われる。メタデータファイル１１０は、例えばロード及びフィードファイル２３８ａ、スキーマ定義２３８ｂ、キータイプ及びシーケンス定義２３８ｃ、並びにスパースロードマップ２３８ｄを含む。
【００６４】
ロード及びフィードファイル２３８ａは、データウェアハウス１０６に関するロード及びフィードの定義をそれぞれ列挙する。ロード及びフィードファイル２３８ａは、図２ＡのＭＤＷフィード２１２及びＭＤＷロード２１４内に含まれ得る。ロード及びフィードファイル２３８ａは、（例えばデータウェアハウス１０６内に変換データ１１４がロードされる場合）ロード固有標的テーブルを含む。ロード及びフィードファイル２３８ａは、データウェアハウス１０６内で使用されているデータ履歴の種類を指定する。ロード及びフィードファイル２３８ａは、標的テーブルのどのデータフィールドがキーフィールド（例えば参照データベースのための主キー）なのかを指定する。ロード及びフィードファイル２３８ａは、標的テーブルのキーフィールドのデータの種類、キーの形式、及び標的テーブルであるテーブルの種類を指定する（キータイプファイル２３８ｃを参照する場合がある）。ロード及びフィードファイル２３８ａは、標的テーブルのどのフィールドがデータ履歴情報（例えばバッチ時間）を含むのかを指定する。ロード及びフィードファイル２３８ａはデータウェアハウス１０６のそれらの側面のそれぞれに関するパラメータ（例えば８０個を超えるパラメータ）を含み、それらのパラメータはＭＤＷコンパイラ１０２によって実行可能ファイルを生成するために使用される。
【００６５】
スキーマ定義２３８ｂは、データウェアハウス１０６の標的テーブルのための標的スキーマを含む。例えばスキーマ定義は、フィールド名（例えばフィールドの名前空間）及びそれらのフィールドのデータエントリの構成を含む。スキーマ定義ファイル２３８ｂは、データウェアハウス１０６が関係データベースなのかデータレイクなのか等、及びもしある場合はどの独自（又は非独自）データ標準が守られているのかを指定することができる。データウェアハウス１０６の物理的属性を構成するために使用されるファイルの一例では、スキーマ定義２３８ｂはスキーマ（例えばどのデータ構成スキームが使用されているのか）、エンティティ（例えば標的の名前）、属性（例えばフィールド名）、データタイプ（例えば文字列、１０進数等のデータ形式）、値がｎｕｌｌ許容かどうか、及びキータイプ（例えば参照、主等）を含むことができる。
【００６６】
キータイプ及びシーケンス定義２３８ｃは標的テーブルごとのキーの構成を含む。キーはオブジェクトのクラスなので、キータイプファイル２３８ｃはキータイプ、キーシーケンス、及びキー処理をどのように行うのかを指定する。例えばキータイプファイル２３８ｃは、キー値が文字列、バイナリ値、数字等であることを指定することができる。キータイプファイル２３８ｃは、キーサロゲーションのためのキーシーケンス（例えば特定のシーケンスに対してシーケンシャルキー値の生成に認められている最小値及び最大値が何なのか）を指定することができる。別の例では、キータイプ及びシーケンス定義２３８ｃは、標的のためのキーがナチュラルキーかサロゲートキーかを指定することができる。キー定義ファイル２３８ｃの一例では、それぞれのキー定義がキータイプを指定可能な名前及びキーソース（キーの発生元）を含み得る。キーソースは、変換データ１１４を準備するとき、元の入力キー値が保たれるのかどうか又は（例えばキーサロゲーションサービスによって）サロゲート値が与えられるのかどうかを示す。キーソースの値は、どのような種類のキーサロゲートが提供されるのかを示すことができる。
【００６７】
スパースロードマップ２３８ｄは、データウェアハウス１０６内に変換データ１１４をロードするための追加の規則及び／又は属性を含む。例えばスパースロードマップ２３８ｄは、フィールドの名前及びそれらのフィールドのそれぞれに関する挙動上の詳細を含む。データウェアハウス１０６の物理的属性を構成するために使用されるファイルの一例では、スパースロード定義が「ロードに関して無視する値」のパラメータ（例えばなし、ｎｕｌｌ、又は空等）及びｎｕｌｌ又は空の処理設定（例えばｎｕｌｌ又は空の値を拒否又は無視するかどうか）を含み得る。
【００６８】
メタデータファイル１１０は、コンフィギュレータ２４４によって検証される。コンフィギュレータ２４４は論理エンジン（例えばデータ処理エンジン）を含む。コンフィギュレータ２４４はメタデータファイル１１０を受信し、受信したメタデータファイル１１０を分析して、アプリケーション１１８をコンパイルするためにメタデータファイル１１０内で指定されているパラメータの値を明らかにするように構成される。例えばコンフィギュレータ２４４は、メタデータファイル内にどのパラメータが含まれているのかを明らかにするために、メタデータファイル内に含まれる.csvファイルのヘッダー行を走査する。一例では、メタデータファイル１１０内で値が割り当てられていないパラメータには（例えば値のライブラリから）デフォルト値が割り当てられる。コンフィギュレータは、データウェアハウス１０６用のメタデータのアーカイブを構築する。
【００６９】
コンフィギュレータ２４４は、次のようにファイル階層２００のメタデータファイル１１０を検証する。コンフィギュレータ２４４は、データウェアハウスの標的位置に関連するレコード形式ファイルを取得する。標的位置とは、データウェアハウスのロード時に書き込まれるデータウェアハウス内の位置である。レコード形式ファイルは標的がどのようにフォーマットされているのかを表す。コンフィギュレータはグローバルファイル（例えばグローバルファイル２１０）をアセンブルする。
【００７０】
コンフィギュレータ２４４は、フィード固有メタデータ２４６ｂを検査する。フィード固有メタデータ２４６ａは、どのフィールドがキーサロゲーションの影響を受けるのか、どのキーシーケンスが所与のフィールドからキーサロゲート値を得るのか等のキーサロゲーション規則を含む。フィード固有メタデータ２４６ａから取得される規則は、実行中に使用するためにＭＤＷランタイムシステム１２４に渡されるが、データウェアハウスの参照完全性を保証するためにこの段階で定められ検証される。例えば、別の既存のレコードが参照されていること（及び誤り又はｎｕｌｌ値が返されないこと）を保証するために変換データ１１４の各キー値が検査される。
【００７１】
コンフィギュレータ２４４はロード固有メタデータ２４６ｂも検査する。ロード固有メタデータ２４６ｂは、データウェアハウス１０６内にデータをロードするための履歴化規則を含むことができる。上記で説明したように、データ履歴に関する個々の規則（例えば日付フィールドをどのようにフォーマットするのか）は、特定のロードごとにデータウェアハウスに特有であり得る。
【００７２】
一態様では、上記で説明したようにフィードによるキー処理を行う実行可能グラフを生成するのではなく、ＭＤＷコンパイラ１０２はキー定義固有メタデータ２４６ｃを使用して１つ又は複数のキールックアップ／サロゲーションブロックを生成するように構成される。別の計算システムによって（例えば参照によりその全体を本明細書に援用する、２０１８年６月４日に出願された米国特許出願第１５／９９７，２７８号の中で記載されているシステムによって）データウェアハウスフィードの１つ又は複数のパラメータを定めるとき、ユーザは例えばデータウェアハウス１０６のためのキー値の処理を指定することができる。データウェアハウス１０６のキー値を処理するためのこの構成、並びにメタデータ２４６ａ、２４６ｂを使用するフィードによるキー値を処理するための論理を図４〜図５に関して記載する。
【００７３】
グラフ生成論理２４８は、キー処理、履歴化、及びソースデータ１１２を変換データ１１４としてデータウェアハウス１０６内にロードすることを実行する実行可能データフローグラフを生成する。グラフ生成論理２４８は、アプリケーション１１８の生成済みのデータフローグラフとは切り離されている。グラフ生成論理２４８は、アプリケーション１１８のデータフローグラフを生成するために構成済みのメタデータ２４６ａ、２４６ｂ、２４６ｃをメタデータアーカイブ２４６から受信する。メタデータがコンフィギュレータ２４４によって検証されると、ＭＤＷコンパイラ１０２はグラフ生成論理２４８を使用してアプリケーション１１８の１つ又は複数の実行可能データフローグラフを生成する。生成されるアプリケーション１１８のデータフローグラフは、必要に応じてメタデータファイル１１０のパラメータを参照することができるアプリケーションファイル２１８内の実行可能コードを含む。メタデータファイル１１０及びグラフファイル２２４の位置は、データフローグラフのそれぞれを生成するためにユーザからの介入なしにＭＤＷコンパイラ１０２がコンパイル中にファイルにアクセスできる位置である。生成されるアプリケーション１１８のデータフローグラフは、キー処理グラフ並びに履歴化及びロードグラフを含み得る。
【００７４】
データフローグラフは、データ処理コンポーネントのグラフィカル表現（例えばノード）を含む。例えば図３を参照し、汎用データフローグラフ３００は、データソース３０２ａ〜３０２ｎ、コンポーネント３０４、及びデータシンク３０６を含む。データソース３０２ａ〜３０２ｎはコンポーネント３０４の入力ポートに接続される。コンポーネント３０４の出力ポートはデータシンク３０６に接続される。データソース、コンポーネント、及びデータシンク間の接続はデータフローグラフによるデータの流れを定める。
【００７５】
データソース３０２ａ〜３０２ｎ、コンポーネント３０４、及びデータシンク３０６のそれぞれは、パラメータセット３０８ａ〜ｎ、３１０、及び３１２にそれぞれ関連する。各パラメータセットは１つ又は複数のパラメータを含む。パラメータ及びそれらの値はデータフローグラフの挙動を定める。例えばパラメータは、物理ディスク上のデータソース又はデータシンクの位置を定めることができる。ソートコンポーネントがコンポーネント内へのデータ入力をどのようにソートするのか等、パラメータはコンポーネントの挙動も定めることができる。一部の例では、パラメータセット内のパラメータの値はデータフローグラフの実行時に投入される。
【００７６】
一部の例では、或るパラメータの値は別のパラメータの値に依存し得る。例えば、データソースは特定のディレクトリの中のファイル内に記憶される場合がある。データソースのパラメータセットは「DIRECTORY」と呼ばれる第１のパラメータと「FILENAME」と呼ばれる第２のパラメータとを含み得る。この例では、FILENAMEパラメータはDIRECTORYパラメータに依存する（例えばDIRECTORYは「/usr/local/」とすることができFILENAMEは「input.dat」とすることができる）。パラメータは他のコンポーネントのパラメータに依存する場合もある。例えばデータフローグラフのためのデータシンクの物理位置は、データフローグラフのためのデータソースの物理位置に依存し得る。例えばデータシンクは、データソースのDIRECTORYパラメータに依存するFILENAMEパラメータを含む１組のパラメータを含み得る（例えばデータシンクのFILENAMEパラメータは「/usr/local/output.dat」とすることができ、「/usr/local/」の値はデータソースのDIRECTORYパラメータから得られる）。
【００７７】
コンポーネント３０４は、サブグラフと呼ぶこともある１つ又は複数の他のデータフローグラフ３２０ａ〜３２０ｎを参照するグラフインタフェースコンポーネントであり得る。実行時に、データフローグラフ３００がコンポーネント３０４によって参照されるサブグラフを動的にロードし実行し、例えばサブグラフ３２０ａ〜３２０ｎによって提供される様々な機能にデータフローグラフ３００が柔軟にアクセスすることを可能にする。コンポーネント３０４の１つ又は複数のパラメータが、コンポーネント３０４によって参照される特定のサブグラフ３２０ａ〜３２０ｎを定める。各サブグラフ３２０ａ〜３２０ｎは、そのそれぞれが対応するサブグラフの挙動を定める１つ又は複数のパラメータを含むパラメータセット３２２ａ〜３２２ｎにも関連する。
【００７８】
データフローグラフの構成は本質的に極めて専門的である。特定のビジネスの目的を実現するためにも書かれているが、グラフの基礎を成す構造及び構成は技術的考察に基づいて決定される。例えばグラフコンポーネントは再利用可能性を最大化するように、又は並列処理をサポートするように選択され得る。他方で、グラフが何処で使用されるのかは一般にビジネス決定であり得る。パラメータ化されたデータフローグラフに関連するパラメータの一部は、データフローグラフの実装の背後にある技術的な複雑さをユーザが理解することを必要とせずに、ビジネスユーザがデータフローグラフをカスタマイズできるようにするために使用することができる。パラメータ化されたデータフローグラフはカスタマイズを単純化し、再利用を容易にする。
【００７９】
データフローグラフを構築するためにパラメータ値を識別するためのインタフェースをクライアントマシン上に提示することができる。一部の実装形態では、パラメータインタフェースを提供するクライアント上のウェブブラウザを使用して、及びクライアント側処理の幾らかの能力を与えるスクリプト言語を使用して、サーバ上で実行される開発環境にクライアントがアクセスし得る。スクリプト言語はサーバと通信してパラメータを更新し、他の必要な操作を実行することができる。この通信は、クライアントと構築されているグラフのためのオブジェクト及び関連するパラメータ値を記憶する開発環境を実行するサーバとの間の通信を変換するブリッジマシンによって行われ得る。このインタフェースは、データフローグラフ及びデータフローグラフの構成に関係する技術的知識をユーザが欠いても、パラメータ化されたデータフローグラフのパラメータをユーザが構成することを可能にする。
【００８０】
クライアント装置１０８上に提示される構成インタフェースは、ユーザがグラフ構成モジュール（不図示）にアクセスすることを可能にする。構成インタフェースにより、ユーザはデータフローグラフの構成に関する技術的知識を必要とせずにデータソース、データシンク、及びデータフローグラフによって行われる変換の特性を指定することができる。ユーザが指定した特性に基づいてパラメータセット３０８ａ〜ｎ、３１０、３１２、３２２ａ〜３２２ｎにパラメータ値を割り当て、それによりユーザが指定した特性に従ってデータフローグラフの挙動を定めることができる。
【００８１】
構成インタフェース内で、パラメータセット３０８ａ〜ｎ、３１０、及び３１２のパラメータをユーザと対話するための、例えば技術的考察ではなくビジネスの考察を反映するグループへと組み合わせ再編成することができる。ユーザ入力に基づいてパラメータの値を受け付けるための構成インタフェースは、サーバ上の開発環境の側面によって必ずしも制限されない柔軟なやり方で様々なパラメータをパラメータ間の関係に応じて表示することができる。構成インタフェースの一例が、参照によりその全内容を本明細書に援用する米国特許出願公開第２０１１／０１４５７４８号の中で記載されている。
【００８２】
ＭＤＷコンパイラ１０２は、（例えば図３のパラメータセット３０８ａ〜ｎ、３１０、及び３１２を形成する）パラメータを有するデータフローグラフを含むアプリケーション１１８をコンパイルし、パラメータはメタデータファイル１１０によって指定される。生成されるグラフの例を以下に記載する。
【００８３】
ＭＤＷコンパイラ１０２がコンパイルするデータフローグラフは、ソースデータ１１２を変換データ１１４へと変換するように構成される。例えばデータフローグラフは、フィールド名、インデックス値等を指定するメタデータファイル１１０のパラメータを使用してＭＤＷコンパイラ１０２によって生成されているＳＱＬ照会を実行するように構成され得る。インスタンス化されるデータフローグラフの多くの異なる構成が生成され得る。一部の実装形態では、ＭＤＷコンパイラ１０２が実行時にメタデータファイル１１０を検査して、完璧である（例えばＭＤＷコンパイラ１０２がメタデータファイルからグラフをコンパイルすることができる）ものとしてメタデータファイルを検証する。
【００８４】
ＭＤＷランタイムシステム１２４によってランタイム環境１２０内でソースデータ１１２を変換データ１１４へと変換するためのデータフローグラフの例を図４〜図５に示す。図４は、ＭＤＷランタイムシステム１２４の一例を示す。図５は、ランタイム環境１２０の脈絡でのキー処理を示す。ＭＤＷランタイムシステム１２４は、図５のグラフ４０４〜４１４の論理を実行し、さもなければデータウェアハウス１０６内に記憶するためにソースデータ１１２を準備する複数の論理モジュール５０２、５０４、及び５０６を含む。一部の実装形態では、論理モジュール５０２、５０４、及び５０６のそれぞれが、クライアント装置１０８において受け付けられるメタデータファイル１１０及び規則セットマッピング１２６に基づいてデータフローグラフからコンパイルされる実行可能コードを実行するように構成される１つ又は複数のデータフローグラフを含む。例えば図５に関して記載するブロック４０６並びにグラフ４０８及び４１０の論理は、ネットワーク化されたソース１０４ａ〜１０４ｃから受信されるときソースデータ１１２に作用するように構成される。ＭＤＷランタイムシステム１２４の論理モジュールは、キーサロゲーション論理及びデータ履歴化論理を実行することができる。
【００８５】
キーサロゲーション論理モジュール５０２は、図１Ａ〜図１Ｂ及び図５に関して記載したサロゲートキーを生成するためのキーサービスを含む。一部の実装形態では、キーサロゲーション論理モジュール５０２が図５のキーサロゲーションブロック４０６を含む。先に記載したようにデータ規則によって指定される場合、ソースデータ１１２の一部である各ソースデータキー５１０ａ、５１２ａは個々のキーサロゲート５１０ｂ、５１２ｂへと変換することができる。キーサロゲート５１０ｂ、５１２ｂは、変換データ１１４の変換済みのデータエントリにそれぞれ割り当てられる。キーサロゲーション論理モジュール５０２は、変換データ１１４のためにどのサロゲートキー５１０ｂ、５１２ｂを生成すべきかを決定するためにメタデータアーカイブ２４６から構成済みのメタデータ及び規則セットマッピングを受信する。一部の実装形態では、キーサロゲーション論理モジュール５０２はキーシーケンスごとの専用プロセス、及びデータウェアハウス１０６のための各キーサービスへの専用の呼び出しを含む。例えばプロセスごとに別個のグラフを使用することができる。図示の例では、ソースレコード５１８に関して「０００１」の値を有するソースキー５１２ａが変換データ５２０のレコードのための標的キー５１２ｂへと変換されている。標的キー５１２ｂは「０１１０１０００１」の値を有し、データウェアハウス１０６の要件に準拠するサロゲートキーを表す。図５に関して説明するように参照完全性の強制も実行される。
【００８６】
図１Ａ〜図１Ｂ及び図５に関して上記で説明したように、データ履歴化及びロード論理モジュール５０６はソースデータ１１２に作用してデータレコードごとの適切なデータ履歴を生成する。例えばデータ履歴化及びロード論理モジュール５０６は、図５のデータ履歴化及びローダグラフ４１０を含むことができる。
【００８７】
キー処理論理モジュール５０４は、ソースデータ１１２内のキーフィールドデータを標的データ１１４内のキーフィールドデータに変換するための処理論理を実行する。一部の実装形態では、キー処理論理モジュール５０４が図５のキー処理フィードグラフ４０８を含む。例えばソースデータレコード５１８は、レコードの更新時にレコード内にタイムスタンプを含めるデータ履歴化スキームを有する。タイムスタンプ５１６ａの値は「００：０１」である。ソースデータレコード５１８のこのタイムスタンプ５１６ａは、タイムスタンプ値に関して更なる精度を要求するデータウェアハウス１０６の履歴化スキームに適合するように変換される。タイムスタンプ５１６ａの「００：０１」の値は、レコード５２０が生成された及び／又はデータウェアハウス１０６内にロードされた時間を反映し得る「２０１８：１２５：００：０１」に変換される。
【００８８】
図５は、ランタイム環境１２０の脈絡でのキー処理を示す。ＭＤＷコンパイラ１０２によって自動生成されるアプリケーションのデータフローグラフを図５に示す。キー処理論理は、キーサロゲーションサービスにアクセスする別の計算システムが使用するために設けられる、生成される独立型のキー処理フィードグラフ４０８内に或いは生成されるキールックアップブロック４０６内にＭＤＷコンパイラ１０２によってカプセル化され得る。
【００８９】
一態様では、ＭＤＷランタイムシステム１２４が（例えばインタフェース４０４において）データを取得すると、ＭＤＷランタイムシステム１２４は先に説明したようにソースデータ１１２に対して操作を実行してソースデータを変換データ１１４へと変換することができる。操作は、キー処理、データ履歴化、及び標的（例えばデータウェアハウス１０６）内へのデータロードを含む。
【００９０】
キー処理に関して、ＭＤＷランタイムシステム１２４は１つ又は複数のキーサロゲーションサービスに概して要求を送信する。キーサロゲーションブロックの各モジュールは、特定の仕様に従ってキー処理を行うように構成される。例えば標的４０２が第１の形式のキー値で構成される場合、ソースデータ１１２のキーを検査し、サロゲートキーを必要に応じて生成するために、モジュールの第１のモジュールがＭＤＷランタイムシステム１２４によって呼び出され得る。標的４０２が第２の形式のキー値で構成される場合、キー処理を行うためにモジュールの第２の異なるモジュールがＭＤＷランタイムシステム１２４によって呼び出され得る。
【００９１】
一態様では、ＭＤＷコンパイラ１０２がキー処理フィードグラフ４０８内のキー処理機能を実行するように構成される。別の計算システムによって使用されるブロックによってサービスを呼び出すのではなく、ＭＤＷランタイムシステム１２４は独立型の実行ファイルによってキーサービスを直接呼び出す。
【００９２】
一部の実装形態では、キー処理フィードグラフ４０８又はキーサロゲーションブロック４０６がキーサロゲートを生成する必要はなく、標的データウェアハウス１０６内のソースキー値の参照完全性だけを検査する。この例では、キーサロゲートを生成するのではなく、キーサロゲーションブロック４０６又はキー処理フィードグラフ４０８はキー値を変更することなしにキー値の参照完全性を検証し強制する。参照完全性の検査は、問題になっているキー値が標的データウェアハウス１０６に既に知られている有効値であることの確認である。
【００９３】
参照完全性の検査を行う際、キー処理フィードグラフ４０８は未知のキー値を処理するために１つ又は複数の強制メカニズムを使用することができる。キー処理フィードグラフ４０８は、キー及び／又はキーに関連するデータレコードを拒否するように構成することができる。キー処理フィードグラフ４０８は構成可能なフラグキー値でキーを置換することができ、構成可能なフラグキー値は、フラグキー値に関連するデータレコードに作用する１つ又は複数のシステムにデータレコードを特定のやり方で処理すべきだという信号を与える。例えばフラグキー値は、キー値を後で別のキー値で置換すべきだと示すことができる。例えばフラグキー値は、フラグキー値を含むデータレコード内の関連データが無効だと示すことができる。他のかかる情報はフラグキーによって示すことができる。キー処理フィードグラフ４０８は、データウェアハウス１０６のためのプレースホルダレコード（例えば１つ又は複数のプレースホルダデータエントリ）を構築することができる。プレースホルダデータエントリは、データレコードのキー値に関して更に多くの情報が受信される場合は後で更新することができる。キーサロゲーションブロック４０６は、参照完全性の違反を含むかどうか（即ち標的データウェアハウス１０６に知られているかどうか）を示す状態フラグをそれぞれの入力キー値に追加し、そのことはキーサロゲーションブロック４０６が使用される他のソース取得計算システムによってサポートされる強制メカニズムを知らせることができる。
【００９４】
一態様では、データ要素のキーサロゲートがデータウェアハウス１０６のデータ規則に準拠することをソースデータ１１２のデータ要素のキー値が要求し得る。キーサロゲーションブロック４０６又はキー処理フィードグラフ４０８は、ソースデータ１１２のデータレコードごとのキー値を決定するために以下の操作を行う。ソースデータ１１２内のキーの値がデータウェアハウス１０６のキースキームに準拠しない場合、キーサロゲーションブロック４０６又はキー処理フィードグラフ４０８はキーサロゲートを生成するように構成される。キーサロゲートは、個々のネットワーク化されたデータソース１０４ａ〜ｃで使用されるキーを置換する置換キーである。キーサロゲートは、データウェアハウス１０６内の各レコードがデータウェアハウス１０６内の残りのデータに対して一意のキー値及び／又は一貫したキー値を有することを確実にするために使用される。これらのネットワーク化されたデータソース１０４のそれぞれで使用されるインデキシングシステムは、データウェアハウス１０６のための単一の統一インデックスで置換される。例えばネットワーク化されたデータソース１０４ａのキーは整数値を含み得るのに対し、ネットワーク化されたデータソース１０４ｃのキーは文字数字の列を含む。キーサロゲーションブロック４０６又はキー処理フィードグラフ４０８は、それぞれのネットワーク化されたデータソース１０４ａ〜ｃからのソースデータ１１２についてデータウェアハウス１０６内でキー値が何であるべきなのかを決定するためにキーの全数調査及びルックアップ機能を実行する。例えばキー処理フィードグラフ４０８は、ネットワーク化されたデータソース１０４ｃのデータレコードについてキー値を識別する。キーサロゲーションブロック４０６又はキー処理フィードグラフ４０８は、キーの全数調査機能によって識別されたキーが既にサロゲートされているかどうかを判定するためにＭＤＷランタイムシステム１２４にキーサービスへの要求を送信させる。識別されたキーがデータウェアハウス１０６内のキーサロゲートを有さず、新たなサロゲートをこの脈絡で生成することが許可されていることを構成済みの規則が指定する場合、キーサロゲーションサービスは新たなキー値が識別済みのキーのサロゲートキーだと決定する。キーサロゲーションブロック４０６又はキー処理フィードグラフ４０８は、データウェアハウス１０６内にデータがロードされる前にデータエントリにサロゲートキーを適用する。一部の実装形態ではキーサロゲートが一括で計算される。一部の実装形態では、ソースデータ１１２のキーシーケンスごとに専用グラフが生成される。キーコレクションは、構成されるキーシーケンスに属するキー値をサロゲートするためにソース内で使用されるキー値のマップで構成される。
【００９５】
生成されるデータ履歴化及びローダグラフ４１０は、データウェアハウス１０６の要求に応じてソースデータ１１２内に記載されているエンティティごとにデータ履歴を計算し、データウェアハウス１０６内にロードするためのデータを準備する。ソースデータ１１２内に記載されているエンティティごとのデータ履歴の変更は変換データ１１４内に含められる。例えばデータ履歴化及びローダグラフ４１０はデータフローグラフを含むことができる。データ履歴化及びローダグラフ４１０は、変換データ１１４内のレコードごとのタイムスタンプ、データレコードの更新済みの日付範囲等を生成し、データウェアハウス内に記憶されるデータ履歴を必要に応じて更新するように構成することができる。一部の実装形態では、データウェアハウス１０６内の記憶データを置換するより新しいデータレコードがデータソース１０４から受信された場合、データ履歴化及びローダグラフ４１０はその記憶データに期限切れのフラグを立てることができる。データソース１０４からソースデータ１１２が受信される場合、データの履歴化及びキーサロゲーションの両方が実行時に行われる。
【００９６】
データ履歴化及びローダグラフ４１０は、変換データ１１４としてデータウェアハウス１０６内にロードするためのソースデータ１１２を準備するように構成される。データ履歴化及びローダグラフ４１０は、様々な履歴範囲のロードをサポートする。データ履歴化及びローダグラフ４１０は、遅れて到着するデータロード及び誤り訂正ロードに対して確立済みの履歴を正しく調整する。
【００９７】
図６は、データウェアハウス（例えば図１Ｂのデータウェアハウス１０６）用の例示的変換データ６１０をソースデータから生成するためのランタイム環境６２０の一例を示す。ソースデータ６０８及び変換データ６１０は、データエントリ６１６並びにキー値フィールド６１８、データフィールド６１２、及びデータ履歴フィールド６１４を含むフィールドの一例を含む。
【００９８】
ＭＤＷランタイムシステム１２４はソースデータ６０８を受信する。この例では、ソースデータ６０８の各データレコード（例えばレコード６１６ａ）が、インデックス６１８ａ、データ６１２ａ、及びタイムスタンプ６１４ａという３つのフィールドを含む。ソースデータ６０８は、ＭＤＷランタイムシステム１２４の論理モジュール５０２、５０４、及び５０８内で変換される。この例では、ソースデータ６０８の各データレコードに対して、データウェアハウス１０６の標準に準拠する新たなキーが割り当てられる。この例では新たなキーが割り当てられるが、これは必ず必要とは限らない。一部の実装形態では、レコードの一部又は全てについてキー値が不変のままでもよい。データウェアハウス１０６内に記憶するために変換データ６１０が準備される。変換データ６１０の各レコード（例えばレコード６１６ｂ）は、ソースデータ６０８のフィールド６１８ａ、６１２ａ、及び６１４ａにそれぞれ対応するキーフィールド６１８ｂ、データ６１２ｂ、及びタイムスタンプ６１４ｂを含む３つのフィールドを含む。ソースデータ６０８のレコード６１６ａは、変換データ６１０のレコード６１６ｂに対応する。ソースデータ６０８のレコード６１６ａのインデックスは、例えばソースデータを記憶するオペレーショナルデータベースの最初のレコードであった「０００１」である。変換データ６１０のレコード６１６ｂのインデックスは、データウェアハウス１０６のためのインデキシングスキームに対応する「０１１０１０００１」である。「alpha」であるレコード６１６ａのデータはレコード６１６ｂ内で不変のままである。レコード６１６ａのタイムスタンプは、レコード６１６ａのデータが最後に更新された時間を表し得る「００：０１」である。変換データ６１０のレコード６１６ｂは、データウェアハウス１０６について指定された形式の変換タイムスタンプを表す「２０１８：１２５：００：０１」の変換タイムスタンプを有する。ソースデータ６０８に対するデータレコード６１６ａを変換データ６１０のデータレコード６１６ｂに変換することは一例だが、先の及び以下の説明に従って他の数多くの変換が可能である。
【００９９】
図７は、メタデータ駆動ウェアハウスアプリケーション用のデータフローグラフをコンパイルするためのアクションの流れ図を含む。計算システム（例えば図１ＡのＭＤＷコンパイラ１０２）が、データを構造化データベースへと構造化するための１つ又は複数のパラメータのそれぞれについて値を指定する少なくとも１つのメタデータファイルを受信する（７０２）。このパラメータは、データ品質、データ完全性、データレポート、キーサロゲーション、データ履歴等に関するパラメータを含み得る。ＭＤＷコンパイラ１０２は受信したメタデータファイル１１０を（例えば図２Ｂのコンフィギュレータ２４４によって）分析して、データフローグラフをコンパイルするためにメタデータファイル１１０内で指定されているパラメータの値を明らかにする。ＭＤＷコンパイラ１０２は、パラメータの値及び複数のデータフィードを変換するための論理規則が複数のメタデータの各データフィードについて論理的に不整合でないことを検証する（７０４）。ロード／フィードが論理的に不整合でないように、検証は全てのロード／フィードが完璧に定められていること及びグローバルファイルが各ロード又はフィードと合致することを判定することによって行われる。これを行うために、一態様では、ＭＤＷコンパイラ１０２がフィード固有メタデータ及びロード固有メタデータについてメタデータアーカイブを検査する。ＭＤＷコンパイラ１０２はフィード固有メタデータを検査し、フィード固有メタデータは、キーサロゲーションの影響を受けるフィールド、それらのフィールドがキーサロゲート値を得るキーシーケンス等、各キーが有効でありデータウェアハウス内で有意味の値を有することを確実にするために実行時に使用されるキーサロゲーション規則を含み得る。一態様では、ＭＤＷコンパイラ１０２が、データウェアハウス内にデータをロードするための履歴化規則を含み得るロード固有メタデータを検査する。ＭＤＷコンパイラ１０２は、ランタイム環境（例えば図１Ｂのランタイム環境１２０）のための少なくとも１つのデータフローグラフを生成する（７０６）。データフローグラフは、キーサロゲーション、履歴化、データ品質、及びデータロード操作を実行時に行うように構成され得る。各データフローグラフは、１つ又は複数のデータソースからソースデータ（例えば図１Ｂのソースデータ１１２）を受信し、メタデータのパラメータによって定められる構造化データレコードのための１つ又は複数の標準を満たす構造化データへとソースデータを変換するように構成される。
【０１００】
メタデータ駆動ウェアハウスアプリケーションのデータフローグラフによる、データウェアハウスに対するデータの実行時の変換及びロードのためのアクションの流れ図である図８に移る。ソースデータ（例えばソースデータ１１２）がランタイムシステム（例えば図１ＢのＭＤＷランタイムシステム１２４）によって受信されると、ＭＤＷランタイムシステム１２４のデータフローグラフがソースデータを処理する。各レコードについて、ＭＤＷランタイムシステム１２４のデータフローグラフがソースデータを処理して、データ規則によって定められる構造化データのための１つ又は複数の標準を満たす変換データ（例えば図１Ｂの変換データ１１４）へとそのデータを変換する（８０２）。ＭＤＷランタイムシステム１２４は、更に多くのソースデータがあるかどうかを判定する（８０４）。更に多くのソースデータがある場合はデータフローグラフがソースデータを更に処理し、データ規則の構造化データのための１つ又は複数の標準を満たす変換データへとそのデータを変換する。ＭＤＷランタイムシステム１２４は、追加のソースデータ１１２を処理することと並行して変換データ１１２を処理することができる。ＭＤＷランタイムシステム１２４は、変換データ１１４を直ちにロードすることが望ましいか、又は変換データを後でロードすることが好ましいかを判定する（８０６）。データウェアハウス１０６が新たなデータを受け付ける準備が整っていない場合、変換データを後でロードすることが好ましい場合がある。例えば別のシステムがデータウェアハウス１０６からデータを読み出している可能性がある。直ちにロードすることが望ましい場合、ＭＤＷランタイムシステム１２４は変換データをデータウェアハウス（例えば図１Ｂのデータウェアハウス１０６）内に記憶する（８１０）。後でロードすることが好ましい場合、ＭＤＷランタイムシステム１２４は後でロードするためにソースデータ１１２をステージする（８１２）。
【０１０１】
ＭＤＷランタイムシステム１２４が後でロードするためにソースデータ１１２をステージする場合、キー処理は引き続き実行時に行われる。その理由は、（先に記載したように）キーサービスが呼び出されると、他のロードに更なるキー値を割り当てるときキーサービスがステージされたデータの責任を負うからである。
【０１０２】
上記で説明したグラフ構成手法はコンピュータ上で実行するためのソフトウェアを使用して実装することができる。例えばソフトウェアは、（分散、クライアント／サーバ、又はグリッド等の様々なアーキテクチャのものとすることができる）１つ又は複数のプログラムされた又はプログラム可能なコンピュータシステム上で実行される１つ又は複数のコンピュータプログラム内の手続きを形成し、かかるコンピュータシステムは、少なくとも１つのプロセッサ、少なくとも１つのデータ記憶システム（揮発性及び不揮発性のメモリ及び／又は記憶素子を含む）、少なくとも１つの入力装置又はポート、及び少なくとも１つの出力装置又はポートをそれぞれ含む。ソフトウェアは、例えば計算グラフの設計及び構成に関係する他のサービスを提供するより大きいプログラムの１つ又は複数のモジュールを形成し得る。グラフのノード及び要素は、コンピュータ可読媒体内に記憶されるデータ構造又はデータリポジトリ内に記憶されるデータモデルに準拠する他の編成済みデータとして実装することができる。
【０１０３】
上記の技法はコンピュータ上で実行するためのソフトウェアを使用して実装することができる。例えばソフトウェアは、（分散、クライアント／サーバ、グリッド等の様々なアーキテクチャのものとすることができる）１つ又は複数のプログラムされた又はプログラム可能なコンピュータシステム上で実行される１つ又は複数のコンピュータプログラムによって手続きを形成し、かかるコンピュータシステムは、少なくとも１つのプロセッサ、少なくとも１つのデータ記憶システム（揮発性及び不揮発性のメモリ及び／又は記憶素子を含む）、少なくとも１つの入力装置又はポート、及び少なくとも１つの出力装置又はポートをそれぞれ含む。ソフトウェアは、例えばチャート及びフローチャートの設計及び構成に関係する他のサービスを提供するより大きいプログラムの１つ又は複数のモジュールを形成し得る。チャートのノード、リンク、及び要素は、コンピュータ可読媒体内に記憶されるデータ構造又はデータリポジトリ内に記憶されるデータモデルに準拠する他の編成済みデータとして実装することができる。
【０１０４】
本明細書に記載した技法はデジタル電子回路、又はコンピュータハードウェア、ファームウェア、ソフトウェア、若しくはその組合せによって実装することができる。機器はプログラム可能なプロセッサによって実行するために機械可読記憶装置（例えば、非一時的機械可読記憶装置、機械可読ハードウェア記憶装置等）の中に有形に具体化され又は記憶されるコンピュータプログラム製品によって実装することができ、方法のアクションは、入力データに作用して出力を生成することによって機能を実行するために命令のプログラムを実行するプログラム可能なプロセッサによって実行され得る。本明細書に記載した実施形態及び特許請求の範囲に記載の他の実施形態並びに本明細書に記載した技法は、データ及び命令をデータ記憶システムとの間でやり取りするために結合される少なくとも１つのプログラム可能なプロセッサと、少なくとも１つの入力装置と、少なくとも１つの出力装置とを含むプログラム可能なシステム上で実行可能な１つ又は複数のコンピュータプログラムによって有利に実装することができる。各コンピュータプログラムは高水準手続き型プログラミング言語若しくはオブジェクト指向プログラミング言語、又は所望の場合はアセンブリ言語若しくは機械言語によって実装することができ、何れにしても言語はコンパイラ型言語又はインタープリタ型言語とすることができる。
【０１０５】
コンピュータプログラムを実行するのに適したプロセッサは、汎用マイクロプロセッサ及び専用マイクロプロセッサの両方、並びに任意の種類のデジタルコンピュータの１つ又は複数の任意のプロセッサを例として含む。概して、プロセッサは読取専用メモリ若しくはランダムアクセスメモリ又はその両方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサ並びに命令及びデータを記憶するための１つ又は複数のメモリ装置である。概してコンピュータはデータを記憶するための１つ又は複数の大容量記憶装置、例えば磁気ディスク、光磁気ディスク、光ディスクも含み、又はそこからデータを受信するために、そこにデータを転送するために、若しくはその両方を行うためにそれらに動作可能に結合される。コンピュータプログラム命令及びデータを具体化するためのコンピュータ可読媒体は、半導体メモリ装置、例えばＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ装置、磁気ディスク、例えば内蔵ハードディスクやリムーバブルディスク、光磁気ディスク、及びＣＤ  ＲＯＭディスクやＤＶＤ−ＲＯＭディスクを例として含むあらゆる形式の不揮発性メモリを含む。プロセッサ及びメモリは専用論理回路によって補うことができ又は専用論理回路に組み込むことができる。上記のものの何れもＡＳＩＣ（特定用途向け集積回路）によって補うことができ又はＡＳＩＣに組み込むことができる。
【０１０６】
利用者との対話を可能にするために、利用者に情報を表示するためのディスプレイ装置、例えばＬＣＤ（液晶ディスプレイ）モニタ、並びに利用者がそれによりコンピュータに入力を与えることができるキーボード及びポインティング装置、例えばマウスやトラックボールを有するコンピュータ上で実施形態を実装することができる。利用者との対話を可能にするために他の種類の装置も使用することができ、例えば利用者に与えられるフィードバックは任意の形式の感覚フィードバック、例えば視覚フィードバック、聴覚フィードバック、触覚フィードバックとすることができ、利用者からの入力は音響入力、音声入力、又は触覚入力を含む任意の形式で受信することができる。
【０１０７】
実施形態は、例えばデータサーバとしてバックエンドコンポーネントを含む計算システムによって、ミドルウェアコンポーネント、例えばアプリケーションサーバを含む計算システムによって、フロントエンドコンポーネント、例えば利用者がそれにより実施形態の実装と対話することができるグラフィカルユーザインタフェースやウェブブラウザを有するクライアントコンピュータを含む計算システムによって、又はかかるバックエンドコンポーネント、ミドルウェアコンポーネント、若しくはフロントエンドコンポーネントの任意の組合せを含む計算システムによって実装することができる。システムのコンポーネントは、デジタルデータ通信の任意の形式又は媒体、例えば通信ネットワークによって相互接続され得る。通信ネットワークの例はローカルエリアネットワーク（ＬＡＮ）及び広域ネットワーク（ＷＡＮ）、例えばインターネットを含む。
【０１０８】
システム及び方法又はその一部は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）を利用するインターネット上のサーバの集合である「ワールドワイドウェブ」（ウェブ又はＷＷＷ）を使用し得る。ＨＴＴＰは、テキスト、グラフィックス、画像、音声、ビデオ、ハイパーテキストマーク付け言語（ＨＴＭＬ）、プログラム等の様々な形式の情報であり得る資源へのアクセスを利用者に提供する既知のアプリケーションプロトコルである。利用者によってリンクが指定されると、クライアントコンピュータがウェブサーバにＴＣＰ／ＩＰリクエストを行い、ＨＴＭＬに従ってフォーマットされた別のウェブページであり得る情報を受信する。利用者は画面上の指示に従うことによって、特定のデータを入力することによって、又は選択されたアイコンをクリックすることによって同じサーバ又は他のサーバ上の他のページにアクセスすることもできる。所与のコンポーネントに関する選択肢を利用者が選択できるようにするために、ウェブページを使用する実施形態にはチェックボックスやドロップダウンボックス等、当業者に知られている任意の種類の選択デバイスを使用できることにも留意すべきである。UNIXマシンを含めサーバは様々なプラットフォーム上で実行されるが、Windows 2000/2003、Windows NT、Sun、Linux、Macintosh等の他のプラットフォームも使用され得る。コンピュータの利用者はFirefox、Netscape Navigator、Microsoft Internet Explorer、Mosaicブラウザ等のブラウジングソフトウェアを使用することによってウェブ上のサーバ又はネットワーク上で入手可能な情報を閲覧することができる。計算システムはクライアント及びサーバを含み得る。クライアントとサーバとは概して互いに離れており、典型的には通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され互いにクライアント−サーバ間の関係を有するコンピュータプログラムによって生じる。
【０１０９】
他の実施形態も本明細書及び特許請求の範囲の範囲及び趣旨に含まれる。例えばソフトウェアの性質により、上記の機能はソフトウェア、ハードウェア、ファームウェア、ハードワイヤリング、又はそれらのものの何れかの組合せを使用して実装することができる。機能の一部が様々な物理的位置に実装されるように、機能を実装する特徴は分散させることを含め様々な位置に物理的に配置することもできる。本明細書及び本願の全体を通して「１つの（a）」という語を使用することは限定的な意味で使用するのではなく、従って「１つの（a）」という語について複数の意味又は「１つ又は複数」の意味を排除することは意図しない。加えて、仮特許出願に対して優先権が主張される限りにおいて、仮特許出願は限定的ではなく本明細書に記載した技法をどのように実装し得るのかについての例を含むことを理解すべきである。
【０１１０】
本発明の幾つかの実施形態を説明してきた。それでもなお、特許請求の範囲及び本明細書に記載した技法の趣旨及び範囲から逸脱することなしに様々な修正を加えることができることを当業者なら理解されよう。
【図１Ａ】
2021530766.tif 000003
【図１Ｂ】
2021530766.tif 000004
【図２Ａ】
2021530766.tif 000005
【図２Ｂ】
2021530766.tif 000006
【図３】
2021530766.tif 000007
【図４】
2021530766.tif 000008
【図５】
2021530766.tif 000009
【図６】
2021530766.tif 000010
【図７】
2021530766.tif 000011
【図８】
2021530766.tif 000012
【国際調査報告】
2021530766.tif 000013
2021530766.tif 000014
2021530766.tif 000015