JP6434960B2 - フローベースのetlおよびエンティティリレーションシップベースのetlの組合せのサポート - Google Patents

フローベースのetlおよびエンティティリレーションシップベースのetlの組合せのサポート Download PDF

Info

Publication number
JP6434960B2
JP6434960B2 JP2016513952A JP2016513952A JP6434960B2 JP 6434960 B2 JP6434960 B2 JP 6434960B2 JP 2016513952 A JP2016513952 A JP 2016513952A JP 2016513952 A JP2016513952 A JP 2016513952A JP 6434960 B2 JP6434960 B2 JP 6434960B2
Authority
JP
Japan
Prior art keywords
data
entity
attributes
logical design
information
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.)
Active
Application number
JP2016513952A
Other languages
English (en)
Other versions
JP2016529574A (ja
JP2016529574A5 (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 JP2016529574A publication Critical patent/JP2016529574A/ja
Publication of JP2016529574A5 publication Critical patent/JP2016529574A5/ja
Application granted granted Critical
Publication of JP6434960B2 publication Critical patent/JP6434960B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis

Description

発明の背景
ペースが一層速くなっている今日のビジネス環境において、組織はより特殊化されたソフトウェアアプリケーションを使用する必要がある。さらに、組織は、異種混合のハードウェアプラットフォームおよびシステム上でこれらのアプリケーションの共存を保証する必要があるとともに、アプリケーションとシステムとの間でデータを共有する能力を保証する必要がある。
したがって、データ統合シナリオの開発に関係する問題を解決することが望まれており、そのいくつかが本願明細書において論じられ得る。さらに、データ統合シナリオの開発に関係する障害を低減することが望まれており、そのいくつかが本願明細書において論じられ得る。
発明の概要
この開示の以下の部分は、少なくとも主題の基本的な理解を提供する目的のために、この開示において発見される1つ以上のイノベーション、実施形態および/または例の簡素化された概要を提供する。この概要は、如何なる特定の実施形態または例の広範囲な概要も提供することを試みてはいない。さらに、この概要は、実施形態または例の主な/決定的な要素を識別するようには意図されておらず、または、この開示の主題の範囲を定めるようには意図されていない。したがって、この概要の1つの目的は、この開示において発見されるいくつかのイノベーション、実施形態および/または例を簡素化された形で、後述されるさらなる詳細な説明の前置きとして提供することであり得る。
さまざまな実施形態において、ユーザはデータ統合システムによって、プラットホームおよび技術に依存しない論理設計を作成し得る。ユーザは、どのようにデータがソースとターゲットとの間に流れることをユーザが望むかをハイレベルで規定する論理設計を作成し得る。ユーザのインフラストラクチャを考慮して、ツールが論理設計を分析し、物理的設計を作成し得る。論理設計は、設計における各ソースおよびターゲットに対応する複数のコンポーネントと、ジョインまたはフィルタのようなオペレーションと、アクセスポイントとを含み得る。物理的設計に転送された際の各コンポーネントは、データに対してオペレーションを行なうようコードを生成する。存在する技術(たとえばSQLサーバ、オラクル、Hadoopなど)と使用される言語(SQL、pigなど)とに依存して、各コンポーネントによって生成されるコードは異なり得る。
1つの局面において、データ統合システムのユーザは、始めから終わりまで、論理設計における各コンポーネントにて、すべてのデータ属性を特定する必要はない。データ統合システムは、論理設計を通って流れる情報を完全に宣言する必要性を回避する、プロジェクタおよびセレクタタイプのような複数のコンポーネントタイプを提供する。データ統合システムは、所定のコンポーネントタイプによって表わされるオペレーションにて何の属性が必要とされるか決定し得る。これは設計およびメンテナンスの両方を簡素化する。さまざまな局面において、既存のRDBMSリソースと、パフォーマンスの向上を達成するために別個のプロプラエタリETLサーバの必要性を回避する性能とをレバレッジするデータ変換および移行が提供される。
一実施形態において、データマッピングの生成を促進する方法は、論理設計のコンポーネントとしてエンティティリレーションシップのセットを特定する情報を受け取ることを含む。エンティティリレーションシップのセットに基づいて、等価なデータフローモデルが判定される。論理フロー設計において等価なデータフローモデルを示す情報が生成される。データソースの属性同士の間のリレーションシップを宣言する情報に基づいて、エンティティリレーションシップのセットを表わすデータセットの1つ以上の属性が導き出され得る。
さらに別の実施形態において、論理設計を通って流れる情報の形を変更するオペレーションを示す情報を含む論理設計の1つ以上のコンポーネントを特定する情報が受け取られ得る。論理設計を通って流れる情報のフローを制御するが論理設計を通って流れる情報の形を変更しないオペレーションを示す情報を含む、論理設計の1つ以上のコンポーネントを特定する情報が受け取られ得る。ターゲットデータストアに格納されるデータの1つ以上の属性を有するターゲットコンポーネントを示す情報を含む、論理設計の1つ以上のコンポーネントを特定する情報が受け取られ得る。
1つの局面において、論理フロー設計において等価なデータフローモデルを示す情報を生成することは、下流のコンポーネントに属性のリストをエクスポートすることを含み得る。別の局面では、1つ以上のリレーションシップの導入による論理設計における変更が受け取られ得る。その後、更新された等価なデータフローモデルが判定され得る。
一実施形態において、データマッピングの生成を促進するためのコンピュータ実行可能コードを格納する一時的でないコンピュータ読取可能媒体は、論理設計のコンポーネントとしてエンティティリレーションシップのセットを特定する情報を受け取るためのコードと、エンティティリレーションシップのセットに基づいて等価なデータフローモデルを判定するためのコードと、論理フロー設計において等価なデータフローモデルを示す情報を生成するためのコードとを含む。
さらに別の実施形態において、データマッピングの生成を促進するシステムは、プロセッサと、命令を格納するメモリとを含み、命令は、プロセッサによって実行されると、論理設計のコンポーネントとしてエンティティリレーションシップのセットを特定する情報を受け取り、エンティティリレーションシップのセットに基づいて等価なデータフローモデルを判定し、論理フロー設計において等価なデータフローモデルを示す情報を生成するように、プロセッサを構成する。
一実施形態において、データマッピングの生成を促進するシステムは、論理設計のコンポーネントとしてエンティティリレーションシップのセットを特定する情報を受け取るように構成される受取部と、エンティティリレーションシップのセットに基づいて等価なデータフローモデルを判定するように構成される判定部と、論理フロー設計において等価なデータフローモデルを示す情報を生成するように構成される生成部とを含む。
1つの局面において、システムはさらに、データソースの属性同士の間のリレーションシップを宣言する情報に基づいて、エンティティリレーションシップのセットを表わすデータセットの1つ以上の属性を導き出すように構成される導出部を含み得る。1つの局面において、受取部はさらに、論理設計を通って流れる情報の形を変更するオペレーションを示す情報を含む論理設計の1つ以上のコンポーネントを特定する情報を受け取るように構成される。1つの局面において、受取部はさらに、論理設計を通って流れる情報のフローを制御するが論理設計を通って流れる情報の形を変更しないオペレーションを示す情報を含む、論理設計の1つ以上のコンポーネントを特定する情報を受け取るように構成される。
1つの局面において、受取部はさらに、ターゲットデータストアに格納されるデータの1つ以上の属性を有するターゲットコンポーネントを示す情報を含む、論理設計の1つ以上のコンポーネントを特定する情報を受け取るように構成される。1つの局面において、生成部は、下流のコンポーネントに属性のリストをエクスポートするように構成されるエクスポート部を含む。1つの局面において、受取部はさらに、1つ以上のリレーションシップの導入による論理設計における変更を受け取るように構成され、判定部はさらに、更新された等価なデータフローモデルを判定するように構成される。
一実施形態において、データマッピングの生成を促進するシステムは、論理設計のコンポーネントとしてエンティティリレーションシップのセットを特定する情報を受け取るための手段と、エンティティリレーションシップのセットに基づいて等価なデータフローモデルを判定するための手段と、論理フロー設計において等価なデータフローモデルを示す情報を生成するための手段とを含む。1つの局面において、システムは、データソースの属性同士の間のリレーションシップを宣言する情報に基づいて、エンティティリレーションシップのセットを表わすデータセットの1つ以上の属性を導き出すための手段をさらに含む。
別の局面において、システムは、論理設計を通って流れる情報の形を変更するオペレーションを示す情報を含む論理設計の1つ以上のコンポーネントを特定する情報を受け取るための手段をさらに含む。別の局面において、システムは、論理設計を通って流れる情報のフローを制御するが論理設計を通って流れる情報の形を変更しないオペレーションを示す情報を含む、論理設計の1つ以上のコンポーネントを特定する情報を受け取るための手段をさらに含む。
別の局面において、システムは、ターゲットデータストアに格納されるデータの1つ以上の属性を有するターゲットコンポーネントを示す情報を含む、論理設計の1つ以上のコンポーネントを特定する情報を受け取るための手段をさらに含む。別の局面において、論理フロー設計において等価なデータフローモデルを示す情報を生成するための手段は、下流のコンポーネントに属性のリストをエクスポートするための手段を含む。別の局面において、システムは、1つ以上のリレーションシップの導入による論理設計における変更を受け取るための手段と、更新された等価なデータフローモデルを判定するための手段とをさらに含む。
この開示の主題の性質および均等物(ならびに提供される如何なる固有または明白な利点および改良)のさらなる理解は、この開示の残りの部分、任意の添付の図面および請求の範囲への参照により、上記のセクションに加えて実現されるべきである。
この開示において発見されるイノベーション、実施形態および/または例を適切に記載および説明するために、1つ以上の添付の図面に対して参照がなされ得る。1つ以上の添付の図面を説明するよう用いられる付加的な詳細または例は、特許請求される発明のいずれか、ここで記載される実施形態および/または例のいずれか、またはこの開示において示されるいずれかのイノベーションの現在理解されている最良の形態の範囲への限定と見なされるべきではない。
本発明の実施形態を組み込み得るシステムの簡略図である。 本発明の実施形態に従ったデータ統合システムのブロック図である。 本発明の実施形態に従った、データ統合システムを実現するために使用され得るハードウェア/ソフトウェアスタックの簡略ブロック図である。 データ統合シナリオが本発明のさまざまな実施形態において作成され得るさまざまな異種混合のデータソースを有する環境のブロック図である。 データ統合システムによって実行され得る従来のデータ統合処理における簡略化されたデータフローを示す図である。 データ統合システムによって実行され得る従来のデータ統合処理における簡略化されたデータフローを示す図である。 本発明の実施形態に従った、データ統合システムによって実行され得る次世代データ統合処理における簡略化されたデータフローを示す図である。 本発明の実施形態に従った、データ統合システムによって実行され得る次世代データ統合処理における簡略化されたデータフローを示す図である。 本発明に従った一実施形態におけるODIスタジオとデータ統合システムのリポジトリとの間の相互作用の簡略ブロック図である。 本発明の実施形態に従った、データ統合シナリオを作成するための方法のフローチャートを示す図である。 本発明の実施形態に従った、データ統合シナリオを作成するためのユーザインターフェイスのスクリーンショットの図である。 本発明の実施形態に従った、マッピングを作成するための方法のフローチャートを示す図である。 本発明の実施形態に従った、データ統合シナリオにおいてマッピング情報を提供するためのユーザインターフェイスのスクリーンショットの図である。 本発明の実施形態に従った、データ統合シナリオにおいてフロー情報を提供するためのユーザインターフェイスのスクリーンショットの図である。 本発明の実施形態に従った、パッケージを作成するための方法のフローチャートを示す図である。 本発明の実施形態に従った、データ統合シナリオにおいてパッケージシーケンス情報を提供するためのユーザインターフェイスのスクリーンショットの図である。 本発明の実施形態に従った、データ統合シナリオを展開するための方法のフローチャートを示す図である。 本発明に従った一実施形態における組み合わされたフローベースおよびエンティティベースのマッピングの簡略ブロック図である。 本発明の実施形態に従った、組み合わされたフローベースおよびエンティティベースのマッピングを生成するための方法のフローチャートを示す図である。 本発明に従った一実施形態におけるデータセットビューを伴う図16のマッピングの簡略ブロック図である。 本発明に従った一実施形態における組み合わされたフローベースおよびエンティティベースのマッピングについての論理設計の簡略ブロック図である。 本発明に従った一実施形態における組み合わされたフローベースおよびエンティティベースのマッピングについての物理設計の簡略ブロック図である。 本発明の実施形態に従った、組み合わされたフローベースおよびエンティティベースのマッピングの物理設計を生成するための方法のフローチャートを示す図である。 静的なE−Rモデルと動的なETLモデルとの間のリレーションシップを示す図である。 一実施形態における自動的な変換システムのトップレベルの設計チャートを提供する図である。 一般的なE−R表記法での3ウェイリレーションシップを示す図である。 一般的なE−R表記法での3ウェイリレーションシップを示す図である。 一般的なE−R表記法での3ウェイリレーションシップに対する等価なものを示す図である。 一般的なE−R表記法での3ウェイリレーションシップに対する等価なものを示す図である。 バイナリリレーションシップの連なりを使用して3ウェイリレーションシップに対する等価なものを示す図である。 標準的なE−R表記法を使用して3ウェイリレーションシップを示す図である。 図26におけるエンティティについて作成される各テーブルにおけるロウを示す図である。 図28Aは、一実施形態におけるE−R表記法での3ウェイリレーションシップを示す図であり、図28Bは、一実施形態における3つのエンティティから生じるデータを有するデータフローを示す図である。 さまざまなデータベースモデリング方法およびそれらのセマンティックコンテンツの間でリレーションシップをレイアウトするダイアグラムを示す図である。 本発明の実施形態を実施するために使用され得るコンピュータシステムの簡略ブロック図である。 本発明の実施形態に従ったデータマッピングの生成を促進するためのシステムの簡略ブロック図である。
発明の詳細な説明
イントロダクション
さまざまな実施形態において、ユーザはデータ統合システムによって、プラットホームおよび技術に依存しない論理設計を作成し得る。ユーザは、どのようにデータがソースとターゲットとの間に流れることをユーザが望むかをハイレベルで規定する論理設計を作成し得る。ユーザのインフラストラクチャを考慮して、ツールが論理設計を分析し、物理的設計を作成し得る。論理設計は、設計における各ソースおよびターゲットに対応する複数のコンポーネントと、ジョインまたはフィルタのようなオペレーションと、アクセスポイントとを含み得る。物理的設計に転送された際の各コンポーネントは、データに対してオペレーションを行なうようコードを生成する。存在する技術(たとえばSQLサーバ、オラクル、Hadoopなど)と使用される言語(SQL、pigなど)とに依存して、各コンポーネントによって生成されるコードは異なり得る。
1つの局面において、データ統合システムのユーザは、始めから終わりまで、論理設計における各コンポーネントにて、すべてのデータ属性を特定する必要はない。データ統合システムは、論理設計を通って流れる情報を完全に宣言する必要性を回避する、プロジェクタおよびセレクタタイプのような複数のコンポーネントタイプを提供する。データ統合システムは、所定のコンポーネントタイプによって表わされるオペレーションにて何の属性が必要とされるか決定し得る。これは設計およびメンテナンスの両方を簡素化する。
図1は、この開示において発見されるイノベーション、実施形態および/または例のいずれかの実施形態を組み込み得るか、または、実施形態に組み込まれ得るシステム100の簡略図である。図1は、本発明を組み込む実施形態を単に例示しており、請求の範囲において記載される本発明の範囲を限定しない。当業者は、他の変形例、修正例および代替例を認識するであろう。
一実施形態において、システム100は1つ以上のユーザコンピュータ110(たとえばコンピュータ110A、110Bおよび110C)を含む。ユーザコンピュータ110は、(任意の適切な種類のマイクロソフト社のWindows(登録商標)および/またはアップル社のMacintosh(登録商標)オペレーティングシステムを実行するパーソナルコンピュータおよび/もしくはラップトップコンピュータを単に例示として含む)汎用のパーソナルコンピュータ、ならびに/または、さまざまな商業的に利用可能なUNIX(登録商標)もしくはUNIXライクなオペレーティングシステムのいずれかを実行するワークステーションコンピュータであり得る。これらのユーザコンピュータ110はさらに、本発明の方法を行なうように構成される1つ以上のアプリケーションと、1つ以上のオフィスアプリケーション、データベースクライアントおよび/またはサーバアプリケーションならびにウェブブラウザアプリケーションとを含むさまざまなアプリケーションのうちのいずれかを有し得る。
代替的には、ユーザコンピュータ110は、ネットワーク(たとえば以下に記載される通信ネットワーク120)を介して通信することができ、ならびに/または、ウェブページもしくは他のタイプの電子文書を表示およびナビゲートすることができるシンクライアントコンピュータ、インターネットが有効化された携帯電話、および/または携帯情報端末といった任意の他の電子デバイスであり得る。例示的なシステム100は3つのユーザコンピュータを有するよう示されているが、任意の数のユーザコンピュータまたはデバイスがサポートされ得る。
本発明のある実施形態は、通信ネットワーク120を含み得るネットワーク化された環境において動作する。通信ネットワーク120は、TCP/IP、SNA、IPX、およびAppleTalkなどを含むがこれらに限定されないさまざまな商業的に利用可能なネットワークプロトコルのいずれかを用いるデータ通信をサポートし得る、当業者が精通している任意のタイプのネットワークであり得る。単に例示として、通信ネットワーク120は、イーサネット(登録商標)ネットワークおよび/もしくはトークンリングネットワークなどを含むがこれらに限定されないローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク、仮想プライベートネットワーク(VPN:virtual private network)を含むがこれに限定されない仮想ネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話ネットワーク(「PSTN:public switched telephone network」)、赤外線ネットワーク、IEEE802.11スイートのプロトコル、当該技術において公知であるBluetooth(登録商標)プロトコル、および/もしくは任意の他の無線プロトコルのいずれかの下で動作するネットワークを含むがこれに限定されないワイヤレスネットワーク、ならびに/または、これらおよび/もしくは他のネットワークの任意の組合せであり得る。
本発明の実施形態は、1つ以上のサーバコンピュータ130(たとえばコンピュータ130Aおよび130B)を含み得る。サーバコンピュータ130の各々は、上で論じられたオペレーティングシステムのいずれかを含むがこれらに限定されないオペレーティングシステムと、任意の商業的に利用可能なサーバオペレーティングシステムとを有するよう構成され得る。サーバコンピュータ130の各々はさらに、1つ以上のクライアント(たとえばユーザコンピュータ110)および/または他のサーバ(たとえばサーバコンピュータ130)にサービスを提供するように構成され得る1つ以上のアプリケーションを実行し得る。
単に例示として、サーバコンピュータ130の1つは、単に例示としてウェブページまたは他の電子文書についてユーザコンピュータ110からの要求を処理するよう使用され得るウェブサーバであり得る。ウェブサーバはさらに、HTTPサーバ、FTPサーバ、CGIサーバ、データベースサーバ、およびJava(登録商標)サーバなどを含むさまざまなサーバアプリケーションを実行し得る。本発明のいくつかの実施形態において、ウェブサーバは、本発明の方法を実行するよう、ユーザコンピュータ110の1つ以上の上でウェブブラウザ内で動作され得るウェブページを取り扱うように構成され得る。
いくつかの実施形態において、サーバコンピュータ130は、ユーザコンピュータ110および/または他のサーバコンピュータ130の1つ以上の上で実行される、クライアントによってアクセス可能な1つ以上のアプリケーションを含み得る1つ以上のファイルおよび/またはアプリケーションサーバを含み得る。単に例示として、サーバコンピュータ130の1つ以上は、ユーザコンピュータ110および/または他のサーバコンピュータ130に応答して、(いくつかの場合において本発明の方法を行なうように構成され得る)ウェブアプリケーションを含むがこれらに限定されないプログラムまたはスクリプトを実行可能な1つ以上の汎用コンピュータであり得る。
単に例示として、ウェブアプリケーションは、Java、CもしくはC++のような任意のプログラミング言語、および/または、Perl、Python、もしくはTCLのような任意のスクリプト言語、および、任意のプログラミング/スクリプト言語の組合せで記述された1つ以上のスクリプトまたはプログラムとして実現され得る。アプリケーションサーバはさらに、オラクル、マイクロソフト、およびIBMなどから商業的に利用可能なものを含むがこれらに限定されないデータベースサーバを含み得、当該データベースサーバは、ユーザコンピュータ110の1つおよび/またはサーバコンピュータ130の別の1つの上で実行されるデータベースクライアントからの要求を処理し得る。
いくつかの実施形態において、アプリケーションサーバは、本発明の実施形態に従って情報を表示するために動的にウェブページを作成し得る。アプリケーションサーバによって提供されるデータは、(たとえばHTML、XML、Javascript、AJAXなどを含む)ウェブページとしてフォーマットされ得るか、および/または、(たとえば上述したような)ウェブサーバを介してユーザコンピュータ110の1つへ転送され得る。同様に、ウェブサーバは、ユーザコンピュータ110の1つからウェブページ要求および/もしくは入力データを受け取り得、ならびに/または、アプリケーションサーバへウェブページ要求および/もしくは入力データを転送する。
さらに別の実施形態に従うと、サーバコンピュータ130の1つ以上は、ファイルサーバとして機能し得、ならびに/または、ユーザコンピュータ110の1つおよび/もしくはサーバコンピュータ130の別の1つ上で実行されるアプリケーションによって組み込まれる、本発明の方法を実現するのに必要なファイルの1つ以上を含み得る。代替的には、当業者が理解するように、ファイルサーバは、すべての必要なファイルを含み得、ユーザコンピュータ110および/またはサーバコンピュータ130の1つ以上によってそのようなアプリケーションが遠隔から呼び出されることを可能にする。なお、本願明細書におけるさまざまなサーバ(たとえばアプリケーションサーバ、データベースサーバ、ウェブサーバ、ファイルサーバなど)について記載される機能は、インプリメンテーションに特有のニーズおよびパラメータに依存して、単一のサーバおよび/または複数の特殊化されるサーバによって実行され得る。
ある実施形態において、システム100は、1つ以上のデータベース140(たとえばデータベース140Aおよび140B)を含み得る。データベース140の位置は任意である。すなわち、単に例示として、データベース140Aは、サーバコンピュータ130A(および/またはユーザコンピュータ110の1つ以上)に対してローカルな(および/または存在している)記憶媒体上に存在し得る。代替的には、データベース140Bは、(たとえば通信ネットワーク120を介して)ユーザコンピュータ110およびサーバコンピュータ130の1つ以上と通信し得る限り、ユーザコンピュータ110およびサーバコンピュータ130のいずれかまたはすべてからリモートであり得る。実施形態の特定の集合では、データベース140は、当業者が精通しているストレージエリアネットワーク(SAN)に存在し得る。(同様に、ユーザコンピュータ110およびサーバコンピュータ130に起因する機能を実行するための任意の必要なファイルが適切なように、それぞれのコンピュータ上にローカルにおよび/またはリモートに格納され得る。)実施形態の1つの集合において、データベース140の1つ以上は、SQLフォーマットのコマンドに応答してデータを格納、更新および抽出するよう適合されるリレーショナルデータベースであり得る。たとえば、データベース140は、上述したように、データベースサーバによって制御および/または維持され得る。
データ統合の概略
図2は、本発明のある実施形態に従ったデータ統合システム200の簡略ブロック図である。図2は、この開示において示される1つ以上の発明のさまざまな実施形態または実現例を組み込み得るデータ統合システム200の簡略図である。図2は、本願明細書において開示される発明の実施形態または実現例を単に例示しているだけであり、請求の範囲に記載されるような任意の発明の範囲を限定するべきでない。当業者は、この開示および本願明細書において示される教示を通じて、図において示される実施形態または実現例に対する他の変形例、修正例および/または代替例を認識し得る。
この実施形態において、データ統合システム200は、情報ソース202、情報統合部204、および情報宛先部206を含む。一般に、情報ソース202から情報統合部204に情報が流れ、これにより、情報は、情報宛先部206によって、消費され、利用可能になり、または別の態様で使用され得る。データフローは一方向または双方向であり得る。いくつかの実施形態において、1つ以上のデータフローがデータ統合システム200に存在し得る。
情報ソース202は、データを提供するよう構成される1つ以上のハードウェアおよび/またはソフトウェア要素を示す。情報ソース202は、データへの直接または間接のアクセスを提供し得る。この実施形態において、情報ソース202は、1つ以上のアプリケーション208と1つ以上のリポジトリ210とを含む。
アプリケーション208は、デスクトップアプリケーション、ホストされたアプリケーション、ウェブベースアプリケーション、またはクラウドベースアプリケーションのような従来のアプリケーションを示す。アプリケーション208は、1つ以上の所定の目的のために、データを受け取り、処理し、かつ維持するように構成され得る。アプリケーション208のいくつかの例は、カスタマーリレーションシップマネジメント(CRM:customer relationship management)アプリケーション、金融サービスアプリケーション、管理およびリスクコンプライアンスアプリケーション、人的資本マネージメント(HCM:human capital management)調達アプリケーション、サプライチェーンマネジメントアプリケーション、または、プロジェクトもしくはポートフォリオマネージメントアプリケーションなどを含む。アプリケーション208は、当該技術において公知のようなさまざま人間が読むことが可能でありマシンが読み取り可能なフォーマットでアプリケーションデータを操作およびエクスポートするために構成される機能を含み得る。アプリケーション208はさらに、リポジトリ210におけるデータにアクセスするとともに、リポジトリ210にデータを格納し得る。
リポジトリ210は、データへのアクセスを提供するように構成されるハードウェアおよび/またはソフトウェア要素を示す。リポジトリ210は、データの論理的および/または物理的なパーティショニングを提供し得る。リポジトリ210は、リポーティングおよびデータ分析をさらに提供し得る。リポジトリ210のいくつかの例は、データベース、データウェアハウス、またはクラウドストレージなどを含む。リポジトリは、1つ以上のアプリケーション208からのデータを統合することにより作成される中央レポジトリを含み得る。リポジトリ210に格納されたデータは、オペレーショナルシステムからアップロードされ得る。データは、ソースにおいて利用可能になる前に付加的なオペレーションを介して渡され得る。
情報統合部204は、データ統合サービスを提供するように構成される1つ以上のハードウェアおよび/またはソフトウェア要素を示す。直接または間接のデータ統合サービスが情報統合部204において提供され得る。この実施形態において、情報統合部204は、データ移行部212、データウェアハウジング部214、マスターデータマネージメント部216、データ同期部218、連結部220、およびリアルタイムメッセージ部222を含む。情報統合部204は、データ統合機能を提供する1つ以上のモジュール、サービス、または、ここで示された要素以外の付加的な要素を含み得るということが理解されるであろう。
データ移行部212は、データ移行を提供するように構成される1つ以上のハードウェアおよび/またはソフトウェア要素を示す。一般に、データ移行部212は、ストレージタイプ、フォーマット、またはシステム同士の間でデータを転送するための1つ以上のプロセスを提供する。データ移行部212は通常、移行を達成するようマニュアルまたはプログラムオプションを提供する。データ移行プロシージャにおいて、1つのシステム上のデータまたは1つのシステムによって提供されるデータは、データ抽出およびデータロードのための設計を提供する別のシステムにマッピングされる。データ移行は、1つ以上のフェーズを含み得、当該1つ以上のフェーズとしてはたとえば、第1のシステムのデータ形式を第2のシステムのフォーマットおよび要件に関連させる1つ以上の設計が作成される設計フェーズと、データが第1のシステムから読み出されるデータ抽出フェーズと、データクリーニングフェーズと、データが第2のシステムに書き込まれるデータローディングフェーズとがある。いくつかの実施形態において、データ移行は、データが上記のフェーズのうちのいずれかにおいて正確に処理されるかどうか判定するよう、データ検証フェーズを含み得る。
データウェアハウジング部214は、リポーティングおよびデータ分析のために使用されるデータベースを提供するように構成される1つ以上のハードウェアおよび/またはソフトウェア要素を示す。データウェアハウスは典型的に、1つ以上の異種のソースからのデータを統合することにより作成されるデータの中央レポジトリとして閲覧される。データウェアハウジング部214は、現在のデータの格納と履歴データの格納とを含み得る。データウェアハウジング部214は、典型的な抽出、変換、ロード(ETL:extract, transform, load)ベースのデータウェアハウスを含み得、これにより、ステージング層、データ統合層およびアクセス層が主な機能を収容する。一例において、ステージング層またはステージングデータベースは、1つ以上の異なるソースデータシステムの各々から抽出される生データを格納する。統合層は、ステージング層からのデータを変換し、オペレーショナルデータストア(ODS:operational data store)データベースにこの変換されたデータをしばしば格納することによって、異なるデータセットを統合する。その後、統合データは、しばしばデータウェアハウスデータベースと称されるさらに別のデータベースに移される。当該データは、(しばしば次元と称される)階層グループと、ファクト(fact)およびアグリゲートファクト(aggregate fact)とへ配され得る。アクセス層は、ユーザまたは他のシステムがデータを抽出するのを補助するために提供され得る。データウェアハウスはデータマートへ細分され得、これにより、各データマートはウェアハウスからのデータのサブセットを格納する。いくつかの実施形態において、データウェアハウジング部214は、ビジネスインテリジェンスツールと、データを抽出、変換およびリポジトリへロードするツールと、メタデータを管理および抽出するツールとを含み得る。
マスターデータマネージメント部216は、データのマスターコピーを管理するように構成される1つ以上のハードウェアおよび/またはソフトウェア要素を示す。マスターデータマネージメント部216は、一貫してマスターデータを規定および管理するプロセス、ガバナンス、ポリシー、スタンダードおよびツールのセットを含み得る。マスターデータマネージメント部216は、マスターデータの信頼すべきソースを作成するために、重複を除去し、データを標準化し、ルールを組み込んでシステムに誤ったデータが入ることを除去するための機能を含み得る。マスターデータマネージメント部216は、データを収集、集合、マッチング、統合、品質保証、持続、組織の全体にわたって配分するためのプロセスを提供し得、これにより、情報の進行中のメンテナンスおよびアプリケーション使用において一貫性および制御を保証する。
データ同期部218は、データを同期させるように構成される1つ以上のハードウェアおよび/またはソフトウェア要素を示す。データ同期部218は、ソースからターゲットおよびその逆のデータの間の一貫性を確立することを提供し得る。データ同期部218はさらに、時間にわたるデータの連続的なハーモナイゼーションを提供し得る。
連結部220は、構成要素ソースからのデータの閲覧を統合するように構成される1つ以上のハードウェアおよび/またはソフトウェア要素を示す。連結部220は、複数の自律データベースシステムを単一の連結データベースへとトランスピアレントにマッピングし得る。構成要素データベースは、コンピュータネットワークを介して相互に接続されてもよく、地理的に分散されてもよい。連結部220は、いくつかの異なるデータベースをマージすることに対する代替案を提供する。連結データベースまたは仮想データベースはたとえば、すべての構成要素データベースの合成を提供し得る。連結部220は、異なる構成要素データベースにおいて実際のデータ統合を提供しなくてもよく、閲覧においてのみ提供してもよい。
連結部220は、構成要素データベースが異種混合であっても、単一のクエリーによって、ユーザおよびクライアントが複数の非連続のデータベースにおいてデータを格納および抽出することを可能にする均一なユーザインターフェイスを提供する機能を含み得る。連結部220は、関連する構成要素データソースへの提出のためのサブクエリーにクエリーを分解するとともにサブクエリーの結果セットを合成する機能を含み得る。連結部220は、サブクエリーへの1つ以上のラッパー(wrapper)を、それらを適切なクエリー言語に変換するよう含み得る。いくつかの実施形態において、連結部220は、エクスポートスキーマおよびアクセスオペレーションの発行を通じてデータを連結部の他のメンバーに利用可能にする自律コンポーネントの集合である。
リアルタイムメッセージ部222は、リアルタイム制約(たとえばイベントからシステム応答までのオペレーショナルデッドライン)に従ってメッセージサービスを提供するように構成される1つ以上のハードウェアおよび/またはソフトウェア要素を示す。リアルタイムメッセージ部222は、厳密な時間制約内における動作または応答を保証する機能を含み得る。一例において、リアルタイムメッセージ部222には、1つのデータベースからいくつかのオーダおよび消費者データを取得し、ファイル中に保持されるいくつかの従業員データとそれを組合せ、その後、当該統合データをマイクロソフトSQLサーバ2000データベースにロードするタスクが課され得る。オーダは、到達する際に分析される必要があるので、リアルタイムメッセージ部222は、可能な限りリアルタイムに近い状態でターゲットデータベースにオーダを渡し、可能な限りワークロードを小さく維持するよう新しくかつ変更されたデータのみを抽出し得る。
情報宛先部206は、データを格納または消費するように構成される1つ以上のハードウェアおよび/またはソフトウェア要素を示す。この実施形態において、情報宛先部206は、データへの直接または間接のアクセスを提供し得る。この実施形態において、情報宛先部206は、1つ以上のアプリケーション224と1つ以上のリポジトリ226とを含む。
アプリケーション224は、デスクトップアプリケーション、ホストされたアプリケーション、ウェブベースアプリケーション、またはクラウドベースアプリケーションのような従来のアプリケーションを示す。アプリケーション224は、1つ以上の所定の目的のために、データを受け取り、処理し、かつ維持するように構成され得る。アプリケーション224のいくつかの例は、カスタマーリレーションシップマネジメント(CRM:customer relationship management)アプリケーション、金融サービスアプリケーション、管理およびリスクコンプライアンスアプリケーション、人的資本マネージメント(HCM:human capital management)調達アプリケーション、サプライチェーンマネジメントアプリケーション、または、プロジェクトもしくはポートフォリオマネージメントアプリケーションなどを含む。アプリケーション224は、当該技術において公知のようなさまざま人間が読むことが可能でありマシンが読み取り可能なフォーマットでアプリケーションデータを操作およびインポートするために構成される機能を含み得る。アプリケーション224はさらに、リポジトリ226おけるデータにアクセスするとともに、リポジトリ226にデータを格納し得る。
リポジトリ226は、データへのアクセスを提供するように構成されるハードウェアおよび/またはソフトウェア要素を示す。リポジトリ226は、データの論理的および/または物理的なパーティショニングを提供し得る。リポジトリ226は、リポーティングおよびデータ分析をさらに提供し得る。リポジトリ226のいくつかの例は、データベース、データウェアハウス、またはクラウドストレージなどを含む。リポジトリは、1つ以上のアプリケーション226からのデータを統合することにより作成される中央レポジトリを含み得る。リポジトリ226に格納されたデータは、情報統合部204を通じてアップロードまたはインポートされ得る。データは、宛先にて利用可能になる前に付加的なオペレーションを介して渡され得る。
データ統合システム
図3は、本発明の実施形態に従ったデータ統合システム200を実現するために使用され得るハードウェア/ソフトウェアスタックの簡略ブロック図である。図3は、本願明細書において開示される発明の実施形態または実現例を単に例示しているだけであり、請求の範囲に記載されるような任意の発明の範囲を限定するべきでない。当業者は、この開示および本願明細書において示される教示を通じて、図において示される実施形態または実現例に対する他の変形例、修正例および/または代替例を認識し得る。この実施形態に従ったデータ統合システム200において発見されるコンポーネントの一例は、カリフォルニア州レッドウッドショアズのオラクル社によって提供される製品のオラクルフュージョンミドルウェア(ORACLE FUSION Middleware)ファミリーのメンバーであるオラクルデータインテグレータ(ORACLE DATA INTEGRATOR)を含んでもよい。オラクルデータインテグレータは、セットベースのデータ統合タスクを実行するために1つ以上のデータベースを使用するJavaベースのアプリケーションである。さらにオラクルデータインテグレータは、データを抽出し、変換されたデータをウェブサービスおよびメッセージを通じて提供し、サービス指向のアーキテクチャにおいてイベントに応答および作成する統合プロセスを作成し得る。オラクルデータインテグレータは、従来のETL[抽出−変換−ロード(extract-transform-load)]アーキテクチャではなく、ELT[抽出−ロードおよび変換(extract-Load and Transform)]アーキテクチャに基づく。オラクルデータインテグレータのためのユーザマニュアルのコピーが、この開示に添付されており、本願明細書においてすべての目的のために参照により援用される。
さまざまな実施形態において、データ統合システム200は、データ変換および統合プロセスの規定への新しい宣言型設計アプローチ(declarative design approach)を提供し、より速くより簡易な開発およびメンテナンスが得られる。したがって、データ統合システム200は、インプリメンテーションの詳細から宣言型ルールを分離する。データ統合システム200はさらに、データ変換および検証プロセスの実行のためのユニークなE−LTアーキテクチャ(抽出−ロード変換(Extract-Load Transform))を提供する。実施形態におけるこのアーキテクチャは、スタンドアロンのETLサーバおよびプロプラエタリエンジンの必要性を除去する。その代りに、いくつかの実施形態において、データ統合システム200は、RDBMSエンジンの固有のパワーをレバレッジする。
いくつかの実施形態において、データ統合システム200は、オラクルフュージョンミドルウェアプラットフォームのような1つ以上のミドルウェアソフトウェアパッケージに統合し、ミドルウェアスタックのコンポーネントになる。図3に示されるように、データ統合システム200は、JavaEEアプリケーションとしてランタイムコンポーネントを提供し得る。
この例において、データ統合システム200の1つのコンポーネントはリポジトリ302である。リポジトリ302は、ITインフラストラクチャに関する構成情報、すべてのアプリケーションのメタデータ、プロジェクト、シナリオおよび実行ログを格納するように構成されるハードウェアおよび/またはソフトウェア要素を示す。いくつかの局面において、たとえばデベロップメント、QA、ユーザ、アクセプタンスおよびプロダクションといった、リポジトリ302の複数のインスタンスは、ITインフラストラクチャにおいて共存し得る。リポジトリ302は、メタデータおよびシナリオを交換するいくつかの分離された環境を可能にするように構成される(たとえば、デベロップメント環境、テスト環境、メンテナンス環境、およびプロダクション環境)。リポジトリ302はさらに、オブジェクトがアーカイブされバージョン番号を割り当てられるバージョン制御システムとして動作するように構成される。
この例において、リポジトリ302は、少なくとも1つのマスターリポジトリ304および1つ以上のワークリポジトリ306から形成される。データ統合システム200内での使用のために開発または構成されるオブジェクトは、これらのリポジトリタイプの1つに格納され得る。一般に、マスターリポジトリ304は、ユーザ、プロファイルおよび権限を含むセキュリティ情報と、技術、サーバ定義、スキーマ、コンテキスト、および言語などを含むトポロジー情報と、またバージョン付けおよびアーカイブされたオブジェクトといった情報を格納する。1つ以上のワークリポジトリ306は、実際の開発されたオブジェクトを含み得る。
いくつかのワークリポジトリは、(たとえば別個の環境を有するか、または、特定のバージョニングライフサイクルにマッチするよう)データ統合システム200において共存し得る。1つ以上のワークリポジトリ306は、スキーマ定義、データストア構造およびメタデータ、フィールドおよびカラム定義、データ品質制約、相互参照、ならびにデータリネージなどを含む、モデルについての情報を格納する。1つ以上のワークリポジトリ306はさらに、ビジネスルール、パッケージ、プロシージャ、フォルダ、ナレッジモジュール、および変数などを含むプロジェクトと、シナリオ、スケジューリング情報およびログを含むシナリオ実行とを格納し得る。いくつかの局面において、1つ以上のワークリポジトリ306は、(典型的にプロダクション目的のために)実行情報のみを含み得、実行リポジトリとして指定され得る。
さまざまな実施形態において、リポジトリ302は、1つ以上のETLプロジェクトを格納する。ETLプロジェクトは、ソースまたはターゲットにおけるデータのデータ属性をモデリングする1つ以上のデータモデルを規定またはそうでなければ特定する。ETLプロジェクトはさらに、データを移動および変換するために、データ品質制御と、マッピングを規定することとを提供する。データの完全性制御はデータの全体的な一貫性を保証する。アプリケーションデータは、特定のソースまたはターゲットによって課された制約および宣言型ルールに必ずしも有効ではない。たとえば、オーダが顧客を伴わないことが分かった、または、オーダラインが製品を伴わないことが分かったなどである。データ統合システム200は、これらの制約違反を検出し、再利用または報告目的のためにそれらを格納するよう作業環境を提供する。
データ統合システム200のいくつかの実施形態において、スタティック制御およびフロー制御という2つの異なるタイプの制御が存在する。スタティック制御は、アプリケーションデータの完全性を検証するために使用されるルールの存在を示す。これらのルール(制約と称される)のうちのいくつかは、(一次キー、基準制約などを使用して)データサーバにおいて既に実現されている場合がある。データ統合システム200は、付加的な制約の定義およびチェックを、ソースにおいてそれらを直接的に宣言することなく可能にする。フロー制御は、自身の宣言型ルールを実現する変換および統合プロセスのターゲットに関する。フロー制御は、ターゲットにデータをロードする前に、これらの制約に従ってアプリケーションの入力データを検証する。フロー制御プロシージャは一般にマッピングと称される。
ETLプロジェクトは、ランタイム環境における実行のために展開され得るパッケージへと自動化され得る。したがって、パッケージにおける異なるステップ(マッピングおよびプロシージャなど)の実行をシーケンス処理するとともに、これらのステップの各々について既存のコードを含んでいるプロダクションシナリオを作り出すことによって、データ統合フローの自動化が達成される。パッケージは典型的に、実行ダイアグラムへ組織されるステップのシーケンスから構成される。パッケージは、プロダクションのためのシナリオを生成するよう使用されるメインオブジェクトである。それらは、データ統合ワークフローを表わしており、たとえば、データストアまたはモデルに対するリバースエンジニアリングプロセスを開始し、アドミニストレータに電子メールを送信し、ファイルをダウンロードし、それを解凍し、マッピングが実行されなければならない順序を規定し、変化するパラメータで実行コマンドに対して繰り返すループを規定するジョブを実行し得る。
シナリオは、ソースコンポーネント(マッピング、パッケージ、プロシージャ、変数)をプロダクションに配置するよう設計される。このコンポーネントについて、シナリオがコード(SQL、シェルなど)の発生から得られる。生成されると、ソースコンポーネントのコードが凍結され、シナリオがワークリポジトリ306の1つ以上のようなリポジトリ302の内部に格納される。シナリオは、エクスポートされ、その後、異なるプロダクション環境へインポートされ得る。
さまざまな実施形態において、データ統合システム200は、Javaグラフィカルモジュールおよびスケジューリングエージェントによってアクセスされるモジュールの態様でリポジトリ302のまわりに組織される。グラフィカルモジュールは、リポジトリ302に格納される1つ以上の統合プロセスを設計および構築するよう使用され得る。アドミニストレータ、デベロッパおよびオペレータは、リポジトリ302にアクセスするためにデベロップメントスタジオを使用し得る。エージェントは、リポジトリ302に格納される統合プロセスに関連付けられる統合タスクのセットをスケジューリングおよび調整するために使用され得る。たとえばランタイムにおいて、デスクトップ、ウェブサービス上に展開されるか、または、ソースと通信するエージェントは、1つ以上の統合プロセスの実行を調整する。エージェントは、マスターリポジトリ304に格納されるコードを抽出し、さまざまなソースおよびターゲットシステムに接続し、全体的なデータ統合プロセスまたはシナリオを取りまとめ得る。
この実施形態において、データ統合システム200は、上で論じたグラフィカルモジュールおよび/またはエージェントの1つ以上を含み得るデスクトップ308を含む。デスクトップ308は、パーソナルコンピュータ、ラップトップ、ネットブック、およびタブレットなどのような1つ以上のデスクトップまたはワークステーションコンピューティングデバイスを示す。デスクトップ308はJava仮想マシン(JVM)310およびオラクルデータインテグレータ(ODI:Oracle Data Integrator)スタジオ312を含む。Java仮想マシン(JVM)310は、Javaバイトコードを実行し得る仮想マシンである。JVM310はほとんどの場合、既存のオペレーティングシステム上で実行するよう実現されるが、ハードウェア上で直接的に実行するよう実現され得る。JVM310は、Javaバイトコードが実行され得るランタイム環境を提供し、ランタイムウェブサービス(WS)314およびエージェント316のような機能を可能にする。JVM310は、Javaクラスライブラリと、Javaアプリケーションプログラミングインターフェイス(API:application programming interface)を実現する(Javaバイトコードでの)スタンダードクラスライブラリのセットと、Javaランタイム環境(JRE:Java Runtime Environment)を形成する他の要素とを含み得る。
エージェント316は、リポジトリ302に格納された1つ以上の統合プロセスに関連付けられる統合タスクのセットをスケジューリングおよび調整するように構成される。たとえば、ランタイムにおいて、エージェントは、統合プロセスの実行を調整する。エージェントは、マスターリポジトリ304に格納されるコードを抽出し、さまざまなソースおよびターゲットシステムに接続し、全体的なデータ統合プロセスまたはシナリオを取りまとめ得る。
図3を再び参照して、ODIスタジオ312はデータ統合プロジェクトを設計するよう構成されるハードウェアおよび/またはソフトウェア要素を含む。この例において、ODIスタジオ312は、データ統合プロジェクトを作成および管理するために使用される4つのグラフィカルモジュールまたはナビゲータ、すなわち、デザイナーモジュール318、オペレータモジュール320、トポロジーモジュール322およびセキュリティモジュール324を含む。デザイナーモジュール318は、データストア(テーブル、ファイルおよびウェブサービスなど)、データマッピング、およびパッケージ(マッピングを含む統合ステップのセット)を規定するように構成されるモジュールである。さまざまな実施形態において、デザイナーモジュール318は、データ変換およびデータ完全性について宣言型ルールを規定する。したがって、プロジェクトデベロップメントがデザイナーモジュール318において発生する。さらに、デザイナーモジュール318において、データベースおよびアプリケーションメタデータがインポートおよび規定される。デザイナーモジュール318は、一実施形態において、メタデータおよびルールを使用して、プロダクションについてデータ統合シナリオまたはロードプランを生成する。一般に、デザイナーモジュール318は、データ完全性チェックを設計するように使用されるとともに、たとえば既存のアプリケーションまたはデータベースの自動リバースエンジニアリング、変換および統合マッピングのグラフィカルデベロップメントおよびメンテナンス、マッピングにおけるデータフローの可視化、自動ドキュメンテーション生成、および生成されたコードのカスタマイゼーションのような変換を構築するように使用される。
オペレータモジュール320は、プロダクション統合ジョブを閲覧および管理するように構成されるモジュールである。したがって、オペレータモジュール320は、プロダクションにおけるデータ統合プロセスを管理および監視し、エラーカウントを有する実行ログ、処理されたロウの数、実行統計、および実行される実際のコードなどを示し得る。設計時において、デベロッパはさらに、デザイナーモジュール318に関連して、デバッグ目的のためにオペレータモジュール320を使用し得る。
トポロジーモジュール322は、データソースおよびエージェントへの接続を作成および管理するように構成されるモジュールである。トポロジーモジュール322は、インフラストラクチャの物理的および論理的アーキテクチャを規定する。インフラストラクチャまたはプロジェクトアドミニストレータは、トポロジーモジュール322を通じて、サーバと、データベーススキーマおよびカタログと、エージェントとをマスターリポジトリに登録し得る。セキュリティモジュール324は、ユーザおよびそれらのリポジトリ権限を管理するように構成されるモジュールである。
一般に、ユーザまたはプロセスは、ソースおよびターゲット326について1つ以上のデータ統合プロセスを有するデータ統合プロジェクトを作成するよう、デザイナーモジュール318と相互作用する。各データ統合プロセスは、少なくとも1つのデータ統合タスクを含む。いくつかの実施形態において、データ統合タスクは、データのどのビットが変換され他のビットと組み合わされるかと、当該データが実際にどのように抽出およびロードされるかの技術的な詳細とを示すビジネスルールのセットによって規定される。好ましい実施形態において、データ統合タスクは、データマッピングを構築するために宣言型のアプローチを使用して特定される。マッピングは、ターゲットと称される、1つのデータストアにポピュレートするオブジェクトであり、1つ以上の他のデータストアからのデータはソースとして既知である。一般に、ソースデータストアにおけるカラムは、マッピングを通じてターゲットデータストアにおけるカラムにリンクされる。マッピングは、パッケージステップとしてパッケージに加えられ得る。上で論じたように、パッケージはデータ統合ジョブを規定する。パッケージは、プロジェクトの下に作成され、各々がマッピングまたはプロシージャであり得るステップの組織されたシーケンスから構成される。パッケージは、1つの入口点および複数の出口点を有し得る。
いくつかの実施形態において、新しいマッピングを作成する場合、デベロッパまたは技術的なビジネスユーザは、どのデータが統合されるかと、どのビジネスルールを使用するべきかとをまず規定するよう、デザイナー318と相互作用する。たとえば、デベロッパは、どのテーブルが連結されるべきか、どのフィルタが適用されるべきか、データを変換するためにどのSQLエクスプレッションが使用されるべきかを特定し得る。使用されるSQLの特定の言語は、コードが実行されるべきデータベースプラットホームによって決定される。その後、別個のステップにおいて、技術スタッフは、デザイナー318と相互に作用して、このデータを抽出、組合せ、次いで統合するのに最も効率的な方法を選ぶ。たとえば、技術スタッフは、インクリメンタルロード(incremental load)、バルクローティングユーティリティ(bulk-loading utility)、スローリー・チェンジング・ディメンション(slowly changing dimension)、および変更データキャプチャ(changed-data capture)といった、データベースに特有のツールおよび設計技術を使用し得る。
この実施形態において、マッピングはソースおよびターゲット326について作成され得る。ソースおよびターゲット326は、1つ以上のレガシーアプリケーション328と、1つ以上のファイル/XML文書330と、1つ以上のアプリケーション332と、1つ以上のデータウェアハウス(DW)と、ビジネスインテリジェンス(BI)ツールおよびアプリケーションと、エンタープライズプロセスマネージメント(EPM:enterprise process management)ツールおよびアプリケーション334と、(ランタイムウェブサービス340およびエージェント342を含む)1つ以上のJVM336とを含み得る。
図4は、本発明のさまざまな実施形態においてデータ統合シナリオが作成され得るさまざまな異種混合のデータソースを有する環境400のブロック図である。この例において、環境400はODIスタジオ312およびリポジトリ302を含む。リポジトリ302は、統合シナリオ400を生成するのに必要とされるメタデータのすべてを含む。ユーザまたはプロセスは、データ完全性制御402および宣言型ルール404を使用して統合シナリオ400を作成するようODIスタジオ312と相互作用する。
オーダアプリケーション406は、顧客のオーダをトラッキングするためのアプリケーションを示す。「オーダアプリケーション」データモデルは、オーダアプリケーション406に格納されたデータと、任意のデータ完全性制御または条件とを表わすよう作成される。たとえば、「オーダアプリケーション」データモデルは、ハイパーストラクチャードクエリラングエッジ(HSQL:Hyper Structured Query Language)インターフェイスに基づき得、SRC_CITY、SRC_CUSTOMER、SRC_ORDERS、SRC_ORDER_LINES、SRC_PRODUCTおよびSRC_REGIONという5つのデータストアを含む。
パラメータファイル408は、販売員のリストおよび年齢のセグメンテーションから年齢の範囲を含むプロダクションシステムから発行されるフラットファイル(たとえばASCII)を示す。この例において、「パラメータ」データモデルが、フラットファイルにおけるデータを表わすために作成される。たとえば、「パラメータ」データモデルは、ファイルインターフェイスに基づき得、SRC_SALES_PERSONおよびSRC_AGE_GROUPという2つのデータストアを含み得る。
セールスアドミニストレーションアプリケーション410はセールスをトラッキングするためのアプリケーションを示す。セールスアドミニストレーションアプリケーション410は、オーダアプリケーション406およびパラメータファイル408からのデータの変換でポピュレートされたデータウェアハウスであり得る。「セールスアドミニストレーション」データモデルは、セールスアドミニストレーションアプリケーション410に格納されるデータと、任意のデータ完全性制御または条件または変換とを表わすよう作成される。たとえば、「セールスアドミニストレーション」データモデルはハイパーストラクチャードクエリラングエッジ(HSQL)インターフェイスに基づき得、TRG_CITY、TRG_COUNTRY、TRG_CUSTOMER、TRG_PRODUCT、TRG_PROD_FAMILY、TRG_REGION、およびTRG_SALEという6つのデータストアを含み得る。
図5Aおよび図5Bは、データ統合システム200によって実行され得る従来のデータ統合処理における簡素化されたデータフローを示す。この例において、オーダアプリケーション406、パラメータファイル408、1つ以上の他の随意または付加的なソースからのデータは、セールスアドミニストレーションアプリケーション410にターゲットとされる従来のETLプロセスを通じて流れる。データ変換は別個のETLサーバ500において発生する。シナリオは専用のリソースまたはプロプラエタリリソースを必要とし、パフォーマンスがより貧弱になり、高コストを引き起こす。
図6Aおよび図6Bは、本発明の実施形態に従った、データ統合システム200によって実行され得る次世代データ統合処理における簡素化されたデータフローを示す。この例において、オーダアプリケーション406、パラメータファイル408、1つ以上の他の随意または付加的なソースからのデータは、セールスアドミニストレーションアプリケーション410にターゲットとされるE−LTプロセスを通じて流れる。データ変換は既存のリソースをレバレッジし、パフォーマンスおよび効率がより高くなる。上述したように、先のETLシステムは、データ変換を実行するために専用および/またはプロプラエタリインフラストラクチャを必要とした。これは、部分的には、未知のユーザインフラストラクチャに対応するためになされた。たとえば、どのタイプのデータベースが使用されているか知ることがなければ、先行のETLシステムは、どの変換オペレーションが所与のシステムにおいて利用可能であるか予想することができなかった。しかしながらこれは、如何なる専用および/またはプロプラエタリインフラストラクチャなしで適切なデータ変換を実行することができるユーザの既存データベースおよびサーバのようなリソースが十分に利用されないことになる。
実施形態に従うと、本発明は、ユーザの特定のニーズに従ってユーザがデータ統合プロセスをカスタマイズすることを可能にすることによってユーザの既存のインフラストラクチャをレバレッジする。たとえば、データ統合プランが設計されると、データ統合プランは、実行単位と称される、単一のシステムによって実行可能である個別の部分に分割され得る。ひとたびデータ統合プランが複数の実行単位に分割されると、ユーザのインフラストラクチャおよびシステムリソースに基づいて、ユーザには物理的なプランが提示され得る。このプランはさらにユーザによって、どのユーザシステムがどの実行単位を実行するかを変更するようカスタマイズされ得る。たとえば、ジョインオペレーションが第1のデータベース上で実行されるプランがユーザには提示され得、ユーザは、第2のデータベースにジョインオペレーションを移動させることによって当該プランをカスタマイズし得る。
図6Bに示されるように、これにより、先行のETLシステムを特徴付けたスタンドアロン変換サーバに依存しない抽出−ロード−変換(E−LT:extract-load-transform)アーキテクチャが得られる。代わりに、上述したように、データ変換はユーザの既存のインフラストラクチャ上で実行され得る。E−LTアーキテクチャは、プロプラエタリ変換サーバを取得および維持することに関連付けられるコストを低減しつつユーザにさらに大きなフレキシビリティを提供する。
図3を再び参照すると、エージェントは統合プロセスに関連付けられる統合タスクのセットをスケジューリングおよび調整するために使用され得る。たとえば、ランタイムにおいて、エージェントは、統合プロセスの実行を調整する。エージェントは、マスターリポジトリ304に格納されるコードを抽出し得、さまざまなソースおよびターゲットシステムに接続し得、全体的なデータ統合プロセスまたはシナリオを取りまとめる。さまざまな実施形態において、2つのタイプのエージェントが存在する。一例において、スタンドアロンのエージェントがエージェント316のようなデスクトップ308上にインストールされる。別の例において、アプリケーションサーバエージェントは(オラクルWebLogicサーバの上で展開されるJavaEEエージェントのように)アプリケーションサーバ326上で展開され得、高いアベイラビリテイ要件についてのクラスタリングのようなアプリケーションサーバレイヤーフィーチャから利益を得ることができる。さらに別の例において、エージェントは、エージェント342のように、ソースおよびターゲット326上で展開され得る。
この実施形態において、データ統合システム200は、上で論じられるエージェントの1つ以上を含み得るアプリケーションサーバ344を含む。アプリケーションサーバ344は、1つ以上のアプリケーションサーバ、ウェブサーバ、またはホストされたアプリケーションを示す。この例において、アプリケーションサーバ344は、FMWコンソール346、サーブレットコンテナ348、ウェブサービスコンテナ350、およびデータソース接続プール352を含む。
FMWコンソール346は、サーブレットコンテナ348、ウェブサービスコンテナ350およびデータソース接続プール334に関係する情報のような、アプリケーションサーバ344の局面を管理するように構成される1つ以上のハードウェアおよび/またはソフトウェア要素を示す。たとえば、FMWコンソール346は、オラクルWebLogicサーバドメインを管理するために使用されるブラウザベースのグラフィカルユーザインターフェイスであり得る。FMWコンソール346は、WebLogicサーバインスタンスを構成、開始、停止し、WebLogicサーバクラスタを構成し、データベース接続性(JDBC)およびメッセージング(JMS)のようなWebLogicサーバサービスを構成し、ユーザ、グループおよび役割を作成および管理することを含むセキュリティパラメータを構成し、JavaEEアプリケーションを構成および展開し、サーバおよびアプリケーションのパフォーマンスを監視し、サーバおよびドメインのログファイルを閲覧し、アプリケーション展開記述子を閲覧し、選択されたランタイムアプリケーション展開記述子要素を編集する機能を含み得る。いくつかの実施形態において、FMWコンソール346は、プロダクションにおけるデータ統合プロセスへのアクセスをFMWコンソール346に提供するODIプラグイン354を含み、エラーカウントを有する実行ログ、処理されたロウの数、実行統計、および実行される実際のコードなどを示し得る。
サーブレットコンテナ348は、アプリケーションサーバ344の性能を拡張するように構成される1つ以上のハードウェアおよび/またはソフトウェア要素を示す。サーブレットは、HTMLフォームから提出されたデータを処理するまたは格納するためにほとんどの場合に使用され、データベースクエリの結果のような動的なコンテンツを提供し、適切な顧客のショッピングカートへ品物を充填するといった、ステートレスHTTPプロトコルに存在しない状態情報を管理する。サーブレットは典型的に、Javaクラスが要求に応答し得るプロトコルである、JavaサーブレットAPIに準拠するJavaEEにおけるJavaクラスである。サーブレットを展開および実行するために、サーブレットコンテナ348は、サーブレットと相互作用するウェブサーバのコンポーネントとして使用される。したがって、サーブレットコンテナ348は、ウェブサービスコンテナ350のパブリックウェブサービス356およびデータサービス358によって提供される機能と、データソース接続プール352によって提供されるデータプールへのアクセスとを拡張し得る。サーブレットコンテナ348はさらに、サーブレットのライフサイクルを管理し、特定のサーブレットにURLをマッピングし、URLリクエスタが正しいアクセス権を有することを保証することを担う。
この例において、サーブレットコンテナ348は、ODI SDK362に関連付けられるJavaEEアプリケーション360と、ODIコンソール364と、JavaEEエージェント368に関連付けられるランタイムウェブサービス366とを含む。ODI SDK362は、データ統合およびETL設計のためのソフトウェア開発キット(SDK)を提供する。ODI SDK362は、一般的でありかつ非常に反復的である作業の自動化を可能にし、ユーザが反復のタスクをスクリプトにすることを可能にする。
ODIコンソール364は、リポジトリ302へのウェブアクセスを提供するJavaエンタープライズエディション(JavaEE:Java Enterprise Edition)アプリケーションである。ODIコンソール364は、プロジェクト、モデルおよび実行ログを含むDesign−Timeオブジェクトをユーザがブラウズすることを可能にするように構成される。ODIコンソール364は、ユーザがフローマップを閲覧し、すべてのデータのソースを追跡し、データを構築するのに使用される変換を理解するためにフィールドレベルにさらにドリルダウンすることを可能にし得る。さらに、エンドユーザは、ODIコンソール364を通じてシナリオ実行を開始および監視し得る。1つの局面において、ODIコンソール364は、データサーバ、物理および論理スキーマのようなトポロジーオブジェクトを閲覧および編集し、かつ、リポジトリ302を管理する能力をアドミニストレータに提供する。
データシナリオ設計および開発
上で論じたように、シナリオは、ソースコンポーネント(マッピング、パッケージ、プロシージャ、変数)をプロダクションに配置するよう設計される。このコンポーネントについて、シナリオがコード(SQL、シェルなど)の発生から得られる。シナリオは、エクスポートされ、その後、異なるプロダクション環境へインポートされ得る。
図7は、本発明に従った一実施形態におけるODIスタジオとデータ統合システムのリポジトリとの間の相互作用の簡略ブロック図である。図7に示される実施形態において、図3のODIスタジオ312は、プロダクションについてデータ統合シナリオ700を生成するようメタデータおよびルールを使用する。一般に、デザイナーモジュール318は、データ完全性チェックを設計するように使用されるとともに、たとえば既存のアプリケーションまたはデータベースの自動リバースエンジニアリング、変換および統合インターフェイスのグラフィカルデベロップメントおよびメンテナンス、インターフェイスにおけるデータフローの可視化、自動ドキュメンテーション生成、および生成されたコードのカスタマイゼーションのような変換を構築するように使用される。
図8は、本発明の実施形態に従った、データ統合シナリオを作成するための方法800のフローチャートを示す。図8に示された方法800の実現または処理は、コンピュータシステムまたは情報処理デバイスのようなロジックマシンの中央処理装置(CPUまたはプロセッサ)によって実行される際にソフトウェア(たとえば命令またはコードモジュール)によって実行され得るか、電子デバイスまたは特定用途向け集積回路のハードウェアコンポーネントによって実行され得るか、または、ソフトウェアおよびハードウェア要素の組合せによって実行され得る。図8に示される方法800は、ステップ810において開始する。
さまざまな実施形態において、ユーザはODIスタジオ312のデザイナーモジュール318とのセッションを開始し、リポジトリ302へ接続し得る。ユーザは1つ以上のユーザインターフェイスフィーチャと相互作用して、新しいデータ統合プロジェクトを作成するか、または、たとえばマスターリポジトリ304に格納される既存のデータ統合プロジェクトから選択し得る。一般に、デザイナーモジュール318は、メタデータを管理し、データ完全性チェックを設計し、変換を構築するよう使用される。さまざまな実施形態において、デザイナーモジュール318を通じて取り扱われる主なオブジェクトはモデルおよびプロジェクトである。データモデルは、データソースまたはターゲットにおけるメタデータのすべてを含む(たとえばテーブル、カラム、制約、記述、相互参照など)。プロジェクトは、ソースまたはターゲット(たとえばマッピング、プロシージャ、変数など)についてロードおよび変換ルールのすべてを含む。
ステップ820において、1つ以上のデータモデルが作成される。ステップ830において、1つ以上のプロジェクトが作成される。図9は、本発明の実施形態に従った、データ統合シナリオを作成するためのユーザインターフェイスのスクリーンショットである。この例において、ナビゲーションパネル910は、情報を表示し、データモデルとの相互作用のための機能を含む。ナビゲーションパネル920は情報を表示し、プロジェクトとの相互作用のための機能を含む。上で論じたように、ユーザはデータモデルを作成するだけでなく、データモデルにおけるデータについて任意のデータ完全性チェックを開発し得る。さらに、ユーザは、ソースからのデータをターゲットにロードするフローにおいてデータについてのデータ完全性および変換を提供する、プロジェクトについてのインターフェイス、プロシージャ、変数を特定し得る。ステップ840では、1つ以上のデータ統合シナリオが生成される。図8はステップ850で終了する。
図10は、本発明の実施形態に従った、マッピングを作成するための方法1000のフローチャートを示す。図10に示された方法1000の実現または処理は、コンピュータシステムまたは情報処理デバイスのようなロジックマシンの中央処理装置(CPUまたはプロセッサ)によって実行される際にソフトウェア(たとえば命令またはコードモジュール)によって実行され得るか、電子デバイスまたは特定用途向け集積回路のハードウェアコンポーネントによって実行され得るか、または、ソフトウェアおよびハードウェア要素の組合せによって実行され得る。図10に示される方法1000は、ステップ1010において開始する。
ステップ1020において、ターゲットデータストア情報が受け取られる。たとえば、ユーザは、ターゲットデータストア情報を提供するよう、デザイナーモジュール318の1つ以上のユーザインターフェイスフィーチャと相互作用し得る。一実施形態において、ユーザは、選択されたデータモデルおよび任意の関連付けられる変換またはデータ完全性チェックの局面を視覚的に表わすマッピングまたはフローパネル上にナビゲーションパネル910から、1つ以上のデータモデルを含むターゲットデータストア情報をドラッグアンドドロップし得る。
ステップ1030では、ソースデータストア情報が受け取られる。たとえば、ユーザは、ソースデータストア情報を提供するよう、デザイナーモジュール318の1つ以上のユーザインターフェイスフィーチャと相互作用し得る。一実施形態において、ユーザは、選択されたデータモデルおよび任意の関連付けられる変換またはデータ完全性チェックの局面を視覚的に表わすターゲットデータストア情報の同じマッピングまたはフローパネル上にナビゲーションパネル910から、1つ以上のデータモデルを含むソースデータストア情報をドラッグアンドドロップし得る。
さまざまな実施形態において、ソースデータストア情報およびターゲットデータストア情報は、1つ以上のデータモデルおよび随意にオペレーションから形成され得る。オペレーションのいくつかの例は1つ以上のデータセットオペレーション(たとえばユニオン、ジョイン、インターセクションなど)、データ変換、データフィルタオペレーション、制約、記述、相互参照、または完全性チェックなどを含み得る。さらに別の実施形態において、これらのオペレーションのうちのいくつかは、あらかじめ構成されるとともに、デザイナーモジュール318において視覚的に表わされ得る。他の実施形態において、カスタムオペレーションが提供され得、オペレーションを実現するロジックおよびマッピングなどをユーザが特定することを可能にする。
ステップ1040において、マッピング情報が受け取られる。たとえば、ユーザは、ターゲットデータストア情報にソースデータストア情報をマッピングするよう、デザイナーモジュール318の1つ以上のユーザインターフェイスフィーチャと相互作用し得る。一実施形態において、ユーザは、ソースデータストア情報におけるデータ要素の属性をターゲットデータストア情報におけるデータ要素の属性に視覚的に接続し得る。これは、ソースデータストア情報およびターゲットデータストア情報におけるテーブルのカラム名をマッチングすることにより行われ得る。さらに別の実施形態において、1つ以上の自動マッピング技術がマッピング情報を提供するために使用され得る。
図11は、本発明の実施形態に従った、データ統合シナリオにおいてマッピング情報を提供するためのユーザインターフェイスのスクリーンショットである。この例において、パネル1110におけるソースデータストア情報の属性が、パネル1120におけるターゲットデータストア情報の属性にマッピングされる。
図10を再び参照して、ステップ1050において、データロードストラテジーが受け取られる。データロードストラテジーは、ソースデータストア情報からの実際のデータが抽出フェーズの間にどのようにロードされるべきであるかについての情報を含む。データロードストラテジーは、デザイナー318のフロータブにおいて規定され得る。いくつかの実施形態において、データロードストラテジーは、マッピングの構成に依存してフローについて自動的に計算され得る。
たとえば、1つ以上のナレッジモジュールが当該フローのために提案され得る。ナレッジモジュール(KM)は、異なる技術にわたって再使用可能な変換およびELT(抽出、ロード、および変換)ストラテジーを実現するコンポーネントである。1つの局面において、ナレッジモジュール(KM)はコードテンプレートである。各KMは、全体のデータ統合プロセスにおいて個々のタスクに専用であり得る。KMにおけるコードは、ほとんど置換法で実行されるであろう形で現われ、多くの異なる統合ジョブによって一般的に使用されることを可能にする。生成および実行されるコードは、デザイナーモジュール318において規定される宣言型ルールおよびメタデータに由来する。この一例は、オラクルデータベース10gから変更データキャプチャを通じてデータを抽出し、オラクルデータベース11gにおけるパーティショニングされたファクトテーブルに変換データをロードするか、または、マイクロソフトSQLサーバデータベースからのタイムスタンプベースの抽出を作成し、このデータをテラデータエンタープライズデータウェアハウス(Teradata enterprise data warehouse)にロードすることである。
KMの能力はそれらの再使用可能性とフレキシビリティとにあり、たとえば、あるロードストラテジーが1つのファクトテーブルのために開発され得、その後、当該ロードストラテジーが他のすべてのファクトテーブルに適用され得る。1つの局面において、所与のKMを使用するすべてのマッピングは、KMに対してなされる任意の変化を引き継ぐ。いくつかの実施形態において、統合ナレッジモジュール(IKM:integration knowledge module)、ロードナレッジモジュール(LKM:loading knowledge module)、およびチェックナレッジモジュールCKM(check knowledge module)といったように、5つの異なるタイプのKMが提供され、それらの各々はソースからターゲットまで変換処理における1つのフェーズをカバーする。
図4を参照して、ユーザは、環境400においてSRC_AGE_GROUP、SRC_SALES_PERSONファイルおよびSRC_CUSTOMERテーブルからデータを抽出する方法を規定し得る。ロードストラテジーを規定するために、ユーザは、SRC_AGE_GROUPファイルのロードに対応するソースセットを選択し、SQLへのLKMファイルを選択し得、ファイルからSQLまでのフローを実現する。1つの局面において、LKMはリモートサーバからステージングエリアにソースデータロードすることを担う。
ステップ1060では、データ統合ストラテジーが受け取られる。ローディングフェーズを規定した後、ユーザは、ロードされたデータのターゲットへの統合に適合するべきストラテジーを規定する。統合ストラテジーを規定するために、ユーザは、ターゲットオブジェクトを選択し、IKM SQLインクリメンタルアップデート(IKM SQL Incremental Update)を選択し得る。IKMは、最終の変換されたデータをターゲットに書き込むことを担う。IKMは、開始されると、リモートサーバのためのすべてのローディングフェーズは、たとえばすべてのリモートソースデータセットがLKMによってステージングエリアにロードされたといったように、既にそれらのタスクを行なったか、または、ソースデータストアがステージングエリアと同じデータサーバ上に存在するとみなす。
ステップ1070では、データ制御ストラテジーが受け取られる。一般に、CKMは、データセットのレコードが規定された制約と一貫していることをチェックすることを担う。CKMは、データ完全性を維持するために使用され得、全体的なデータ品質イニシアチブに参加する。CKMは2つの態様で使用され得る。第1に、既存データの一貫性をチェックするために使用され得る。これは任意のデータストア上またはインターフェイス内で行われ得る。この場合、チェックされたデータは、現在データストアに存在するデータである。第2の場合において、ターゲットデータストアにおけるデータが、ロードされた後でチェックされる。この場合、CKMは、ターゲットへの書き込みの前に、結果得られたフロー上のターゲットデータストアの制約をシミュレートする。
図12は、本発明の実施形態に従った、データ統合シナリオにおいてフロー情報を提供するためのユーザインターフェイスのスクリーンショットである。
ステップ1080においてインターフェイスが生成される。図10はステップ1090で終了する。
データ統合シナリオパッケージおよび展開
上で論じたように、パッケージにおいて異なるステップ(マッピングおよびプロシージャなど)の実行をシーケンス処理するとともに、これらのステップの各々について既存のコードを含んでいるプロダクションシナリオを作り出すことによって、データ統合システム200においてデータ統合フローの自動化が達成され得る。パッケージは、実行ダイアグラムへ組織されるステップのシーケンスから構成される。パッケージは、プロダクションのためのシナリオを生成するよう使用されるメインオブジェクトである。シナリオは、ソースコンポーネント(マッピング、パッケージ、プロシージャ、変数)をプロダクションに配置するよう設計される。このコンポーネントについて、シナリオがコード(SQL、シェルなど)の発生から得られる。シナリオは、エクスポートされ、その後、異なるプロダクション環境へインポートされ得る。
図13は、本発明の実施形態に従った、パッケージを作成するための方法のフローチャートを示す。図13に示された方法1300の実現または処理は、コンピュータシステムまたは情報処理デバイスのようなロジックマシンの中央処理装置(CPUまたはプロセッサ)によって実行される際にソフトウェア(たとえば命令またはコードモジュール)によって実行され得るか、電子デバイスまたは特定用途向け集積回路のハードウェアコンポーネントによって実行され得るか、または、ソフトウェアおよびハードウェア要素の組合せによって実行され得る。図13に示される方法1300は、ステップ1310において開始する。
ステップ1320において、パッケージステップ情報が受け取られる。パッケージステップ情報は、ステップ、要素、プロパティ、およびコンポーネントなどを識別する情報を含む。一例において、ユーザは、パッケージについて1つ以上のステップを作成、識別、またはそうでなければ特定するよう、デザイナーモジュール318の1つ以上のユーザインターフェイスフィーチャと相互作用し得る。一実施形態において、1つ以上のコンポーネントが選択され、図に配置される。これらのコンポーネントはパッケージにおけるステップとして現われる。
ステップ1330において、パッケージステップシーケンス情報が受け取られる。パッケージステップシーケンス情報は、ステップについてのオーダリング、および従属性などを識別する情報を含む。ひとたびステップが作成されると、ステップがデータ処理チェーンへと順に並べられるかまたは並べ替えられる。一例において、ユーザは、パッケージの1つ以上のステップについてシーケンシングまたはオーダリングを提供するよう、デザイナーモジュール318の1つ以上のユーザインターフェイスフィーチャと相互作用し得る。データ処理チェーンは、第1のステップとして規定されたユニークステップを含み得る。一般に、各ステップは、成功または失敗のような1つ以上の終結状態を有する。失敗または成功のようないくつかの状態におけるステップの後には別のステップまたはパッケージの終了が続き得る。1つの局面において、失敗のようないくつかの状態の場合、シーケンス情報は多くの再試行を規定し得る。別の局面において、パッケージはいくつかの可能な終結ステップのみを有し得る。
図14は、本発明の実施形態に従った、データ統合シナリオにおいてパッケージシーケンス情報を提供するためのユーザインターフェイスのスクリーンショットである。
ステップ1340において、パッケージが生成される。図13はステップ1350で終了する。
上で論じたように、データ統合フローの自動化は、パッケージにおける異なるステップ(マッピングおよびプロシージャなど)の実行をシーケンス処理することにより達成され得る。次いで、パッケージのステップの各々について既存のコードを含むプロダクションシナリオのために、パッケージが作り出され得る。さまざまな実施形態において、パッケージはプロダクション環境において自動的に実行されるよう展開される。
図15は、本発明の実施形態に従ったデータ統合シナリオを展開するための方法1500のフローチャートを示す。図15に示された方法1500の実現または処理は、コンピュータシステムまたは情報処理デバイスのようなロジックマシンの中央処理装置(CPUまたはプロセッサ)によって実行される際にソフトウェア(たとえば命令またはコードモジュール)によって実行され得るか、電子デバイスまたは特定用途向け集積回路のハードウェアコンポーネントによって実行され得るか、または、ソフトウェアおよびハードウェア要素の組合せによって実行され得る。図15に示される方法1500は、ステップ1510において開始する。
ステップ1520において、統合シナリオが抽出される。一実施形態において、パッケージがリポジトリ302から抽出される。ステップ1530において、統合シナリオは1つ以上のエージェントに展開される。ステップ1540において、統合シナリオは1つ以上のエージェントによって実行される。1つの局面において、統合シナリオは、たとえばODIスタジオ312から、コマンドラインから、またはウェブサービスからといったようにいくつかの態様で実行され得る。たとえば、シナリオ実行は、上に論じられるようにオペレータモジュール320などを介して閲覧および監視され得る。図15はステップ1550で終了する。
組み合わされたフローベースのETLおよびエンティティリレーションシップベースのETL
ほとんどのデータ統合システムにおいて、マッピングは、マップの部分を形成するすべての入力および出力属性の明示的な定義を必要とする。典型的なフローベースのETLツールにおいて、コネクタが属性レベルに形成される。これにより、非常に簡潔なマッピングモデルが得られる。しかしながら、これによりさらに、巨大な数のオブジェクトが生成されるとともに、属性レベルコネクタの数によりマップを構築および維持することが煩雑になる。
さまざまな実施形態において、データ統合システム200は、マッピングの設計およびメンテナンスを容易にするための1つ以上の技術を組み込む。コンポーネントは、すべての入力および出力属性を特定する必要なく、単純に既存の設計に加えられ得、コンポーネントレベルのコネクタがリルートされることが可能になる。1つの局面において、データセットとフロー指向の設計との組合せは、変更と共に複雑性を扱うよう提供される。エンティティリレーションシップは、設計の論理ビュー内で特定され得、これにより、データストア、ジョイン、フィルタおよびルックアップが、一般にマップへの変更を必要とすることなく、追加または除去されることが可能になる。
本願明細書において一般に使用されるようなデータセットは、データストアのグループからのデータフローを表わす。いくつかのデータセットは、ユニオンおよびインターセクトのようなセットベースのオペレータのようなオペレーションを使用してインターフェイスターゲットデータストアへマージされ得る。さまざまな実施形態では、設計の論理ビューにおいて、データセットは追加、除去、配列され得る。したがって、データ統合システム200は、ユーザが単一のビューにおいてフローベースのETLとエンティティリレーションシップベースのETLとを組み合わせることを可能にする。したがって、データ統合システム200は、マッピングの設計およびメンテナンスを非常に容易にする。データ統合システム200はさらに、既存の設計へのコンポーネントの追加、典型的には単に必要なレベルコネクタをリルートすることを簡易にする。
図16は、本発明に従った一実施形態における組み合わされたフローベースおよびエンティティベースのマッピング1600の簡略ブロック図である。この例において、マッピング1600は、データソースSRC_EMPを表わすコンポーネント1610と、データセットDATASETを表わすデータセット1620と、データターゲットTGT_EMPDEPTを表わすコンポーネント1630とを含む。データターゲットTGT_EMPDEPTを更新するために、データソースSRC_EMPおよびDATASETについてジョインが必要とされる。入力としてコンポーネント1610およびデータセット1620に接続するとともに出力としてコンポーネント1630に接続するJOINを表わすコンポーネント1640がマッピング1600に加えられる。コンポーネント1640は(SRC_EMP.DEPTNO=DATASET.DEPTNO)といったジョインエクスプレッションを提供するように構成される。
従来のデータ統合システムにおいて、マッピング1600は、JOINを表わすコンポーネント1640の部分を形成するすべての入力および出力属性の明示的な定義を必要とする。対照的に、さまざまな実施形態において、マップデベロッパは、コンポーネント1640を通って流れているためコンポーネント1630に可視である、コンポーネント1610によって表わされるデータソースSRC_EMPの属性およびデータセット1620によって表わされるDATASETの属性からデータターゲットTGT_EMPDEPTのカラムがどのように直接的にポピュレートされるかを提供するようデータセット1620におけるエンティティリレーションシップを規定し得る。
図17は、本発明の実施形態に従った、組み合わされたフローベースおよびエンティティベースのマッピングを生成するための方法1700のフローチャートを示す。図17に示される方法1700の実現または処理は、コンピュータシステムまたは情報処理デバイスのようなロジックマシンの中央処理装置(CPUまたはプロセッサ)によって実行される際にソフトウェア(たとえば命令またはコードモジュール)によって実行され得るか、電子デバイスまたは特定用途向け集積回路のハードウェアコンポーネントによって実行され得るか、または、ソフトウェアおよびハードウェア要素の組合せによって実行され得る。図17に示される方法1700は、ステップ1710において開始する。
ステップ1720において、1つ以上のコンポーネントが受け取られる。上で論じたように、いくつかのタイプのコンポーネントは、マップを通って流れるデータの形に影響する一方、他のタイプのコンポーネントは、データのフローを制御するがフローの形を根本的に変更しない。ステップ1730において、1つ以上のデータセットが受け取られる。たとえば、マップデザイナーは、設計からのデータセットを追加、編集、または除去し得る。マップデザイナーは、データセットにおけるさまざまな属性間のエンティティリレーションシップを特定するためにリレーションシップエディタと相互作用し得る。1つの局面において、データ統合システム200は、設計の下流のコンポーネントに晒されることになる属性を判定するために、規定されたエンティティリレーションシップを抽出するように構成される。ステップ1740において、コンポーネントおよびデータセットに基づいてマップが生成される。さまざまな実施形態において、コンポーネントおよびデータセットへの変更を反映するために、設計の論理ビューおよび物理ビューが更新され得る。さまざまな局面において、データ統合システム200は、フローのデータセットビューにおいてリレーションシップを導き出すことに基づいて物理設計を自動的に生成する。図17はステップ1750で終了する。
データ統合システム200はさらに、既存の設計へのコンポーネントおよび他のデータセットを追加することを簡易にし、典型的にはレベルコネクタをリルートすることを必要とするのみである。たとえば、フィルタコンポーネントが設計に加えられると、コンポーネントレベルコネクタの変更は、ある下流のコンポーネントの属性のアサインメントにおける変更を必要としない。別の例において、別のデータセットを追加することによって、マップデザイナーは、マップの設計ビューの内部からエンティティリレーションシップを直接的に特定または宣言することが可能になる。
図18は、本発明に従った一実施形態における、データセットビューを有するマッピング1600の簡略ブロック図である。この例において、コンポーネント1620は1つ以上のエンティティ1810、1820および1830を含む。マッピング1600にエンティティリレーションシップを追加するためには、ユーザは、リレーションシップ1840のようなエンティティ属性同士の間のリレーションシップを追加または規定する必要があるだけである。さまざまな実施形態において、そのような変更は、マッピング1600における如何なる下流のアサインメントへの変更も必要としない。なぜならば、1つ以上のエンティティリレーションシップから得られる出力属性は、設計ビューにおいて提供される情報から直接的に導き出され得るからである。従来のフローツールでは、カラムレベルにおけるすべてのものは、新しいデータセットの導入によって再リンクされる必要がある。
図19Aおよび図19Bは、本発明に従った一実施形態における組み合わされたフローベースおよびエンティティベースのマッピングについての論理および物理設計の簡略ブロック図である。この例において、図19Aのビュー1910は、データソースを表わすコンポーネントA、B、およびCと、論理設計のフロービューにおいてデータターゲットを表わすコンポーネントTとを含む。コンポーネントA、BおよびCは、論理設計のデータセットビューにおいてエンティティリレーションシップを記述するデータセットとして表わされる。したがって、データセットビューにおいてマップクリエイターによって規定されたエンティティリレーションシップから記述されるコンポーネントTのような下流のコンポーネントから閲覧される際、データセットは、属性の宣言されたセットを有する。コンポーネントJ1およびJ2は、データセットビューにおいてコンポーネントの属性間の論理オペレーションを表わす。
この例において、図19Bのビュー1920は、データソースを表わすコンポーネントA、B、およびCと、物理設計のフロービューにおいてデータターゲットを表わすコンポーネントTとを含む。属性のセットは、データセットビューにおいて規定されるとともに物理設計を作成するために使用されるエンティティリレーションシップから導き出される。
図20は、本発明の実施形態に従った、組み合わされたフローベースおよびエンティティベースのマッピングの物理設計を生成するための方法2000のフローチャートを示す。図20に示された方法2000の実現または処理は、コンピュータシステムまたは情報処理デバイスのようなロジックマシンの中央処理装置(CPUまたはプロセッサ)によって実行される際にソフトウェア(たとえば命令またはコードモジュール)によって実行され得るか、電子デバイスまたは特定用途向け集積回路のハードウェアコンポーネントによって実行され得るか、または、ソフトウェアおよびハードウェア要素の組合せによって実行され得る。図20に示される方法2000は、ステップ2010において開始する。
ステップ2020において、コンポーネント定義が受け取られる。たとえば、コンポーネント定義はルール、オペレーション、プロシージャ、変数、およびシーケンスなどを含み得る。ステップ2030において、データセット定義が受け取られる。たとえば、マップデザイナーは、論理設計のフロービュー内においてエンティティリレーションシップを追加または編集し得る。ステップ2040において、フロー設計からリレーションシップ情報を導き出すことに基づいて物理設計が生成される。図20はステップ2050で終了する。
したがって、データ統合システム200はユーザがプラットホームおよび技術に依存しない論理設計を作成することを可能にする。ユーザは、どのようにデータがソースとターゲットとの間に流れることをユーザが望むかをハイレベルで規定する論理設計を作成し得る。ユーザのインフラストラクチャを考慮して、ツールが論理設計を分析し、物理的設計を作成し得る。論理設計は、設計における各ソースおよびターゲットに対応する複数のコンポーネントと、ジョインまたはフィルタのようなオペレーションと、アクセスポイントとを含み得る。物理的設計に転送された際の各コンポーネントは、データに対してオペレーションを行なうようコードを生成する。存在する技術(たとえばSQLサーバ、オラクル、Hadoopなど)と使用される言語(SQL、pigなど)とに依存して、各コンポーネントによって生成されるコードは異なり得る。
したがって、データ統合システム200のユーザは、論理設計においてデータセットコンポーネントをあらかじめ規定する必要はない。データ統合システム200は、マップデザイナーが論理設計のデータセットビューにおいてエンティティリレーションシップを宣言することを可能にするツールを提供する。データ統合システム200は、所定のコンポーネントタイプによって表わされるオペレーションにてどの属性が必要かを決定することができる。これは設計およびメンテナンスの両方を簡素化する。
エンティティリレーショナルモデリング
リレーショナルデータベース設計は、エンティティリレーショナルモデリングまたはE−Rモデリングに基づいている。従来、E−R設計は、問題ドメインの静的な構成を記述するために使用されている。データストアからデータを抽出してそれらを「マッサージ」してある構造にするといったより動的な局面は、一般に異なる問題と考えられる。1990年代中盤以降、これらのいわゆる「ETLツール」に対して着実な取り組みがなされてきた。ETLツールは、一般にETLモデルと称される、動的データフローに関する仕様を人間のデザイナーが作成するのを支援することが可能である。
図21は、静的なE−Rモデルと動的なETLモデルとの間のリレーションシップを示す図である。1つの興味深い疑問は、ETL設計プロセスにおいて、示される人的要因を除去することが可能かどうかである。代替的には、別の態様でこの疑問を表すと、人間の介入なしで動的なデータフローモデルが自動的に形成され得るようにE−Rモデルは十分なオペレーショナル情報を含んでいるか?ということである。
E−Rモデルを使用してETL設計プロセスを自動化することから多くの恩恵が存在する。1つのそのような恩恵はETLデザイナーの生産性である。E−Rモデルは、ETLプロセスより容易に補正され得る。E−Rモデルはさらに、データベースエンジニアが理解する標準的な表記法を有する。しかしながら、如何なるETLツールについても同じことは言えない。すべてでなければ大部分は、デザイナーの側での急な学習曲線を必要とする。別の恩恵は、変更に対するより良好な適応性である。E−Rモデルが終了する場合、「仲介者(middleman)」なしで、ETLプロセスも終了する。
さまざまな実施形態において、E−RモデルからETLモデルへの自動的な変換を提供するよう技術が開示される。これは、データベースエンジニアがE−Rダイアグラムを読むと、データフローモデルが彼の頭において通常構築されるという所見に基づく。この暗黙のデータフローモデル(silent data flow model)を使用して、エンジニアはE−Rモデルを理解し得、他者とコミュニケ―ションすることができる。エンジニアはさらに、このモデルに基づいてソフトウェアを作成する。E−Rモデルが複雑になる場合、この現象はより明らかである。したがって、発明者は、すべてのE−Rモデルにおいて1つ以上の隠されたデータフローモデルが存在し得ることを認識している。1つの局面において、自動的な変換システムの作成をガイドする際に正確であると証明されたE−Rモデルについて等価なデータフローモデルが提供される。
図22は、一実施形態における自動変換システム2200のトップレベルの設計チャートを提供する図である。図22は、本願明細書において開示される発明の実施形態または実現例を単に例示し得るだけであり、請求の範囲に記載されるような任意の発明の範囲を限定するべきでない。当業者は、この開示および本願明細書において示される教示を通じて、図において示される実施形態または実現例に対する他の変形例、修正例および/または代替例を認識し得る。
図22に示されるように、E−Rモデルは、「ユーザディレクティブ(user directive)」のセットとともに、自動変換システム2200に入力として提供される。その後、自動変換システム2200は、ETLの目的のために等価なデータフローモデルを作成する。本願明細書において使用されるように、「ユーザディレクティブ」は、ユーザがデータフローモデルの計算を考慮に入れることを期待する要件のセットである。たとえば、ユーザは、論理の考慮、性能の考慮、またはセキュリティの考慮などにより、バイナリリレーションシップの連なりについて特定のオーダを要求し得、指定されたマシン/位置についてリレーションシップを処理することを要求し得る。
本願明細書において使用されるような「等価なデータフロー」モデルは、E−Rモデルについてセマンティックモデルを表わす。セマンティックモデルは、論理モデルが何を意味するかを明白に規定するために使用される。セマンティックモデルは、自然言語、集合論表記法、代数方程式、数学論理またはアルゴリズム表記法(一般にオペレーショナルセマンティックとして公知)といった非常に異なる態様で表現され得る。さまざまな実施形態において、E−Rモデルについてのセマンティックモデルは、「CFOモデル」と称されるオペレーショナルセマンティックモデルである。1つの局面において、オペレーショナルセマンティックフォーマットで意味を規定することは、二重の恩恵を提供する。第1に、オペレーショナルセマンティックモデルは既に、データフローモデルと一致するステップバイステップフォームにあるという恩恵である。第2に、オペレーショナルセマンティックモデルは、他のフォーマルなセマンティックモデルと比較して、人間にとって理解するのが容易であり、自然言語の説明より正確であるという恩恵である。
E−Rモデル(またはダイアグラム)におけるバイナリリレーションシップは、単純にETLモデルにおけるジョインにマッピングされ得る。しかしながら、マルチウェイリレーションシップは何らかの作業を必要とする。なぜならば、それについては一般的な誤認(misconception)があるからである。図23Aおよび図23Bは、2つの一般的なE−R表記法(E-R notation)での3ウェイリレーションシップを示す。図23Aを参照して、モデル2310は、標準的なE−R表記法を使用して描かれるかまたは別の態様で表わされる。この例において、モデル2310は3つのエンティティPET,PET_TYPE,PET_OWNERを含んでおり、「Pet−of−Type−and−Owner」と呼ばれる3ウェイリレーションシップにおいて関係付けられている。図23Aの直観的理解は、これらの3つのエンティティが同時に相互作用し得るということである。
しかしながら、実際には、標準的なE−R表記法は使用されない。代わりに、いわゆる「カラスの足(Crow's Feet)」表記法を見ることがより一般的である。これらの2つの表記法の間の違いは単に表面的である。図23Bを参照して、モデル2320はカラスの足表記法を使用して描かれるかまたは別の態様で表わされる。この例においても、モデル2320は、PET,PET_TYPE,PET_OWNERの3つのエンティティを含んでおり、真ん中におけるコーナー線を有するボックスとして示される「Pet−of−Type−and−Owner」と呼ばれる3ウェイリレーションシップにおいて関係付けられている(関連エンティティ(associative entity)とも称される)。関連エンティティは、3つの他のエンティティを一緒に同時に結ぶよう作成される。
1つの一般的な誤認は、マルチウェイリレーションシップをバイナリリレーションシップの連なりと同等視する誤りである。図24Aおよび図24Bは、2つの一般的なE−R表記法における3ウェイリレーションシップに対する等価なものを示す。図24Aを参照して、モデル2410は、標準的なE−R表記法での2つのバイナリリレーションシップを有する、図23Aのモデル2310に等価なものとして描かれるかまたは別の態様で表わされる。図24Bを参照して、モデル2420は、カラスの足表記法での等価なモデルを有する、モデル2320に等価なものとして描かれるかまたは別の態様で表わされる。
これらのモデルの両方は、2つのバイナリリレーションが常に同時に保持することを必要としないという同じ問題を共有する。たとえば、「ペットA」と称するPETにおけるインスタンスは、「PT A」と称するPET_TYPEにおけるインスタンスに関係し得るが、「ペットA」がさらにPET_OWNERからのインスタンスに関係しなければならないということは必要とされない。
しかしながら、ペットは同時に2つのバイナリリレーションシップに参加しなければならないという事実をモデル化することが可能である。図25は、バイナリリレーションシップの連なりを使用して3ウェイリレーションシップに対する等価なものを示す。この例において、図24Bとは異なり、モデル2500は、関連エンティティとしてPETエンティティを表わす。関連エンティティにおける各インスタンスは、例外なくすべての他の接続されたエンティティに関する。図25は、バイナリリレーションシップの連なりのように思われ得るが、実際には隠れた図23Bにおける3ウェイリレーションシップであり、PETエンティティは、図23Bにおいて示される関連エンティティを吸収する。
1つの局面において、PETエンティティが関連エンティティを吸収することができる2つの特殊な場合が存在する。第1に、1つの可能性は、各PETインスタンスが1つ以下のリレーションシップインスタンスに参加するということである。第2に、別の可能性は、PETが弱いエンティティかどうかである(弱いエンティティの形式定義は、自身の一次キー(primary key)を有さないエンティティである)。PETが強いエンティティであると仮定すると、それ自身の一次キーは、ペットを識別するためにのみ使用されなければならない。リレーションシップインスタンスを識別するためにもそれを使用することができない。たとえば、ペットインスタンスが1つより多いリレーションシップインスタンスに参加する場合には、強いPETエンティティに一次キー違反が存在することになる。他方、PETが弱いエンティティである場合、その(ユニークでない)部分キー(partial key)は、3リレーションシップのキー(部分的またはユニークのいずれか)と組み合わされ得る。この場合、PETは3リレーションシップを吸収し得る。
したがって、付加的な仮定(additional assumption)を作成することなく、図23Bは、バイナリリレーションシップの連なりに類似するよう変形され得ない。したがって、図23Bにおいて示される一般的な3リレーションシップに焦点を合わせる。
図26は、標準的なE−R表記法を使用して3ウェイリレーションシップを示す。当該例についてのスキーマは、PET,PET_TYPE,PET_OWNERエンティティを含み、これに加えて、それらについての1つ以上の3リレーションシップを含む。いくつかの付加的な情報も提供される。この例において、モデル2600は、E−Rダイアグラムにおいてカーディナリティ範囲(cardinality range)0..mによって示されるように、3リレーションシップの随意の参加者としてPETを表わす。他の2つのエンティティは両方ともリレーションシップの完全な参加者である。
p,t,oがそれぞれPET、PET_TYPEおよびPET_OWNERのインスタンスであるとする。「Pet−of−Type−and−Owner」リレーションシップにおける可能性のあるインスタンスは以下のとおりである。
・(p, t, o)
・(<missing>, t, o)
ここで、<missing>は、エンティティからの値の欠如を表わす。これらの候補タプルが有効なリレーションシップインスタンスであるかどうかは、
PET.type_id = PET_TYPE.id and PET.owner_id = PET_OWNER.id
と規定される3ウェイジョイン条件によって判定される。
なお、<missing>という値は、任意の他の値と一致することが可能である。そのため、この例において、タプル(<missing>,t,o)は、
<missing> = PET_TYPE.id and <missing> = PET_OWNER.id
という条件が真と評価されるので、リレーションシップの有効なインスタンスである。
これらのエンティティについての3つの例示的なテーブルは、以下のステートメントによって作成される。
図27は、各テーブルにおけるロウを示す。示されるように、各エンティティは1つのインスタンスのみを有する。1つの局面において、ユーザは、
PET.type_id = PET_TYPE.id and PET.owner_id = PET_OWNER.id
という3ウェイジョイン条件を入力し得る。
ユーザはさらに、随意のものとして、エンティティPETをマークし得る。これは、図26に示されるE−Rモデルを入力することと等価である。1つの困難は、図26の意味を最も良くキャプチャするためにどのようにSQLステートメントを生成するかである。さまざまな実施形態において、良好なマルチウェイジョインインプリメンテーションを提供することになるシンタックスに関して判定がなされる。以下の例において、ANSIジョインシンタックスが使用される。
各ANSIジョインはペアワイズ(pair-wise)であるので、3つのテーブルを結合するためには、2つのジョインが必要である。さらに、PETは随意のエンティティであるので、2つのジョインの少なくとも1つはアウタージョインでなければならない。更に、どの2つのテーブルが最初に結合されるかも考慮するべきファクタである。これらの考慮をすべて一緒にすると、ANSIシンタックスを使用するマルチウェイジョインについて9つの可能なインプリメンテーションに対応する9つの順列が発生する。これらの場合は、データフローチャートを使用して描かれ、それらのSQLステートメントおよび結果とともに以下の表1に示される。
すべての可能なインプリメンテーションの検討から、インプリメンテーション#7が3ウェイリレーションシップについての期待と一致するように思われる。したがって一般に、マルチウェイリレーションシップは、バイナリリレーションシップの連なりと等価ではない。しかしながら、さまざまな実施形態において、マルチウェイリレーションシップは、バイナリジョインを使用して実現され得る。したがって、1つの局面では、正しいデータフローインプリメンテーションを生成する際の使用のために、(カジュアルな)人間のユーザにとって理解可能でありつつ正確であるモデルが作成される。
上で論じたように、等価なデータフローモデルは、「オペレーショナルセマンティックモデル」のカテゴリーにフィットする。システムの意味/意図を明白に記述するオペレーティングセマンティックモデルが作成されている。しかしながら、E−Rモデルを等価に表わすためのものは、本願明細書において論じられるような新たな機会を提供する。
図28Aおよび図28Bは、一実施形態において、E−R表記法における3ウェイリレーションシップと、3つのエンティティから生じるデータを有するデータフローとを示す。図28AのPETの例を使用して、図28Bは、3つのエンティティから生じるデータを有するデータフローを記載する。各エンティティは、タプルのセットを提供する。各タプルはカラム/属性のリストから構成される。すべてのタプルは、以下に規定されるコネクトフェーズ、フィルタフェーズ、およびアウトプットフェーズという3つのステージを経る。
コネクトフェーズ:すべての入力エンティティのカルテシアン積を実行する。エンティティが随意のエンティティ(以下に規定)である場合、カルテシアン積が行なわれる前に、値<missing>のすべてのカラムを有する特別なタプルが、エンティティの追加のメンバーとして最初に加えられる。
フィルタフェーズ:フィルタフェーズにおいて、コネクトフェーズからのすべてのタプルは以下の3つのグループへ分類される。
・グループF(リレーションシップ条件を達成しないタプルを含む)
・グループS1(たとえば、如何なる<missing>値も比較することなく、
PET.tid = PET_TYPE.id and PET.oid = PET_OWNER.id
というリレーションシップ条件を満たすタプルを含む)
・グループS2(リレーションシップ条件を満たすすべての他のタプルを含むが、補足値<missing>が比較において使用される)。
直観的に、グループS1は、ストレートな成功を成し遂げたロウを含む。グループS2は、随意のエンティティからの無視できるmissing値により、ジョイン条件をパスした。
アウトプットフェーズ:以下のルールを使用して、タプルのセットである最終結果を出力する。
・グループFからのすべてのタプルが廃棄される。
・グループS1からのすべてのタプルが最終結果セットに含まれる。
・グループS2からのタプルは、最終結果に対して重要な寄与を有する場合のみ、最終結果セットに含まれる。
タプルは、結果セットにおけるタプルのうちの1つに一致する場合、最終結果に対して重要な寄与をしないと考えられる。2つのタプルがマッチするかどうかチェックする際に、<missing>値が任意の他の値とマッチするとみなす。たとえば、以下の2つのタプルはマッチする。
('ABC', 123) vs (<missing>, 123)
直観的に、最終のアウトプットフェーズは、グループS1およびS2におけるタプルに対して重複排除(deduplication)を実行する。
図27における例示的なデータを使用して、コネクトフェーズの結果は、
(pet_100, pet_type_1, pet_owner_10)
(<missing>, pet_type_1, pet_owner_10)
という2つのタプルを含む。
ここで、id=100を有するPETテーブルにおけるロウを表わすためにpet_100が使用される。なお、PETは随意のエンティティであるので、値<missing>は「有効な」ペットとして扱われる。
第2のフェーズにおいて、
PET.tid = PET_TYPE.id and PET.oid = PET_OWNER.id
というマルチウェイジョイン条件が評価される。そして、
(<missing>, pet_type_1, pet_owner_10)
というタプルのみが当該条件を満たす。
最終フェーズは、如何なる重複排除も行なう必要がないので、この例については重要でないことである。
テーブル1におけるインプリメンテーション#7が正しい結果を返すことができる理由は、インプリメンテーション#7が、ジョイン条件を評価し始める前にすべてのテーブルのカルテシアン積を行なうからである。インプリメンテーション#7は、規定されたオペレーショナルセマンティックモデルに一貫している唯一のインプリメンテーションである。ロウがデータフローにおいてフィルタリングされる前にカルテシアン積演算が良好に完了することを確実にすることにより、マルチウェイリレーションシップに固有の同時性プロパティが、潜在的に破壊的なバイナリジョインから保護される。
いくつかの実施形態において、ユーザは、コネクトフェーズオペレーションについての必要性を示す線をエンティティ間に描くことによりモデルを視覚的に作成することが可能であり得る。たとえば、ユーザが単にPETとPET_OWNERとの間の接続を描いたが、
PET.tid = PET_TYPE.id and PET.oid = PET_OWNER.id
といったようにリレーションシップ条件を入力したとする。
上記の3ウェイリレーションシップ条件を見ると、接続は、自動的に判定され、PETとPET_TYPEとの間で作成され得る。これは、コネクトフェーズオペレーションが、含まれるすべてのエンティティのカルテシアン積を必要とするからである。この導き出されたジョインに関するジョイン条件は、カルテシアン積を達成する場合のみ、1=1である。
さらに、ユーザが、PET_OWNERからPET_TYPEまで付加的な線を描いて、3つのエンティティの間で円を形成したとする。1つの局面において、円を作成した新しい線は、リレーションシップにおけるすべてのエンティティが十分に接続されているので無視され得る。人間のユーザであれば、線は「バイナリリレーションシップ」を意味すると考えるかもしれないが、図28Bのオペレーショナルセマンティックモデルにずっと従い続けることによって、線は、カルテシアン積を使用してエンティティをともに接続することを意味するだけである。
エンティティが接続された後、ダイアグラムはバイナリジョインのツリーに変換され得、当該ツリーにおいて、PETおよびPET_TYPEについてのジョインノードは1=1条件を保持する。また、マルチウェイジョイン条件は最後のジョインノードに対して遅延される。全プロセスにおいて、ジョイン条件は偽られず、すべてのテーブルからのすべてのロウが相互作用する機会を有することを保証するよう最大限に遅延される。
対照的に、ジョイン条件が(シンタックス上許される)2つの部分へ分割され、2つのジョインノードに2つのサブ条件を割り当てた場合、オペレーショナルセマンティックモデルは違反されることになる。なぜならば、コネクトフェーズが完了する前にフィルタフェーズが開始されるからである。
したがって、オペレーショナルセマンティックモデルは、詳細でステップバイステップの態様で特定されるので、任意の既存のプログラミング言語を使用してプログラムインプリメンテーションに容易に変換され得る。それを実現するのに単にSQLを使用する必要はない。
図29は、さまざまなデータベースモデリング方法およびそれらのセマンティックコンテンツの間でリレーションシップをレイアウトするダイアグラムを示す。この例において、E−Rモデルはまだ、セマンティックモデルからの支援を必要としている。CFOモデルは、特にマルチウェイリレーションシップについて、E−Rにおいて曖昧性を除去するための1つのそのようなセマンティックモデルである。図29に示されるように、同じ目的のために、オブジェクト指向モデルが使用され得る。E−Rを正確にOOモデルに変換するための多くの特許が存在する。しかし、OOモデルは、データフローモデルと統合する能力を欠いている。データフローモデルは、ソースからターゲットまでのデータのステップバイステップオペレーションを明示的に説明している。OOモデルは、その目的には記述的すぎる。CFOモデルは、オートマトンに類似しており、データフローモデルとの統合に本質的に好適である。
結論
図30は、本発明の実施形態を実施するために使用され得るコンピュータシステム3000の簡略ブロック図である。図30に示されるように、コンピュータシステム3000は、バスサブシステム3020を介して多くの周辺機器と通信するプロセッサ3010を含む。これらの周辺機器は、メモリサブシステム3040およびファイルストレージサブシステム3050を含むストレージサブシステム3030と、入力デバイス3060と、出力デバイス3070と、ネットワークインターフェイスサブシステム3080とを含み得る。
バスサブシステム3020は、コンピュータシステム3000のさまざまなコンポーネントおよびサブシステムを意図されるように互いと通信させるためのメカニズムを提供する。バスサブシステム3020は単一のバスとして概略的に示されるが、バスサブシステムの代替的な実施形態は複数のバスを利用してもよい。
ストレージサブシステム3030は、本発明の機能を提供する基本的なプログラミングおよびデータ構造を格納するように構成され得る。本発明の機能を提供するソフトウェア(コードモジュールまたは命令)は、ストレージサブシステム3030に格納され得る。これらのソフトウェアモジュールまたは命令は、プロセッサ3010によって実行され得る。ストレージサブシステム3030は、さらに本発明に従って使用されるデータを格納するためのリポジトリを提供し得る。ストレージサブシステム3030は、メモリサブシステム3040とファイル/ディスクストレージサブシステム3050とを含み得る。
メモリサブシステム3040は、プログラム実行の間に命令およびデータの格納のためのメインランダムアクセスメモリ(RAM)3042と、固定された命令が格納されるリードオンリメモリ(ROM)3044とを含む多くのメモリを含み得る。ファイルストレージサブシステム3050は、プログラムおよびデータファイルのための持続性(不揮発性)ストレージを提供しており、ハードディスクドライブ、関連するリムーバブル媒体を有するフロッピー(登録商標)ディスクドライブ、コンパクトディスクリードオンリメモリ(CD−ROM)ドライブ、DVD、オプティカルドライブ、リムーバブル媒体カートリッジ、および他の同様のストレージ媒体を含み得る。
入力デバイス3060は、キーボードと、マウス、トラックボール、タッチパッドまたはグラフィックスタブレットのようなポインティングデバイスと、スキャナと、バーコードスキャナと、ディスプレイに組み込まれるタッチスクリーンと、音声認識システム、マイクロホンのような音声入力デバイスと、他のタイプの入力デバイスとを含み得る。一般に、「入力デバイス」という用語の使用は、コンピュータシステム3000に情報を入力するためのすべての可能なタイプのデバイスおよびメカニズムを含むように意図される。
出力デバイス3070は、ディスプレイサブシステム、プリンタ、ファックスマシン、または音声出力デバイスなどのノンビジュアルディスプレイを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)のようなフラットパネルデバイス、または投射デバイスであり得る。一般に、「出力デバイス」という用語の使用は、コンピュータシステム3000から情報を出力するためのすべての可能なタイプのデバイスおよびメカニズムを含むように意図される。
ネットワークインターフェイスサブシステム3080は、他のコンピュータシステム、デバイス、および通信ネットワーク3090のようなネットワークにインターフェイスを提供する。ネットワークインターフェイスサブシステム3080は、コンピュータシステム3000からデータを受け取るとともに他のシステムにデータを送信するためのインターフェイスとして機能する。通信ネットワーク3090のいくつかの例は、プライベートネットワーク、パブリックネットワーク、専用回線、インターネット、イーサネットネットワーク、トークンリングネットワーク、および光ファイバーネットワークなどである。
コンピュータシステム3000は、パーソナルコンピュータ、ポータブルコンピュータ、ワークステーション、ネットワークコンピュータ、メインフレーム、キオスクまたは任意の他のデータ処理システムを含むさまざまなタイプのものであり得る。コンピュータおよびネットワークの絶えず変化する性質により、コンピュータシステムの好ましい実施形態を説明する目的のために、図30に示されるコンピュータシステム3000の説明は特定の例としてのみ意図される。図30に示されたシステムよりも多くまたはより少ないコンポーネントを有する多くの構成が可能である。
図31は、本発明の実施形態に従ったデータマッピングの生成を促進するためのデータ統合システム3100の簡略ブロック図である。本発明の原理を実行するために、データ統合システム3100のブロックは、ハードウェア、ソフトウェアまたはハードウェアおよびソフトウェアの組合せによって実現され得る。当業者であれば、図31に記載されるブロックは、上述されるように、本発明の原理を実現するために、組み合されてもよく、またはサブブロックへと分離されてもよいということが理解される。したがって、本願明細書における記載は、本願明細書において記載される機能ブロックの任意の可能な組合せ、分離、またはさらなる定義をサポートし得る。
図31に示されるように、受取部3110、判定部3220および生成部3130を含むデータ統合システム3100が示される。随意に、データ統合システム3100はさらに、導出部3140およびエクスポート部3150を含み得る。
一実施形態において、受取部3110は、論理設計のコンポーネントとしてエンティティリレーションシップのセットを特定する情報を受け取るように構成される。判定部3120は、エンティティリレーションシップのセットに基づいて、等価なデータフローモデルを判定するように構成される。生成部3130は、論理フロー設計において等価なデータフローモデルを示す情報を生成するように構成される。
実施形態の1つの局面において、導出部3140は、データソースの属性同士の間のリレーションシップを宣言する情報に基づき、エンティティリレーションシップのセットを表わすデータセットの1つ以上の属性を導き出すように構成される。実施形態の1つの局面において、受取部3110はさらに、論理設計を通って流れる情報の形を変更するオペレーションを示す情報を含む論理設計の1つ以上のコンポーネントを特定する情報を受け取るように構成される。
実施形態の1つの局面において、受取部3110はさらに、論理設計を通って流れる情報のフローを制御するが論理設計を通って流れる情報の形を変更しないオペレーションを示す情報を含む論理設計の1つ以上のコンポーネントを特定する情報を受け取るように構成される。実施形態の1つの局面において、受取部3110はさらに、ターゲットデータストアに格納されるデータの1つ以上の属性を有するターゲットコンポーネントを示す情報を含む論理設計の1つ以上のコンポーネントを特定する情報を受け取るように構成される。
実施形態の1つの局面において、生成部3130は、下流のコンポーネントに属性のリストをエクスポートするように構成されるエクスポート部3150を含む。実施形態の1つの局面において、受取部3110はさらに、1つ以上のリレーションシップの導入による論理設計における変更を受け取るように構成され、判定部3120はさらに、更新された等価なデータフローモデルを判定するように構成される。
本発明の具体的な実施形態を記載してきたが、さまざまな修正例、変更例、代替的な構成、および均等例も本発明の範囲内に含まれる。記載された発明は、ある特定のデータ処理環境内のオペレーションに制限されず、複数のデータ処理環境において自由に作用する。さらに、特定の一連のトランザクションおよびステップを使用して本発明が記載されたが、本発明の範囲は記載された一連のトランザクションおよびステップに限定されるわけではないということは当業者に明らかであるはずである。
さらに、本発明をハードウェアおよびソフトウェアの特定の組合せを用いて説明したが、ハードウェアおよびソフトウェアの他の組合せも本発明の範囲内であると認識されるべきである。本発明は、ハードウェアのみで、またはソフトウェアのみで、またはその組合せを使用して実現され得る。
したがって、明細書および図面は、限定的な態様ではなく例示的な態様であるとみなされるべきである。しかしながら、添付の特許請求の範囲に記載されるより広い本発明の精神および範囲から逸脱することがなければ、追加、削減、削除、ならびに、他の修正および変更もなされてもよいということが明らかであろう。
その教示がこの開示内に示され得る1つ以上の発明のいずれかのさまざまな実施形態がソフトウェア、ファームウェア、ハードウェアまたはその組合せにおけるロジックの形で実現され得る。ロジックは、この開示において示された発明のさまざまな実施形態において開示され得るステップのセットを実行するために、ロジックマシンの中央処理装置(CPUまたはプロセッサ)を指示するように適合される命令のセットとして、マシンアクセス可能なメモリ、マシン読み取り可能な物品、有形的なコンピュータ読取可能媒体、コンピュータ読取可能記憶媒体、または他のコンピュータ/マシン読取可能媒体に格納され得る。ロジックは、この開示に示される発明のさまざまな実施形態における方法またはプロセスを行なうよう実行される際に、コードモジュールがコンピュータシステムまたは情報処理デバイスのプロセッサにより作動状態になると、ソフトウェアプログラムまたはコンピュータプログラムプロダクトの一部を形成し得る。本願明細書において提供されるこの開示および教示に基づいて、示された発明の1つ以上のさまざまな実施形態の開示されたオペレーションまたは機能のいずれかをソフトウェア、ファームウェア、ハードウェアまたはその組合せで実現するための他の態様、変形例、修正例、代替例および/または方法を当業者は理解するであろう。
その教示がこの開示に示され得るそれらの発明のいずれか1つの開示された例、実現例およびさまざまな実施形態は、当業者にこの開示の教示を妥当な明瞭さで伝えるために単に例示的である。これらの実現例および実施形態は例示的な図または特定の図を参照して記載され得る際に、記載される方法および/または特定の構造のさまざまな修正例または適合例は当業者に明らかになり得る。本願明細書において発見されるこの開示およびこれらの教示に依存し、かつ、当該教示によって技術を進歩させたすべてのそのような修正例、適合例または変形例は、その教示がこの開示内に示され得る1つ以上の発明の範囲内に存在すると考えられるべきである。したがって、開示内に示された発明が具体的に示される実施形態にまったく限定されないということが理解されるので、この記載および図は限定的な意味で考えられるべきでない。
したがって、上記の記載および如何なる添付の図面、説明および図は、例示的であるが限定的ではないように意図される。したがって、この開示に示される如何なる発明の範囲も、上記の記載および図に示されるそれらの実施形態を単純に参照してではなく、それらの完全な範囲または均等物とともに係属中の請求項を参照して決定されるべきである。

Claims (16)

  1. データマッピングの生成を促進する方法であって、
    1つ以上のコンピュータシステムにて、論理設計のコンポーネントとしてエンティティリレーションシップのセットを特定する情報を受け取ることを含み
    前記エンティティリレーションシップのセットは、データセットにおける第1のエンティティの第1の属性と、前記データセットにおける第2のエンティティの第2の属性との間で定義されるリレーションシップを有し、
    前記方法は、さらに、
    前記1つ以上のコンピュータシステムに関連付けられる1つ以上のプロセッサにより、前記エンティティリレーションシップのセットに基づいて、データフローモデルを判定することと、
    前記1つ以上のコンピュータシステムに関連付けられる前記1つ以上のプロセッサにより、前記理設計における前記データフローモデルを示す情報を生成することと
    前記第1のエンティティの1以上の属性および前記第2のエンティティの1以上の属性を含む前記論理設計の下流のコンポーネントに属性のセットをエクスポートすることとを含む、方法。
  2. データソースの属性同士の間のリレーションシップを宣言する情報に基づいて、前記データセットにおける各エンティティの1つ以上の属性を導き出すことをさらに含む、請求項1に記載の方法。
  3. 前記論理設計を通って流れる情報の形を変更するオペレーションを示す情報を含む前記論理設計の1つ以上のコンポーネントを特定する情報を受け取ることをさらに含む、請求項1または2に記載の方法。
  4. 前記論理設計を通って流れる情報のフローを制御するが前記論理設計を通って流れる情報の形を変更しないオペレーションを示す情報を含む、前記論理設計の1つ以上のコンポーネントを特定する情報を受け取ることをさらに含む、請求項1〜3のいずれか1項に記載の方法。
  5. ターゲットデータストアに格納されるデータの1つ以上の属性を有するターゲットコンポーネントを示す情報を含む、前記論理設計の1つ以上のコンポーネントを特定する情報を受け取ることをさらに含む、請求項1〜4のいずれか1項に記載の方法。
  6. 前記データフローモデルは、エンティティが同時に2つのバイナリリレーションシップに参加するように、関連エンティティを吸収する3ウェイリレーションシップを含む、請求項1〜5のいずれか1項に記載の方法。
  7. 1つ以上のリレーションシップの導入による前記論理設計における変更を前記1つ以上のコンピュータシステムにて受け取ることと、
    前記1つ以上のコンピュータシステムに関連付けられる前記1つ以上のプロセッサにより、更新されたデータフローモデルを判定することとをさらに含む、請求項1〜6のいずれか1項に記載の方法。
  8. データマッピングの生成を促進するためのコンピュータ実行可能コードを備えるコンピュータ読取可能プログラムであって、
    論理設計のコンポーネントとしてエンティティリレーションシップのセットを特定する情報を受け取るためのコードを含み
    前記エンティティリレーションシップのセットは、データセットにおける第1のエンティティの第1の属性と、前記データセットにおける第2のエンティティの第2の属性との間で定義されるリレーションシップを有し、
    前記コンピュータ読取可能プログラムは、さらに、
    前記エンティティリレーションシップのセットに基づいてデータフローモデルを判定するためのコードと、
    前記理設計における記データフローモデルを示す情報を生成するためのコードと、
    前記第1のエンティティの1以上の属性および前記第2のエンティティの1以上の属性を含む前記論理設計の下流のコンポーネントに属性のセットをエクスポートするコードとを含む、コンピュータ読取可能プログラム。
  9. 請求項1〜7のいずれか1項に記載の方法をコンピュータに実行させるためのコンピュータ読取可能プログラム。
  10. データマッピングの生成を促進するシステムであって、
    プロセッサと、
    命令を格納するメモリとを含み、前記命令は、前記プロセッサによって実行されると、
    論理設計のコンポーネントとしてエンティティリレーションシップのセットを特定する情報を受け取るように前記プロセッサを構成し
    前記エンティティリレーションシップのセットは、データセットにおける第1のエンティティの第1の属性と、前記データセットにおける第2のエンティティの第2の属性との間で定義されるリレーションシップを有し、
    前記プロセッサは、さらに、
    前記エンティティリレーションシップのセットに基づいてデータフローモデルを判定し、
    前記理設計における記データフローモデルを示す情報を生成し、
    前記第1のエンティティの1以上の属性および前記第2のエンティティの1以上の属性を含む前記論理設計の下流のコンポーネントに属性のセットをエクスポートするように構成される、システム。
  11. 前記プロセッサはさらに、データソースの属性同士の間のリレーションシップを宣言する情報に基づいて、前記データセットにおける各エンティティの1つ以上の属性を導き出すように構成される、請求項10に記載のシステム。
  12. 前記プロセッサはさらに、前記論理設計を通って流れる情報の形を変更するオペレーションを示す情報を含む前記論理設計の1つ以上のコンポーネントを特定する情報を受け取るように構成される、請求項10または11に記載のシステム。
  13. 前記プロセッサはさらに、前記論理設計を通って流れる情報のフローを制御するが前記論理設計を通って流れる情報の形を変更しないオペレーションを示す情報を含む、前記論理設計の1つ以上のコンポーネントを特定する情報を受け取るように構成される、請求項10〜12のいずれか1項に記載のシステム。
  14. 前記プロセッサはさらに、ターゲットデータストアに格納されるデータの1つ以上の属性を有するターゲットコンポーネントを示す情報を含む、前記論理設計の1つ以上のコンポーネントを特定する情報を受け取るように構成される、請求項10〜13のいずれか1項に記載のシステム。
  15. 前記データフローモデルは、エンティティが同時に2つのバイナリリレーションシップに参加するように、関連エンティティを吸収する3ウェイリレーションシップを含む、請求項10〜14のいずれか1項に記載のシステム。
  16. 前記プロセッサはさらに、
    1つ以上のリレーションシップの導入による前記論理設計における変更を受け取り、
    更新されたデータフローモデルを判定するように構成される、請求項10〜15のいずれか1項に記載のシステム。
JP2016513952A 2013-05-17 2014-03-26 フローベースのetlおよびエンティティリレーションシップベースのetlの組合せのサポート Active JP6434960B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201361824544P 2013-05-17 2013-05-17
US61/824,544 2013-05-17
US201361843203P 2013-07-05 2013-07-05
US61/843,203 2013-07-05
US14/044,429 US10216814B2 (en) 2013-05-17 2013-10-02 Supporting combination of flow based ETL and entity relationship based ETL
US14/044,429 2013-10-02
PCT/US2014/031919 WO2014186057A1 (en) 2013-05-17 2014-03-26 Supporting combination of flow based etl and entity relationship based etl

Publications (3)

Publication Number Publication Date
JP2016529574A JP2016529574A (ja) 2016-09-23
JP2016529574A5 JP2016529574A5 (ja) 2017-04-27
JP6434960B2 true JP6434960B2 (ja) 2018-12-05

Family

ID=51896601

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016513952A Active JP6434960B2 (ja) 2013-05-17 2014-03-26 フローベースのetlおよびエンティティリレーションシップベースのetlの組合せのサポート

Country Status (5)

Country Link
US (1) US10216814B2 (ja)
EP (1) EP2997513A4 (ja)
JP (1) JP6434960B2 (ja)
CN (1) CN105359141B (ja)
WO (1) WO2014186057A1 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10216814B2 (en) 2013-05-17 2019-02-26 Oracle International Corporation Supporting combination of flow based ETL and entity relationship based ETL
US10206770B2 (en) 2013-07-05 2019-02-19 Oracle International Corporation Load plan generation
US9460171B2 (en) * 2013-11-08 2016-10-04 International Business Machines Corporation Processing data in data migration
US9823842B2 (en) 2014-05-12 2017-11-21 The Research Foundation For The State University Of New York Gang migration of virtual machines using cluster-wide deduplication
US10055545B2 (en) * 2014-07-10 2018-08-21 Quintiles Ims Incorporated System and method for master data management
US9922104B1 (en) * 2014-08-13 2018-03-20 Numerify, Inc. Metadata driven code-generated external data feeds
US10216504B2 (en) * 2015-06-05 2019-02-26 Oracle International Corporation System and method for insulating a web user interface application from underlying technologies in an integration cloud service
US10776357B2 (en) * 2015-08-26 2020-09-15 Infosys Limited System and method of data join and metadata configuration
CN108713205B (zh) 2016-08-22 2022-11-11 甲骨文国际公司 用于自动映射与数据流环境一起使用的数据类型的系统和方法
US11449474B2 (en) 2016-09-17 2022-09-20 Oracle International Corporation Change request visualization in hierarchical systems
US10614093B2 (en) * 2016-12-07 2020-04-07 Tata Consultancy Services Limited Method and system for creating an instance model
CN108632300B (zh) * 2017-03-15 2021-12-10 阿里巴巴集团控股有限公司 数据同步系统、方法、服务器、客户端及电子设备
US11494717B2 (en) 2017-06-08 2022-11-08 Elemica, Inc. System and method for supply chain management
US10740346B2 (en) * 2017-09-18 2020-08-11 Agile Handover And Automation Solutions, Llc System and method for automating information handover from facility project to operations/maintenance
JP7039232B2 (ja) * 2017-09-29 2022-03-22 株式会社日立製作所 技術情報共有システム及び技術情報共有方法
CN107909344B (zh) * 2017-11-21 2020-07-17 杭州电子科技大学 基于关系矩阵的工作流日志重复任务识别方法
US10783161B2 (en) * 2017-12-15 2020-09-22 International Business Machines Corporation Generating a recommended shaping function to integrate data within a data repository
CN108170832B (zh) * 2018-01-11 2021-09-14 哈尔滨工业大学 一种面向工业大数据的异构数据库的监控系统及监控方法
CN109376339B (zh) * 2018-08-02 2020-07-03 浙江大学 一种基于用户行为的文本转换候选规则信息提取方法
CN109299180B (zh) * 2018-10-31 2021-08-27 武汉光谷联众大数据技术有限责任公司 一种数据仓库etl操作系统
CN109684093B (zh) * 2018-12-24 2021-03-09 成都四方伟业软件股份有限公司 数据处理方法及系统
CN111435344B (zh) * 2019-01-15 2023-03-21 中国石油集团川庆钻探工程有限公司长庆钻井总公司 一种基于大数据的钻井提速影响因素分析模型
US11140036B2 (en) * 2019-01-16 2021-10-05 International Business Machines Corporation Identifying groups of related nodes in an integration flow
CN109918437A (zh) * 2019-03-08 2019-06-21 北京中油瑞飞信息技术有限责任公司 分布式数据处理方法、装置及数据资产管理系统
US11061856B2 (en) * 2019-07-03 2021-07-13 Bank Of America Corporation Data ingestion system
US20210200731A1 (en) * 2019-12-26 2021-07-01 Oath Inc. Horizontal skimming of composite datasets
JP2023548532A (ja) * 2020-11-03 2023-11-17 ライブランプ インコーポレーテッド アイデンティティ・グラフ・データ構造におけるアサートされた関係マッチング
CN112163031B (zh) * 2020-11-11 2023-06-16 西安四叶草信息技术有限公司 一种基于思维导图的图数据抽取方法
US11734238B2 (en) 2021-05-07 2023-08-22 Bank Of America Corporation Correcting data errors for data processing fault recovery
US11789967B2 (en) 2021-05-07 2023-10-17 Bank Of America Corporation Recovering from data processing errors by data error detection and correction
US20230089365A1 (en) * 2021-09-20 2023-03-23 Salesforce.Com, Inc. Data virtualization adapter in an integration platform
CN113934786B (zh) * 2021-09-29 2023-09-08 浪潮卓数大数据产业发展有限公司 一种构建统一etl的实施方法
US11750488B1 (en) * 2022-04-12 2023-09-05 International Business Machines Corporation Minimizing latency of round trip network communication in a computing infrastructure
US20240070147A1 (en) * 2022-08-26 2024-02-29 Oracle International Corporation Dynamic Inclusion of Metadata Configurations into a Logical Model

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193182A (en) * 1990-04-27 1993-03-09 Bachman Information Systems, Inc. Computer system for defining logical operations on design data including retrieve entity-set, send, receive, signal, when, reference to entity-set, reference to entity method, connect and disconnect
US5659723A (en) * 1991-12-20 1997-08-19 International Business Machines Corporation Entity/relationship to object oriented logical model conversion method
US5937410A (en) * 1997-10-16 1999-08-10 Johnson Controls Technology Company Method of transforming graphical object diagrams to product data manager schema
US7185016B1 (en) * 2000-09-01 2007-02-27 Cognos Incorporated Methods and transformations for transforming metadata model
US7343585B1 (en) * 2002-01-30 2008-03-11 Oracle International Corporation Operator approach for generic dataflow designs
US7350191B1 (en) 2003-04-22 2008-03-25 Noetix, Inc. Computer implemented system and method for the generation of data access applications
US20050228808A1 (en) 2003-08-27 2005-10-13 Ascential Software Corporation Real time data integration services for health care information data integration
US7739223B2 (en) 2003-08-29 2010-06-15 Microsoft Corporation Mapping architecture for arbitrary data models
US7930432B2 (en) * 2004-05-24 2011-04-19 Microsoft Corporation Systems and methods for distributing a workplan for data flow execution based on an arbitrary graph describing the desired data flow
US7849438B1 (en) 2004-05-27 2010-12-07 Sprint Communications Company L.P. Enterprise software development process for outsourced developers
US7386566B2 (en) 2004-07-15 2008-06-10 Microsoft Corporation External metadata processing
US7430498B2 (en) 2004-09-07 2008-09-30 The Boeing Company System, method and computer program product for developing a system-of-systems architecture model
JP4706001B2 (ja) * 2004-12-15 2011-06-22 信夫 濱田 設計コンピュータプログラム
TWI311705B (en) 2005-05-23 2009-07-01 Via Tech Inc Peripheral component interconnect express and changing method of link power states thereof
US7581189B2 (en) 2005-09-09 2009-08-25 Microsoft Corporation Dynamically generating a database report during a report building process
JPWO2007083371A1 (ja) 2006-01-18 2009-06-11 富士通株式会社 データ統合装置、データ統合方法およびデータ統合プログラムを記録したコンピュータ読み取り可能な記録媒体
US8307012B2 (en) 2006-02-28 2012-11-06 Sap Ag Schema mapping and data transformation on the basis of a conceptual model
US7689582B2 (en) * 2006-03-10 2010-03-30 International Business Machines Corporation Data flow system and method for heterogeneous data integration environments
US7610299B2 (en) 2006-11-30 2009-10-27 International Business Machines Corporation Method of processing data
US7668860B2 (en) * 2007-04-02 2010-02-23 Business Objects Software Ltd. Apparatus and method for constructing and using a semantic abstraction for querying hierarchical data
US7860905B2 (en) * 2007-04-24 2010-12-28 Microsoft Corporation Systems and methods for modularizing data flows
US8245105B2 (en) 2008-07-01 2012-08-14 International Business Machines Corporation Cascade interconnect memory system with enhanced reliability
US10438166B2 (en) * 2008-12-05 2019-10-08 Stereologic Inc. Systems and methods for business process modelling
US9557889B2 (en) 2009-01-28 2017-01-31 Headwater Partners I Llc Service plan design, user interfaces, application programming interfaces, and device management
EP2396753A4 (en) 2009-02-10 2014-05-07 Zap Holdings Ltd ETL MANUFACTURER
JP5375413B2 (ja) 2009-07-30 2013-12-25 富士通株式会社 データ変換装置、データ変換方法、およびデータ変換プログラム
US8719769B2 (en) * 2009-08-18 2014-05-06 Hewlett-Packard Development Company, L.P. Quality-driven ETL design optimization
US8214324B2 (en) * 2009-08-25 2012-07-03 International Business Machines Corporation Generating extract, transform, and load (ETL) jobs for loading data incrementally
US9218408B2 (en) 2010-05-27 2015-12-22 Oracle International Corporation Method for automatically creating a data mart by aggregated data extracted from a business intelligence server
JP5601066B2 (ja) 2010-07-23 2014-10-08 富士通株式会社 情報統合プログラム、装置及び方法
US20120054147A1 (en) * 2010-08-25 2012-03-01 Christophe Goetz System and method for extract, transform, and load workflow generation
WO2012050579A1 (en) * 2010-10-14 2012-04-19 Hewlett-Packard Development Company, L.P. Providing operational business intelligence
US8762934B2 (en) 2010-10-15 2014-06-24 Serghei Sarafudinov Method of extensible business object modeling and generation of system artifacts from the models
CN102081661A (zh) * 2011-01-19 2011-06-01 吉林大学 基于xml的异构关系型数据库的数据集成方法和系统
US8887076B2 (en) 2011-11-01 2014-11-11 Aver Informatics Inc. Software user interface allowing logical expression to be expressed as a flowchart
US8676772B2 (en) 2011-12-09 2014-03-18 Telduráðgevin Sp/f Systems and methods for improving database performance
US9396037B2 (en) * 2012-02-27 2016-07-19 Microsoft Technology Licensing, Llc Model-based data pipeline system optimization
CN102708161B (zh) * 2012-04-24 2014-01-15 清华大学 一种使用公共概念集的数据逻辑模型建模方法
US9256968B2 (en) * 2012-07-22 2016-02-09 International Business Machines Corporation Method for modeling using sketches
US9020945B1 (en) 2013-01-25 2015-04-28 Humana Inc. User categorization system and method
US10216814B2 (en) 2013-05-17 2019-02-26 Oracle International Corporation Supporting combination of flow based ETL and entity relationship based ETL
US10102039B2 (en) * 2013-05-17 2018-10-16 Entit Software Llc Converting a hybrid flow
US9507838B2 (en) 2013-05-17 2016-11-29 Oracle International Corporation Use of projector and selector component types for ETL map design

Also Published As

Publication number Publication date
US20140344211A1 (en) 2014-11-20
WO2014186057A1 (en) 2014-11-20
EP2997513A4 (en) 2017-01-25
CN105359141B (zh) 2021-10-01
JP2016529574A (ja) 2016-09-23
CN105359141A (zh) 2016-02-24
US10216814B2 (en) 2019-02-26
EP2997513A1 (en) 2016-03-23

Similar Documents

Publication Publication Date Title
JP6434960B2 (ja) フローベースのetlおよびエンティティリレーションシップベースのetlの組合せのサポート
US11847131B2 (en) Optimizing incremental loading of warehouse data
JP6412924B2 (ja) Etlマップ設計のためのプロジェクタおよびセレクタコンポーネントタイプの使用
US11789964B2 (en) Load plan generation
US10073867B2 (en) System and method for code generation from a directed acyclic graph using knowledge modules
US9659012B2 (en) Debugging framework for distributed ETL process with multi-language support
US11188556B2 (en) Correlated incremental loading of multiple data sets for an interactive data prep application
JP2020504347A (ja) 続く分析に向けてデータを準備しキュレートするユーザインターフェース
AU2022202376B2 (en) Correlated incremental loading of multiple data sets for an interactive data prep application
US20240061855A1 (en) Optimizing incremental loading of warehouse data
US20230297586A1 (en) System and method for generating a network graph from analytic artifacts in an analytics environment
Contreras Perez Data integration tool for transform existing data sources to homogeneous linked data
Eisa Parallel Processing for Data Retrieval in Odoo Enterprise Resource Planning Reporting System

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170322

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180227

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180523

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181109

R150 Certificate of patent or registration of utility model

Ref document number: 6434960

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250