JP2021530766A - データウェアハウスへの発行 - Google Patents

データウェアハウスへの発行 Download PDF

Info

Publication number
JP2021530766A
JP2021530766A JP2020572555A JP2020572555A JP2021530766A JP 2021530766 A JP2021530766 A JP 2021530766A JP 2020572555 A JP2020572555 A JP 2020572555A JP 2020572555 A JP2020572555 A JP 2020572555A JP 2021530766 A JP2021530766 A JP 2021530766A
Authority
JP
Japan
Prior art keywords
data
parameters
rules
structured
key
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
JP2020572555A
Other languages
English (en)
Other versions
JP7464543B2 (ja
Inventor
ブロム,アンドリュー
ミラー,ダレン
エー. イスマン,マーシャル
Original Assignee
アビニシオ テクノロジー エルエルシー
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 アビニシオ テクノロジー エルエルシー filed Critical アビニシオ テクノロジー エルエルシー
Publication of JP2021530766A publication Critical patent/JP2021530766A/ja
Application granted granted Critical
Publication of JP7464543B2 publication Critical patent/JP7464543B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • 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/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

データを変換し、構造化データセット内にロードするための実行可能アプリケーションを生成するための方法は、ネットワーク化されたデータソースから受信されるデータフィードを構造化データベースへと構造化するためのパラメータの値を指定するメタデータファイルを受信することを含む。メタデータファイルはデータフィードを変換するための論理規則を指定する。各データフィードの論理的整合性を保証するために、パラメータの値及び複数のデータフィードを変換するための論理規則を検証する。検証したパラメータの値及び論理規則に従って各データフィードを変換するための標準を指定するデータ規則を生成する。1つ又は複数のデータソースからデータフィードを含むソースデータを受信し、データ規則に準拠する構造化データレコードのための1つ又は複数の標準を満たす構造化データへとソースデータを変換するように構成される実行可能アプリケーションを生成する。

Description

優先権の主張
本願は、参照によりその全内容が本明細書に援用される2018年7月19日に出願された米国特許出願第62/700,684号に対する優先権を米国特許法第119条(e)の下で主張する。
技術分野
本願は、データを変換し、データウェアハウス内にロードするためのソフトウェアを生成し、更新し、維持するためのシステム及び方法を記載する。
背景
データウェアハウスは、典型的には幾つかの異種のソースからのデータを格納するためのシステムを含む。例えばデータウェアハウスは複数のソースから受信されるデータを記憶することができ、ソースの一部は他のソースと異なる種類のものであり得る。
概要
データウェアハウス内に記憶される前に、データはデータウェアハウスの標準に準拠するように前処理される。データはそのレコードを識別するキー値を有することができ、それらは参照完全性に関して検査することができ、又は標的データウェアハウス内の参照系の中で不整合でないサロゲートキー値と置換することができる。データは、従来の履歴化スキームに従ってデータの変更履歴を表すために変換することができる。データは、そのロードの時間、修正の時間、又は現在の状態等の属性に関係する追加情報で装飾することができる。データは、情報を更新する、欠損した情報を補う、及び誤りを訂正するためにデータウェアハウス内の既存のレコードとマージすることができる。データは標的テーブル及び補助の履歴テーブルにロードすることができる。これらの前処理タスクを達成するためのコードが、論理規則及びパラメータの値を指定するメタデータファイルを受信するコンパイラによって生成され、更新され、維持され、かかる規則及びパラメータは標的データウェアハウスによって与えられ、入力データを変換するために実行時に実行すべきアクションを指定し、その結果、例えば記憶先のウェアハウス内で構造化データがデータの完全性及び/又は読み出しの最適化を維持するやり方でこのデータは構造化される。
一態様では、1つ又は複数のネットワーク化されたデータソースからのデータを記憶するためにデータを変換し、構造化データセット内にロードするためのアプリケーションを自動生成するためのプロセスを記載する。このプロセスは、パラメータの値及びデータフィードを変換するための論理規則を指定する少なくとも1つのメタデータファイルを受信することであって、各データフィードはネットワーク化されたデータソースから受信される、受信すること及び構造化データセット内に結果をロードすることを含む。このプロセスは、パラメータの値及び複数のデータフィードを変換するための論理規則が各データフィードについて不整合でないことを検証すること、パラメータの検証済みの値及びデータフィードの各データフィードを構造化データレコードへと変換するための検証済みの論理規則に従って1つ又は複数の標準を指定するデータ規則を生成することを含む。このプロセスは、ランタイム環境のための少なくともデータ処理アプリケーションを生成することを含む。生成されるデータ処理アプリケーションは、1つ又は複数のデータソースからデータフィードを含むソースデータを受信し、生成したデータ規則に準拠する構造化データレコードのための1つ又は複数の標準を満たす構造化データへとソースデータを変換するように構成することができる。
一部の実装形態では、データ処理アプリケーションがデータフローグラフ、データフローサブグラフ、又は複数のデータフローグラフを含む。一部の実装形態では、構造化データセットがデータベースを含む。
概して、ソースデータはデータレコードを含み、メタデータファイルのパラメータはソースデータのデータレコードに関するキー値を表すデータレコードのフィールドを指定する。一部の実装形態では、メタデータファイルのパラメータが、ソースデータのキー値を表すフィールドと構造化データレコードの別のキー値を表す構造化データレコードの別のフィールドとの間のマッピングを指定する。メタデータファイルのパラメータはキー値の形式を指定し、パラメータによって指定された形式を有するようにキー値は変換される。
一部の実装形態では、このプロセスはデータ記憶域からパラメータのデフォルト値を取得すること、及びパラメータのデフォルト値に基づいてデータ規則を定めることを含む。概して論理規則は構造化データレコードのフィールドに関する形式を指定し、フィールドはデータ履歴値を含む。一態様では、データ履歴値はデータ履歴値を含む構造化データレコードが更新されたときを示すタイムスタンプを含む。
一部の実装形態では、メタデータファイルを受信することが、メタデータファイルのヘッダー行を構文解析してどのパラメータがメタデータファイル内で指定値を有するのかを決定することを含む。
一部の実装形態では、データ規則によって定められる構造化データレコードのための1つ又は複数の標準を満たす構造化データへとソースデータを変換することが、ソースデータの少なくとも2つの異なる部分が同一のキー値を指定すると判定すること、及びソースデータの2つの異なる部分の少なくとも1つについて新たなキー値を指定することであって、新たなキー値は同一のキー値と異なり、構造化データレコードのキーシーケンスに基づく、指定することを含む。
一部の実装形態では、このプロセスが、少なくとも1つのメタデータファイルによって指定されていない1つ又は複数の追加のパラメータのための1つ又は複数のデフォルト値を取得することを含み、データ規則を定めることは1つ又は複数の追加のパラメータのデフォルト値に基づく。概して、メタデータファイルは構造化データレコードのデータの解釈を指定する1つ又は複数の意味規則を含む。
一部の実装形態では、メタデータファイルのパラメータが、構造化データレコード内に含めるための許容データ値を指定するデータ品質パラメータを含む。一部の実装形態では、メタデータファイルのパラメータが、構造化データレコードのためのキーマッピングスキームを指定するデータ完全性パラメータを含む。一部の実装形態では、メタデータファイルのパラメータは、構造化データセットの構造化データレコードが読み出し最適化されるように構成されるか、又は書き込み最適化されるように構成されるかを指定するデータレポートパラメータを含む。
一態様では、パラメータの値及び複数のデータフィードを変換するための論理規則が各データフィードについて論理的に不整合でないことを検証することが、キーサロゲーション規則を指定するフィード固有メタデータ及びデータ履歴化規則を指定するロード固有メタデータの検査を行うことを含む。
一部の実装形態では、データ処理アプリケーションが構造化データを構造化データセット内にロードするように更に構成される。アクションは、少なくとも1つのデータフローグラフを含む複数のデータ処理アプリケーションを生成することを含み、複数のデータフローグラフは実行可能アプリケーションを形成する。
本発明の他の特徴及び利点が以下の説明及び添付の特許請求の範囲から明らかになる。
図面の簡単な説明
メタデータ駆動データウェアハウスアプリケーション用のコンパイル環境のシステム図である。 メタデータ駆動データウェアハウスアプリケーション用のランタイム環境のシステム図である。 図1Aのコンパイル環境内でコンパイルされるメタデータ駆動データウェアハウスアプリケーションの一例を示す。 メタデータ駆動データウェアハウスアプリケーション用のデータフローグラフをコンパイルするための環境の一例を示す。 コンポーネントを含むデータフローグラフの一例を示す。 メタデータ駆動ウェアハウスアプリケーションに属するランタイムシステムの一例を示す。 データウェアハウス用のデータを変換するためのグラフの例を示す。 データウェアハウス用のデータを変換するための環境の一例を示す。 メタデータ駆動ウェアハウスアプリケーション用のデータフローグラフをコンパイルするためのアクションの流れ図を含む。 メタデータ駆動ウェアハウスアプリケーションのデータフローグラフによる、データウェアハウスに対するデータの実行時の変換及びロードのためのアクションの流れ図を含む。
詳細な説明
本明細書は、データを変換し、データウェアハウス内にロードするための実行可能コードを生成し、更新し、維持するためのシステム及び方法を記載する。データウェアハウスは、既定の標準(例えば形式、履歴化スキーム等)に従って構造化データを構造化データレコード内に記憶するデータ記憶設備である。メタデータ駆動ウェアハウス(MDW:metadata-driven warehouse)システムはコンパイラを含み、コンパイラは実行時に使用するためのデータ処理コンピュータプログラム(例えばメタデータ駆動ウェアハウスアプリケーションを構成する実行可能データフローグラフのコンポーネント及び関連ファイル)を生成するために、データウェアハウス内のデータ記憶域の既定の標準を表すメタデータを含む論理規則及びパラメータを使用する。これらのプログラムは、データウェアハウス内に記憶するために他の計算システムからのデータを準備する。実行可能データフローグラフは、データフローグラフ内に含まれるコンポーネント(このコンポーネントはひいてはデータ処理機能を実行する実行可能コードを含み又は表す)を使用してデータを処理する一種のコンピュータプログラムである。この説明では、データフローグラフが表すコンポーネントがアクションを実行するように構成される場合、それらのアクションを実行するものとしてデータフローグラフを記述する。コンポーネントは、入力データを読み出すためのデータソース、グラフによって処理されたデータを出力し又は記憶するためのデータシンク、及び入力データを処理するデータ処理コンポーネントを含み得る。データフローグラフをコンパイルすることは、コードを実行しデータフローグラフ内で表すことができる論理コンポーネントを生成することを含む。コンポーネントの構成は、データがどのように処理されるのかを決定する。次いで1つ又は複数の実行可能データフローグラフが実行可能メタデータウェアハウスアプリケーションを形成する。メタデータウェアハウスアプリケーションは、ランタイムシステム上のランタイム環境内で実行される。ランタイムシステムは1つ又は複数のデータソースからデータを受信し、データウェアハウス内に記憶するために受信データを構築するように構成される。
概してメタデータ駆動ウェアハウスシステムは、コンパイラに与えられるウェアハウスメタデータを含む、論理規則及びパラメータに基づく実行可能データフローグラフを生成する。パラメータは特定の実行可能データフローグラフがデータを処理するやり方を定める。データフローグラフは、データウェアハウス内に記憶するためのデータを準備するためにランタイムアプリケーションによって実行される。
図1Aは、データウェアハウス(メタデータ駆動ウェアハウスとも呼ぶ)内に記憶するためにデータを変換するように構成される実行可能アプリケーションを生成するためのコンパイル環境100の一例を示す。コンパイル環境100は、1つ又は複数の実行可能データフローグラフを含む実行可能アプリケーション118を生成する(例えば構成する)ためのメタデータ駆動ウェアハウス(MDW)コンパイラ102を含む。データフローグラフは、図1Bのメタデータ駆動ウェアハウス(MDW)ランタイムシステム124等のランタイムシステムによって実行可能なアプリケーション118を概して形成する。より具体的には、アプリケーション118の実行可能データフローグラフを構成することは、ランタイム環境120内で実行されたときデータフローグラフ内で指定された1つ又は複数の操作を実行する実行可能コードをコンパイルすることを含む。コンパイル環境内でMDWコンパイラ102によって生成されると、実行可能アプリケーション118の実行可能データフローグラフがランタイム環境120内で実行される。アプリケーション118は、図2Aに関して後で説明するようにワークフローオーケストレータ(プラン)、パラメータセットファイル等、実行中にデータフローグラフと共に使用される追加のファイルも含むことができる。
図1Bに示すランタイム環境120内で、実行可能アプリケーション118がMDWランタイムシステム124によって実行される。MDWランタイムシステム124は、1つ又は複数のデータソース104a、104b、及び104cからそれぞれソースデータ112(例えばソースデータ112a、112b、及び112c)を受信し、データウェアハウス106のデータ規則(例えば既定の標準)に準拠する変換データ114へとそのデータを(アプリケーション118の実行可能論理によって)変換し、変換データを記憶するためにデータウェアハウス106に送信するように構成される。
アプリケーション118の実行可能データフローグラフは、ネットワーク化されたデータソース104等の1つ又は複数のデータソースからのデータを処理するデータフローグラフ実行環境(例えばMDWランタイムシステム124)内で実行されるコンピュータプログラムである。ネットワーク化されたデータソース104からのデータは、データフローグラフに従って操作され処理(例えば変換)され、データウェアハウス106に送出される。実行可能データフローグラフは、少なくとも1つのデータ入力又はソースからのデータを処理し少なくとも1つのデータシンク又は出力にデータを与えるためのコードをそれぞれ含むデータ処理コンポーネント等のコンポーネントを表すノード、並びにネットワーク化されたデータソース104及び/又はデータウェアハウス106にアクセスするためのデータセットオブジェクトを表すノードを含む有向グラフとして表される。ノードは、データソースから始まりデータシンクで終わるコンポーネント間のデータフローを表す有向リンクによって接続される。上流コンポーネントのデータ出力ポートは下流コンポーネントのデータ入力ポートに接続される。データフローグラフは、データセットオブジェクトによって表される様々なデータソース及び様々なデータシンクに再利用することができる。データフローグラフを実装するために使用されるデータ構造及びプログラムコードは、様々なネットワーク化されたデータソース104(又は様々なデータウェアハウス)を容易に置換できるようにパラメータ化することにより、複数の異なる構成をサポートすることができる。更に一部の構成では、パラメータを使用することによってデータフローグラフのフローを変えることができ、それによりコンポーネント又は一連のコンポーネントをバイパスすることができる。概して、パラメータは構成し又は変更することができるデータフローグラフの特性を表す。例えばデータフローグラフの用途によって特性を変更することができ、データフローグラフはその変更を理由に操作を異なるように実行することができる。データフローグラフを実行するためのシステムは、参照によりその全体を本明細書に援用する「グラフとして表される計算の実行(EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS)」と題された米国特許第5,966,072号の中で記載されている。
データフローグラフは、特定のアクションを実行するようにデータフローグラフのプリコンパイルを変更することによってコンパイル時に、又はデータフローグラフによって使用されるパラメータを設定し若しくは構成ファイルを変更することによって実行時に構成することができる。一部の実装形態では、MDWランタイムシステム124によって実行されるアプリケーション118のデータフローグラフが、クライアント装置及びバックエンドシステム108(以降クライアント装置108)から受信されるデータ(例えばメタデータファイル110)からMDWコンパイラ102においてコンパイルされる。一部の実装形態では、MDW、ランタイムシステム124によって実行されるデータフローグラフの1つ又は複数がMDWコンパイラ102によりクライアント装置108によってコンパイルされ、データフローグラフを実行するためにそのデータがMDWランタイムシステム124に送信される。この事例では、コンパイルされたアプリケーション118がソースデータ112の少なくとも一部に対して作用することができる。ソースデータ112を共同的に処理するために、コンパイルされたアプリケーション118はデータウェアハウス106によって生成されコンパイルされる1つ又は複数の他のデータフローグラフと統合され得る。アプリケーション118のデータフローグラフは図3に関してより詳細に説明する。データフローグラフを策定し構成するための環境は、参照によりその全体を本明細書に援用する「グラフベースアプリケーション用のパラメータの管理(Managing Parameters for Graph-Based Applications)」と題された米国特許第7,716,630号の中でより詳細に記載されている。
データウェアハウス106は、1つ又は複数のネットワーク化されたデータソース104からの変換ソースデータ112のリポジトリを含む。データウェアハウス106内に記憶されるデータ(例えば変換データ114)は、データウェアハウスのデータ規則に準拠するように構成される。データウェアハウス106のデータ規則は、データウェアハウスがデータをどのようにロードし、記憶し、更新するのかを決定する。データウェアハウス106内に記憶されるデータはデータ規則に準拠する。データ規則は、データレポート、データ分析、データマイニング等のデータウェアハウス106の1つ又は複数の応用、及び他の同様の応用を円滑化する。
データウェアハウス106のデータ規則は、データウェアハウス106内に記憶するためにデータ(例えばソースデータ112)をどのように変換するのかを定める。データ規則は論理規則であり、複数のファイルを様々な形式で含むことができる。例えばデータ規則は、データ品質規則を指定する第1のファイル及びキー処理規則を指定する第2のファイルを含むことができる。データ規則のファイルは、ソースデータ112を変換するためのパラメータの1つ又は複数の値を定めることができるメタデータを含む。データ規則のパラメータは、データウェアハウス106の構成が厳密にどうあるべきかを示す。例えばデータウェアハウス106のデータ規則は、データウェアハウス106からデータをどのように取得するのか、及びデータをどのように抽出し、変換し、データウェアハウス106にロードするのかを指定する。例えば、データウェアハウス106のデータ規則はデータ辞書を含むことができる。データ辞書は、データウェアハウス106によって記憶データがどのように処理されるのかを定めるメタデータを含む。例えばデータ辞書は、記憶データの意味、他のデータとの関係、記憶データの発生源、用途、及び形式を指定することができる。
概して、データ規則はMDWコンパイラ102においてコンパイルが行われる前に1つ又は複数の装置によって定められる。例えばデータ規則内に含まれるデータ品質規則は事前に定め、アプリケーション118のデータフローグラフをコンパイルするためにMDWコンパイラ102によって受信され得る。一部の態様では、データ規則の少なくとも一部をクライアント装置108において定めることができる。例えばデータ規則はクライアント装置108上のアプリケーションに関連するインタフェースを介して(例えばユーザによって)定めることができ、定められたデータ規則はMDWコンパイラ102に送信することができる。別の例では、データ規則がクライアント装置108以外の装置において定められる。更に別の例では、データ規則の少なくとも一部がMDWコンパイラ102に関連するインタフェースによって定められる。
まず、データ規則はデータウェアハウス106内に記憶されるデータのデータ履歴に関する標準を指定する。データ履歴は、データウェアハウス106内のデータが特定の標準に従ってどのように維持されるのかを指定する。標準は、データウェアハウス106のデータレコード内にデータをどのように入力するのかに関する1組の規則を含む。これらの規則は様々なデータウェアハウスごとに異なり得る。概して規則は、特定のデータウェアハウスに関するデータのロード及びレコードの更新を標準化する。履歴化と呼ぶこともあるデータ履歴は、データウェアハウス106がデータウェアハウス106内のデータの変更(例えば更新)を時間と共に正しく記録することを確実にする。
データウェアハウス106は様々な時点(例えば各時点)においてデータウェアハウス106のコンテンツのレコードを記憶することができ、このことはデータウェアハウス106のコンテンツのスナップショットを別のシステムが特定の瞬間におけるその状態に応じて要求することを可能にする。データウェアハウス106のデータエントリが追加され、追加されたデータがデータウェアハウス内のそのデータの最新版である場合(例えば該当する場合はそのデータが変更された場合)、データ履歴はロギングの標準的な技法によって使用可能にすることができる。
例えばデータレコードは、データレコードがデータウェアハウス106に何時追加されたのかを示すタイムスタンプ(例えば日付フィールド)を含むことができる。データレコードが更新されると第2の新たなレコードが生成され、第2のレコードは第2のレコードを第1のレコードに関連付ける識別子を含む。第2のレコードは、レコードが追加されたときを示すタイムスタンプ(例えば日付フィールド)を含む。第2のレコードは、第2のレコードがそのデータの最新版(例えば現在有効なデータ)であることを示すデータを含む。次いで、第1のレコードがもはや最新の(例えば現在有効な)データではないことを示すデータを含むように第1のデータレコードが更新される。第1のレコードは、第1のレコードが最新のデータを含んでいた期間を代わりに示すように更新される。このようにしてデータウェアハウス106によって維持されるデータ履歴は、様々な時点(例えば時間のスライス)においてデータウェアハウス106内に記憶されるデータをレポートすることを可能にする。データ履歴の上記の例はデータウェアハウス106内で使用可能な或る特定の方法だが、データ履歴を維持する他の方法がデータウェアハウス106によって使用されてもよい。データウェアハウス106のデータ規則は、データウェアハウスのデータ履歴にどの規定を使用すべきかを示す。
第2に、データ規則はデータウェアハウス106のデータ品質に関する標準を指定する規則を含む。データ品質とは、データが記憶されているアプリケーションの1つ又は複数の要件をデータウェアハウス内に記憶されているデータが満たす確実性を指す。例えばアプリケーションの要件は、データレコードの1つ又は複数のフィールドがデータで埋められていること、データが最新であること、及びデータが特定の形式を有することを含み得る。本質的に、(MDWランタイムシステム124にとって外部の)アプリケーションはデータウェアハウス106にデータを要求し、要求に応答してデータを予期された形式で確実に受信することができる。
データウェアハウス106のデータ品質は、データウェアハウス内に記憶されるデータが、データウェアハウス106内に記憶されるデータを使用している(例えば取得及び処理している)アプリケーションの要件を満たすことを確実にする。データ品質は、記憶されているデータの完全性、妥当性、正確度、一貫性、可用性、及び適時性の標準を保証する1組のデータ処理ステップによって実装される。
例えばデータ品質は、各データレコードが1つ又は複数のネットワーク化されたデータソース104からのデータで正しく埋められていることを保証する。データがMDWランタイムシステム124によって取り込まれると、そのデータの完全性、冗長性、フォーマッティング、正確度等が検査される。データの不完全な、正しくない、不正確な、又は無関係な部分を識別し、識別したデータを置換し、修正し、又は削除することを含むデータクレンジングプロセスを使用してもよい。一部の実装形態では、ネットワーク化されたデータソース104の複数が同じデータを参照する(例えば2つのソースが同じデータレコードの複製を含む)場合、データエントリをマージする。データウェアハウス内に記憶するには変換データ114がどの標準を満たさなければならないのか等、データウェアハウス106のデータ規則はデータウェアハウスに関するデータ品質の要件を指定する。MDWランタイムシステム124は、データウェアハウス106のデータ規則に従ってソースデータ112を変換データ114に変換する。
第3に、データ規則はデータウェアハウス106のデータがデータ完全性の標準をどのように満たすのかを指定する。データ完全性は、記憶されているデータがそのデータのライフスパンにわたって正確である及び一貫している程度を指す。データ完全性は、データウェアハウス106の特定のデータにアクセスする能力を含む。例えばデータ規則は、データエントリがどのようにインデックス付けされるのか(例えば各レコードにどのキー値が割り当てられるのか)を指定する。別の例では、データ規則は第1のデータレコード内の参照がどのように第2のデータレコードを指すように構成されるのかを指定する。別の例ではデータ完全性は、各レコードが他のレコードによって参照可能な有効なインデックス又はキー値を有することを保証する。データ完全性は、(例えばMDWランタイムシステム124にとって外部の)アプリケーションがデータウェアハウス106内のデータレコードのデータを要求した場合、データウェアハウスから正しいデータが返され、要求されなかった他のデータは除外されることを保証する。正しいデータは、アプリケーションによる照会の中で示されるデータレコードのデータ、データレコード、及び/又はデータフィールドを含み得る。アプリケーションがデータウェアハウス106のデータに確実にアクセスするために、データウェアハウス106のデータエントリ間のデータウェアハウス106内で指定されたマッピングが有効でなければならない。
データウェアハウス106のデータ完全性は、データウェアハウス106内に記憶されるデータがそのデータのライフサイクルにわたって一貫しており正確であること、及びデータウェアハウス内のデータに対する照会に応答して予期されたデータが返されることを保証する。データ完全性は、データウェアハウス106内のデータに対して実行される記憶、取得、又は処理操作の結果として意図しないデータ変更がないことを保証する。例えばデータ完全性の規則は、データが読み出される前、変更される前等にバッファにロードされることを指定することができる。データウェアハウス106のデータ完全性は、実体完全性、参照完全性、領域完全性、又はユーザによって定められる何らかの完全性の標準の少なくとも1つが保たれることを保証する。例えば参照完全性は、データウェアハウス106内で第1のキーがどのように第2のキーを参照するのかを指定することができる。参照完全性は、参照が構造化データの有効なインデックス(例えばキー値)を指すこと及び参照論理内の無限ループが生じないことを保証する。別の例では、実体完全性はデータウェアハウス内に記憶されるデータレコードのどのフィールドが各データレコードの主キーを含むのか及びそれがどのキー値を有するのかを指定することができる。例えば実体完全性データは、データウェアハウス内の構造化データの第1のフィールドがキーフィールドであること、及びこのフィールドがそれぞれ少なくとも4桁有する1超の間の16進のキー値を有することを指定することができる。データウェアハウス106のデータ規則は、どのキーマッピングが許可され、どの標準にキーマッピングが準拠するのかを定める。例えばキーマッピングは1つの異なるテーブル若しくはレコード又は複数の他のテーブル若しくはレコードを参照可能とすることができる。キーマッピングのリストはキーマッピングスキームと呼ぶことができる。
第4に、データ規則はデータウェアハウス106がデータレポートに関してどのように構成されるのかを指定する。データウェアハウス106内に記憶されるデータは、データウェアハウス106の機能を損なわないやり方で要求に応答してレポートされる。データ規則はデータウェアハウス106内のデータをどのように記憶するのかを指定し、そのためデータウェアハウスの性能に影響を与えることなしにデータウェアハウスからデータを読み出すことができる。例えばデータウェアハウス内のデータは書き込み最適化することができ、それにより、読み出しラインは書き込みのための他のレコードへのアクセスに影響を及ぼすことなしに単一のレコードにアクセスするように構成される。かかるスキームはデータベースからの読み出しを遅くする可能性がある一方、データベースにデータを書き込む時間を改善する。対照的に、データ規則は構造化データを読み出し最適化することを指定することができる。このことは書き込みラインが一度に単一のデータレコードにしかアクセスしないことを意味し、データベースから一度に大量のデータを読み出すことに悪影響を及ぼすのを防ぐ。従って、データウェアハウスの機能を乱すことなしにデータウェアハウス106のデータを要求側システムにレポートすることができる。一部の例では、要求側システムはデータウェアハウス106にデータを要求する、MDWランタイムシステム124にとって外部の計算システムである。一部の実装形態では、データウェアハウス106が読み出し最適化される(例えば書き込み操作又は他の種類の操作とは対照的に読み出し操作について最適化される)。例えば、データウェアハウス106のデータは非正規化データを含み得る。データウェアハウス106のデータを非正規化することは、(例えば正規化データベースに対して)読み出し操作中の関係テーブルへの依存を減らすために関連データをグループ化すること(例えば一部の事例では冗長なデータの複製を追加すること)を含む。各レコードは読み出し操作に必要な全てのデータを含み、データを読み出すために(例えば2つのエントリを結合する)結合操作は必要ない。これは読み出し最適化されたデータベースの具体例だが、データウェアハウス106を読み出し最適化するために他の方法を使用することができる。一部の実装形態では、データウェアハウス106のデータに対する要求が殆ど又は全く行われない予定された期間中(例えば夜間)にデータウェアハウス106が更新される。データウェアハウス106のデータ規則はデータウェアハウス106が読み出し最適化されるやり方を反映し、データウェアハウスの読み出し/書き込みスケジュールを制約する。
図1Aに戻り、コンパイル環境100内で、MDWコンパイラ102は実行可能アプリケーション118の1つ又は複数の実行可能データフローグラフを生成するように構成され、ランタイム環境120内で実行されるときデータウェアハウス106内に記憶するために1つ又は複数のデータソース104からのデータを準備する。MDWコンパイラ102によって生成されるアプリケーション118の機能は、上記で説明したようにデータウェアハウス106のデータ規則を定めるメタデータファイル110内のメタデータパラメータ及び規則セットマッピング126内の論理規則によって定められる。規則セットマッピング126及びメタデータファイル110の具体的なコンテンツは図2A〜図2Bに関して説明する。
MDWコンパイラ102は、データウェアハウス106のデータ規則をメタデータファイル110及び規則セットマッピング126の形で受信する。メタデータファイル110及び規則セットマッピング126は、上記で説明したようにデータ履歴、データ品質、データ完全性、及びデータレポートに関してデータウェアハウス106がどのように構成されるのかに関するパラメータのそれぞれを含む。MDWコンパイラ102は、データウェアハウス106のデータ規則のパラメータを使用してアプリケーション118のデータフローグラフを生成するように構成される。アプリケーション118は、ネットワーク化されたデータソース104からのソースデータ112をデータウェアハウス106内にロードされる変換データ114へと変換するように構成される。
メタデータファイル110は、データウェアハウス106内にデータを記憶するためのデータ規則を含み又は表す。メタデータファイル110のメタデータは、データウェアハウス106内に記憶される変換データ114の形式を指定するパラメータ値を含む。
例えばメタデータファイル110は、ネットワーク化されたデータソース104のオペレーショナルデータベース104bのシステムの様々なキー値を単一のインデックスへとどのように組み合わせるのかを指定する。この例では、システムの様々なオペレーショナルデータベース104bが互いに冗長なキー値を含むことができる。メタデータファイル110は、これらの冗長なキー値をデータウェアハウス106内の統一インデックスのための固有のキー値へとどのように変換するのかを指定する。この操作は、例えば「001」の操作キー値がデータウェアハウス106内でまだ表されていないと判定し、従ってデータウェアハウス106にとって固有の新たな値にオペレーショナルデータベース104bのキー値「001」を変換することを含み得る。
メタデータファイル110内で指定されるパラメータの数は変わり得る。概して、メタデータファイル110は変換データ114の形式及び処理を決定するのに必要な全てのパラメータの値を含む。一部の実装形態では、1つ又は複数のパラメータが指定値を有さない場合、それらの1つ又は複数のパラメータについて所定のデフォルト値を置換する。ユーザは、変換データ114の特定の処理を指定するために、例えばデータウェアハウス106の特定の形式への変換データ114の準拠を指定するために、メタデータファイル110を修正してパラメータの値を必要に応じて変えることができる。一部の実装形態では、メタデータファイル110がカンマ区切り(CSV)ファイル、スプレッドシートファイル(XLS)、又はクライアント装置108のユーザによって直接編集可能なそのような他のファイルを含む。一部の実装形態では、メタデータファイル110がユーザによって変更可能なデフォルト値を有する全てのパラメータを含む。メタデータファイル110は何百ものパラメータを含み得るが、ユーザは特定のデータウェアハウス106又はデータウェアハウス106の一部分について少数の(例えば<30の)パラメータを調節するだけでもよい場合がある。編集されないパラメータはデフォルト値のままである。
一部の実装形態では、MDWランタイムシステム124がメタデータファイル110を実行時に検査してメタデータファイルを完璧であるものとして(例えばMDWコンパイラ102がメタデータファイルからグラフをインスタンス化できることを)検証する。例えばユーザは20個未満のパラメータを編集し、他のパラメータをデフォルト値のままにしておくことができる。一部の実装形態では、編集可能なパラメータ値の数が数百程度である。様々なデータフローグラフのデフォルトパラメータ値はユーザが編集しているファイル内で表示することができ、又はユーザにパラメータ値を提示することなしにMDWランタイムシステム124に関連するライブラリ(不図示)から実行時に取得することができる。一部の実装形態では、ライブラリがMDWランタイムシステム124の記憶域の一部である。ライブラリは(例えばテーブルからの)各パラメータのデフォルト値を表すデータを記憶する。例えばMDWコンパイラ102は.csvファイルのヘッダー行を検査してメタデータファイル110内にどのパラメータが含まれているのかを突き止め、残りのパラメータのデフォルト値をライブラリから取得する。一部の実装形態では、(例えばデータフローグラフをインスタンス化するとき)MDWランタイムシステム124がメタデータファイル110を実行時に検証しようと試みる。検証は、ソースデータ112を変換するためのデータフローグラフを自動でインスタンス化するのに必要なデータをメタデータファイル110が含むと判定することを含む。例えば検証は、矛盾、欠損値、無効値等がないことを確実にするためにメタデータファイル110内で与えられるパラメータ値を検査することを含む。
実行時に検証される編集可能ファイルに加えて又はその代わりに、メタデータファイル110はユーザインタフェースから生成することができる。例えばクライアント装置108上のデータ取り込みインタフェース(不図示)内で、様々なパラメータオプションがユーザに提示される。ユーザはメニュー及び他のコントロールからパラメータを選択し、それらのパラメータの値を所望の通りに挿入することができる。メタデータファイル110はMDWコンパイラ102により実行時よりも前にプログラムによって検証することができる。例えばデータ取り込みインタフェースは、ユーザがパラメータの無効値、矛盾値を入力すること、(例えばパラメータがデフォルト値を有さない場合)値を空白のままにしておくこと等を許可しないプログラムを含む。
MDWコンパイラ102は、データウェアハウス106内に記憶するためにソースデータ112を変換データ114へと変換するアプリケーション118を生成するために、メタデータファイル110内で指定されているパラメータの値を使用する。パラメータの値は、MDWコンパイラ102によって生成されるデータフローグラフのそれぞれが厳密にどの操作を行うのか(例えば各グラフがソースデータ112を変換データ114へとどのように変換するのか)を指定する。換言すれば、メタデータファイルのパラメータはデータフローグラフをインスタンス化するために使用される。
メタデータファイル110に加えて、MDWコンパイラ102は規則セットマッピング126からのデータを使用してデータフローグラフをコンパイルする。先に記載したように、規則セットマッピング126はアプリケーション118のデータフローグラフを生成するために受信され使用される前に別のアプリケーションによって定められ得る。規則セットマッピング126は単一のソース又は多くのソースからの規則セットを含むことができる。
規則セットマッピング126は論理規則を含むことができる。論理規則は、受信した入力に基づいて決定される出力を定め、特定の応用に特有のターム(term)を使用して概して定められる。規則はクライアント装置108のデータ取り込みインタフェースによって編集することができる。例えば規則を修正するために、規則エディタ(ビジネスルールエディタ、BRE等)インタフェースをクライアント装置108のユーザに提示することができる。BREの例は、参照によりその全体を本明細書に援用する米国特許第9,002,770号の中で記載されている。
一部の実装形態では、規則セットマッピング126が意味ファイルを含むことができる。意味ファイルは、変換データ114内でデータが何を表すのかを示す(例えば「USD=U.S. Dollar」であること等を指定する)。意味ファイルは、変換データ114内でデータが何を表しているのかを明らかにするために使用することができる。例えばデータレコードの2つの異なるフィールドが同じ種類の値を表している(例えばどちらもU.S. dollarを表している)場合、規則セットマッピング126はそれらのデータフィールドが互いに同じ形式を有することを指定することができる。一部の実装形態では、参照によりその全体を本明細書に援用する、2018年6月4日に出願された米国特許出願第15/997,278号の中で記載されているインタフェース等の別のインタフェースを使用することができる。規則セットマッピング126は提供する例に限定されない。むしろ、規則セットマッピング126はソースデータ112を1組の特定のデータ規則に準拠する変換データ114へと変換するために使用される他の論理規則を含むことができる。
一部の実装形態では、規則セットマッピング126を編集のために第1のユーザに公開することができる一方、メタデータファイル110は編集のために第2の異なるユーザに公開される。この形態は、非技術系ユーザがメタデータファイル110にアクセスすることなしにデータウェアハウス106のための規則セットマッピング126を決定することを可能にすることができる。経験を積んだ開発者はメタデータファイル110にアクセスしそれを操作し、データウェアハウス106、キーマッピング等の参照完全性をどのように強制するのかを決定する(例えばデータウェアハウス106内の参照が正しく有効であることを保証する)ことができる。このようにして、経験を積んだユーザ又は技術系ユーザがデータウェアハウス106の規則のそれぞれを指定することを必要とすることなしに、データウェアハウス106の完全性を保つことができる。
メタデータファイル110及び/又は規則セットマッピング126は、例えばクライアント装置108のユーザインタフェース122によってクライアント装置108に与えられる。クライアント装置108はグラフ構成モジュールを含む。クライアント装置108は、POSIX準拠オペレーティングシステム(例えばUNIX、Linux等)等の適切なオペレーティングシステムの制御下にある1つ又は複数の汎用コンピュータを含み得る。例えばクライアント装置108は、ローカルの(例えばSMPコンピュータ等のマルチプロセッサシステム)、又はローカルに分散された(例えばクラスタ又はMPPとして結合される複数のプロセッサ)、又は遠隔的、又は遠隔的に分散された(例えばLAN又はWANネットワークによって結合される複数のプロセッサ)、又はそれらのものの任意の組み合わせである複数の中央処理装置(CPU)を使用するコンピュータシステムの構成を含む、マルチノード並列計算環境を含み得る。クライアント装置108は単一の装置として図示するが、クライアント装置108は、ソースデータ112を変換データ114へと変換するように構成されるアプリケーション118を生成するためにメタデータファイル110の一部をMDWコンパイラ102にそれぞれ送信する1つ又は複数の装置を表し得る。ユーザインタフェース122は、クライアント装置のユーザが規則セットマッピング126及び/又はメタデータファイル110のパラメータを指定できるようにするユーザ対話型インタフェースを含む。一部の実装形態では、ユーザインタフェース用の論理がクライアント装置自体の上で実行される一方、MDWコンパイラ102はクライアント装置と通信するバックエンドシステム(サーバ等)の上で実行される。
図1Bに戻り、ランタイム環境120が示されている。MDWランタイムシステム124は1つ又は複数のネットワーク化されたデータソース104からデータを受信する。ネットワーク化されたデータソース104は、データウェアハウス106内に記憶するためにMDWランタイムシステム124にデータを送信するように構成される計算システム及び記憶装置を含み得る。ネットワーク化されたデータソース104は、そのそれぞれが様々な記憶形式の何れか(例えばデータベーステーブル、スプレッドシートファイル、フラットテキストファイル、又はメインフレームによって使用されるネイティブ形式)でデータを記憶し得る、記憶装置又はオンラインデータストリームへの接続等、ソースデータ112の1つ又は複数のソースを含む。一部の実装形態では、ネットワーク化されたデータソース104が、メインフレーム104a、1つ又は複数のオペレーショナルデータベース104b、及び1つ又は複数のクライアントシステム104cのそれぞれの1つを含む。MDWランタイムシステム124はソースデータ112を受信し、そのソースデータに対して1つ又は複数の操作を実行して変換データ114を生成する。
MDWランタイムシステム124は、データウェアハウス106内に記憶されるようにソースデータ112を構成する。換言すれば、MDWランタイムシステム124はソースデータ112を変換データ114に変換するが、データウェアハウス106がその上で動作する物理記憶システムハードウェアはMDWランタイムシステム124によるデータウェアハウスの構成よりも前に存在することができる。一部の実装形態では、メタデータファイル110が既存のデータウェアハウス(データウェアハウス106であり得る)の要件を指定する。この例では、MDWランタイムシステム124は、データウェアハウス106内に記憶される追加のソースデータ112を準備することにより既に初期化されているデータウェアハウス106を維持する(例えばデータウェアハウス106のデータを更新する)。一部の実装形態では、MDWランタイムシステム124が(例えば既存のハードウェア記憶域上の)データウェアハウス106を初期化し、その後データウェアハウス106を更新及び/又は維持する。MDWランタイムシステム124は、1つ又は複数のデータフローグラフを使用し、データウェアハウス106内に記憶する準備が整った変換データ114へとソースデータ112を変換する。
ネットワーク化されたデータソース104からのソースデータ112は、データウェアハウス106内に記憶される任意のデータを含むことができる。先に述べたように、ソースデータ112はオペレーショナルデータベース104b、メインフレーム104a、及びクライアントシステム104c等の多くの異なる種類のソースからのものとすることができ、各ソースはMDWランタイムシステム124に送信するソースデータ112を様々なやり方で構成する(例えばフォーマットする)ことができる。ソースデータ112は、フラットファイル及び関係テーブルの何れか又は両方を含むことができる。データ自体は、ネットワーク化されたデータソース104がデータウェアハウス106内に記憶しようとする如何なる内容も含むことができる。
MDWランタイムシステム124は、データウェアハウス106内に記憶するために適切にフォーマットされた変換データ114へとソースデータ112を変換する。MDWランタイムシステム124はソースデータ112を受信し、実行時のデータウェアハウス106の状態に基づいてソースデータ112を変換データ114へと変換する。アプリケーション118は概して実行時の前にコンパイルされ、ソースデータ112がデータソース104から受信されるときソースデータ112に対して操作する。MDWランタイムシステム124はデータウェアハウス106からデータを受信して、ソースデータ112を変換データ114にどのように変換するのかを決定することができる。例えばMDWランタイムシステム124は、ソースデータ112のキー値がデータウェアハウス106内のキー値として使用するのにさもなければ有効だと仮定し、データウェアハウス106に対する検査を実行してソースデータ112のキー値がデータウェアハウス106内に既にあるかどうかを判定することができる。この例では、ソースデータ112の所与のデータレコードに関して、データウェアハウス106にデータレコードをロードすることをランタイムシステムが許可すべきかどうかをデータウェアハウス106から受信されるデータがMDWランタイムシステム124に知らせることができる。別の事例では、ソースデータ112の所与のデータレコードに関して、ランタイムシステムがデータレコードに対するキーサロゲーションをどのように実行するのか、又はキーサロゲートを少しでも生成すべきかどうかをデータウェアハウス106から受信されるデータがMDWランタイムシステム124に知らせることができる。
変換データ114は、アプリケーション118をコンパイルするために使用されるデータ規則を満たす。例えば変換データ114は、先に記載したデータ履歴、データ品質、データ完全性、及びデータレポートの少なくともそれぞれに関するデータ規則を満たす。例えば、変換データ114のデータレコードの各フィールドはその個々のフィールドの正しいデータを指定の形式で含み、レコードのキー値は使用されているインデキシングの規定に準拠する。データレコードに正しいキー値を割り当てることは、レコードのサロゲートキー値(例えばキーサロゲーション)をMDWランタイムシステム124によって実行時に決定することを必要とし得る。
図2Aに移り、コンパイル環境100が示されている。コンパイル環境100は、メタデータファイル110を受信しアプリケーション118を生成するように構成されるMDWコンパイラ102を含む。メタデータファイル110はメタデータファイル階層200を含む。メタデータファイル階層は、アプリケーション118を生成するために使用されるメタデータファイル110及び規則セットマッピング126を含む。アプリケーション118はアプリケーションディレクトリ216内の実行可能ファイルを含み、実行可能ファイルはソースデータ112を変換データ114へと変換するために実行中にデータフローグラフによって参照される(例えばグラフファイル224としての)データフローグラフ及び他のファイルを含む。
先に説明したように、メタデータファイル110は、MDWコンパイラ102がソースデータ112を処理するために生成するアプリケーション118のデータフローグラフの機能を決定するためにMDWコンパイラ102が使用するパラメータの値を含む。パラメータの値は、キー処理、データ履歴化、データ品質の強制、及びデータウェアハウス106内へのデータロード等の機能をデータフローグラフがどのように実行するのかを決定する。
メタデータディレクトリ200は、図1Aの規則セットマッピング126及びメタデータファイル110を含む。メタデータディレクトリ200は、バイナリファイル202(例えば.binファイル)、レコード形式ファイル204(例えば.dmlファイル)、グラフファイル(例えば.mpファイル)、及び状態ファイル208を含む。メタデータディレクトリ200内に示すディレクトリは例示目的で含めており、メタデータディレクトリ200内には他のディレクトリが含まれてもよい。一部の実装形態では、図示のファイルの一部がメタデータファイル110内に含まれない。例えば、アプリケーション118内の生成済みのデータフローグラフと共に実行するように構成される標準データフローグラフを概して含むグラフファイル(不図示)はメタデータファイルから省くことができ、MDWコンパイラ102によって生成され得る。
概してレコード形式ファイル204は、グラフファイル224のレコード形式を定めるために使用される.dmlファイルを含む。概して状態ファイル208は、ソースデータ112をデータウェアハウス106用の変換データ114に変換するデータフローグラフを生成するための特定のパラメータを定める。MDWコンパイラ102は、DMLファイル及び状態ファイル208のパラメータを使用してアプリケーションのデータフローグラフを生成する。状態ファイル208は、グローバルファイル210、メタデータ駆動ウェアハウス(MDW)フィードファイル212、及びMDWロードファイル214を含む。例えばグローバルファイル210は、ソースデータ112を変換するためのスキーマ定義並びにキータイプ及びシーケンス定義を含む。例えばグローバルファイルは、キーサロゲーションのためにどのキーサービスを照会するのかを含むことができる。グローバルファイル210は、MDWコンパイラ102によってコンパイルされるグラフごとのパラメータのリスト及びそれらの関連する値を含む1つ又は複数の.CSVファイル(又は他のテーブル)を含み得る。パラメータは、デフォルト値又はユーザによって更新されている値とすることができる。MDWフィード212は、データウェアハウス106のためのMDWフィードパラメータを含む。とりわけMDWフィード212は、上記で説明したメタデータウェアハウスのデータ規則に従い全てのロードについて、データウェアハウス106内にロードするために変換データ114をどのように準備するのかを定める。例えばMDWフィード212は、変換データ114の準備対象であるデータウェアハウス106のテーブル等のフィードパラメータ、及びキー処理統計情報をログするための規則を含むことができる。データウェアハウスロード214は、ロード固有パラメータが定められている場合、データウェアハウス106内への特定のロードごとのパラメータ(例えばデータ履歴化規則)を含むことができる。
メタデータファイル110及び規則セットマッピング126は、概して実行可能ファイルではない。むしろこれらは、アプリケーションがコンパイルされた後でユーザ又はウェアハウスが実行可能アプリケーションディレクトリ216の挙動を指定することができる編集可能ファイルである。ユーザは、クライアント装置108のユーザインタフェース(例えば図1Aのユーザインタフェース122)によって値を設定することができる。ユーザインタフェース122は、メタデータファイル110内の値を変えるためのガイド付きオプションを提示し、矛盾、循環論理、又は他の潜在的な誤りがメタデータファイル110内に導入されるのを防ぐために変更を制約するのを助けることができる。例えばユーザインタフェース122は、編集可能なパラメータだけを提示することができる。ユーザインタフェース122は、1つ又は複数の他のパラメータ値と矛盾する値等の無効値にユーザがパラメータを変えるのを制限することができる。一部の実装形態では、検出された論理的不整合をユーザインタフェースが強調表示することができる。一部の実装形態では、ユーザインタフェース122が更新されたパラメータにおける最初の論理的不整合を認め、1つ又は複数の他のパラメータを論理的に整合した値に後で更新することができる。例えば第1のパラメータを変更することが、2つの追加のパラメータが指定の値に変更されることを引き起こすことを示す警告をユーザインタフェース122上に提示することができる。
図2Aを続けると、メタデータ駆動データウェアハウスのアプリケーションファイル階層216の一例(以下、アプリケーションディレクトリ216)が示されている。アプリケーションファイル階層216は図1Aのコンパイル環境内でコンパイルされる。アプリケーションディレクトリ216のアプリケーションファイル218は、データウェアハウス106内に記憶するためにソースデータ112を変換データ114へと変換するためにMDWランタイムシステム124内で実行するための実行可能コードを含む。アプリケーションファイル218は、実行中に実行可能コードによって参照される(例えばメタデータファイル110及び規則セットマッピング126からの)メタデータ及び規則セットマッピングを含む。例えばアプリケーションファイル218は、規則セットマッピング126及びメタデータファイル110によって定められるデータ規則に従ってソースデータ112を変換データ114へと変換するのに必要な、グラフファイル224として記憶される全てのデータフローグラフを含む。データフローグラフは、アプリケーションファイル218内の実行可能コード(例えばグラフファイル224)によって表される。概して、図2Aに関して記載するメタデータ階層200のメタデータファイル110は、アプリケーションファイル218のファイル内にあるパラメータの値を定める。換言すれば、アプリケーションの1つ又は複数のファイルを生成するために及び/又はデータフローグラフが実行中に参照するパラメータ値を定めるために、アプリケーションファイル218のコンパイル中にメタデータ階層のメタデータファイル110が使用される。
図2Aに示すアプリケーションファイル218の例は、ファイル階層(概してディレクトリ階層)形式で示されている。規則セットマッピング126及びメタデータファイル110のパラメータは、ファイル階層内のアプリケーションファイル218の1つ又は複数の経路を定める。パラメータは、ソースデータ112を変換するためにアプリケーションファイル218内で入手可能な第2の代替的変換ではなく、変換のライブラリの第1の変換がデータフローグラフによって使用されることを示し得る。例えば第1の変換はデータ品質に関する第1の規則を含み得るのに対し、第2の変換はデータ品質に関する第2の異なる規則を含む。パラメータは所与の状況においてどのデータ品質規則が妥当かを示すことができる。
このアプリケーションファイル218の例は、バイナリファイル220(例えば.binファイル)、レコード形式ファイル222(例えば.dmlファイル)、グラフファイル224(例えば.mpファイル)、パラメータセットファイル226、及び変換ファイル228(例えば.xfrファイル)を含むディレクトリを含む。これらのディレクトリは説明のための例として示したが、アプリケーションファイル218は、データウェアハウス106のデータ規則に従ってソースデータ112を変換データ114へとMDWランタイムシステム124に変換させるように構成されるファイルを有する他のディレクトリを含むことができる。
グラフファイル224はデータフローグラフを形成し、バイナリファイル220、レコード形式ファイル222、及び変換関数ファイル230等、アプリケーションディレクトリ216内の他のファイルを参照する。パラメータセットファイル228は、グラフファイル224内で定められるデータフローグラフのパラメータ値を手動でオーバライドするために使用することができる。変換ファイル230は、グラフファイル224のデータフローグラフの1つ又は複数のコンポーネント内で実行される、アプリケーションディレクトリ216のために定められる関数(例えばデータ履歴化及びレポート論理)を含むことができる。
図2Bは、メタデータ階層200のメタデータファイル110から実行可能アプリケーションディレクトリ216にアプリケーション118をコンパイルすること等、メタデータ駆動データウェアハウス106用のデータフローグラフをコンパイルするための環境の一例を示す。
メタデータファイル110は、MDWランタイムシステム124のフィードグラフを定める。例えばメタデータファイル110は、任意の取得データに関するキーサロゲーション、キー処理、及びデータの履歴化を定める。フィード/ロードの定義はコンパイル段階中に自動で行われる。規則セットマッピング及びデータ品質メトリクの受信後、フィード/ロードの定義がコンパイル段階中に自動で行われる。メタデータファイル110は、例えばロード及びフィードファイル238a、スキーマ定義238b、キータイプ及びシーケンス定義238c、並びにスパースロードマップ238dを含む。
ロード及びフィードファイル238aは、データウェアハウス106に関するロード及びフィードの定義をそれぞれ列挙する。ロード及びフィードファイル238aは、図2AのMDWフィード212及びMDWロード214内に含まれ得る。ロード及びフィードファイル238aは、(例えばデータウェアハウス106内に変換データ114がロードされる場合)ロード固有標的テーブルを含む。ロード及びフィードファイル238aは、データウェアハウス106内で使用されているデータ履歴の種類を指定する。ロード及びフィードファイル238aは、標的テーブルのどのデータフィールドがキーフィールド(例えば参照データベースのための主キー)なのかを指定する。ロード及びフィードファイル238aは、標的テーブルのキーフィールドのデータの種類、キーの形式、及び標的テーブルであるテーブルの種類を指定する(キータイプファイル238cを参照する場合がある)。ロード及びフィードファイル238aは、標的テーブルのどのフィールドがデータ履歴情報(例えばバッチ時間)を含むのかを指定する。ロード及びフィードファイル238aはデータウェアハウス106のそれらの側面のそれぞれに関するパラメータ(例えば80個を超えるパラメータ)を含み、それらのパラメータはMDWコンパイラ102によって実行可能ファイルを生成するために使用される。
スキーマ定義238bは、データウェアハウス106の標的テーブルのための標的スキーマを含む。例えばスキーマ定義は、フィールド名(例えばフィールドの名前空間)及びそれらのフィールドのデータエントリの構成を含む。スキーマ定義ファイル238bは、データウェアハウス106が関係データベースなのかデータレイクなのか等、及びもしある場合はどの独自(又は非独自)データ標準が守られているのかを指定することができる。データウェアハウス106の物理的属性を構成するために使用されるファイルの一例では、スキーマ定義238bはスキーマ(例えばどのデータ構成スキームが使用されているのか)、エンティティ(例えば標的の名前)、属性(例えばフィールド名)、データタイプ(例えば文字列、10進数等のデータ形式)、値がnull許容かどうか、及びキータイプ(例えば参照、主等)を含むことができる。
キータイプ及びシーケンス定義238cは標的テーブルごとのキーの構成を含む。キーはオブジェクトのクラスなので、キータイプファイル238cはキータイプ、キーシーケンス、及びキー処理をどのように行うのかを指定する。例えばキータイプファイル238cは、キー値が文字列、バイナリ値、数字等であることを指定することができる。キータイプファイル238cは、キーサロゲーションのためのキーシーケンス(例えば特定のシーケンスに対してシーケンシャルキー値の生成に認められている最小値及び最大値が何なのか)を指定することができる。別の例では、キータイプ及びシーケンス定義238cは、標的のためのキーがナチュラルキーかサロゲートキーかを指定することができる。キー定義ファイル238cの一例では、それぞれのキー定義がキータイプを指定可能な名前及びキーソース(キーの発生元)を含み得る。キーソースは、変換データ114を準備するとき、元の入力キー値が保たれるのかどうか又は(例えばキーサロゲーションサービスによって)サロゲート値が与えられるのかどうかを示す。キーソースの値は、どのような種類のキーサロゲートが提供されるのかを示すことができる。
スパースロードマップ238dは、データウェアハウス106内に変換データ114をロードするための追加の規則及び/又は属性を含む。例えばスパースロードマップ238dは、フィールドの名前及びそれらのフィールドのそれぞれに関する挙動上の詳細を含む。データウェアハウス106の物理的属性を構成するために使用されるファイルの一例では、スパースロード定義が「ロードに関して無視する値」のパラメータ(例えばなし、null、又は空等)及びnull又は空の処理設定(例えばnull又は空の値を拒否又は無視するかどうか)を含み得る。
メタデータファイル110は、コンフィギュレータ244によって検証される。コンフィギュレータ244は論理エンジン(例えばデータ処理エンジン)を含む。コンフィギュレータ244はメタデータファイル110を受信し、受信したメタデータファイル110を分析して、アプリケーション118をコンパイルするためにメタデータファイル110内で指定されているパラメータの値を明らかにするように構成される。例えばコンフィギュレータ244は、メタデータファイル内にどのパラメータが含まれているのかを明らかにするために、メタデータファイル内に含まれる.csvファイルのヘッダー行を走査する。一例では、メタデータファイル110内で値が割り当てられていないパラメータには(例えば値のライブラリから)デフォルト値が割り当てられる。コンフィギュレータは、データウェアハウス106用のメタデータのアーカイブを構築する。
コンフィギュレータ244は、次のようにファイル階層200のメタデータファイル110を検証する。コンフィギュレータ244は、データウェアハウスの標的位置に関連するレコード形式ファイルを取得する。標的位置とは、データウェアハウスのロード時に書き込まれるデータウェアハウス内の位置である。レコード形式ファイルは標的がどのようにフォーマットされているのかを表す。コンフィギュレータはグローバルファイル(例えばグローバルファイル210)をアセンブルする。
コンフィギュレータ244は、フィード固有メタデータ246bを検査する。フィード固有メタデータ246aは、どのフィールドがキーサロゲーションの影響を受けるのか、どのキーシーケンスが所与のフィールドからキーサロゲート値を得るのか等のキーサロゲーション規則を含む。フィード固有メタデータ246aから取得される規則は、実行中に使用するためにMDWランタイムシステム124に渡されるが、データウェアハウスの参照完全性を保証するためにこの段階で定められ検証される。例えば、別の既存のレコードが参照されていること(及び誤り又はnull値が返されないこと)を保証するために変換データ114の各キー値が検査される。
コンフィギュレータ244はロード固有メタデータ246bも検査する。ロード固有メタデータ246bは、データウェアハウス106内にデータをロードするための履歴化規則を含むことができる。上記で説明したように、データ履歴に関する個々の規則(例えば日付フィールドをどのようにフォーマットするのか)は、特定のロードごとにデータウェアハウスに特有であり得る。
一態様では、上記で説明したようにフィードによるキー処理を行う実行可能グラフを生成するのではなく、MDWコンパイラ102はキー定義固有メタデータ246cを使用して1つ又は複数のキールックアップ/サロゲーションブロックを生成するように構成される。別の計算システムによって(例えば参照によりその全体を本明細書に援用する、2018年6月4日に出願された米国特許出願第15/997,278号の中で記載されているシステムによって)データウェアハウスフィードの1つ又は複数のパラメータを定めるとき、ユーザは例えばデータウェアハウス106のためのキー値の処理を指定することができる。データウェアハウス106のキー値を処理するためのこの構成、並びにメタデータ246a、246bを使用するフィードによるキー値を処理するための論理を図4〜図5に関して記載する。
グラフ生成論理248は、キー処理、履歴化、及びソースデータ112を変換データ114としてデータウェアハウス106内にロードすることを実行する実行可能データフローグラフを生成する。グラフ生成論理248は、アプリケーション118の生成済みのデータフローグラフとは切り離されている。グラフ生成論理248は、アプリケーション118のデータフローグラフを生成するために構成済みのメタデータ246a、246b、246cをメタデータアーカイブ246から受信する。メタデータがコンフィギュレータ244によって検証されると、MDWコンパイラ102はグラフ生成論理248を使用してアプリケーション118の1つ又は複数の実行可能データフローグラフを生成する。生成されるアプリケーション118のデータフローグラフは、必要に応じてメタデータファイル110のパラメータを参照することができるアプリケーションファイル218内の実行可能コードを含む。メタデータファイル110及びグラフファイル224の位置は、データフローグラフのそれぞれを生成するためにユーザからの介入なしにMDWコンパイラ102がコンパイル中にファイルにアクセスできる位置である。生成されるアプリケーション118のデータフローグラフは、キー処理グラフ並びに履歴化及びロードグラフを含み得る。
データフローグラフは、データ処理コンポーネントのグラフィカル表現(例えばノード)を含む。例えば図3を参照し、汎用データフローグラフ300は、データソース302a〜302n、コンポーネント304、及びデータシンク306を含む。データソース302a〜302nはコンポーネント304の入力ポートに接続される。コンポーネント304の出力ポートはデータシンク306に接続される。データソース、コンポーネント、及びデータシンク間の接続はデータフローグラフによるデータの流れを定める。
データソース302a〜302n、コンポーネント304、及びデータシンク306のそれぞれは、パラメータセット308a〜n、310、及び312にそれぞれ関連する。各パラメータセットは1つ又は複数のパラメータを含む。パラメータ及びそれらの値はデータフローグラフの挙動を定める。例えばパラメータは、物理ディスク上のデータソース又はデータシンクの位置を定めることができる。ソートコンポーネントがコンポーネント内へのデータ入力をどのようにソートするのか等、パラメータはコンポーネントの挙動も定めることができる。一部の例では、パラメータセット内のパラメータの値はデータフローグラフの実行時に投入される。
一部の例では、或るパラメータの値は別のパラメータの値に依存し得る。例えば、データソースは特定のディレクトリの中のファイル内に記憶される場合がある。データソースのパラメータセットは「DIRECTORY」と呼ばれる第1のパラメータと「FILENAME」と呼ばれる第2のパラメータとを含み得る。この例では、FILENAMEパラメータはDIRECTORYパラメータに依存する(例えばDIRECTORYは「/usr/local/」とすることができFILENAMEは「input.dat」とすることができる)。パラメータは他のコンポーネントのパラメータに依存する場合もある。例えばデータフローグラフのためのデータシンクの物理位置は、データフローグラフのためのデータソースの物理位置に依存し得る。例えばデータシンクは、データソースのDIRECTORYパラメータに依存するFILENAMEパラメータを含む1組のパラメータを含み得る(例えばデータシンクのFILENAMEパラメータは「/usr/local/output.dat」とすることができ、「/usr/local/」の値はデータソースのDIRECTORYパラメータから得られる)。
コンポーネント304は、サブグラフと呼ぶこともある1つ又は複数の他のデータフローグラフ320a〜320nを参照するグラフインタフェースコンポーネントであり得る。実行時に、データフローグラフ300がコンポーネント304によって参照されるサブグラフを動的にロードし実行し、例えばサブグラフ320a〜320nによって提供される様々な機能にデータフローグラフ300が柔軟にアクセスすることを可能にする。コンポーネント304の1つ又は複数のパラメータが、コンポーネント304によって参照される特定のサブグラフ320a〜320nを定める。各サブグラフ320a〜320nは、そのそれぞれが対応するサブグラフの挙動を定める1つ又は複数のパラメータを含むパラメータセット322a〜322nにも関連する。
データフローグラフの構成は本質的に極めて専門的である。特定のビジネスの目的を実現するためにも書かれているが、グラフの基礎を成す構造及び構成は技術的考察に基づいて決定される。例えばグラフコンポーネントは再利用可能性を最大化するように、又は並列処理をサポートするように選択され得る。他方で、グラフが何処で使用されるのかは一般にビジネス決定であり得る。パラメータ化されたデータフローグラフに関連するパラメータの一部は、データフローグラフの実装の背後にある技術的な複雑さをユーザが理解することを必要とせずに、ビジネスユーザがデータフローグラフをカスタマイズできるようにするために使用することができる。パラメータ化されたデータフローグラフはカスタマイズを単純化し、再利用を容易にする。
データフローグラフを構築するためにパラメータ値を識別するためのインタフェースをクライアントマシン上に提示することができる。一部の実装形態では、パラメータインタフェースを提供するクライアント上のウェブブラウザを使用して、及びクライアント側処理の幾らかの能力を与えるスクリプト言語を使用して、サーバ上で実行される開発環境にクライアントがアクセスし得る。スクリプト言語はサーバと通信してパラメータを更新し、他の必要な操作を実行することができる。この通信は、クライアントと構築されているグラフのためのオブジェクト及び関連するパラメータ値を記憶する開発環境を実行するサーバとの間の通信を変換するブリッジマシンによって行われ得る。このインタフェースは、データフローグラフ及びデータフローグラフの構成に関係する技術的知識をユーザが欠いても、パラメータ化されたデータフローグラフのパラメータをユーザが構成することを可能にする。
クライアント装置108上に提示される構成インタフェースは、ユーザがグラフ構成モジュール(不図示)にアクセスすることを可能にする。構成インタフェースにより、ユーザはデータフローグラフの構成に関する技術的知識を必要とせずにデータソース、データシンク、及びデータフローグラフによって行われる変換の特性を指定することができる。ユーザが指定した特性に基づいてパラメータセット308a〜n、310、312、322a〜322nにパラメータ値を割り当て、それによりユーザが指定した特性に従ってデータフローグラフの挙動を定めることができる。
構成インタフェース内で、パラメータセット308a〜n、310、及び312のパラメータをユーザと対話するための、例えば技術的考察ではなくビジネスの考察を反映するグループへと組み合わせ再編成することができる。ユーザ入力に基づいてパラメータの値を受け付けるための構成インタフェースは、サーバ上の開発環境の側面によって必ずしも制限されない柔軟なやり方で様々なパラメータをパラメータ間の関係に応じて表示することができる。構成インタフェースの一例が、参照によりその全内容を本明細書に援用する米国特許出願公開第2011/0145748号の中で記載されている。
MDWコンパイラ102は、(例えば図3のパラメータセット308a〜n、310、及び312を形成する)パラメータを有するデータフローグラフを含むアプリケーション118をコンパイルし、パラメータはメタデータファイル110によって指定される。生成されるグラフの例を以下に記載する。
MDWコンパイラ102がコンパイルするデータフローグラフは、ソースデータ112を変換データ114へと変換するように構成される。例えばデータフローグラフは、フィールド名、インデックス値等を指定するメタデータファイル110のパラメータを使用してMDWコンパイラ102によって生成されているSQL照会を実行するように構成され得る。インスタンス化されるデータフローグラフの多くの異なる構成が生成され得る。一部の実装形態では、MDWコンパイラ102が実行時にメタデータファイル110を検査して、完璧である(例えばMDWコンパイラ102がメタデータファイルからグラフをコンパイルすることができる)ものとしてメタデータファイルを検証する。
MDWランタイムシステム124によってランタイム環境120内でソースデータ112を変換データ114へと変換するためのデータフローグラフの例を図4〜図5に示す。図4は、MDWランタイムシステム124の一例を示す。図5は、ランタイム環境120の脈絡でのキー処理を示す。MDWランタイムシステム124は、図5のグラフ404〜414の論理を実行し、さもなければデータウェアハウス106内に記憶するためにソースデータ112を準備する複数の論理モジュール502、504、及び506を含む。一部の実装形態では、論理モジュール502、504、及び506のそれぞれが、クライアント装置108において受け付けられるメタデータファイル110及び規則セットマッピング126に基づいてデータフローグラフからコンパイルされる実行可能コードを実行するように構成される1つ又は複数のデータフローグラフを含む。例えば図5に関して記載するブロック406並びにグラフ408及び410の論理は、ネットワーク化されたソース104a〜104cから受信されるときソースデータ112に作用するように構成される。MDWランタイムシステム124の論理モジュールは、キーサロゲーション論理及びデータ履歴化論理を実行することができる。
キーサロゲーション論理モジュール502は、図1A〜図1B及び図5に関して記載したサロゲートキーを生成するためのキーサービスを含む。一部の実装形態では、キーサロゲーション論理モジュール502が図5のキーサロゲーションブロック406を含む。先に記載したようにデータ規則によって指定される場合、ソースデータ112の一部である各ソースデータキー510a、512aは個々のキーサロゲート510b、512bへと変換することができる。キーサロゲート510b、512bは、変換データ114の変換済みのデータエントリにそれぞれ割り当てられる。キーサロゲーション論理モジュール502は、変換データ114のためにどのサロゲートキー510b、512bを生成すべきかを決定するためにメタデータアーカイブ246から構成済みのメタデータ及び規則セットマッピングを受信する。一部の実装形態では、キーサロゲーション論理モジュール502はキーシーケンスごとの専用プロセス、及びデータウェアハウス106のための各キーサービスへの専用の呼び出しを含む。例えばプロセスごとに別個のグラフを使用することができる。図示の例では、ソースレコード518に関して「0001」の値を有するソースキー512aが変換データ520のレコードのための標的キー512bへと変換されている。標的キー512bは「011010001」の値を有し、データウェアハウス106の要件に準拠するサロゲートキーを表す。図5に関して説明するように参照完全性の強制も実行される。
図1A〜図1B及び図5に関して上記で説明したように、データ履歴化及びロード論理モジュール506はソースデータ112に作用してデータレコードごとの適切なデータ履歴を生成する。例えばデータ履歴化及びロード論理モジュール506は、図5のデータ履歴化及びローダグラフ410を含むことができる。
キー処理論理モジュール504は、ソースデータ112内のキーフィールドデータを標的データ114内のキーフィールドデータに変換するための処理論理を実行する。一部の実装形態では、キー処理論理モジュール504が図5のキー処理フィードグラフ408を含む。例えばソースデータレコード518は、レコードの更新時にレコード内にタイムスタンプを含めるデータ履歴化スキームを有する。タイムスタンプ516aの値は「00:01」である。ソースデータレコード518のこのタイムスタンプ516aは、タイムスタンプ値に関して更なる精度を要求するデータウェアハウス106の履歴化スキームに適合するように変換される。タイムスタンプ516aの「00:01」の値は、レコード520が生成された及び/又はデータウェアハウス106内にロードされた時間を反映し得る「2018:125:00:01」に変換される。
図5は、ランタイム環境120の脈絡でのキー処理を示す。MDWコンパイラ102によって自動生成されるアプリケーションのデータフローグラフを図5に示す。キー処理論理は、キーサロゲーションサービスにアクセスする別の計算システムが使用するために設けられる、生成される独立型のキー処理フィードグラフ408内に或いは生成されるキールックアップブロック406内にMDWコンパイラ102によってカプセル化され得る。
一態様では、MDWランタイムシステム124が(例えばインタフェース404において)データを取得すると、MDWランタイムシステム124は先に説明したようにソースデータ112に対して操作を実行してソースデータを変換データ114へと変換することができる。操作は、キー処理、データ履歴化、及び標的(例えばデータウェアハウス106)内へのデータロードを含む。
キー処理に関して、MDWランタイムシステム124は1つ又は複数のキーサロゲーションサービスに概して要求を送信する。キーサロゲーションブロックの各モジュールは、特定の仕様に従ってキー処理を行うように構成される。例えば標的402が第1の形式のキー値で構成される場合、ソースデータ112のキーを検査し、サロゲートキーを必要に応じて生成するために、モジュールの第1のモジュールがMDWランタイムシステム124によって呼び出され得る。標的402が第2の形式のキー値で構成される場合、キー処理を行うためにモジュールの第2の異なるモジュールがMDWランタイムシステム124によって呼び出され得る。
一態様では、MDWコンパイラ102がキー処理フィードグラフ408内のキー処理機能を実行するように構成される。別の計算システムによって使用されるブロックによってサービスを呼び出すのではなく、MDWランタイムシステム124は独立型の実行ファイルによってキーサービスを直接呼び出す。
一部の実装形態では、キー処理フィードグラフ408又はキーサロゲーションブロック406がキーサロゲートを生成する必要はなく、標的データウェアハウス106内のソースキー値の参照完全性だけを検査する。この例では、キーサロゲートを生成するのではなく、キーサロゲーションブロック406又はキー処理フィードグラフ408はキー値を変更することなしにキー値の参照完全性を検証し強制する。参照完全性の検査は、問題になっているキー値が標的データウェアハウス106に既に知られている有効値であることの確認である。
参照完全性の検査を行う際、キー処理フィードグラフ408は未知のキー値を処理するために1つ又は複数の強制メカニズムを使用することができる。キー処理フィードグラフ408は、キー及び/又はキーに関連するデータレコードを拒否するように構成することができる。キー処理フィードグラフ408は構成可能なフラグキー値でキーを置換することができ、構成可能なフラグキー値は、フラグキー値に関連するデータレコードに作用する1つ又は複数のシステムにデータレコードを特定のやり方で処理すべきだという信号を与える。例えばフラグキー値は、キー値を後で別のキー値で置換すべきだと示すことができる。例えばフラグキー値は、フラグキー値を含むデータレコード内の関連データが無効だと示すことができる。他のかかる情報はフラグキーによって示すことができる。キー処理フィードグラフ408は、データウェアハウス106のためのプレースホルダレコード(例えば1つ又は複数のプレースホルダデータエントリ)を構築することができる。プレースホルダデータエントリは、データレコードのキー値に関して更に多くの情報が受信される場合は後で更新することができる。キーサロゲーションブロック406は、参照完全性の違反を含むかどうか(即ち標的データウェアハウス106に知られているかどうか)を示す状態フラグをそれぞれの入力キー値に追加し、そのことはキーサロゲーションブロック406が使用される他のソース取得計算システムによってサポートされる強制メカニズムを知らせることができる。
一態様では、データ要素のキーサロゲートがデータウェアハウス106のデータ規則に準拠することをソースデータ112のデータ要素のキー値が要求し得る。キーサロゲーションブロック406又はキー処理フィードグラフ408は、ソースデータ112のデータレコードごとのキー値を決定するために以下の操作を行う。ソースデータ112内のキーの値がデータウェアハウス106のキースキームに準拠しない場合、キーサロゲーションブロック406又はキー処理フィードグラフ408はキーサロゲートを生成するように構成される。キーサロゲートは、個々のネットワーク化されたデータソース104a〜cで使用されるキーを置換する置換キーである。キーサロゲートは、データウェアハウス106内の各レコードがデータウェアハウス106内の残りのデータに対して一意のキー値及び/又は一貫したキー値を有することを確実にするために使用される。これらのネットワーク化されたデータソース104のそれぞれで使用されるインデキシングシステムは、データウェアハウス106のための単一の統一インデックスで置換される。例えばネットワーク化されたデータソース104aのキーは整数値を含み得るのに対し、ネットワーク化されたデータソース104cのキーは文字数字の列を含む。キーサロゲーションブロック406又はキー処理フィードグラフ408は、それぞれのネットワーク化されたデータソース104a〜cからのソースデータ112についてデータウェアハウス106内でキー値が何であるべきなのかを決定するためにキーの全数調査及びルックアップ機能を実行する。例えばキー処理フィードグラフ408は、ネットワーク化されたデータソース104cのデータレコードについてキー値を識別する。キーサロゲーションブロック406又はキー処理フィードグラフ408は、キーの全数調査機能によって識別されたキーが既にサロゲートされているかどうかを判定するためにMDWランタイムシステム124にキーサービスへの要求を送信させる。識別されたキーがデータウェアハウス106内のキーサロゲートを有さず、新たなサロゲートをこの脈絡で生成することが許可されていることを構成済みの規則が指定する場合、キーサロゲーションサービスは新たなキー値が識別済みのキーのサロゲートキーだと決定する。キーサロゲーションブロック406又はキー処理フィードグラフ408は、データウェアハウス106内にデータがロードされる前にデータエントリにサロゲートキーを適用する。一部の実装形態ではキーサロゲートが一括で計算される。一部の実装形態では、ソースデータ112のキーシーケンスごとに専用グラフが生成される。キーコレクションは、構成されるキーシーケンスに属するキー値をサロゲートするためにソース内で使用されるキー値のマップで構成される。
生成されるデータ履歴化及びローダグラフ410は、データウェアハウス106の要求に応じてソースデータ112内に記載されているエンティティごとにデータ履歴を計算し、データウェアハウス106内にロードするためのデータを準備する。ソースデータ112内に記載されているエンティティごとのデータ履歴の変更は変換データ114内に含められる。例えばデータ履歴化及びローダグラフ410はデータフローグラフを含むことができる。データ履歴化及びローダグラフ410は、変換データ114内のレコードごとのタイムスタンプ、データレコードの更新済みの日付範囲等を生成し、データウェアハウス内に記憶されるデータ履歴を必要に応じて更新するように構成することができる。一部の実装形態では、データウェアハウス106内の記憶データを置換するより新しいデータレコードがデータソース104から受信された場合、データ履歴化及びローダグラフ410はその記憶データに期限切れのフラグを立てることができる。データソース104からソースデータ112が受信される場合、データの履歴化及びキーサロゲーションの両方が実行時に行われる。
データ履歴化及びローダグラフ410は、変換データ114としてデータウェアハウス106内にロードするためのソースデータ112を準備するように構成される。データ履歴化及びローダグラフ410は、様々な履歴範囲のロードをサポートする。データ履歴化及びローダグラフ410は、遅れて到着するデータロード及び誤り訂正ロードに対して確立済みの履歴を正しく調整する。
図6は、データウェアハウス(例えば図1Bのデータウェアハウス106)用の例示的変換データ610をソースデータから生成するためのランタイム環境620の一例を示す。ソースデータ608及び変換データ610は、データエントリ616並びにキー値フィールド618、データフィールド612、及びデータ履歴フィールド614を含むフィールドの一例を含む。
MDWランタイムシステム124はソースデータ608を受信する。この例では、ソースデータ608の各データレコード(例えばレコード616a)が、インデックス618a、データ612a、及びタイムスタンプ614aという3つのフィールドを含む。ソースデータ608は、MDWランタイムシステム124の論理モジュール502、504、及び508内で変換される。この例では、ソースデータ608の各データレコードに対して、データウェアハウス106の標準に準拠する新たなキーが割り当てられる。この例では新たなキーが割り当てられるが、これは必ず必要とは限らない。一部の実装形態では、レコードの一部又は全てについてキー値が不変のままでもよい。データウェアハウス106内に記憶するために変換データ610が準備される。変換データ610の各レコード(例えばレコード616b)は、ソースデータ608のフィールド618a、612a、及び614aにそれぞれ対応するキーフィールド618b、データ612b、及びタイムスタンプ614bを含む3つのフィールドを含む。ソースデータ608のレコード616aは、変換データ610のレコード616bに対応する。ソースデータ608のレコード616aのインデックスは、例えばソースデータを記憶するオペレーショナルデータベースの最初のレコードであった「0001」である。変換データ610のレコード616bのインデックスは、データウェアハウス106のためのインデキシングスキームに対応する「011010001」である。「alpha」であるレコード616aのデータはレコード616b内で不変のままである。レコード616aのタイムスタンプは、レコード616aのデータが最後に更新された時間を表し得る「00:01」である。変換データ610のレコード616bは、データウェアハウス106について指定された形式の変換タイムスタンプを表す「2018:125:00:01」の変換タイムスタンプを有する。ソースデータ608に対するデータレコード616aを変換データ610のデータレコード616bに変換することは一例だが、先の及び以下の説明に従って他の数多くの変換が可能である。
図7は、メタデータ駆動ウェアハウスアプリケーション用のデータフローグラフをコンパイルするためのアクションの流れ図を含む。計算システム(例えば図1AのMDWコンパイラ102)が、データを構造化データベースへと構造化するための1つ又は複数のパラメータのそれぞれについて値を指定する少なくとも1つのメタデータファイルを受信する(702)。このパラメータは、データ品質、データ完全性、データレポート、キーサロゲーション、データ履歴等に関するパラメータを含み得る。MDWコンパイラ102は受信したメタデータファイル110を(例えば図2Bのコンフィギュレータ244によって)分析して、データフローグラフをコンパイルするためにメタデータファイル110内で指定されているパラメータの値を明らかにする。MDWコンパイラ102は、パラメータの値及び複数のデータフィードを変換するための論理規則が複数のメタデータの各データフィードについて論理的に不整合でないことを検証する(704)。ロード/フィードが論理的に不整合でないように、検証は全てのロード/フィードが完璧に定められていること及びグローバルファイルが各ロード又はフィードと合致することを判定することによって行われる。これを行うために、一態様では、MDWコンパイラ102がフィード固有メタデータ及びロード固有メタデータについてメタデータアーカイブを検査する。MDWコンパイラ102はフィード固有メタデータを検査し、フィード固有メタデータは、キーサロゲーションの影響を受けるフィールド、それらのフィールドがキーサロゲート値を得るキーシーケンス等、各キーが有効でありデータウェアハウス内で有意味の値を有することを確実にするために実行時に使用されるキーサロゲーション規則を含み得る。一態様では、MDWコンパイラ102が、データウェアハウス内にデータをロードするための履歴化規則を含み得るロード固有メタデータを検査する。MDWコンパイラ102は、ランタイム環境(例えば図1Bのランタイム環境120)のための少なくとも1つのデータフローグラフを生成する(706)。データフローグラフは、キーサロゲーション、履歴化、データ品質、及びデータロード操作を実行時に行うように構成され得る。各データフローグラフは、1つ又は複数のデータソースからソースデータ(例えば図1Bのソースデータ112)を受信し、メタデータのパラメータによって定められる構造化データレコードのための1つ又は複数の標準を満たす構造化データへとソースデータを変換するように構成される。
メタデータ駆動ウェアハウスアプリケーションのデータフローグラフによる、データウェアハウスに対するデータの実行時の変換及びロードのためのアクションの流れ図である図8に移る。ソースデータ(例えばソースデータ112)がランタイムシステム(例えば図1BのMDWランタイムシステム124)によって受信されると、MDWランタイムシステム124のデータフローグラフがソースデータを処理する。各レコードについて、MDWランタイムシステム124のデータフローグラフがソースデータを処理して、データ規則によって定められる構造化データのための1つ又は複数の標準を満たす変換データ(例えば図1Bの変換データ114)へとそのデータを変換する(802)。MDWランタイムシステム124は、更に多くのソースデータがあるかどうかを判定する(804)。更に多くのソースデータがある場合はデータフローグラフがソースデータを更に処理し、データ規則の構造化データのための1つ又は複数の標準を満たす変換データへとそのデータを変換する。MDWランタイムシステム124は、追加のソースデータ112を処理することと並行して変換データ112を処理することができる。MDWランタイムシステム124は、変換データ114を直ちにロードすることが望ましいか、又は変換データを後でロードすることが好ましいかを判定する(806)。データウェアハウス106が新たなデータを受け付ける準備が整っていない場合、変換データを後でロードすることが好ましい場合がある。例えば別のシステムがデータウェアハウス106からデータを読み出している可能性がある。直ちにロードすることが望ましい場合、MDWランタイムシステム124は変換データをデータウェアハウス(例えば図1Bのデータウェアハウス106)内に記憶する(810)。後でロードすることが好ましい場合、MDWランタイムシステム124は後でロードするためにソースデータ112をステージする(812)。
MDWランタイムシステム124が後でロードするためにソースデータ112をステージする場合、キー処理は引き続き実行時に行われる。その理由は、(先に記載したように)キーサービスが呼び出されると、他のロードに更なるキー値を割り当てるときキーサービスがステージされたデータの責任を負うからである。
上記で説明したグラフ構成手法はコンピュータ上で実行するためのソフトウェアを使用して実装することができる。例えばソフトウェアは、(分散、クライアント/サーバ、又はグリッド等の様々なアーキテクチャのものとすることができる)1つ又は複数のプログラムされた又はプログラム可能なコンピュータシステム上で実行される1つ又は複数のコンピュータプログラム内の手続きを形成し、かかるコンピュータシステムは、少なくとも1つのプロセッサ、少なくとも1つのデータ記憶システム(揮発性及び不揮発性のメモリ及び/又は記憶素子を含む)、少なくとも1つの入力装置又はポート、及び少なくとも1つの出力装置又はポートをそれぞれ含む。ソフトウェアは、例えば計算グラフの設計及び構成に関係する他のサービスを提供するより大きいプログラムの1つ又は複数のモジュールを形成し得る。グラフのノード及び要素は、コンピュータ可読媒体内に記憶されるデータ構造又はデータリポジトリ内に記憶されるデータモデルに準拠する他の編成済みデータとして実装することができる。
上記の技法はコンピュータ上で実行するためのソフトウェアを使用して実装することができる。例えばソフトウェアは、(分散、クライアント/サーバ、グリッド等の様々なアーキテクチャのものとすることができる)1つ又は複数のプログラムされた又はプログラム可能なコンピュータシステム上で実行される1つ又は複数のコンピュータプログラムによって手続きを形成し、かかるコンピュータシステムは、少なくとも1つのプロセッサ、少なくとも1つのデータ記憶システム(揮発性及び不揮発性のメモリ及び/又は記憶素子を含む)、少なくとも1つの入力装置又はポート、及び少なくとも1つの出力装置又はポートをそれぞれ含む。ソフトウェアは、例えばチャート及びフローチャートの設計及び構成に関係する他のサービスを提供するより大きいプログラムの1つ又は複数のモジュールを形成し得る。チャートのノード、リンク、及び要素は、コンピュータ可読媒体内に記憶されるデータ構造又はデータリポジトリ内に記憶されるデータモデルに準拠する他の編成済みデータとして実装することができる。
本明細書に記載した技法はデジタル電子回路、又はコンピュータハードウェア、ファームウェア、ソフトウェア、若しくはその組合せによって実装することができる。機器はプログラム可能なプロセッサによって実行するために機械可読記憶装置(例えば、非一時的機械可読記憶装置、機械可読ハードウェア記憶装置等)の中に有形に具体化され又は記憶されるコンピュータプログラム製品によって実装することができ、方法のアクションは、入力データに作用して出力を生成することによって機能を実行するために命令のプログラムを実行するプログラム可能なプロセッサによって実行され得る。本明細書に記載した実施形態及び特許請求の範囲に記載の他の実施形態並びに本明細書に記載した技法は、データ及び命令をデータ記憶システムとの間でやり取りするために結合される少なくとも1つのプログラム可能なプロセッサと、少なくとも1つの入力装置と、少なくとも1つの出力装置とを含むプログラム可能なシステム上で実行可能な1つ又は複数のコンピュータプログラムによって有利に実装することができる。各コンピュータプログラムは高水準手続き型プログラミング言語若しくはオブジェクト指向プログラミング言語、又は所望の場合はアセンブリ言語若しくは機械言語によって実装することができ、何れにしても言語はコンパイラ型言語又はインタープリタ型言語とすることができる。
コンピュータプログラムを実行するのに適したプロセッサは、汎用マイクロプロセッサ及び専用マイクロプロセッサの両方、並びに任意の種類のデジタルコンピュータの1つ又は複数の任意のプロセッサを例として含む。概して、プロセッサは読取専用メモリ若しくはランダムアクセスメモリ又はその両方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサ並びに命令及びデータを記憶するための1つ又は複数のメモリ装置である。概してコンピュータはデータを記憶するための1つ又は複数の大容量記憶装置、例えば磁気ディスク、光磁気ディスク、光ディスクも含み、又はそこからデータを受信するために、そこにデータを転送するために、若しくはその両方を行うためにそれらに動作可能に結合される。コンピュータプログラム命令及びデータを具体化するためのコンピュータ可読媒体は、半導体メモリ装置、例えばEPROM、EEPROM、フラッシュメモリ装置、磁気ディスク、例えば内蔵ハードディスクやリムーバブルディスク、光磁気ディスク、及びCD ROMディスクやDVD−ROMディスクを例として含むあらゆる形式の不揮発性メモリを含む。プロセッサ及びメモリは専用論理回路によって補うことができ又は専用論理回路に組み込むことができる。上記のものの何れもASIC(特定用途向け集積回路)によって補うことができ又はASICに組み込むことができる。
利用者との対話を可能にするために、利用者に情報を表示するためのディスプレイ装置、例えばLCD(液晶ディスプレイ)モニタ、並びに利用者がそれによりコンピュータに入力を与えることができるキーボード及びポインティング装置、例えばマウスやトラックボールを有するコンピュータ上で実施形態を実装することができる。利用者との対話を可能にするために他の種類の装置も使用することができ、例えば利用者に与えられるフィードバックは任意の形式の感覚フィードバック、例えば視覚フィードバック、聴覚フィードバック、触覚フィードバックとすることができ、利用者からの入力は音響入力、音声入力、又は触覚入力を含む任意の形式で受信することができる。
実施形態は、例えばデータサーバとしてバックエンドコンポーネントを含む計算システムによって、ミドルウェアコンポーネント、例えばアプリケーションサーバを含む計算システムによって、フロントエンドコンポーネント、例えば利用者がそれにより実施形態の実装と対話することができるグラフィカルユーザインタフェースやウェブブラウザを有するクライアントコンピュータを含む計算システムによって、又はかかるバックエンドコンポーネント、ミドルウェアコンポーネント、若しくはフロントエンドコンポーネントの任意の組合せを含む計算システムによって実装することができる。システムのコンポーネントは、デジタルデータ通信の任意の形式又は媒体、例えば通信ネットワークによって相互接続され得る。通信ネットワークの例はローカルエリアネットワーク(LAN)及び広域ネットワーク(WAN)、例えばインターネットを含む。
システム及び方法又はその一部は、ハイパーテキスト転送プロトコル(HTTP)を利用するインターネット上のサーバの集合である「ワールドワイドウェブ」(ウェブ又はWWW)を使用し得る。HTTPは、テキスト、グラフィックス、画像、音声、ビデオ、ハイパーテキストマーク付け言語(HTML)、プログラム等の様々な形式の情報であり得る資源へのアクセスを利用者に提供する既知のアプリケーションプロトコルである。利用者によってリンクが指定されると、クライアントコンピュータがウェブサーバにTCP/IPリクエストを行い、HTMLに従ってフォーマットされた別のウェブページであり得る情報を受信する。利用者は画面上の指示に従うことによって、特定のデータを入力することによって、又は選択されたアイコンをクリックすることによって同じサーバ又は他のサーバ上の他のページにアクセスすることもできる。所与のコンポーネントに関する選択肢を利用者が選択できるようにするために、ウェブページを使用する実施形態にはチェックボックスやドロップダウンボックス等、当業者に知られている任意の種類の選択デバイスを使用できることにも留意すべきである。UNIXマシンを含めサーバは様々なプラットフォーム上で実行されるが、Windows 2000/2003、Windows NT、Sun、Linux、Macintosh等の他のプラットフォームも使用され得る。コンピュータの利用者はFirefox、Netscape Navigator、Microsoft Internet Explorer、Mosaicブラウザ等のブラウジングソフトウェアを使用することによってウェブ上のサーバ又はネットワーク上で入手可能な情報を閲覧することができる。計算システムはクライアント及びサーバを含み得る。クライアントとサーバとは概して互いに離れており、典型的には通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され互いにクライアント−サーバ間の関係を有するコンピュータプログラムによって生じる。
他の実施形態も本明細書及び特許請求の範囲の範囲及び趣旨に含まれる。例えばソフトウェアの性質により、上記の機能はソフトウェア、ハードウェア、ファームウェア、ハードワイヤリング、又はそれらのものの何れかの組合せを使用して実装することができる。機能の一部が様々な物理的位置に実装されるように、機能を実装する特徴は分散させることを含め様々な位置に物理的に配置することもできる。本明細書及び本願の全体を通して「1つの(a)」という語を使用することは限定的な意味で使用するのではなく、従って「1つの(a)」という語について複数の意味又は「1つ又は複数」の意味を排除することは意図しない。加えて、仮特許出願に対して優先権が主張される限りにおいて、仮特許出願は限定的ではなく本明細書に記載した技法をどのように実装し得るのかについての例を含むことを理解すべきである。
本発明の幾つかの実施形態を説明してきた。それでもなお、特許請求の範囲及び本明細書に記載した技法の趣旨及び範囲から逸脱することなしに様々な修正を加えることができることを当業者なら理解されよう。

Claims (38)

  1. 1つ又は複数のネットワーク化されたデータソースからのデータを記憶するためにデータを変換し、構造化データセット内にロードするための実行可能アプリケーションを自動生成するための方法であって、
    パラメータの値及びデータフィードを変換するための論理規則を指定する規則セットマッピングを指定する少なくとも1つのメタデータファイルを受信することであって、各データフィードはネットワーク化されたデータソースから受信される、受信すること及び構造化データセット内に結果をロードすること、
    前記パラメータの前記値及び前記データフィードを変換するための前記論理規則が各データフィードについて不整合でないことを検証すること、
    前記パラメータの前記検証済みの値及び各データフィードを前記構造化データセット内にロードするための変換レコードへと変換するための前記検証済みの論理規則に従って1つ又は複数の標準を指定するデータ規則を生成すること、及び
    ランタイム環境のための実行可能データ処理アプリケーションを生成することであって、前記実行可能データ処理アプリケーションは、
    1つ又は複数のデータソースからデータフィードを含むソースデータを受信し、
    前記生成したデータ規則に準拠する前記構造化データセットの前記1つ又は複数の標準を満たす変換データへと前記ソースデータを変換する
    ように構成可能である、生成すること
    を含む、方法。
  2. 前記実行可能データ処理アプリケーションがデータフローグラフ、データフローサブグラフ、又は複数のデータフローグラフを含む、請求項1に記載の方法。
  3. 前記構造化データセットがデータベースを含む、請求項1又は2に記載の方法。
  4. 前記ソースデータがデータレコードを含み、前記メタデータファイルのパラメータは前記ソースデータの前記データレコードに関するキー値を表す前記データレコードのフィールドを指定する、請求項1〜3の何れか一項に記載の方法。
  5. 前記メタデータファイルのパラメータが、前記ソースデータの前記キー値を表す前記フィールドと前記構造化データセットの別のキー値を表す前記構造化データセットの別のフィールドとの間のマッピングを指定する、請求項4に従属する請求項1〜3の何れか一項に記載の方法。
  6. 前記メタデータファイルのパラメータが前記キー値の形式を指定し、前記実行可能データ処理アプリケーションは前記パラメータによって指定された前記形式を有するように前記キー値を変換するように構成される、請求項4に従属する請求項1〜3の何れか一項に記載の方法。
  7. データ記憶域からパラメータのデフォルト値を取得すること、及び
    前記パラメータの前記デフォルト値に基づいて前記データ規則を定めること
    を更に含む、請求項1〜6の何れか一項に記載の方法。
  8. 論理規則が前記構造化データセットのフィールドに関する形式を指定し、前記フィールドはデータ履歴値を含む、請求項1〜7の何れか一項に記載の方法。
  9. 前記データ履歴値は、前記データ履歴値を含む前記構造化データセットが更新されるときを示すタイムスタンプを含む、請求項8に従属する請求項1〜7の何れか一項に記載の方法。
  10. 前記メタデータファイルを受信することが、前記メタデータファイルのヘッダー行を構文解析してどのパラメータが前記メタデータファイル内で指定値を有するのかを決定することを含む、請求項1〜9の何れか一項に記載の方法。
  11. 前記データ規則によって定められる前記構造化データセットのための前記1つ又は複数の標準を満たす構造化データへと前記ソースデータを変換することが、
    前記ソースデータの少なくとも2つの異なる部分が同一のキー値を指定すると判定すること、及び
    前記ソースデータの前記2つの異なる部分の少なくとも1つについて新たなキー値を指定することであって、前記新たなキー値は前記同一のキー値と異なり、前記構造化データセットのキーシーケンスに基づく、指定すること
    を含む、請求項1〜10の何れか一項に記載の方法。
  12. 前記少なくとも1つのメタデータファイルによって指定されていない1つ又は複数の追加のパラメータのための1つ又は複数のデフォルト値を取得することを含み、前記データ規則を定めることは前記1つ又は複数の追加のパラメータの前記デフォルト値に基づく、請求項1〜11の何れか一項に記載の方法。
  13. 前記メタデータファイルが、前記変換レコードの値を解釈するためのラベルを指定する1つ又は複数の意味規則を含む、請求項1〜12の何れか一項に記載の方法。
  14. 前記メタデータファイルの前記パラメータが、前記変換レコード内に含めるための許容データ値を指定するデータ品質パラメータを含む、請求項1〜13の何れか一項に記載の方法。
  15. 前記メタデータファイルの前記パラメータが、前記変換レコードのためのキーマッピングスキームを指定するデータ完全性パラメータを含む、請求項1〜14の何れか一項に記載の方法。
  16. 前記メタデータファイルの前記パラメータは、前記構造化データセットの前記変換レコードが読み出し最適化されるように構成されるか、又は書き込み最適化されるように構成されるかを指定するデータレポートパラメータを含む、請求項1〜15の何れか一項に記載の方法。
  17. 前記パラメータの前記値及び複数の前記データフィードを変換するための前記論理規則が各データフィードについて不整合でないことを検証することが、キーサロゲーション規則を指定するフィード固有メタデータ及びデータ履歴化規則を指定するロード固有メタデータの検査を行うことを含む、請求項1〜16の何れか一項に記載の方法。
  18. 前記実行可能データ処理アプリケーションが前記変換データを前記構造化データセット内にロードするように更に構成される、請求項1〜17の何れか一項に記載の方法。
  19. 前記実行可能アプリケーションを前記ランタイム環境によって実行することを更に含み、前記実行することが、
    1つ又は複数のデータソースからデータフィードを含む前記ソースデータを受信すること、及び
    前記1つ又は複数の標準を満たす前記変換データへと前記ソースデータを変換すること、
    前記データ規則に準拠する前記変換データを前記構造化データベース内にロードすること
    を含む、請求項1〜18の何れか一項に記載の方法。
  20. 1つ又は複数のネットワーク化されたデータソースからのデータを記憶するためにデータを変換し、構造化データセット内にロードするための実行可能データ処理アプリケーションを生成するためのシステムであって、
    パラメータの値及びデータフィードを変換するための論理規則を指定する少なくとも1つのメタデータファイルを受信することであって、各データフィードはネットワーク化されたデータソースから受信される、受信すること及び構造化データセット内に結果をロードすることを行うように構成されるインタフェースと、
    前記パラメータの前記値及び複数の前記データフィードを変換するための前記論理規則が各データフィードについて不整合でないことを検証すること、及び
    前記パラメータの前記検証済みの値及び前記データフィードの各データフィードを前記構造化データセット内にロードするための変換レコードへと変換するための前記検証済みの論理規則に従って1つ又は複数の標準を指定するデータ規則を生成すること
    を行うように構成されるコンフィギュレータと、
    ランタイム環境のための実行可能データ処理アプリケーションを生成するように構成されるアプリケーション生成エンジンであって、前記実行可能データ処理アプリケーションは、
    1つ又は複数のデータソースからデータフィードを含むソースデータを受信し、
    前記生成したデータ規則に準拠する前記構造化データセットのための前記1つ又は複数の標準を満たす変換データへと前記ソースデータを変換する
    ように構成可能である、アプリケーション生成エンジンと
    を含む、システム。
  21. 前記実行可能データ処理アプリケーションがデータフローグラフ、データフローサブグラフ、又は複数のデータフローグラフを含む、請求項20に記載のシステム。
  22. 前記構造化データセットがデータベースを含む、請求項20又は21に記載のシステム。
  23. 前記ソースデータがデータレコードを含み、前記メタデータファイルのパラメータは前記ソースデータの前記データレコードに関するキー値を表す前記データレコードのフィールドを指定する、請求項20〜22の何れか一項に記載のシステム。
  24. 前記メタデータファイルの前記パラメータのパラメータが、前記キー値を表す前記ソースデータの前記フィールドと前記構造化データセットの別のキー値を表す前記構造化データセットの別のフィールドとの間のマッピングを指定する、請求項23に従属する請求項20〜22の何れか一項に記載のシステム。
  25. 前記メタデータファイルの前記パラメータのパラメータが前記構造化データセットの構造化データセットのための前記キー値の形式を指定し、前記実行可能データ処理アプリケーションは前記パラメータによって指定された前記形式を有するように前記キー値を変換するように構成される、請求項23に従属する請求項20〜22の何れか一項に記載のシステム。
  26. 前記コンフィギュレータが、
    データ記憶域からパラメータのデフォルト値を取得し、
    前記パラメータの前記デフォルト値に基づいて前記データ規則を定める
    ように更に構成される、請求項20〜25の何れか一項に記載のシステム。
  27. 論理規則が前記構造化データセットのフィールドに関する形式を指定し、前記フィールドは履歴データを含む、請求項20〜26の何れか一項に記載のシステム。
  28. 前記メタデータファイルを受信することが、前記メタデータファイルのヘッダー行を構文解析してどのパラメータが前記メタデータファイル内で指定値を有するのかを決定することを含む、請求項20〜27の何れか一項に記載のシステム。
  29. 前記データ規則によって定められる前記構造化データセットのための前記1つ又は複数の標準を満たす変換データへと前記ソースデータを変換することが、
    前記ソースデータの少なくとも2つの異なる部分が同一のキー値を指定すると判定すること、及び
    前記ソースデータの前記2つの異なる部分の少なくとも1つについて新たなキー値を指定することであって、前記新たなキー値は前記同一のキー値と異なり、前記構造化データセットのキーシーケンスに基づく、指定すること
    を含む、請求項20〜28の何れか一項に記載のシステム。
  30. 前記少なくとも1つのメタデータファイルによって指定されていない1つ又は複数の追加のパラメータのための1つ又は複数のデフォルト値を取得することを含み、前記データ規則を定めることは前記1つ又は複数の追加のパラメータの前記デフォルト値に基づく、請求項20〜29の何れか一項に記載のシステム。
  31. 前記メタデータファイルが、前記構造化データセットのデータの解釈を指定する1つ又は複数の意味規則を含む、請求項20〜30の何れか一項に記載のシステム。
  32. 前記メタデータファイルの前記パラメータが、前記構造化データセット内に含めるための許容データ値を指定するデータ品質パラメータを含む、請求項20〜31の何れか一項に記載のシステム。
  33. 前記メタデータファイルの前記パラメータが、前記構造化データセットのためのキーマッピングスキームを指定するデータ完全性パラメータを含む、請求項20〜32の何れか一項に記載のシステム。
  34. 前記メタデータファイルの前記パラメータは、前記構造化データセットの前記構造化データセットが読み出し最適化されるように構成されるか、又は書き込み最適化されるように構成されるかを指定するデータレポートパラメータを含む、請求項20〜33の何れか一項に記載のシステム。
  35. 前記パラメータの前記値及び複数の前記データフィードを変換するための前記論理規則が各データフィードについて不整合でないことを検証することが、キーサロゲーション規則を指定するフィード固有メタデータ及びデータ履歴化規則を指定するロード固有メタデータの検査を行うことを含む、請求項20〜34の何れか一項に記載のシステム。
  36. 前記実行可能データ処理アプリケーションが前記変換データを前記構造化データセット内にロードするように更に構成される、請求項20〜35の何れか一項に記載のシステム。
  37. 前記実行可能アプリケーションを前記ランタイム環境によって実行するように構成可能なランタイムシステムを更に含み、前記実行することが、
    1つ又は複数のデータソースからデータフィードを含む前記ソースデータを受信すること、及び
    前記1つ又は複数の標準を満たす前記変換データへと前記ソースデータを変換すること、
    前記データ規則に準拠する前記変換データを前記構造化データベース内にロードすること
    を含む、請求項20〜36の何れか一項に記載のシステム。
  38. 1つ又は複数のネットワーク化されたデータソースからのデータを記憶するためにデータを変換し、構造化データセット内にロードするための実行可能データ処理アプリケーションを生成するための操作を実行するように構成される1つ又は複数のプロセッサによって実行可能な命令を記憶する、1つ又は複数の非一時的コンピュータ可読媒体であって、前記操作は、
    パラメータの値及びデータフィードを変換するための論理規則を指定する少なくとも1つのメタデータファイルを受信することであって、各データフィードはネットワーク化されたデータソースから受信される、受信すること及び構造化データセット内に結果をロードすること、
    前記パラメータの前記値及び複数の前記データフィードを変換するための前記論理規則が各データフィードについて不整合でないことを検証すること、
    前記パラメータの前記検証済みの値及び前記データフィードの各データフィードを構造化データセットへと変換するための前記検証済みの論理規則に従って1つ又は複数の標準を指定するデータ規則を生成すること、及び
    ランタイム環境のための実行可能データ処理アプリケーションを生成することであって、前記実行可能データ処理アプリケーションは、
    1つ又は複数のデータソースからデータフィードを含むソースデータを受信し、
    前記生成したデータ規則に準拠する前記構造化データセットのための前記1つ又は複数の標準を満たす変換データへと前記ソースデータを変換する
    ように構成可能である、生成すること
    を含む、1つ又は複数の非一時的コンピュータ可読媒体。
JP2020572555A 2018-07-19 2019-07-19 データウェアハウスへの発行 Active JP7464543B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862700684P 2018-07-19 2018-07-19
US62/700,684 2018-07-19
PCT/US2019/042669 WO2020018948A1 (en) 2018-07-19 2019-07-19 Publishing to a data warehouse

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2024053685A Division JP2024081739A (ja) 2018-07-19 2024-03-28 データウェアハウスへの発行

Publications (2)

Publication Number Publication Date
JP2021530766A true JP2021530766A (ja) 2021-11-11
JP7464543B2 JP7464543B2 (ja) 2024-04-09

Family

ID=67539615

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020572555A Active JP7464543B2 (ja) 2018-07-19 2019-07-19 データウェアハウスへの発行

Country Status (8)

Country Link
US (2) US11893036B2 (ja)
EP (1) EP3824398A1 (ja)
JP (1) JP7464543B2 (ja)
CN (1) CN112654977A (ja)
AU (1) AU2019307745B2 (ja)
CA (1) CA3106682A1 (ja)
SG (1) SG11202012622WA (ja)
WO (1) WO2020018948A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10878493B2 (en) * 2016-06-21 2020-12-29 Erland Wittkotter Sample data extraction
US10867343B1 (en) 2018-08-30 2020-12-15 Morgan Stanley Services Group Inc. Metadata driven orchestration engine
US10915302B2 (en) * 2018-12-11 2021-02-09 The Mathworks, Inc. Identification and visualization of associations among code generated from a model and sources that affect code generation
US11061856B2 (en) * 2019-07-03 2021-07-13 Bank Of America Corporation Data ingestion system
US11113254B1 (en) * 2019-09-30 2021-09-07 Amazon Technologies, Inc. Scaling record linkage via elimination of highly overlapped blocks
US11928400B2 (en) * 2020-05-14 2024-03-12 The Boeing Company Information management in MBSE modeling tools
US11620305B2 (en) * 2021-03-25 2023-04-04 Salesforce.Com, Inc Ruleset engine for generating homogeneous data sets
CN114731340A (zh) * 2021-04-30 2022-07-08 商汤国际私人有限公司 交互信息的处理方法、装置、设备及存储介质
US20230039999A1 (en) * 2021-08-06 2023-02-09 Bank Of America Corporation System and method for data warehouse storage capacity optimization based on usage frequency of data objects
CN114048260B (zh) * 2022-01-12 2022-09-09 南湖实验室 一种数据湖与关系型数据库互联的方法
US11947559B1 (en) 2022-10-10 2024-04-02 Bank Of America Corporation Dynamic schema identification to process incoming data feeds in a database system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06290100A (ja) * 1993-03-31 1994-10-18 Hitachi Ltd データベースシステム
JPH07175791A (ja) * 1993-12-17 1995-07-14 Ricoh Co Ltd 文書変換装置
JP2000298583A (ja) * 1999-04-15 2000-10-24 Nec Corp データ変換処理システム
JP2010524134A (ja) * 2007-04-10 2010-07-15 アビニシオ テクノロジー エルエルシー ビジネスルールの編集およびコンパイルの、方法、コンピュータプログラム、およびシステム
US20130346982A1 (en) * 2012-06-22 2013-12-26 Microsoft Corporation Generating a program
JP2017041029A (ja) * 2015-08-18 2017-02-23 富士通株式会社 項目値対応づけ処理方法、項目値対応づけ処理プログラムおよび情報処理装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US6748583B2 (en) 2000-12-27 2004-06-08 International Business Machines Corporation Monitoring execution of an hierarchical visual program such as for debugging a message flow
AU2004275334B9 (en) * 2003-09-15 2011-06-16 Ab Initio Technology Llc. Data Profiling
WO2006076520A2 (en) * 2005-01-14 2006-07-20 International Business Machines Corporation Sharable multi-tenant reference data utility and repository, including value enhancement and on-demand data delivery and methods of operation
US20060235714A1 (en) * 2005-01-14 2006-10-19 Adinolfi Ronald E Enabling flexible scalable delivery of on demand datasets
US7716630B2 (en) 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
CA2771899C (en) 2009-09-16 2017-08-01 Ab Initio Technology Llc Mapping dataset elements
WO2011081776A1 (en) 2009-12-14 2011-07-07 Ab Initio Technology Llc Specifying user interface elements
US10671628B2 (en) * 2010-07-09 2020-06-02 State Street Bank And Trust Company Systems and methods for data warehousing
CN102902750A (zh) 2012-09-20 2013-01-30 浪潮齐鲁软件产业有限公司 一种通用的数据抽取转换方法
US10489360B2 (en) * 2012-10-17 2019-11-26 Ab Initio Technology Llc Specifying and applying rules to data
US10176234B2 (en) 2014-11-05 2019-01-08 Ab Initio Technology Llc Impact analysis
EP3278213A4 (en) * 2015-06-05 2019-01-30 C3 IoT, Inc. SYSTEMS, METHODS AND DEVICES FOR AN APPLICATION DEVELOPMENT PLATFORM OF AN INTERNET OF THE THINGS OF A COMPANY
KR102372219B1 (ko) * 2016-04-25 2022-03-08 콘비다 와이어리스, 엘엘씨 서비스 레이어에서의 데이터 스트림 애널리틱스
WO2018026933A1 (en) * 2016-08-02 2018-02-08 Hexanika System and method for collecting, consolidating and processing data
US11521112B2 (en) * 2018-03-15 2022-12-06 Georgia Tech Research Corporation Methods and systems for integrating machine learning/analytics accelerators and relational database systems
US11003429B1 (en) * 2019-02-04 2021-05-11 Amazon Technologies, Inc. Compile-time scheduling

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06290100A (ja) * 1993-03-31 1994-10-18 Hitachi Ltd データベースシステム
JPH07175791A (ja) * 1993-12-17 1995-07-14 Ricoh Co Ltd 文書変換装置
JP2000298583A (ja) * 1999-04-15 2000-10-24 Nec Corp データ変換処理システム
JP2010524134A (ja) * 2007-04-10 2010-07-15 アビニシオ テクノロジー エルエルシー ビジネスルールの編集およびコンパイルの、方法、コンピュータプログラム、およびシステム
US20130346982A1 (en) * 2012-06-22 2013-12-26 Microsoft Corporation Generating a program
JP2017041029A (ja) * 2015-08-18 2017-02-23 富士通株式会社 項目値対応づけ処理方法、項目値対応づけ処理プログラムおよび情報処理装置

Also Published As

Publication number Publication date
AU2019307745A1 (en) 2021-01-14
SG11202012622WA (en) 2021-01-28
JP7464543B2 (ja) 2024-04-09
US20200026711A1 (en) 2020-01-23
US11893036B2 (en) 2024-02-06
EP3824398A1 (en) 2021-05-26
AU2019307745B2 (en) 2024-04-04
US20240104113A1 (en) 2024-03-28
CN112654977A (zh) 2021-04-13
CA3106682A1 (en) 2020-01-23
WO2020018948A1 (en) 2020-01-23

Similar Documents

Publication Publication Date Title
JP7464543B2 (ja) データウェアハウスへの発行
US11599337B2 (en) Dataflow graph configuration
US5418957A (en) Network data dictionary
US11726969B2 (en) Matching metastructure for data modeling
US9430114B1 (en) Data transformation system, graphical mapping tool, and method for creating a schema map
US8140545B2 (en) Data organization and evaluation using a two-topology configuration
US20080005197A1 (en) Dynamic report mapping apparatus to physical data source when creating report definitions for information technology service management reporting for peruse of report definition transparency and reuse
US9251222B2 (en) Abstracted dynamic report definition generation for use within information technology infrastructure
US20200311095A1 (en) System and method for automated source code generation for database conversion
US10445675B2 (en) Confirming enforcement of business rules specified in a data access tier of a multi-tier application
US20210209098A1 (en) Converting database language statements between dialects
KR20060045622A (ko) 컴퓨터화된 재무 시스템의 추출, 변환 및 로딩 설계자 모듈
US20230350899A1 (en) Query engine for recursive searches in a self-describing data system
Tody et al. Simple spectral access protocol version 1.1
Chamanara et al. Quis: in-situ heterogeneous data source querying
Sachdeva Practical ELK Stack
US11977473B2 (en) Providing a pseudo language for manipulating complex variables of an orchestration flow
US11853756B2 (en) Calculation engine for performing calculations based on dependencies in a self-describing data system
JP2024081739A (ja) データウェアハウスへの発行
Lu et al. Enforcing data consistency in data integration systems by XQuery trigger service

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220715

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230703

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230928

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20231130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231225

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240328

R150 Certificate of patent or registration of utility model

Ref document number: 7464543

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150