JP2024505236A - データ処理システム用のデータセットマルチプレクサ - Google Patents

データ処理システム用のデータセットマルチプレクサ Download PDF

Info

Publication number
JP2024505236A
JP2024505236A JP2023546120A JP2023546120A JP2024505236A JP 2024505236 A JP2024505236 A JP 2024505236A JP 2023546120 A JP2023546120 A JP 2023546120A JP 2023546120 A JP2023546120 A JP 2023546120A JP 2024505236 A JP2024505236 A JP 2024505236A
Authority
JP
Japan
Prior art keywords
data
data set
physical
logical
program
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.)
Pending
Application number
JP2023546120A
Other languages
English (en)
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 JP2024505236A publication Critical patent/JP2024505236A/ja
Pending legal-status Critical Current

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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • 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/23Updating
    • G06F16/2358Change logging, detection, and notification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Electronic Switches (AREA)

Abstract

データセットへのアクセスを論理データセットに対する操作として指定するようにアプリケーションを書くことを可能にするデータセットマルチプレクサを備えたデータ処理システムが提供される。データ処理システムによるアプリケーションの実行中に、データセットにアクセスする操作は、論理データセットのデータセットカタログのエントリにアクセスすることによって実施される。そのエントリは、物理データソースのフォーマットから論理データセットのフォーマットへのデータの変換を含む、論理データセットを保存する物理データソースにアクセスするための情報を含む。カタログのエントリは、データセットマルチプレクサを用いたデータソースの登録に基づいて作成されてもよく、データセットの保存の変更に基づいて自動的に更新されてもよい。このカタログの維持は、アプリケーションを修正する必要なしに、システムがデータセットの保存の変更に自動的に適応するように、部分的又は全体的に自動化されてもよい。

Description

関連出願の相互参照
本出願は、2021年3月19日に出願された「DATASET MULTIPLEXER FOR DATA PROCESSING SYSTEM」と題する米国仮特許出願第63/163,709号、及び2021年1月31日に出願された「DATASET MULTIPLEXER FOR DATA PROCESSING SYSTEM」と題する米国仮特許出願第63/143,898号に対する米国特許法第119条(e)に基づく優先権の便益を主張するものであり、これらは参照によりその全体が本明細書に組み込まれる。
本開示の態様は、多数のデータストアの何れかに保存され得る多数のデータセットを有するデータ処理システムを効率的に動作させるための技術に関する。
現代のデータ処理システムは、企業内の膨大な量のデータを管理している。例えば大規模な機関では、数百万ものデータセットを有し得る。このデータは、企業の事業の複数の側面をサポートすることができるため、このような多数のデータセットを有することは、企業にとって極めて貴重であり得る。一部のデータセットは、例えば、顧客の口座残高の追跡、又は顧客に対する口座明細書の送付などの、ルーチンプロセスをサポートすることができる。他の例では、1つ又は複数のデータセットからのデータを処理することによって、要求された取引が不正であるという結論、又は特定の地理的地域において全体的な取引の結果として、企業が特定のレベルの財務リスクにさらされているという結論などの、ビジネス上の洞察を生み出すことができる。さらに他の例では、1つ又は複数のデータセットからのデータを処理することによって、企業が間違った技術的プロセスの結果として技術的な障害のリスクにさらされているという結論などの技術的な洞察を生み出すことができる。
これらのデータセット用の物理ストレージは、いくつかの方法の何れかで提供され得る。例えば、データセットは、構造化された方法で保存され、企業内のデータベースシステムによって管理されてもよい。この場合、データセットは、データベースによって管理される1つ又は複数のテーブルとして保存されてもよい。或いは、単純なデータセットは、csv若しくはxmlファイル、又はフラットファイルなどの、データ処理システムがアクセス可能なファイルに保存されてもよい。データセットが存在するコンピュータストレージは、ファイルとしてであれ、データベーステーブルとしてであれ、他のフォーマットであれ、データ処理システムのローカル、企業全体に分散、又はサードパーティによって管理されるネットワーククラウド全体に分散などの、いくつかの形態の何れかで物理的に実装されてもよい。
企業の設計者は、データセットのサイズ、必要とされるアクセス時間、データセットの保持期間、又はデータセットの損失若しくは破損による企業への影響などの、データセットの予期される特性に基づいて、そのデータセット用の物理ストレージを選択することができる。ストレージの価格、又はサードパーティのストレージベンダに縛られることへの懸念などの商業的検討事項も、企業用の物理ストレージの実装に関して行われる選択に影響を与え得る。その結果、企業内で使用されるデータセットを保持するデータストアは、複数の形態の何れかを取り得る。
幅広い機能をサポートするために、データ処理システムは、ルーチンプロセスを実装するためであれ、データセットから洞察を抽出するためであれ、アプリケーションを実行し得る。アプリケーションは、データストアにアクセスしてデータの読み出し及び書き込みを行うようにプログラムされ得る。
いくつかの態様によれば、データ処理システムによって行われる方法が、データストア内の物理データセットへのアクセスを可能にするためにデータセットカタログ内のエントリを生成及び/又は使用することによって、複数のデータセットを有する動的環境において効率的なデータ分析を可能にする。データ処理システムは、論理データセットにアクセスするようにプログラムされたデータ処理アプリケーションを実行するように構成され得る。各論理データセットは、物理データセット内の対応するデータのフォーマットから独立したデータ用のスキーマを含む。データ処理システムは、データストア内の物理データセットへのアクセスをアプリケーションに提供するように構成可能なデータセットマルチプレクサを含む。本方法は、データセットカタログにおいて複数のエントリを作成することであって、複数のエントリの各々が、論理データセット及び物理データセットに関連付けられ、並びに物理データセットにアクセスするためのコンピュータ実行可能命令を関連付けられている、作成することと、データセットへのアクセスを指定するデータ処理アプリケーション内の操作を行うためにアクセスするための第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の論理データセットに関連付けられたエントリへのアクセスを可能にすることと、エントリ内の情報に基づいて、第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のデータストアのタイプに関する情報を含む。
ある態様によれば、データセットマルチプレクサは、複数の物理データセットにアクセスするための情報を保存するオブジェクトのライブラリを含み、オブジェクトのライブラリ内の第1のオブジェクトは、第1の物理データセットの識別子を含む。
ある態様によれば、データセットマルチプレクサは、APIをさらに含み、本方法は、APIによってアプリケーションに第1のオブジェクトへのアクセスを提供することをさらに含む。
ある態様によれば、本方法は、ライブラリ内のオブジェクトに対して、オブジェクトに情報が保存されているそれぞれの論理データセットのスキーマ及び論理名に基づいて、識別子を割り当てることをさらに含む。
ある態様によれば、本方法は、第1の物理データセットをデータセットカタログに登録するコマンドを受信することと、受信したコマンドに基づいて、第1のオブジェクトを生成し、及び第1のオブジェクトをライブラリに保存することと、をさらに含む。
ある態様によれば、第1の物理データセットの識別子は、物理識別子である。
ある態様によれば、第1のオブジェクトは、第2の識別子をさらに含み、第2の識別子は、第1のオブジェクトに関連付けられた論理データセットの論理識別子である。
ある態様によれば、本方法は、第1の物理データセットが、第1のデータストアに保存されている状態から第2のデータストアに保存されている状態に変更されたことを示す事象を検出したことに応答して、第1のオブジェクトにおいて、論理識別子を修正することなく物理識別子を修正することをさらに含む。
ある態様によれば、第1のオブジェクトは、第1のプログラムの実行時にアクセスされたパラメータの値を含み、本方法は、第1のプログラムにおいてアクセスされたパラメータの値の変更を示す事象の検出に基づいて、第1のオブジェクトに保存されたパラメータの値を修正することをさらに含む。
ある態様によれば、第1のプログラムは、アクセスロジック及び変換ロジックを含み、アプリケーションが実行されると、第1のプログラムのアクセスロジック及び変換ロジックが実行されることにより、第1の物理データセットへのアクセスが提供され、並びに第1の物理データセット内で使用されるフォーマット及び第1の論理データセット内で使用されるフォーマット間の変換が行われる。
ある態様によれば、第1のプログラムは、第1のプログラムの動作に影響を与える1つ又は複数のパラメータの値が第1のプログラムを介した第1の物理データセットのアクセスに影響を与えるように、1つ又は複数のパラメータを含む。
ある態様によれば、アプリケーションは、第1のプログラムを呼び出す際に使用する1つ又は複数のパラメータの値を供給するように構成される。
ある態様によれば、本方法は、第1のデータストアのタイプを検出することと、検出されたタイプに基づいて、複数のテンプレートからテンプレートを選択することと、によって第1のプログラムを生成することをさらに含む。
ある態様によれば、第1のプログラムは、第1のデータストアへの読み出しアクセス用に構成された第1の部分と、第1のデータストアへの書き込みアクセス用の第2の部分とを含む。
ある態様によれば、第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のプログラムテンプレートにデータ投入することは、第1の物理データセットに関連する情報に基づいて、第1のプログラムテンプレートの1つ又は複数の第1のパラメータの1つ又は複数の値を自動的に発見することを含む。
ある態様によれば、1つ又は複数の第1のパラメータは、第1の物理データセットに関連付けられたレコードフォーマット又はスキーマに関する情報を含む。
ある態様によれば、第1の論理データセットのアクセスのためにプログラムされたアプリケーション内から第1のプログラムの実行を呼び出すための情報をオブジェクトに保存することは、第1のデータストアの識別子を保存することを含む。
ある態様によれば、第1の論理データセットのアクセスのためにプログラムされたアプリケーション内から第1のプログラムの実行を呼び出すための情報をオブジェクトに保存することは、第1の論理データセットの論理識別子を保存することを含む。
ある態様によれば、第1のプログラムを生成することは、第1のプログラムテンプレートの1つ又は複数の第2のパラメータに関する情報を取得することであって、1つ又は複数の第2のパラメータが、1つ又は複数の第1のパラメータとは異なる、取得することをさらに含む。
ある態様によれば、1つ又は複数の第2のパラメータは、第1の物理データセットにアクセスする方法を指定する。
ある態様によれば、第1のプログラムを生成することは、第1のデータストアのタイプに対してプログラムテンプレートが利用可能であるか否かを決定することと、第1のデータストアのタイプに対して第1のプログラムテンプレートが利用可能であるとの決定に基づいて、利用可能なテンプレートを第1のプログラムテンプレートとして選択することと、をさらに含む。
ある態様によれば、本方法は、プログラムテンプレートが第1のデータストアのタイプに対して利用可能でないとの決定に基づいて、ユーザ入力に基づいてプログラム構造を作成することと、作成されたプログラム構造に基づいて、第1のデータストアにアクセスするための第1のプログラムを生成することと、を含む。
ある態様によれば、本方法は、データストアの第2のデータストアに保存されている第2の物理データセットに関連する情報を受信することと、第2の物理データセットに関連する情報に基づいて、第2のデータストアから第2の物理データセットにアクセスするための第2のプログラムを生成することと、を含む。
ある態様によれば、データ処理システムは、複数の環境で実行されるように構成され、各環境は、データ処理システムのインスタンスを含み、オブジェクトには、複数の環境のそれぞれの範囲内で一意な識別子が割り当てられ、複数の環境にわたって共通する少なくとも一部を含む。
いくつかの態様によれば、データストア内の物理データセットへのアクセスを容易にするためにデータセットカタログ内のエントリを更新することによって、複数のデータセットを有する動的環境において効率的な分析を可能にするための、データ処理システムによって行われる方法が提供される。データ処理システムは、論理データセットとして表されるデータにアクセスするようにプログラムされたデータ処理アプリケーションを実行するように構成される。各論理データセットは、物理データセット内の対応するデータのフォーマットから独立したデータ用のスキーマを含み、データ処理システムは、データストア内の物理データセットへのアクセスをアプリケーションに提供するように構成可能なデータセットマルチプレクサを含む。本方法は、第1の論理データセットに対応する第1のデータストアに保存された第1の物理データセットに関連する情報を受信することと、受信した情報に基づいて、第1のデータストアから第1の物理データセットにアクセスするための第1のプログラムを生成することと、第1の論理データセットに対応する物理データセットに関連付けられた変更を示す事象を検出することと、事象の検出に基づいて、第1の論理データセットに対応する物理データセットにアクセスするための第1のプログラムを修正することと、を含む。
ある態様によれば、物理データセットは、第1の物理データセットであり、物理データセットに関連付けられた変更を示す事象は、第1の物理データセットを保存する第1のデータストアから第2のデータストアへの変更を示す事象を含み、本方法は、第1のデータストアから第2のデータストアへの変更を示す事象を検出したことに応答して、第2のデータストアから第1の物理データセットにアクセスするように第1のプログラムを修正することをさらに含む。
ある態様によれば、物理データセットは、第1の物理データセットであり、物理データセットに関連付けられた変更を示す事象は、第1の物理データセットにアクセスするための第1のプログラムを生成するために使用されるパラメータの値の変更を示す事象を含む。
ある態様によれば、物理データセットに関連付けられた変更を示す事象を検出することは、第1の物理データセットを、第1の論理データセットに対応する第2の物理データセットに置き換えることを示す事象を検出することを含み、物理データセットにアクセスするための第1のプログラムを修正することは、第1のプログラムを第2の物理データセットにアクセスするための第2のプログラムに置き換えることを含む。
ある態様によれば、データ処理システムは、第1の論理データセットへのアクセスを指定するアプリケーション内の操作を行うために第1のプログラムを呼び出すように構成され、データ処理システムは、複数の環境で実行されるように構成され、第1の環境は、データ処理システムの第1のインスタンスを含み、第2の環境は、データ処理システムの第2のインスタンスを含み、第1のデータストア及び第1のプログラムは、データ処理システムの第1のインスタンスに関連付けられ、本方法は、データ処理システムの第2のインスタンス内で第1の論理データセットへのアクセスを指定するアプリケーション内の操作を行うための第2のプログラムを生成することをさらに含む。
ある態様によれば、第1の論理データセットへのアクセスを指定するアプリケーションを第2の環境で実行すること、及び第1の論理データセットに対するアプリケーションによる操作の実行に応答して、第2の物理データセットにアクセスするように第2のプログラムにアクセスすること。
ある態様によれば、アプリケーションが複数のデータストア内の複数の物理データセットにアクセスすることを可能にするためにデータセットカタログ内のエントリを使用することによって、複数のデータセットを有する動的環境において効率的なデータ分析を可能にするための、データ処理システムによって行われる方法が提供される。データ処理システムは、論理データセットにアクセスするようにプログラムされたデータ処理アプリケーションを実行するように構成される。各論理データセットは、物理データセット内の対応するデータのフォーマットから独立したデータ用のスキーマを含み、データ処理システムは、複数のデータストア内の複数の物理データセットへのアクセスをアプリケーションに提供するように構成可能なデータセットマルチプレクサを含む。本方法は、データセットカタログにアクセスして、論理データセットに関連付けられたオブジェクトを選択することと、選択されたオブジェクトに基づいて、論理データセットに対応する物理データセットを保存するデータソースのアクセスのために構成されたプログラムを呼び出すことと、によって、論理データセットへのアクセスを指定する操作をアプリケーション内で実行することを含む。
ある態様によれば、本方法は、データカタログ内のオブジェクトによって表される論理データセットの物理ストレージの変更を示す事象に応答して、データセットカタログ内のオブジェクトを動的に更新することをさらに含む。
上記の様々な態様は、本明細書に記載するシステム、方法、及び/又はプロセスの何れかにおける態様と代替的又は追加的に使用することができる。さらに、データ処理システムは、前述の態様の1つ又は複数を有する方法に従って動作するように構成され得る。そのようなデータ処理システムは、少なくとも1つのコンピュータハードウェアプロセッサと、少なくとも1つのコンピュータハードウェアプロセッサによって実行されると、少なくとも1つのコンピュータハードウェアプロセッサにそのような方法を行わせるプロセッサ実行可能命令を保存した少なくとも1つの非一時的コンピュータ可読媒体とを含み得る。さらに、非一時的コンピュータ可読媒体は、データ処理システムの少なくとも1つのコンピュータハードウェアプロセッサによって実行されると、少なくとも1つのコンピュータハードウェアプロセッサに前述の態様の1つ又は複数を有する方法を行わせるプロセッサ実行可能命令を含み得る。このように、上記は、添付の特許請求の範囲によって定義される本発明の非限定的な要約である。
以下の図を参照しながら、様々な側面について説明する。図は必ずしも縮尺通りに描かれていないことを理解されたい。複数の図に現れる項目は、それらが現れる全ての図において同一又は類似の参照番号で示される。
本明細書に記載される技術の一態様による、データセットマルチプレクサを有するデータ処理システムを備えた例示的な企業ITシステムのブロック図である。 データセットマルチプレクサが、論理データセットにアクセスするように構成されたアプリケーションと、論理データセットに対応する物理データセットを保存する第1のデータストアとの間のアクセスを容易にする第1の時間において動作状態にある、図1Aの例示的な企業ITシステムのブロック図である。 データセットマルチプレクサが、論理データセットにアクセスするように構成されたアプリケーションと、論理データセットに対応する物理データセットを保存する第2のデータストアとの間のアクセスを容易にする第2の時間において動作状態にある、図1Bの例示的な企業ITシステムのブロック図である。 図1Aのデータ処理システムが複数のインスタンスにインスタンス化されることによって複数の環境を提供し、データセットマルチプレクサがアプリケーションと第1の物理データセットとの間のアクセスを容易にする第1のインスタンスによってアプリケーションが実行されている、例示的な企業ITシステムのブロック図である。 データセットマルチプレクサがアプリケーションと第2の物理データセットとの間のアクセスを容易にする第3のインスタンスによってアプリケーションが実行されている、図2Aの例示的な企業ITシステムのブロック図である。 データフローグラフとして書かれたアプリケーションのグラフィカル開発環境を示す概略図である。 データフローグラフの入力ノードが論理データセットの観点から構成又はプログラムされる、図3Aのデータフローグラフの概略図である。 論理データセットへのアクセスを指定するアプリケーション内の操作の実行のために、物理データセットへのアクセスを可能にするためにデータセットカタログ内の情報にアクセスするように修正された、図3Aのデータフローグラフの概略図である。 論理データセットに対応する物理データセットに関する情報を提供するデータセットカタログのオブジェクトに反映され得る情報の概略情報である。 データセットマルチプレクサの追加の詳細を示す、図1Aの例示的な企業ITシステムのブロック図である。 実行中のアプリケーションとインタフェースする際に任意選択的に使用され得るデータマルチプレクサのコンポーネントを示す、図1Aの例示的なITシステムのブロック図である。 図1A又は図5Aに描かれているような、第1の時間において第1の動作状態にある、例示的な企業ITシステムのブロック図である。 第2の時間において第2の状態にある、図6Aの例示的な企業ITシステムのブロック図である。 本明細書に記載される技術のいくつかの態様によるデータセットマルチプレクサで構成されたデータ処理システムで使用される情報を示すブロック図である。 本明細書に記載される技術の一態様による、データセットマルチプレクサを有するデータ処理システムを動作させる例示的な方法のフローチャートである。 本明細書に記載される技術のいくつかの態様を実装する際に使用され得る例示的なコンピューティングシステム環境のブロック図である。
本発明者らは、データセットマルチプレクサがデータ処理システムの効率的な動作を可能にし得ることを認識及び理解している。様々なデータストアに保存され得る多数のデータセットを有する企業において、データセットマルチプレクサは、物理データセットの観点から書かれるのではなく、1つ又は複数の論理データセットの観点から書かれたアプリケーションの使用を可能にする。論理データセットの観点で書かれたこれらのアプリケーションは、論理データセットで表される1つ又は複数の物理データセットを保存するデータストアが変更されても、適切な動作のために修正される必要がない。このデータストアの動的な更新をサポートするために、データセットマルチプレクサは、データセットのカタログを、カタログ内の各エントリが、論理データセットによって表される1つ又は複数の物理データセットが保存されているデータストアにアクセスするための情報を提供する状態で、維持することができる。データセットマルチプレクサは、例えば、データセットの物理ストレージが進化又は変化し得る動的環境において、効率的な分析を可能にすることができる。
データセットマルチプレクサを使用することによって、アプリケーションがアクセスするデータストアがサポートするフォーマット(例えば、レコードフォーマット若しくはスキーマ)、又はこれらのデータストアの物理的な場所の知識をアプリケーションが持たなくても、アプリケーションを書き、及び実行することができる。また、例えば、物理データセット及びデータストアの知識はないが、データからビジネス上の洞察を抽出する方法を理解しているビジネスユーザは、物理データセットの観点ではなく論理データセットの観点からアプリケーションを書くことができる。データセットマルチプレクサは、アプリケーションと、論理データセットによって表される物理データセットを保存する適切なデータストアとの間の接続を自動的に供給することができ、それによって、アプリケーション及びユーザがデータストアの実装の知識を有する必要性を回避することができる。
データセットのカタログは、論理データセットによって表される物理データセットなどの、データセットの保存の変更を示す事象に応答して更新され得る。アプリケーション及び/又は論理データセットは、事象に応答して変更される必要はない場合がある。アクセス時にアプリケーションの論理データセットに対応する物理データセットを保存するデータストアにアクセスするための情報をカタログから取得することによって、データストアの変更に適応するようにアプリケーションを維持する必要なく、適切なデータストアにアクセスすることができる。企業においては、この能力は、アプリケーションの適切な実行を維持しながら、コンピュータストレージの効率的な使用を可能にするために、ある保存場所から別の保存場所へのデータセットの移行を容易にすることができる。例えば、データセットは、そのライフサイクル全体を通して、ある保存場所から別の保存場所に移行することができ、又はあるタイプのストレージから別のタイプのストレージに移行することができる。このような移行は、アプリケーションを修正することなく、及びアプリケーションの適切な実行を維持しながら生じ得る。このような変更が生じた場合であってもアプリケーションを修正する必要性を回避することにより、信頼性があり、且つ効率的なアプリケーションの実行がもたらされ、修正されたアプリケーションの修正及び再テストのためのコスト及びダウンタイムが回避されるため、企業にとって大幅なコスト削減がもたらされ得る。
具体的な例として、物理データセットは、最初はファイルとして保存され得る。ファイルとしての保存は、低コストのコンピュータストレージの使用を可能にし得る。物理データセットのデータ量が増大するにつれ、又はデータの価値が増すにつれ、物理データセットは、大規模なデータセットの高速処理又はより高いフォールトトレランスを可能にするために、データベースシステムに移行され得る。物理データセットに対応する論理データセットのカタログエントリを更新することによって、物理データセットがファイルからデータベースシステムに移行した際に、データセットマルチプレクサを介して論理データセットにアクセスするように書かれたアプリケーションは、修正なしに動作を継続する。
カタログエントリは、論理データセットに関連付けられたデータの保存に対する他のタイプの変更に適応できる物理データセットにアクセスするための情報を含み得る。この情報は、実行時にデータストアからデータにアクセスするとともに、それを論理データセットの表現に変換するプログラムを含み得る。具体的な例として、論理エンティティを保存するために使用される物理データセットのフィールドのフォーマットは、データセットカタログのエントリの修正がデータストアのデータを論理データセットで使用されるフォーマットに変換するプログラムの修正を含み得るため、論理エンティティを参照するアプリケーションに影響を与えることなく変更することができる。
データセットマルチプレクサは、プログラミング環境間の遷移を単純化することによって、アプリケーションの開発を容易にすることもできる。例えば、アプリケーションは従来、開発環境で開発され、試験環境でテストされ、その後、本番環境へと進められる。本番環境では、アプリケーションは、企業全体で使用される「ライブ」データを有する1つ又は複数のデータストアに対して読み出し及び書き込みを行い得る。試験環境及び開発環境では、アプリケーションは、アプリケーションの不適切な動作によって破損された場合に企業に影響を与える可能性が低いオフラインデータストアを用いて動作し得る。開発環境では、データストアは比較的小さいかもしれないが、試験環境では、データストアは、現在のライブデータでは出現しないかもしれない極端なテストケースを含む、堅牢なテストケースを提供するように構造化されてもよい。
異なる環境では異なるデータセットが望ましいという理由にかかわらず、各環境は、独自のデータセットカタログ情報を有し得る。開発環境を提供するデータ処理システムのインスタンスは、開発環境用にスコープされたデータカタログ情報にアクセスすることができる。同様に、試験環境又は本番環境を提供するデータ処理システムのインスタンスは、それぞれの環境用にスコープされたデータカタログ情報にアクセスして、適切なデータストアにアクセスすることができる。このようにして、論理データセットにアクセスするように書かれたアプリケーションは、何れの環境でも動作することができ、アプリケーションを特定の環境に適合させる必要なしに、各環境の適切なデータストアに自動的にアクセスすることができる。アプリケーションの実行が論理データセットに対する操作を伴う場合、データ処理システムは、自動的に適切な環境の適切なデータカタログ情報を利用して、論理データセットに対応するデータを保存する当該環境の物理データセットを含むデータストアにアクセスする。
このようなデータセットマルチプレクサの価値は、データストア用のデータセットカタログのエントリを自動的に構築可能なデータセットマルチプレクサによって高めることができる。データセットマルチプレクサは、例えば、異なるタイプのデータストアに適用可能なプログラムテンプレートのセットを維持することができる。データセットマルチプレクサを用いてデータストアが登録されると、データセットマルチプレクサは、データストアのタイプを検出し、及び適切なテンプレートを選択し得る。そのデータストアにアクセスするためのプログラムは、データストアの分析により検出されたパラメータの値を、選択されたテンプレートに投入することによって構築することができる。パラメータの値の一部又は全ては、代替的又は追加的に、データストアのメタデータを維持するメタデータリポジトリから取得されるか、ユーザ入力によって供給されるか、又は他の方法で取得されてもよい。
データ処理システムの態様は、前述の目的及び利点の何れか又は複数を達成するように実装されてもよい。これらの目的及び利点は、単独で使用しても、又は任意の適切な組み合わせで併用されてもよい。
データセットマルチプレクサを備えた代表的なデータ処理システム
図1Aは、本明細書に記載される技術のいくつかの態様による、例示的なデータ処理システム104と、データ処理システム104と統合されたデータセットマルチプレクサ105とを含むITシステム100のブロック図である。ITシステム100は、例えば、金融会社などの企業のITシステムであってもよい。簡略化のために、ネットワーク、クラウドストレージ、及びユーザデバイスなどの企業ITシステムの要素は、明示的に図示されていない。
データ処理システム104は、データストア102-1、102-3、102-3、…、及び102-nにアクセスする(例えば、これらのデータストアからデータを読み出す、及び/又はこれらのデータストアに対してデータを書き込む)ように構成される。データストア102-1、102-3、102-3、…、及び102-nのそれぞれは、1つ又は複数の物理データセットを保存することができる。データストアは、任意の適切なタイプのデータ又はデータの一群を、任意の適切な方法又はフォーマットで保存することができる。データストアは、例えばデータベースシステム(例えば、リレーショナルデータベースシステム)を使用して、フラットテキストファイル、スプレッドシートとしてデータを保存してもよい。また、これらのデータストアは、企業の内部であっても、又は外部であってもよい。例えば、外部データストアは、「クラウド内」、又はサードパーティによって管理されるストレージハードウェア内に存在し得る。従って、データストアは、企業によって使用される異なるデータストアが異なる場所にあってもよく、及び/又は企業の内部若しくは外部の異なるエンティティによって管理されてもよい連合環境を提供することができる。
場合によっては、データストアは、取引データを保存することができる。例えば、データストアは、クレジットカード取引、電話記録データ、又は銀行取引データを保存することができる。本明細書に記載される技術の態様はこの点で限定されないので、データ処理システム104は、任意の適切なタイプの任意の適切な数のデータストアにアクセスするように構成されてもよいことを理解されたい。データ処理システム104がデータを読み出すように構成され得るデータストアは、データソースと呼ばれることがある。データ処理システム104がデータを書き込むように構成され得るデータストアは、データシンクと呼ばれることがある。しかしながら、本明細書に記載されるような技術は、企業で使用される他のタイプのデータを保持するデータストアに適用することができる。
各データストアは、1つ又は複数のストレージデバイスで実装されてもよく、任意の適切なタイプの1つ又は複数のフォーマットでの物理データセットの保存をサポートするためのデータ管理ソフトウェア又は他の制御機構を含み得る。1つ又は複数のストレージデバイスは、任意の適切なタイプのものでよく、例えば、1つ又は複数のサーバ、1つ又は複数のディスクアレイ、1つ又は複数のディスクアレイのクラスタ、1つ又は複数のポータブルストレージデバイス、1つ又は複数の不揮発性ストレージデバイス、1つ又は複数の揮発性ストレージデバイス、及び/又はデータを電子的に保存するように構成された任意の他の1つ若しくは複数のデバイスを含み得る。データストアが複数のストレージデバイスを含む実施形態では、ストレージデバイスは、1つの物理的な場所(例えば、ある建物内)に併設されてもよく、又は複数の物理的な場所(例えば、複数の建物内、異なる都市、州、若しくは国)に分散されてもよい。本明細書に記載される技術の態様はこの点で限定されないので、ストレージデバイスは、任意の適切なタイプの1つ又は複数のネットワークを使用して互いに通信するように構成されてもよい。
データ管理ソフトウェアは、物理ストレージ内のデータを整理し、及び物理ストレージにデータを書き込むこと、又は物理ストレージからデータを読み出すことができるようにデータにアクセスする機構を提供することができる。データ管理ソフトウェアは、例えば、データベースシステム又はファイル管理システムであってもよい。データ管理ソフトウェアのタイプに応じて、1つ又は複数のストレージデバイスは、データベーステーブル、スプレッドシートファイル、フラットテキストファイル、及び/又は他の任意の適切なフォーマット(例えば、メインフレームのネイティブフォーマット)のファイルなどの1つ又は複数のフォーマットを使用して、物理データセットを保存することができる。データストア102-1、102-2、102-3、…、及び102-nは、同じタイプのものであってもよく(例えば、全てがリレーショナルデータベースであってもよい)、又は異なるタイプのものであってもよい(例えば、1つはリレーショナルデータベースであってもよいが、別のものはフラットファイルにデータを保存するデータストアであってもよい)。複数のデータストアが異なるタイプのものである場合、ストレージ環境は異種又は連合データ環境102と呼ばれることがある。データストアは、本明細書に記載される技術の態様はこの点で限定されないので、例えば、SQLサーバデータベース、ORACLEデータベース、TERADATAデータベース、フラットファイル、マルチファイルデータストア、HADOOP分散データベース、DB2データストア、Microsoft SQL SERVERデータストア、INFORMIXデータストア、テーブル、テーブルの一群若しくはデータベースの他のサブパーツ、及び/又は任意の他の適切なタイプのデータストアであってもよい。
データ処理システム104は、データストア102-1、102-3、102-3、…、及び102-nに保存された物理データセットにアクセス(例えば、読み出しアクセス及び/又は書き込みアクセス)する機能を実行するために、様々なアプリケーション106をサポートする。そして、アプリケーション106は、データストア内のデータに基づいて操作を行うことができる。データ処理システム104は、同じタイプ又は異なるタイプのものでもよいアプリケーション106-1、106-2、162-3、…、及び106-nをサポートすることができる。一部の例では、アプリケーションは、実行されると、データストア内の1つ又は複数の物理データセットに対して、取引データの読み出し又は書き込みを行うことができる。他の例では、アプリケーションは、実行されると、複数の異なるデータストアにわたって保存された物理データセットに対して、データの読み出し又は書き込みを行い、データセットからビジネス上の洞察を抽出するためにデータを分析することができる。
アプリケーション106は、例えば図3Aに示すように、データフローグラフとして開発することができる。データフローグラフは、データに対して行われるデータ処理操作を表す「ノード」又は「頂点」と呼ばれるコンポーネントと、データの流れを表すコンポーネント間のリンクとを含み得る。データフローグラフによってエンコードされた計算を実行するための技術は、「Executing Computations Expressed as Graphs」と題された米国特許第5,966,072号明細書に記載されており、これは、参照によりその全体が本明細書に組み込まれる。データフローグラフとしてアプリケーション(例えば、コンピュータプログラム)を開発するための環境は、「Managing Parameters for Graph-Based Applications」と題された、米国特許出願公開第2007/0011668号明細書に記載されており、これは、参照によりその全体が本明細書に組み込まれる。データフローグラフは、データソース(図3Aの入力データストア302又は304など)及びデータシンク(図3Aの出力データストア314など)を含み得る。これらは、データストア102-1、102-3、102-3、…、又は102-nへのアクセスを示すフローにおける終端ノードによって表される。
しかしながら、アプリケーション自体は、アプリケーションに含まれる特定のデータストアでプログラムされる必要はない。単一の物理データセットにアクセスするようにハードコードされるのではなく、アプリケーション106は、論理データセットの観点からプログラムされ得る。論理データセットは、1つ又は複数のデータセットの論理表現を指し得る。データ処理システム104は、複数の論理データセットの定義及びそれらの論理データセットに関する他のメタデータを保存してもよい。この情報は、例えば、メタデータ管理モジュール(例えば、図5Aのメタデータ管理モジュール526)によって管理されてもよい。データ処理システム104と共に使用されるツールは、論理データセットに関するメタデータにアクセスし、そのメタデータに基づいて機能を実行することができる。例えば、プログラム開発環境は、利用可能な論理データセットを選択し、アプリケーションのプログラミングにおいて使用することができるユーザインタフェースを提供し得る。
論理データセットは、物理データセット/データストアの対応するデータのフォーマットとは無関係に、データを定義するスキーマを有する場合がある。例えば、論理データセットは、論理データセット内の論理エンティティを定義するスキーマを有し得る。論理エンティティは、人間のユーザにとって認識可能及び/又は理解可能なものであってもよい。例えば、論理データセットは、顧客名などの論理エンティティを含み得る。この論理データセットに対応する物理データセットでは、顧客名は、それぞれ顧客のファーストネーム、ミドルネームのイニシャル、及びラストネームに対応するデータを保持する3つのフィールドとして、データテーブルの1行に保存されてもよい。しかしながら、論理データセットは、物理ストレージのデータのフォーマットに関係なく、単に論理エンティティCustomer_Nameを含んでもよい。
データ処理システム104は、論理データセットのスキーマを定義することができるインタフェース(図示せず)を含み得る。インタフェースは、例えば、ユーザが論理データセットを指定し、又は論理データセットのスキーマを指定することによって論理データセットをシステムに導入することができるユーザインタフェースであってもよい。いくつかの実施形態では、データ処理システム104は、企業のビジネスにおいてよく使用される論理エンティティのセットを保存してもよい。よく使用される論理エンティティの例には、名前、識別番号、電話番号、住所、国籍、口座残高、取引額、又は日付のうちの1つ又は複数が含まれ得る。これらのビジネス用語は、論理データセットのスキーマを少なくとも部分的に指定するために使用され得る。しかしながら、スキーマは、事前に定義された論理エンティティの代わりに、又はそれらに加えて、他の論理エンティティを含むものとして定義されてもよい。
論理データセットの観点からアプリケーションのプログラミングを可能にすることによって、アプリケーションを作成するプログラマが、対応する物理データセットを保存するデータストアのフォーマットを理解する必要がなくなる。その結果、データアナリストは、物理データセットを保持するデータストア内のデータのフォーマットを理解していなくても、論理データセットを使用してアプリケーションを開発し得る。
より詳細な例として、企業内でプログラマが新規顧客を保存する論理データセットを定義する場合がある。論理データセットのスキーマは、例えば、顧客名、顧客住所、顧客識別子、及び顧客獲得日などの論理エンティティを含み得る。データアナリストは、論理データセットに対応する物理データセットの保存フォーマットに関係なく、論理データセット及びこれらの論理エンティティの観点からアプリケーションを書くことができる。その結果、データアナリストは、アプリケーションによってアクセスされるデータを保存する物理データセットの知識なしに、アプリケーションを書くことができる。
アプリケーションの実行時に、論理データセットに対応する物理データセットのデータは、データストア102-1、102-3、102-3、…、及び102-nのうちの1つ又は複数に保存されてもよい。アプリケーションを実行するために、論理データセットへのアクセスを指定する各操作は、データストア102-1、102-3、102-3、…、及び102-nのうちの1つに保存された、対応する物理データセットからデータの読み出し又は書き込みを行うデータ処理システム104によって実行されてもよい。いくつかの態様に従って、データセットマルチプレクサ105は、対応する物理データセットに自動的にアクセスすることによって、そのような操作の自動実行を可能にすることができる。このアクセスは、物理データストアに保存されたデータのフォーマット及び論理データセットのスキーマで指定されたフォーマット間の変換を含み得る。別の例として、変換は、物理データセットからのデータを、論理データセットに関連付けられたメタデータに関連付けることをもたらし得る。具体的な例として、変換は、物理データセットのフィールドを、個人を特定できる情報を保持するという表示でタグ付けされた論理データセットのフィールドに関連付けてもよい。その結果、メタデータは、その例において、個人を特定できる情報をフィルタリングするため、又はマスクするためなどの、物理データセットからのデータに対する操作で使用され得る。
図1Aに示すように、データ処理システム104は、対応する物理データセットへのアクセス並びに論理データセット及び物理データセットのフォーマット間の変換を自動化するためのデータセットマルチプレクサ105を含む。データセットマルチプレクサ105は、データセットのカタログ107を維持することができ、カタログの各エントリは論理データセットに対応し、1つ又は複数の物理データセットにアクセスするための情報を提供する。例えば、カタログエントリは、論理データセットに対応するデータストア102-1、102-3、102-3、…、又は102-n内の物理データセットを識別し得る。カタログエントリは、代替的又は追加的に、物理データセットに保存されたデータを論理データセットのフォーマットに変換するための情報を含み得る。その情報は、実行可能プログラムであってもよく、又は実行可能プログラムを含んでもよい。例えば、カタログ情報は、物理データセット内の複数のフィールドのデータを、論理データセット内の対応する論理エンティティのフォーマットに変換するためのプログラムを識別し得る。他の情報は、代替的又は追加的に、1つ又は複数の物理データセットにアクセスするためのカタログ情報として保存されてもよく、又はそのようなカタログ情報に反映されてもよい。
データセットマルチプレクサ105は、アプリケーション106が、データセットのカタログ内の情報を使用して、1つ又は複数のプログラムされた論理データセットに基づいて1つ又は複数の物理データセットにシームレスにアクセスすることを可能にする。図1Bは、論理データセットに従ってデータにアクセスするようにプログラムされたアプリケーション(例えば、アプリケーション106-3)を示す。論理データセットにアクセス(例えば、読み出し及び/又は書き込み)する操作が実行されると、データ処理システム104のデータセットマルチプレクサ105は、データストア(例えば、データストア102-1)内の対応する1つ又は複数の物理データセットへのアクセスを可能にすることができる。例えば、論理データセットに関して保存されたカタログ情報がアクセス制御プログラムであるか、又はアクセス制御プログラムを含む場合、そのプログラムが実行されてもよい。その結果、アプリケーション106-3が論理データセットの観点からプログラムされているにもかかわらず、データアクセス操作が実行されると、データストア102-1に保存された物理データセットがアクセスされる。
データセットマルチプレクサ105は、データセットのカタログにアクセスして、アプリケーション106-3で参照される論理データセットに関連付けられたエントリを選択し得る。その後、データストア102-1に保存された物理データセットを識別するため、及び/又はデータストア102-1のフォーマットのデータを論理データセットのフォーマットに変換するための情報が、データアクセスのために使用され得る。
場合によっては、このアクセスは動的であってもよい。カタログ情報は、データアクセスを必要とするアプリケーションの操作の実行時に使用されてもよい。データセットのカタログにおける論理データセットに関連付けられたエントリは、論理データセットに関連付けられた情報の保存に対する変更を示す事象に応答して更新され得る。カタログ情報を介した物理データストアのアクセスは、ITシステム100全体の任意の時点で行われ得る変更にもかかわらず、アプリケーション106-3を書いたデータアナリスト又は他のユーザがそれらの変更に気付いていなかったとしても、アプリケーションが実行を継続することを保証し得る。
例えば、物理データセットは、データストア102-1からデータストア102-nに移行され得る。アプリケーションがプログラムされている論理データセットは、この変更を考慮して修正される必要はない。論理データセットのカタログエントリを更新することによって、データセットマルチプレクサ105は、正しい物理データセットへのアクセスを、それが存在するデータストアに関係なく、アプリケーション106-3に提供するために、更新されたカタログ情報を自動的に利用することができる。
図1Cは、データ処理システム104のデータセットマルチプレクサ105を介してデータストア102-nにアクセスするアプリケーション106-3を示す。図1B及び図1Cのアクセス条件は、異なる時間におけるアプリケーション106-3の実行の結果であってもよい。カタログ情報は動的であり、データセットの保存を考慮するように変化するので、所望のデータへの正しいアクセスのためにアプリケーション106-3の変更は必要ない。
図1Bにおいて、実線は、論理データセットにアクセス(例えば、読み出し及び/又は書き込み)するための操作の実行時のデータストア102-1からアプリケーション106-3へのデータの流れを示す。破線は、操作におけるデータの流れを制御し得るコンポーネント間のインタラクションを示す。例えば、アプリケーション106-3は、論理データセットに対応する物理データセットにアクセスするための情報を、論理データセットに関連付けられたカタログエントリから取得するために、データセットマルチプレクサ105とインタラクトしてもよい。データセットマルチプレクサ105は、適切なカタログエントリを生成するために、データストア102-1内の対応する1つ又は複数の物理データセットから情報を取得してもよい。同様に、図1Cの実線は、論理データセットにアクセス(例えば、読み出し及び/又は書き込み)するための操作の実行時にデータストア102-nからアプリケーション106-3へのデータの流れを示し、破線は、操作におけるデータの流れを制御し得るコンポーネント(例えば、データセットマルチプレクサ105、アプリケーション106-3、及びデータストア102-n)間のインタラクションを示す。
動的データを使用することにより、ITシステム100内の他のいくつかのタイプの変更の何れかにもかかわらず、正しい操作が可能となり得る。物理データセットが保存されるデータストアの変更に加えて、データセットを保持するデータストアのタイプが変更される場合がある。例えば、データストアのタイプが変更される場合がある。例えば、データストア102-1は、Oracleデータベースであってもよいが、データストア102-nは、SQLサーバデータストアであってもよい。別の例として、物理データセットのスキーマは、例えば名前データ用の追加フィールドを含むように変更される場合がある。このような変更は、カタログ内の変換ロジックを変更することによって自動的に補償される。
データアクセスのためにデータセットカタログ情報を動的に使用することにより、他のタイプの変更に自動的に対処することができる。別の例として、ユーザは、異なる目的でデータ処理システムの異なるインスタンスを実行し得る。異なるインスタンスで実行する際に、同じアプリケーションが異なる物理データセットにアクセスすることが望ましい場合がある。このような実行は、異なるインスタンスで異なるカタログ情報を提供することによって保証され得るか、又はアプリケーションが異なるコンテキストで同じ論理データセットに対応する異なる物理データセットにアクセスすることが望ましい場合に保証され得る。
図2Aは、本明細書に記載される技術のいくつかの態様に従って、データ処理システムのインスタンス(例えば、データ処理システム104のインスタンス104-1)のデータセットマルチプレクサを介してデータストア(例えば、データストア102-2)内の1つ又は複数の物理データセットにアクセスするアプリケーション(例えば、アプリケーション106-2)を示す。インスタンス104-1によって生成された環境では、論理データセットへのアクセスは、データストア102-2内のデータセットに対して解決される。データ処理システムの異なるインスタンス104-nによって生成された異なる環境で実行される同じアプリケーションは、異なる物理データセットにアクセスし得る。図2Bは、データ処理システム104のインスタンス104-nによって生成された環境において、データストア102-n(例えば、データベースデータストア)にアクセスするアプリケーション106-2を示す。図示の簡略化のために、図示されたコンポーネント間の制御フローを示す別個の線は、図2A及び図2Bには示されていない。しかしながら、データ処理システムのコンポーネントは、本明細書に記載される操作を制御するためにインタラクトし得ることを理解されたい。従って、制御インタラクションは、簡略化のために省略される場合がある。
図2A及び図2Bによって示される操作は、各スコープ内の同じ論理データセットへの参照が、そのスコープのカタログ情報を介して物理データセットにアクセスすることができるように、各インスタンスのカタログ情報をスコープすることによって生成され得る。論理データセットの識別子の全て又は一部は、複数のスコープにわたり永続的であってもよい。具体的な例として、論理データセットは、環境に関係なく同じであり得る名前及びスキーマの組み合わせによって識別されてもよい。しかしながら、その論理識別子に関連付けられたデータセットのカタログ情報は、異なるインスタンスでは異なる場合がある。
図2A及び図2Bの実施形態では、データ処理システム104の異なるインスタンス104-1、104-2、…、104-nが、異なるプログラミング環境のために提供されてもよい。具体的な例として、ある企業は、開発環境、試験環境、及び本番環境でデータ処理システムを動作させることができる。同じアプリケーションによって使用されるデータセットは、これらの環境のそれぞれで異なり得る。本番環境で使用されるライブデータは、ライブデータの破損を避けるため、及び/又は機密情報の漏洩リスクを最小限に抑えるために、開発環境又は試験環境では使用されない場合がある。本番環境用のデータストアは大きく、高速なデータアクセスを提供し得るため、非常に高価である場合がある。一方、開発環境用のデータセットは、アプリケーションの開発コストを削減するために、小さく、低コストのデータストアに保存され得る。試験環境用のデータセットは、堅牢な試験及び完全なコードカバレッジを保証するために、アプリケーションの試験時には、ライブデータセットに存在しない、まれな操作シナリオで発生する可能性のあるデータを含み得る。任意の環境でアプリケーションを使用可能にすることによって、開発、試験、及び本番などの環境間の効率的な移動が可能になり、アプリケーション開発及びITシステムの全体的な動作の効率を向上させることができる。
データ処理システム104の各インスタンスは、対応する環境のデータセットのカタログを維持するデータセットマルチプレクサを含み得る。各データセットマルチプレクサは、1つ又は複数の適切なデータストアへのアクセスを提供するための適切な環境用のデータセットのそれぞれのカタログにアクセスすることができる。例えば、図2Aは、データ処理システム104のインスタンス104-1を介して開発環境のデータストア102-2(例えば、フラットファイルデータストア)にアクセスするアプリケーション106-2を示す。図2Bは、データ処理システム104のインスタンス104-nを介して本番環境のデータストア102-n(これは、データベースであってもよい)にアクセスするアプリケーション106-2を示す。
データセットマルチプレクサを使用するアプリケーション開発の代表的な技法
いくつかの実施形態では、データ処理システムによって実行されるアプリケーションは、データ処理システムの人間のユーザによってグラフィカルプログラミング言語で書かれることがある。他の実施形態では、代替的又は追加的に、手続き型言語又は他のタイプのプログラミング言語が使用され得る。
図3Aは、データアナリスト又は他の人間のユーザがグラフィカル開発環境でアプリケーションを書くことができるグラフィカルユーザインタフェースを示し、本明細書ではアプリケーション開発の一例として使用される。この例では、データ処理システムは、データに対する操作を行うコンポーネントのライブラリを含む。簡略化のために図3Aには明示的に示されていないが、グラフィカル開発環境は、ユーザがそのライブラリからコンポーネントを選択することができるツールバー又は他のユーザインタフェース要素を含み得る。ユーザは、グラフを形成するために、これらのコンポーネント間の接続を指定することもできる。例えば、コンポーネントは、データを変換するための操作を指定すること、又はアクセスすべきデータソース若しくはデータシンクを指定することができる。コンポーネントは、コンポーネントによって行われる操作、又はデータソース若しくはデータシンクのデータを保持するデータストアのタイプに応じて異なる形状を有するアイコンによって表すことができる。
ユーザは、所望の操作に対応するコンポーネントを選択し、及びコンポーネントによって表される操作を通る所望のデータフローを指定する順序でそれらを接続することによって、アプリケーションを書くことができる。各コンポーネントは、ユーザのパラメータ入力によって構成することができる。いくつかの構成パラメータの値は、コンポーネントの操作の態様を指定することができる。例えば、データセットを表すコンポーネントは、データソース又はデータシンクとしての操作を指定するパラメータを受け取ることができる。
論理データセットを使用してアプリケーションが書かれる実施形態では、いくつかの構成パラメータの値は、コンポーネントの操作を行う際に使用するために、特定の論理データセット及び/又は論理データセット内の論理エンティティを指定することができる。例えば、データセットを表すコンポーネントは、論理データセットの識別子をそのパラメータの値として供給することによって、指定された論理データセットを表すように構成することができる。コンポーネントは、代替的又は追加的に、特定の操作においてキーとして使用される論理エンティティを指定するユーザ入力で構成され得る。
データ処理システムは、アプリケーションのコンポーネントを構成する際に使用可能な論理データセット及び/又は論理エンティティに関する情報のリポジトリを含み得る。このリポジトリ内のエントリは、アプリケーションを書いているユーザによって作成されたものであるかもしれない。しかしながら、企業では、データの生成及び分析に多くの個人が関与している場合があり、リポジトリ内の情報は、アプリケーションを開発するユーザによって開発されたものではない場合がある。例えば、論理データセット情報は、他のユーザによって、又は特定の物理データセットの自動分析によって生成されたものである場合がある。
開発環境で提供されるユーザインタフェースは、グラフのコンポーネントを構成するパラメータの値として、ユーザがリポジトリ内の論理データセット又は論理エンティティを指定することを可能にするユーザインタフェース要素を含み得る。それらのユーザインタフェース要素には、ユーザが検索クエリを入力するための要素が含まれ得る。クエリは、例えば、ユーザが論理データセット又は論理エンティティを記述する次元の1つ又は複数の値を指定するファセットクエリであってもよい。それらの次元には、例えば、論理データセット又はデータセット内に含まれるフィールド名を記述するためにリポジトリに入力された単語が含まれ得る。
データ処理システムは、クエリに従って検索を実行し、クエリに基づいてデータ処理システムによって選択されたオプションのリストを返すことができる。次に、ユーザは、コンポーネントを構成するために返された値を選択することができ、コンポーネントは、その後、選択に従って動作する。例えば、データセットコンポーネントが論理データセットからデータを出力するように構成されたデータソースとして構成されている場合、そのコンポーネントは、アプリケーションが実行されると、指定された論理データセットのフォーマットで供給することによって動作する。
アプリケーションは、人間のプログラマによって完全に開発されることが必要条件ではない。プログラムの全て又は一部は、テンプレートによってなど他の方法で生成されてもよく、又は別のプログラミング言語若しくは擬似言語から機械によって変換されてもよい。アプリケーションの開発方法にかかわらず、アプリケーションが操作するデータを1つ又は複数の論理データセットの観点から指定することによって、データの物理ストレージに対する知識又は依存なしにアプリケーションを書くことが可能となる。論理データセット及び/又は論理データセット内の論理エンティティの観点から、データへのアクセスを伴う操作を人間のユーザが指定することができるため、この能力は、人間のユーザが行う開発プロセスのあらゆる部分を簡略化することができる。例えばデータアナリストは、特定の物理データセットの詳細を理解することなくアプリケーションを書くことができ得る。さらに、アプリケーションにおける物理ストレージへの依存を回避することによって、データ処理システムの機能性を拡張することができる。例えば、アプリケーションが実行される時点で存在する物理データセットの詳細がプログラマに知られていない場合、又はまだ確立されていない場合であっても、アプリケーションを書くことができる。
さらなる簡略化として、データ処理システムは、論理データセット又は論理データセット内の論理エンティティの観点から指定された操作を行うように構成されてもよい。これらの操作は、アプリケーション内で行われるように指定されてもよく、その場合、論理データセットに対応する物理データセット内でアクセスされるデータに対して行われ得る。
例えば、論理エンティティは、有効な値の企業全体のリストと関連付けられてもよく、その論理エンティティにアクセスする各アプリケーションを変更する必要なしに、企業レベルでリストに変更が加えられ得る。具体的な例として、データ処理システム内で、性別に関する論理エンティティが定義され得る。ある時点で、その論理エンティティに関連付けられたメタデータは、許容値がM及びFであることを示し得る。後に、許容値は、M、F、及びXであるように変化し得る。その論理エンティティの観点から書かれた各アプリケーションは、どの物理データセットが性別情報を保存するかにかかわらず、変更されたリストに自動的に適合することができる。これは、例えばメタデータにおいて新たに許容される値として「X」値を示すことにより、性別の論理エンティティを使用する全てのアプリケーションに自動的に影響を与えることができるので、有利である。
別の例として、検証ルールが、論理エンティティの観点から指定され、データがアクセスされる物理データセットに関係なく適用され得る。具体的な例として、データ処理システムは、電子メールアドレスに使用される論理要素用のデータ検証ルールで構成され得る。そのデータ検証ルールは、電子メールを保存する任意の物理データセット内の1つ又は複数のフィールドが電子メールアドレスに使用される論理要素に対応するものとして識別されると、その物理データセットからのデータに適用され得る。検証ルールは、1つ又は複数の方法で、アプリケーション内で使用することができる。例えば、アプリケーションの内部から特定の物理データセットのデータに対してルールが呼び出されてもよく、又はアプリケーションの外部からデータセットへのルールの適用がトリガされた場合でも、アプリケーションが特定の物理データセットへのルールの適用の結果にアクセスしてもよい。
さらに別の例として、マスク又はフィルタ操作を行うコンポーネントは、論理エンティティ及び/又は論理エンティティに関するメタデータの観点から指定することができ、処理されるデータが引き出される物理データストアに関係なく、アプリケーション内で動作することができる。具体的な例として、人の識別子として機能する論理エンティティには、プライバシーレベルを割り当てることができる。論理エンティティは、電子メールアドレス及び社会保障番号などの、人の複数の識別子に対して定義されてもよい。これらの論理エンティティに関連付けられたメタデータは、電子メールに中程度のプライバシーレベルを割り当ててもよいが、社会保障番号には高いプライバシーレベルが与えられてもよい。論理エンティティの観点から指定されたフィルタ又はマスクコンポーネントは、閾値を超えるプライバシーレベルに関連付けられた特定のフィールド値を有するレコードをその出力から除外するか、又はそれらのフィールドの値を隠すように構成することができる。電子メール又は社会保障番号に対応するフィールドを有する物理データセットに対してこれらの操作が行われる場合、それらは、プライバシーレベルに基づいて行われ得る。論理データセットと、プライバシーレベルなどの関連するメタデータとを、アプリケーションの開発で使用され得るリポジトリにおいて定義することにより、これらのような機能を企業全体で効率的に実装及び更新することが可能となる。このような定義は、機密情報を有する物理データセット(すなわち、機密情報を含むフィールドを含むデータセット)が適切に取り扱われることを保証することによって、データアクセスに関係する企業ポリシーを実施するためにも使用され得る。
図3Aは、開発環境においてユーザインタフェースを介してデータフローグラフとして開発されているアプリケーション(例えば、アプリケーション106-3)を示す。ここで、コンポーネントは、グラフ内のノードとして表される。この例のデータフローグラフは、データが読み出される物理データセットの各々に関する入力ノード302、304と、データが書き込まれる物理データセットの各々に関する出力ノード314とを含む。このような入力ノード及び出力ノードを、それらが提供する機能性(例えば、データシンク又はデータソース機能性)に基づいて生成する例が、「Managing Data Set Objects」と題された米国特許第9,977,659号明細書に記載されており、これは、参照によりその全体が本明細書に組み込まれる。データフローグラフは、物理データセットから読み出されたデータに対して行われる様々なデータ処理操作(例えば、フィルタ、ソート、又は結合操作)のためのノード306、308、310、312も含む。グラフがデータ処理システムによって実行されると、データ処理操作の結果が、出力ノード314に関連付けられた物理データセットに書き込まれる。
各入力ノードは、それぞれのデータソースに関連付けられたパラメータ値で構成され得る。これらの値は、データソースからデータにアクセスする方法を示し得る。同様に、各出力ノードは、それぞれのデータシンクに関連付けられたパラメータ値で構成され得る。これらの値は、結果をデータシンクに書き込む方法を示し得る。
従来、図3Aに示すようなデータフローグラフとして書かれたアプリケーションを含むアプリケーションは、データの保存方法に対する変更を考慮して手動で更新される必要があった。例えば、あるデータストアから別のデータストアへとデータセットが移行された場合、経験豊富な開発者は、移行によって影響を受けるデータフローグラフの入力ノード及び/又は出力ノードの構成を手動で変更する。このような手動更新は、データ処理システムによってサポートされるデータフローグラフ及びデータストアに関する知識(例えば、プログラミング知識)を有する経験豊富な開発者によって行われる必要がある。データの保存方法に対する変更が頻繁に生じる多数のデータセットをサポートするデータ処理システムでは、更新中にエラーが生じると、又は変更ごとにアプリケーションを更新することを怠ると、企業全体にエラーが伝播する。例えば、正しくない又は古い、データソースに関連付けられたパラメータ値で入力ノードが構成されたデータフローグラフを実行することにより、データが正しくないデータソースから読み出されること、又は正しくないフォーマットで読み出されることが生じ得る。入力データのエラーにより、誤ったデータに対してデータ処理操作が行われ、不正確な出力が生じる。正しくない出力は、ジョブのクラッシュ、又は意図した情報が欠落しているとの報告など、容易に認識できる場合がある。他のシナリオでは、エラーはより検出が困難であり、この場合、正しくないデータが物理データセットに書き込まれ、そのデータがエラーによって破損されたことを表示することなく、その後の処理で使用される可能性がある。誤ったデータが企業内を伝播し、それが認識される頃には、多くのデータセットが破損している可能性があるため、エラーを発見し、それを修正するには、時間及びコストがかかり得る。さらに、あるデータストアから別のデータストアへの移行は、この変更によって影響を受ける全ての物理データセットを識別し、次に、それらを使用し、及びテストするアプリケーションを手作業で編集する必要があるため、コスト及び時間がかかる。
本発明者らは、データストレージの変更に適応するようにアプリケーション/データフローグラフを維持する必要なしに、適切な物理データセットへのアクセスを自動的に提供することにより、これらの問題を回避する技法を開発した。データ処理システムがデータストレージの変更に適合することを可能にすることによって、アプリケーションを修正する際に生じるエラーのリスクを大幅に低減し、それによって、従来のシステムでよく起こるエラーの伝播が解消される。
このようなアクセスは、アプリケーションと適切な物理データセットとの間の接続を自動的に提供するデータセットマルチプレクサ105によって可能にすることができる。アプリケーションは、1つ又は複数の論理データセットの観点からプログラムされ得る。例えば、物理データセット(例えば、それらの場所又はフォーマット)に関する最小限の知識しか持たないビジネスユーザが、1つ又は複数の論理データセットの観点からアプリケーションを書くことができる。データセットマルチプレクサ105は、データセットのカタログを維持することができ、カタログの各エントリは、論理データセットに関連付けられ、アプリケーションの実行時に保存されているデータストアが何であれ、論理データセットに対応する物理データセットにアクセスするための情報を提供する。データフローグラフの実行が論理データセットに対する操作を伴うという表示に応答して、データセットマルチプレクサ105は、論理データセットに関連付けられたカタログエントリから物理データセットにアクセスするための情報を取得し、その情報に基づいてデータフローグラフと物理データセットとの間の接続を自動的に提供することができる。いくつかの実施形態では、物理データセットにアクセスするための情報は、物理データセットへのアクセスを提供するプログラムを含み得る。プログラムは、アプリケーションによって実行されると、データストアから物理データセットにアクセスし、それを論理データセットのフォーマットに変換することができる。
図3Bは、図3Aの入力ノード302が論理データセットの観点からどのように構成又はプログラムされるかを概略的に示す。入力ノード302は、ユーザインタフェースを介して提供されるユーザ入力を介して指定される特定の論理データセットを表すように構成され得る。例えば、ユーザ入力は、ユーザインタフェース315を介して提供され得る。データフローグラフの入力ノード及び出力ノードの構成に使用可能な論理データセットのリスト370が、ユーザインタフェース315において提供され得る。入力ノード及び出力ノードの構成に使用可能な論理データセットは、データセットのカタログにエントリが存在する論理データセットであってもよい。ユーザは、リストをブラウズして、入力ノード302を構成するための特定の論理データセットを選択することができる、ユーザは、ユーザインタフェース要素372を介して検索クエリを入力することができ、ここでは、ユーザは、論理データセット又は論理エンティティを記述する次元の1つ又は複数の値を指定することができる。それらの次元には、論理データセット又は論理データセット内に含まれるフィールドを記述するためにリポジトリに入力された単語が含まれ得る。図3Bは、「loyalty」論理データセット375がユーザによって選択され、入力ノード302がこの選択された論理データセットを表すように構成されることを描いている。
代理人整理番号A1041.70070US02を割り当てられた「Data Processing System with Manipulation of Logical Dataset Groups」と題する同時係属出願は、ユーザが操作のターゲットとしてデータセット及び/又はデータセットのグループを検索し得る様々な検索インタフェースについて記載している。この同時係属出願に記載されたインタフェース及び技法は、アプリケーションのコンポーネントを構成する目的で、本明細書に記載されるデータ処理システムにおいて使用することができる。
データセットのカタログは、選択された論理データセットに対応する物理データセットにアクセスするための情報を提供する、この選択された論理データセットのエントリを含むことができる。この情報は、物理データセットにアクセスするためのプログラムであってもよく、又はそれを含んでいてもよい。アプリケーションの実行が選択された論理データセットに対する操作を伴う場合、データセットマルチプレクサは、物理データセットへのアクセスを提供するために適切なデータカタログ情報を利用することができる。例えば、選択された論理データセットに関連付けられた識別子を使用して、プログラムを含むデータセットのカタログの適切なエントリを識別することができ、プログラムを実行して、データストアから物理データセットにアクセスすることができる。データセットマルチプレクサは、物理データセットへのアクセスがそのリンクでのプログラムの実行によって達成されるように、プログラムへのリンクを公開してもよい。
図3Cは、このような接続がデータセットのカタログを用いてどのように行われ得るかを概略的に示している。この図は、図3Bに関連して上述したアプリケーション106-3を概略的に示している。図3Cに示すように、プログラムが実行されると、図3Bの入力ノード302、304及び出力ノード314は、それらのコンポーネントが構成された論理データセットに対応する物理データセットへのアクセスを提供するプログラムに置き換えられる。例えば、入力ノード302、304は、それらが現在保存されているデータストア内の各物理データセットへのアクセスを提供するプログラム330、340に置き換えられる。また、出力ノード314は、データが現在存在するデータストアにおいて、データが書き込まれる各物理データセットへのアクセスを提供するプログラムを示すプログラム350に置き換えられてもよい。これらのプログラムは、アプリケーションがプログラムされる論理データセットのフォーマットと、データストアにおける物理データセットの保存のフォーマットとの間の変換を行うこともできる。
代表的なデータセットカタログ
データセットのカタログ107は、複数のオブジェクトを含んでもよく、各オブジェクトは、論理データセットに関連付けられた情報を保存する。この文脈では、オブジェクトとは、論理データセットに関連する情報を捕捉するコンピュータ可読媒体に保存された情報の一群を指す。その情報は、任意の適切なフォーマットで保存されてもよい。例えば、その情報は、連続したコンピュータメモリのブロックに保存されてもよいし、コンピュータメモリ内の複数の場所に分散されてもよいし、単一のファイル又は他のデータ構造に保存されてもよいし、複数のデータ構造に分散されてもよいし、さもなければオブジェクトに反映された情報を論理データセットに関連させることができるような方法で保存されてもよい。
オブジェクトは、任意の適切な方法で論理データセットに関連し得る。オブジェクトは、情報が関連する論理データセット及び/又は物理データセットを識別する、ヘッダとしてフォーマットされ得る情報を含む、事前定義されたフォーマットを有してもよい。しかしながら、その情報は、ヘッダ以外においてフォーマットされてもよい。例えば、カタログは、インデックスとして特定の論理データセット識別子を有するポインタにアクセスすることによって、カタログにアクセスするコンピュータが、ポインタのターゲットとしてその論理データセットに関連付けられたオブジェクトを見つけることができるように、論理データセット識別子によってインデックス付けされた、オブジェクトへのポインタのリストを保存することができる。代替的又は追加的に、論理データセットに関するカタログ情報の一部又は全ては、さもなければデータ処理システム内に存在し得る情報のリポジトリに対する補遺として保存されてもよい。例えば、データ処理システムは、論理データセット及び/又は物理データセットに関連するメタデータのリポジトリを含み得る。カタログ情報は、このリポジトリに付加されてもよく、及び/又は別個のメタデータリポジトリに保存されてもよい。
論理データセットに関する情報は、任意の適切な形式でオブジェクトに反映され得る。例えば、情報は、それぞれが値を有する1つ又は複数の記述子として保存されてもよい。代替的又は追加的に、情報は、コンピュータ実行可能命令として保存されてもよく、又はコンピュータ実行可能命令を含んでもよい。いくつかの実施形態では、物理データセットにアクセスするためにオブジェクトと共に保存されたプログラムが、その物理データセットにアクセスするようにハードコードされているため、物理データセットはオブジェクトに反映され得る。他の実施形態では、論理データセットに対応する物理データセットを識別する情報は、オブジェクトを保存するデータ構造内のフィールドの値として保存されてもよい。その値は、物理データセットにアクセスするために、オブジェクトと共に保存されたプログラムに実行時パラメータとして渡されるか、さもなければ物理データセットにアクセスするために使用され得る。
図4は、データセットマルチプレクサ105が維持するデータセットのカタログ107における例示的なオブジェクト400を示す。図4は、オブジェクト400において捕捉された様々な情報を示すが、発見情報406及び/又はアクセス情報408などの、その情報の一部は、任意選択であってもよい。
オブジェクト400に捕捉された情報は、論理データセットに対応する物理データセットを識別するための情報を含み得る。この例では、オブジェクトは、論理データセットの識別子404によって識別される。
オブジェクト400に反映される情報は、物理データセットにアクセスするための実行可能プログラム402であってもよく、又はそれを含んでいてもよい。実行されると、プログラムは、論理データセットに対応する物理データセットにアクセスし、物理データセット内のデータを論理データセットのフォーマットに変換してもよく、又はその逆でもよい。プログラムは、プログラムのコンピュータ実行可能命令のコピーを、そのオブジェクトのためにアロケートされたコンピュータメモリに保存することによって、カタログオブジェクトに反映されてもよい。他の実施形態では、プログラムは、オブジェクトのためにアロケートされたコンピュータメモリに保存されたプログラムへのポインタ又はプログラムの他の識別子のみを用いて、他の場所に保存されてもよい。
いくつかの実施形態では、プログラムは、物理データセットの登録プロセス中に識別された発見情報406、及び/又は物理データセットにアクセスするために使用されたアクセス情報408を使用して作成され得る。
オブジェクトは、物理データセット内のデータへのアクセス及びデータの変換を可能にする、対応する物理データセットを保存する物理データソースに関する情報を反映することができる。その情報は、ユーザ入力を介して、又は物理データセットを保存するデータソースからデータ若しくはメタデータを読み出すことによって行われる自動発見プロセスを介してなど、いくつかの方法の何れかで取得されてもよい。いくつかの実施形態では、発見情報406は、データセットマルチプレクサ105を用いた物理データセットの登録プロセスの一部として自動的に発見され得る。登録プロセスの一部として、ユーザは、物理データセットが対応する論理データセットを指定してもよく、又は論理データセットと物理データセットとの間の対応が、別の適切な方法で決定されてもよい。自動的に発見される情報には、データストア及び/又は物理データセットに関連付けられた物理識別子、データストア及び/又は物理データセットの保存場所への参照、データストアのタイプ、物理データセットのレコードフォーマット若しくはスキーマ、及び/又は他の情報が含まれ得る。
いくつかの実施形態では、この発見情報のコピーがオブジェクトに保存され得る。他の実施形態では、発見情報406は、オブジェクトの一部として保存される物理データセットにアクセスするためのプログラムを作成するために使用されるため、オブジェクトに反映され得る。例えば、データストア及び/又は物理データセットのタイプ及びフォーマット情報は、物理データセット内のデータを論理データセットのフォーマットに変換するための変換ロジックを有するプログラムを作成するために使用され得る。
アクセス情報は、物理データセット及び/又はデータストアにアクセスする方法を指定し得るパラメータ408を含み得る。いくつかの実施形態では、これらのパラメータは、設計時パラメータであってもよく、及び/又は実行時パラメータであってもよい。設計時パラメータは、プログラム402の機能を指定するために適用されてもよい。プログラムは設計時パラメータに基づいて生成されるため、これらのパラメータの値は、オブジェクト400に別途保存される必要はない。実行時パラメータの場合、それらの値はオブジェクトに保存され、実行時にプログラムへの入力として供給され得る。
パラメータ408は、物理データセットへのアクセスのタイプを指定する1つ又は複数のパラメータを含み得る。いくつかの実施形態では、アクセスのタイプは、読み出しアクセス又は書き込みアクセスを示し得る。他の実施形態では、アクセスのタイプは、特定の論理データセットのアクセスのためにアロケートされた帯域幅の量を示し得る。例えば、パラメータ408の値は、専用アクセス又は共有アクセスを示し得る。データストアは、全体として、データストアにアクセスする帯域幅の所定量以下を使用できるアプリケーション106へのいくつかの接続をサポートし得る。他よりも優先順位の高いタスクを行うアプリケーションが、データソースの総利用可能帯域幅のより多くを使用することを可能にするために、アロケーション手法が適用され得る。具体的な例として、データソースは、専用アクセス及び共有アクセスをサポートすることができ、アプリケーションの専用アクセスは、共有アクセスが提供される場合よりも多くの利用可能帯域幅がアプリケーションにアロケートされる結果となる。優先順位の高いアプリケーションによって使用される論理データセットに対して専用アクセスを指定し、優先順位の低いアプリケーションによって使用される論理データセットに対して共有アクセスを指定することによって、データソースで利用可能な帯域幅を要望通りにアロケートすることができる。
別の例として、アクセスパラメータは、代替的又は追加的に、論理データセットに対応する物理データセットを保持するデータストアにアクセスするために使用される接続のタイプ(高速接続又は低速接続など)を示し得る。
また別の例として、パラメータ408は、セキュリティ関連情報を指定する1つ又は複数のパラメータを含み得る。いくつかの実施形態では、1つ又は複数のパラメータは、物理データセット内のデータが暗号化されているか否かを示し得る。データが暗号化されている実施形態では、パラメータ408は、その情報を復号化するか、さもなければそれを使用可能にするためのセキュリティキーなどの情報を含み得る。セキュリティを強化するために、セキュリティキーは、アプリケーション106によって実行時に提供されてもよく、データセットのカタログ107には保存されなくてもよい。他の実施形態では、1つ又は複数のパラメータは、物理データセット内のデータが圧縮されているか否かを示し得る。パラメータ408がプログラム402を作成するために使用される実施形態では、物理データセット内のデータが暗号化されていることを示すパラメータ408の値が、プログラムに復号化ロジックを含めるために使用されてもよい。
さらなる例として、パラメータ408は、フィルタ操作の基準を指定する1つ又は複数のパラメータを含み得る。例えば、1つ又は複数のパラメータは、物理データセットにアクセスするときに情報をフィルタリングするために使用され得る日付を指定し得る。
いくつかの実施形態では、パラメータ408の値の一部又は全てが自動的に発見され得る。この自動発見プロセスは、物理データセットがデータセットカタログを作成するデータ処理システムのコンポーネントを用いて登録されるときに行われ得る。発見プロセス中、例えば、データ処理システムのコンポーネントは、データストア内のメタデータにアクセスして、オブジェクトに反映される情報を決定し得る。代替的又は追加的に、データ処理システムのコンポーネントは、物理データセットから読み出されたデータを分析して、レコードフォーマット、暗号化、圧縮、又は物理データストアに関する他の情報を示すデータ内のパターンを認識することができる。
しかしながら、発見情報406は、データ処理システムによって維持されている論理データセット及び/又は物理データセットに関連するメタデータのリポジトリからの読み出しなど、データソースとの直接的なインタラクション以外によって取得されてもよいことを理解されたい。例えば、暗号化又は圧縮などのセキュリティ情報は、データストア内の全てのデータセットに適用可能であり得る。データストア内の1つの物理データセットについてセキュリティ情報がシステム内の任意の場所に保存されると、そのセキュリティ情報は、同じデータストア内の他の物理データセットにアクセスする際に使用されるオブジェクトに反映され得る。
オブジェクトに反映される情報の一部又は全ては、図4の例では発見されるものとして示されていても、ユーザによって入力されてもよい。他の実施形態では、発見情報406及び/又はアクセス情報408の一部は、登録プロセスの一部としてユーザインタフェースを介してユーザによって指定されてもよい。しかしながら、論理データセットを定義するときなど、他の方法でユーザ入力が供給されてもよいことを理解されたい。具体的な例として、論理データセットの優先順位は、論理データセットが定義されるときに指定されてもよく、又は論理データセットが定義された後で、その論理データセットのために保存されているメタデータを編集することによって指定されてもよい。
さらに、図4は、ある時点で論理データセットに関連付けられた、物理データセットにアクセスするように構成されたオブジェクトを示していることを理解されたい。データ処理システムは、論理データセットに関連付けられたデータの保存に影響を与える事象を検出することができる。その場合、その論理データセットのオブジェクトが更新され得る。例えば、パラメータの変更が検出されるたびに、パラメータの何れかの値が更新され得る。代替的又は追加的に、新しい物理データセットが登録され、その物理データセットが、既にカタログにオブジェクトが存在する論理データセットのデータを保存していることを入力が示す場合、その論理データセットのオブジェクトが変更され得る。変更は、例えば、新しい物理データセットを反映させるために、オブジェクトの全て若しくは一部を新しい情報で上書きすること、又はそれを新しいオブジェクトで置き換えることによって実施され得る。しかしながら、論理データセットのオブジェクトは、データセットカタログを介して同じようにアクセスすることができる。このように、論理データセットに基づいてデータアクセス操作を行うように書かれたアプリケーションが、データセットカタログを介して論理データセットに対応する物理データセットにアクセスするように構成されると、それは、いかなる変更にもかかわらず、正しい物理データセットに正しくアクセスし続ける。
いくつかの実施形態では、プログラム402は、物理データセットにアクセスするためのロジックを含む実行可能なデータフローグラフとして構成され得る。図3A~3Cに関連して上述したように、アプリケーションがグラフとして開発される実施形態では、プログラム402は、アプリケーションを実装するデータフローグラフの一部として実行されるという意味で、サブグラフとして構成され得る。例えば、図3Cは、入力データセットにアクセスするためのロジックを含むサブグラフとして構成された第1のプログラム330、入力データセットにアクセスするためのロジックを含むサブグラフとして構成された第2のプログラム340、及び出力データセットにアクセスするためのロジックを含むサブグラフとして構成された第3のプログラム350を示す。
サブグラフは、論理データセットに関連付けられたストレージに対するデータアクセスのための適切な機構の変更を示す事象に基づいて随時更新されるため、これらのサブグラフは、動的サブグラフ(DSG)と見なすことができる。従って、アプリケーション内でサブグラフのデータアクセス操作を使用すると、その時点で正しいデータを保存する物理データセットに動的にアクセスすることになる。従って、本明細書では、プログラム402の一例としてDSGが使用される。
データセットカタログを備えた代表的なデータセットマルチプレクサ
図5Aは、データ処理システム104のデータセットマルチプレクサ105のコンポーネントを強調したブロック図である。図5に示すように、データセットマルチプレクサ105は、数あるコンポーネントの中でも、登録モジュール520、動的サブグラフ(DSG)生成器524、メタデータ管理モジュール526、操作メタデータモジュール528、カタログサービスインタフェース522、及びユーザインタフェース530を含む。
いくつかの実施形態では、登録モジュール520は、データセットマルチプレクサ105を用いて物理データセットを登録するように構成される。登録は、ITインフラストラクチャへの物理データセットの追加によって、又はアプリケーションからの物理データセットの使用によってトリガされてもよい。代替的又は追加的に、登録モジュール520は、ユーザインタフェース530を介して物理データセットを登録するコマンドを受け取ることができる。例えば、ユーザは、物理データセットの登録プロセスを開始するために、ユーザインタフェース530を介して入力を提供することができる。その入力は、物理データセットを登録するための直接コマンドの形式であってもよい。
代替的又は追加的に、その入力は、登録が開始されることを間接的に示すことができる。例えば、アプリケーションを書いているユーザが、データセットカタログに情報がない、又はカタログの情報が最新のものではない物理データセットに関連付けられた論理データセットを選択したときに、登録がトリガされ得る。間接的なコマンドとして機能する他のアクションには、物理データセットをあるデータストアから別のデータストアに移行する指示、又は物理データセットと論理データセットとの間の変換に影響を与え得る論理データセットに関連付けられたメタデータを変更するコマンドが含まれ得る。登録プロセスがどのようにトリガされるかにかかわらず、ユーザ入力は、論理データセットのカタログ内のオブジェクトが最新の情報で作成又は上書きされ得るように、物理データセットに対応する論理データセットを指定することができる。
カタログ内のオブジェクトを作成又は更新するための他の情報は、1つ又は複数のソースから収集されてもよい。登録モジュール520は、登録プロセス中に、物理データセット及び/又はそれが保存されているデータストアに関する情報を発見し得る。このようにして収集された情報は、データストアのタイプ、物理データセットのレコードフォーマット又はスキーマ、データストアの物理的保存場所、圧縮及び/又は暗号化ステータス、及び/又は他の情報を含み得る。
登録モジュール520は、取得された情報をDSG生成器524に提供し得る。DSG生成器524は、受信した情報に基づいてDSGを作成し得る。DSG生成器524は、いくつかのプログラムテンプレートにアクセスすることができ、各プログラムテンプレートは、特定のタイプのデータストアに対応する。DSG生成器524は、受信した情報からデータストアのタイプを検出し、上記いくつかのプログラムテンプレートの中から、検出されたタイプに対応する適切なプログラムテンプレートを選択し得る。例えば、データ処理システムは、ORACLEデータベース又はHADOOP分散データベースのデータテーブルに対する読み出し及び/又は書き込みアクセスのためのテンプレートを用いて事前に構成されてもよい。物理データセットを保存するデータストアのタイプを検出することによって、DSG生成器524が、DSGが作成されている論理データセットに対応する物理データセットへのアクセスのための適切なテンプレートを選択することが可能となり得る。
DSG生成器524は、選択されたプログラムテンプレートに基づいてプログラムを生成し得る。DSG生成器524は、受信した情報から選択されたプログラムテンプレートのパラメータの値を検出し、プログラムテンプレートに検出された値を投入し得る。パラメータの値の一部又は全ては、代替的又は追加的に、メタデータ管理モジュール526から取得されてもよく、この例では、メタデータ管理モジュール526は、物理データセット、データストア、及び/又は論理データセットのメタデータを維持し得る。パラメータは、代替的又は追加的に、ユーザインタフェース530を使用したユーザ入力を介して供給されてもよく、又は他の方法で取得されてもよい。
DSG生成器524は、物理データセットにアクセスするためのアクセスロジックと、物理データセットのフォーマットと対応する論理データセットのフォーマットとの間で変換するための変換ロジックとを含むDSGを生成する。DSG生成器524は、物理データセット及び対応する論理データセットについて、論理層対物理層のマッピングを生成し得る。DSG生成器524は、論理データセットの1つ又は複数のフィールドと、同じ情報を表す物理データセットの1つ又は複数のフィールドとの間で、マッピングを生成してもよい。このマッピングは、データ処理システム内で利用可能な情報、ユーザ入力、及び/又はセマンティックディスカバリにより導出された情報を含む、様々なソースからの情報を用いて生成され得る。DSG生成器524は、マッピングを利用して変換ロジックを生成し得る。例えば、物理データセットの顧客名は、それぞれ顧客のファーストネーム、ミドルネームのイニシャル、及びラストネームに対応するデータを保持する3つのフィールドとして、データテーブルの1行に保存されてもよい。しかしながら、論理データセットは、単に論理エンティティCustomer_Nameを含んでもよい。DSG生成器524は、物理データセットのこれら3つのフィールドと、論理データセットの論理エンティティとの間のマッピングを生成し得る。変換ロジックは、物理データセットの「顧客のファーストネーム、ミドルネームのイニシャル、及びラストネーム」フォーマットと、論理エンティティの「Customer_Name」フォーマットとを変換するロジックを含み得る。DSGが実行されると、アクセスロジックは、物理データセットの3つのフィールドから情報を取得するために実行され、変換ロジックは、物理データセットのフォーマットと論理データセットのフォーマットとを変換するために実行される。
いくつかの実施形態では、DSG生成器524は、データストア内の複数の物理データセットのそれぞれについてDSGを作成する。作成されたDSGは、データセットのカタログ107に含まれ得る。データセットのカタログ107は、論理データセットに関連付けられたオブジェクトを含むことができ、各オブジェクトは、論理データセットに対応する物理データセットにアクセスするためのDSGでもよく、又はDSGを含んでもよい。
登録モジュール520は、メタデータ管理モジュール526が物理データセット及び/又はデータストアのメタデータの受信及び維持を行うことができるように、発見情報をメタデータ管理モジュール526に提供することもできる。いくつかの実施形態では、メタデータ管理モジュール526は、DSGを生成する際の動的サブグラフ生成器524のための情報源であってもよく、データ処理システム内のデータセットに関与する他の操作で使用され得るデータセットに関するメタデータを追加的に保存してもよい。メタデータ管理モジュール526は、例えば、論理データセットに関するメタデータとして機能する情報、論理データセット内の論理エンティティに関する情報、データセットの論理エンティティ間の関係、並びに他の論理データセット及び/又は他の論理データセットのエンティティとの関係を維持し得る。
メタデータ管理モジュール526はまた、論理データセットと物理データセットとの間のマッピングを保存してもよく、これは、ユーザ入力に基づいてもよく、又はいくつかの実施形態では、ユーザがデータ処理操作の一部として論理データセットと物理データセットとの間の関連付けを直接的若しくは間接的に指定した操作を監視することなどによって導出されてもよい。どのように獲得されるかにかかわらず、いくつかの実施形態では、メタデータ管理モジュール526は、論理データセットの識別子を、論理データセットに対応する物理データセットの識別子にマッピングするテーブル又は他のデータ構造を維持することができる。この情報は、論理データセットを表すオブジェクトを作成する際、及び/又は論理データセットに関連付けられたデータの保存が変更されたため、以前に作成されたオブジェクトが更新を必要とすることを決定する際に、動的サブグラフ生成器524によって使用され得る。
メタデータ管理モジュール526は、データ処理システム104に既知の論理データセットのリストを維持することができる。論理データセットの観点からアプリケーションをプログラムする際に、既知の論理データセットのリストは、アプリケーションのユーザインタフェースを介してユーザに提示されてもよく、ユーザは、提示されたリストから特定の論理データセットを選択することができる。メタデータ管理モジュール526によって維持されるこの論理情報は、例えば、ユーザがアプリケーションを書く際に使用する特定の論理データセットを検索することを可能にするために使用され得る。論理データセットへの対応を含む物理データセットに関する情報(これも、メタデータ管理モジュール526によって保存され得る)も、適切なデータセットを検索する際に使用され得る。例えば、この論理的及び物理的情報は、データセットのファセット検索の次元を定義するために使用することができる。
データ処理システムは、データセットに関する他のタイプのメタデータを維持してもよく、特定のシナリオ用のデータセットを検索するユーザが、これらのメタデータを利用することもできる。例えば、データセットの使用に関するメタデータは、データセットが使用されるときに捕捉及び保存され得る。この操作メタデータは、ユーザが他のユーザによるデータセットの利用状況に基づいてデータセットを検索することを可能にするために、データセット検索ツールによっても使用され得る。
操作メタデータモジュール528は、データセットに関する操作メタデータを収集することができる。操作メタデータは、データセットにアクセスするアプリケーション又は他のプログラムの実行中又は実行後に収集されてもよい。実行中に収集された操作メタデータは、アクセスされた物理データセットに関する識別情報、アクセスの日時、データセットの更新が行われたか否か、データセットにアクセスした1つ又は複数のサブグラフの実行に関連付けられたパラメータの値、及び/又は他の操作データを含み得る。実行後に収集又は決定された操作メタデータには、物理的又は論理的なデータセットのアクセス頻度に関する情報、アクセスの最新性に関する情報、又はアクセスされたデータのサイズに関する情報(例えば、読み出し及び/又は書き込みが行われたレコードの数)が含まれ得る。操作メタデータの一部は、データセットを作成したユーザ又はデータセットにアクセスしたユーザに関する情報などの社会的情報であり得る。この社会的情報には、企業におけるユーザの役割、ユーザに提供された権限、及び/又は企業における人々に関するその他の情報が含まれ得る。
図5Aの例では、カタログサービスインタフェース522は、データセットに関する様々なタイプのメタデータへのアクセスを統合する。それは、例えば、ユーザがアプリケーションを書く際に、或いはデータセットに対して行われる操作を指定する際に選択することを望み得る、物理データセット及び/又は論理データセットに関して保存され得る論理、物理、及び/又は操作メタデータの何れかに存在し得るいくつかのファセットの何れかを検索することを可能にするファセット検索ツールを提供し得る。検索におけるファセットは、データ処理システム内に保存された論理データセット、物理データセット、及び/又は操作メタデータに関する情報に基づいてもよい。例えば、データセットの検索は、データセットカタログにエントリ/オブジェクトが存在するデータセットのみを返すように条件が付けられてもよい。このファセットは、論理データセット又は物理データセットに関連する他のファセットと組み合わせて、強力な検索インタフェースを提供することができる。例えば、検索クエリは、ここ1週間以内にアクセスされたデータセットのみ、及び電子メールフィールドを有する論理データセットのうち、対応する物理データセットが高速アクセス可能なデータストアに保存されているもののみを返すように条件が付けられてもよい。
図5Aは、異なるタイプのメタデータを管理する別々のモジュールを示しているが、この描写は機能によって分離されていること、並びに複数のタイプのメタデータを捕捉及び/又は提供するハードウェア及び/又はソフトウェアコンポーネントは、全てのそのようなメタデータの捕捉及び管理を単一のモジュールに統合すること、又は図示されているよりも多くのモジュールに統合することを含む、他の方法で分割されてもよいことを理解されたい。
カタログサービスインタフェース522は、論理データセットの観点からアプリケーション106がプログラムされることも可能にする。ユーザがアプリケーションをプログラムするための論理データセットを選択すると、カタログサービスインタフェース522は、その論理データセットの観点から書かれたアプリケーションが適切な物理データセットにアクセスすることを可能にする情報を提供することができる。カタログサービスインタフェース522は、データセットのカタログ107にアクセスしてもよく、カタログ内の各オブジェクトは論理データセットに対応し、論理データセットに対応する物理データセットにアクセスするための情報を提供する。カタログオブジェクトは、論理データセットに対応する物理データセットにアクセスするためのプログラム(この例ではDSGとして示されている)であってもよく、又はそれを含んでもよい。
カタログサービスインタフェース522は、データセットのカタログ107において選択された論理データセットのオブジェクト内のプログラムに関する情報を提供することによって、アプリケーションが物理データセットにアクセスすることを可能にすることができる。アプリケーション内から論理データセットにアクセスする操作が実行されると、アプリケーションはその情報を使用して、データストア内の対応する物理データセットにアクセスすることができる。このようにして、カタログオブジェクトから識別されたプログラムを実行して、データストアから物理データセットにアクセスすることができる。例えば、カタログサービスインタフェース522は、DSGへのリンクを公開することができ、アプリケーションが開発されている開発環境は、アプリケーションの実行時にそのリンクでDSGを実行することによって物理データセットへのアクセスが実現されるようにアプリケーションを構築するためにそのリンクを使用することができる。いくつかの実施形態では、カタログサービスインタフェース522は、アプリケーションプログラミングインタフェース(API)を介してこのリンクを提供する。
上述したように、論理データセットに関連付けられたカタログオブジェクト、従ってそのオブジェクトのDSGは、論理データセットに関連付けられた情報の保存の変更を示す事象に応答して更新され得る。例えば、論理データセットに対応する物理データセットが、あるデータストアから別のデータストアに移行され得る。論理データセットのカタログオブジェクトは、この変更を考慮するように更新され得る。いくつかの実施形態では、アプリケーションが正しいデータストアから物理データセットにアクセスするように、物理データセットにアクセスするためのプログラムが修正されてもよい。論理データセットのカタログオブジェクトを更新することによって、論理データセットにアクセスするように書かれたアプリケーションは、物理データセットがあるデータストアから別のデータストアに移行しても、修正なしに動作を継続する。このような動的更新については、以下で図6A~6Bを参照して、より詳細に説明する。
物理データセットの場所と関連付ける必要のない他の事象は、データセットカタログのオブジェクトに変更をもたらす場合がある。例えば、物理データセットのフォーマットの変更を示す事象に応答して、適切なカタログオブジェクトが更新され得る。例えば、データセットにフィールドを追加することによって物理データセットのフォーマットが変更された場合、対応するカタログオブジェクトは、追加されたフィールドを考慮するように更新され得る。いくつかの実施形態では、物理データセットにアクセスするためのプログラム内の変換ロジックが、この変更を考慮するように修正されてもよい。別の例として、プログラムを生成するために使用された、又はプログラムにおいてアクセスされたパラメータの値の変更を示す事象に応答して、カタログオブジェクトに保存されたパラメータの値が更新され、及び/又はプログラムが新しい値で再生成されてもよい。さらに別の例として、論理データセットに対応する物理データセットに関連付けられた変更を示す事象は、物理データセットを同じ論理データセットに対応する別の物理データセットに置き換えることを示す事象を含み得る。この例では、第1の物理データセットに対応するカタログオブジェクトが、他の物理データセットに対応するカタログオブジェクトと置き換えられてもよく、又は置換されてもよい。これらの変更は、動的サブグラフ生成器524によって実施されてもよく、動的サブグラフ生成器524は、事象の検出時にカタログオブジェクトを更新するようにトリガされてもよい。更新は、例えば、カタログオブジェクトを保存しているメモリ場所を全体的若しくは部分的に上書きすることによって、又は特定のカタログエントリのカタログオブジェクトが新しいオブジェクトによって置き換えられたときに更新されるように、他のメモリ場所に保存されているオブジェクトをデータセットのカタログエントリに関連付けることによって、実施されてもよい。このような変更のトリガは、ユーザ入力によって供給されてもよく、又は動的サブグラフ生成器524、カタログサービスインタフェース522、又はデータ処理システムの他のコンポーネントによって自動的に検出されてもよい。
論理データセットの観点から書かれたアプリケーションが実行され、論理データセットに対応する物理データセットへのアクセスをアプリケーションに提供するためにデータセットカタログ107がアクセスされる場合、図5Bに示されるように、登録モジュール520、動的サブグラフ生成器524、メタデータ管理モジュール526、操作メタデータモジュール528、及び/又はユーザインタフェース530などの1つ又は複数のコンポーネントは任意選択であってもよいことを理解されたい。アプリケーション内から論理データセットにアクセスする操作が実行されると、アプリケーションは、論理データセットに関連付けられた識別子に基づいて、論理データセットに関連付けられたDSGに関する情報を、カタログサービスインタフェース522を介してデータカタログ107から取得し得る。いくつかの実施形態では、カタログサービスインタフェース522は、DSGへのリンクを公開することによって、この情報をアプリケーションに提供することができる。DSGは実行されると、論理データセットに対応する物理データセットへのアクセスをアプリケーションに提供する。
データセットカタログオブジェクトを更新するための代表的な技法
データカタログ内のオブジェクトは、論理データセットの観点からプログラムされたアプリケーションでデータアクセス操作を行うために使用され得る。そのカタログオブジェクトは、アプリケーションの実行時にオブジェクト内の現在の情報を使用することによって、適切なデータアクセスが提供されるように、事象に応答して更新され得る。そのような事象の1つは、図6A及び図6Bに示すように、物理データセットの保存場所の変更である。図6Aは、データ処理システムがアプリケーション106-1、106-3とデータストア102-1及び102-2との間のアクセスを容易にする第1の時間において動作状態にある、図1A又は図5Aに示されるような例示的な企業ITシステムのブロック図である。
アプリケーション106-3は、データセットカタログからの情報を用いてアプリケーションの仕様における論理データセットへの参照を実装する開発環境において、データフローグラフとして開発されてもよい。データフローグラフの入力ノードを表すアプリケーション106-3のコンポーネント330及び340は、論理データセットの観点からプログラムされてもよく、アプリケーションの実行のためにコンピュータメモリに保存される情報は、それらのコンポーネントについて、論理データセットに対応するカタログオブジェクトへのリンクを含む。例えば、コンポーネント330は、第1の論理データセットに対応するカタログオブジェクトにリンクされてもよく、コンポーネント340は、第2の論理データセットに対応するカタログオブジェクトにリンクされてもよい。リンクは、それらのコンポーネントで参照される論理データセットに対応する物理データセットにアクセスするために必要なオブジェクト内の情報を識別するのに十分な情報を伝達する任意のフォーマットで保存されてもよい。例えば、リンクは、オブジェクトの識別子として、又は物理データセットにアクセスするためのプログラムを保存するファイルへのディレクトリ構造を通るパスとして保存されてもよい。
アプリケーション106-1は、データフローグラフとして開発することもできる。データフローグラフの入力ノードを表すアプリケーション106-1のコンポーネント610及び620は、論理データセットの観点からプログラムされてもよく、コンポーネントは、論理データセットに対応するカタログオブジェクトにリンクされる。例えば、コンポーネント610は、第1の論理データセットに対応するカタログオブジェクトにリンクされてもよく、コンポーネント620は、第3の論理データセットに対応するカタログオブジェクトにリンクされてもよい。
図6Aに示すように、アプリケーション106-3のコンポーネント330及びアプリケーション106-1のコンポーネント610は、同じ論理データセットの観点からプログラムされてもよく、データセットのカタログ107内の同じカタログオブジェクトにリンクされてもよい。
データ処理システム104は、論理データセットに対応するカタログオブジェクトを含むデータセットのカタログ107を維持し得る。各カタログオブジェクトは、論理データセットに対応する物理データセットにアクセスするためのDSGであってもよく、又はDSGを含んでいてもよい。図6Aに示すように、データセットのカタログは、DSGの第1のセットを含み、第1のセットの各DSGは、データソース102-2から物理データセットにアクセスするようにプログラムされている。データセットのカタログ107は、DSGの第2のセットも含み、第2のセットの各DSGは、データソース102-1から物理データセットにアクセスするようにプログラムされている。
データ処理システム104は、アプリケーション106-3及び106-1が、データセットのカタログ107内の情報を使用して、それぞれのプログラムされた論理データセットに基づいて、データストア102-2及び102-1から物理データセットにアクセスすることを可能にする。アプリケーション106-3をプログラムする際に、ユーザは、既知の論理データセットのリストなどから第1の論理データセットを選択することができ、その論理データセットをコンポーネント330に関連付けることができ、及びコンポーネント340と関連する第2の論理データセット。同様に、アプリケーション106-1をプログラムする際に、ユーザは、コンポーネント610に関連付ける第1の論理データセットと、コンポーネント620に関連付ける第3の論理データセットとを選択し得る。
コンポーネント330に関連付けられた論理データセットにアクセスする操作が実行されると、データ処理システム104は、コンポーネント330にリンクされたDSGを選択し得る。コンポーネント340に関連付けられた論理データセットにアクセスする操作が実行されると、データ処理システム104は、コンポーネント340にリンクされたDSGを選択し得る。コンポーネント610に関連付けられた論理データセットにアクセスする操作が実行されると、データ処理システム104は、コンポーネント610にリンクされたDSGを選択し得る。コンポーネント620に関連付けられた論理データセットにアクセスする操作が実行されると、データ処理システム104は、コンポーネント620にリンクされたDSGを選択し得る。
図6Bは、データストア102-1の物理データセットがデータストア102-1’に移行されたときに、データ処理システムがアプリケーション106-1、106-3とデータストア102-1、102-1’との間のアクセスを容易にする第2の時間において動作状態にある、図1A又は図5Aの例示的なデータ処理システムのブロック図である。
この例におけるデータストア102-1からデータストア102-1’への物理データセットの移行は、データ処理システム104にデータセットのカタログ107を更新させる事象である。データストア102-1の物理データセットにマッピングされた論理データセットに対応するデータセットのカタログ107のオブジェクトは、データストアの変更を考慮するように更新され得る。この更新により、DSGの第2のセットは、データストア102-1の代わりにデータストア102-1’から物理データセットにアクセスするように修正され得る。図6Bに示すように、アプリケーション106-3、106-1とデータセットのカタログ107との間のリンクは変更されないままであり、アプリケーション106-3、106-1は、データセットの物理ストレージへの変更にかかわらず動作を継続する。それにもかかわらず、論理データセットのアクセスを指定するアプリケーション内の操作の実行は、更新された場所にある物理データセットへのアクセスをもたらす。
データセットカタログオブジェクトを介したデータアクセス用に構成された代表的なアプリケーション
図7は、データセットマルチプレクサ105によって維持される様々な情報を示すブロック図である。この情報により、アプリケーション106-2が、プログラムされた論理データセットに基づいて物理データセットにアクセスするように構成されることが可能となり得る。この情報はまた、一旦構成されると、アプリケーションの実行の結果として記録され得る。この記録された情報は、データセットに対する以前の操作に基づいて、ユーザがアプリケーションで使用するデータセットを後で検索することができる検索インタフェースを提供することを含む、データ処理システムによって行われる他の機能のための操作メタデータを提供することができる。
この例では、アプリケーション106-2は、顧客に関する情報を含むデータセットからデータを読み出すように書かれたものである。次にそれは、そのデータセットから好ましい顧客を表すレコードを抽出し、その結果を第2のデータセットに書き込む。実行されると、アプリケーション106-2は、物理データセットからの読み出し、及び物理データセットへの書き込みを行う。しかしながら、アプリケーション106-2は、入力データストア710に関連付けられた第1の論理データセット及び出力データストア720に関連付けられた第2の論理データセットの観点からプログラムされてもよい。
アプリケーション106-2が書かれているときに、ユーザは、データが読み出される論理データセットを指定する入力データストア710の構成入力を提供することができる。この例では、論理データセットは、「abbott.customers」として識別される。そのデータセットは、データ処理システムを用いて登録された全ての論理データセットのリストから選択すること、又はユーザが指定したパラメータを有するデータセットに対するユーザクエリに応答して返される限定されたリストから選択することなど、ユーザ入力によって選択され得る。このような選択インタフェースは、アプリケーション106-2の開発環境によって提供され得る。
同様に、出力データストア720は、論理データセットで構成されてもよい。この例では、論理データセットは、「abbott.preferred-cust」として識別されている。
アプリケーションの実行を可能にするために、開発環境は、選択された論理データセットを、アプリケーションが実行される時点で、指定された論理データセットに対応する物理データセットに対して読み出し操作及び書き込み操作が行われることを可能にする情報に関連付けることができる。これは、例えば、カタログサービスインタフェース522(図5A)を介して情報を取得することによって行われ得る。カタログサービスインタフェース522は、例えば論理データセットに関連するカタログ情報に対する要求に応答して、プログラムが実行されたときに、その時点で特定の論理データセットに対応する物理データセットにアクセスするように維持されているプログラムに関する情報を提供することができる。この例では、プログラムに関する情報は、プログラムを保存するファイルへのディレクトリ構造内のパスとして提供される。この例では、入力論理データセット「abbott.customers」に対応する物理データセットにアクセスするためのプログラムへのリンクは、パス「common20/abbott/customers/DSG」に保存される。しかしながら、プログラムへのリンクは、任意の適切なフォーマットで供給されてもよい。
同様に、出力論理データセット「abbott.preferred-cust」に対応する物理データセットにアクセスするためのプログラムが取得される。この例では、そのパスは、「common10/abbott/preferred-cust/DSG」である。物理データセットにアクセスできるプログラムへのこれらのリンクは、アプリケーションの実行中に、カタログサービスインタフェース522によって公開されてもよい。これらのリンクは、これらのデータセットにアクセスするアプリケーション内の操作の実行時に、プログラムを実行できるように、アプリケーションのコンピュータ実行可能表現の一部として保存されてもよい。或いは、物理データセットにアクセスするプログラムを実行するのに十分な情報は、アプリケーションの実行時を含め、データソースにアクセスする操作の実行前の任意の時点で取得することができる。
アプリケーションの実行に関連して、物理データセットへのアクセスを提供するプログラムに関する情報がいつ識別されるかにかかわらず、データセットマルチプレクサ105は、そのプログラムに関する情報を提供することができる。図7は、データセットマルチプレクサ105が、論理データセットを、その論理データセットに対応する物理データセットにアクセスするためのプログラムに関連付けるのに十分な情報を維持することを示す。この情報は、例えば、論理データセットのデータセットカタログオブジェクトとして保存されてもよい。いくつかの実施形態では、この情報は、アプリケーションの実行時又は設計/構築時に、データセットマルチプレクサ105によってフェッチ又は提供されてもよい。設計/構築時にそうすることにより、実行時動作に対して時間的費用及び/又は依存性を追加することを回避できる。
図7の例では、情報は2つの関係として保存されて図示されている。物理データセットの物理識別子は、情報702、704、及び706を結び付けるキーとして使用される。まず、情報702は、各論理データセットを、その論理データセットに対して使用される論理IDによって、その論理データセットに対応するデータを現在保存している物理データセットの識別子にリンクさせる情報を提供する。第2に、情報704は、物理データセットと、それにアクセスするために使用され得るプログラムとの間の関係を提供する。
図7の例では、情報702は、論理データセット「abbott.customers」を、識別子「123」によって識別される物理データセットにリンクさせる。パス「common20/abbott/customers/DSG」のプログラムは、情報704を介して、識別子「123」を有する物理データセットに関連付けられる。
同様に、論理データセット「abbott.preferred-cust」は、情報702によって物理データセットID「247」に関連している。また、パス「common10/abbott/preferred-cust/DSG」のプログラムは、情報704によって物理データセット247に関連している。
同様の情報は、対応する物理データセットが登録された各論理データセットについて、データセットカタログオブジェクト内など、データセットマルチプレクサによって維持されてもよい。代替的又は追加的に、この情報の一部又は全ては、メタデータ管理モジュール526又はデータ処理システム内の他のモジュールによって維持されてもよい。情報がどのように維持されるかにかかわらず、データセットマルチプレクサ105は、論理データセットに対応する物理データセットにアクセスするプログラムに関する情報を提供することができる。
図7の例では、パス「common20/abbott/customers/DSG」における識別されたプログラムは、それを呼び出すために使用される情報と共に、DSG715として、指定された入力データストア710の場所に保存される。DSG715は、入力論理データセット「abbott.customers」に対応する物理データセットからデータを読み出す「読み出しDSG」と呼ばれることがある。同様に、パス「common10/abbott/preferred-cust/DSG」におけるプログラムは、それを呼び出すために使用される情報と共に、DSG725として指定された出力データストア720の場所に保存される。DSG725は、出力論理データセット「abbott.preferred-cust」に対応する物理データセットにデータを書き込む「書き込みDSG」と呼ばれることがある。
アプリケーション内で実行されるプログラムを示す情報は、アプリケーションを構成するプログラム命令と併せて保存することができる。アプリケーションがデータフローグラフとして書かれ、データソースにアクセスするためのプログラムがサブグラフとして書かれるシナリオでは、これらのサブグラフは、実行のためにデータフローグラフ内の適切な場所でデータフローグラフに動的にリンクされ得る。この場所は、データフローグラフの入力ノード及び/又は出力ノードに対応し得る。データフローグラフの実行中又は実行直前に、カタログサービスインタフェース522によって公開された、又はカタログサービスインタフェース522から取得されたサブグラフのリンク又はパス情報が、入力ノード及び/又は出力ノードに提供されてもよく、対応するサブグラフは、入力ノード及び/又は出力ノードの代わりにリンクされてもよく、及び/又は保存されてもよい。その全体が本明細書に組み込まれる「Managing Interfaces for Sub-Graphs」と題された米国特許第10,180,821号明細書に記載されているように、サブグラフインタフェースを介してサブグラフをデータフローグラフに動的にリンクするための例示的な技法が使用されてもよい。しかしながら、プログラムを実行するための情報を保存する他の方法が代替的又は追加的に使用されてもよい。
アプリケーション106-2が実行され、入力データストア710に関連付けられた論理データセットにアクセスする操作が発生すると、リンクされたDSG715が呼び出され得る。DSG715の呼び出しは、そのアクセスロジック及び変換ロジックの実行をもたらし得る。実行されると、入力データストア710がアクセスされ、入力データストア及び/又は入力データストアの対応する物理データセットからのデータが読み出され、論理データセットのフォーマットに変換され得る。DSGの呼び出しは、データ処理システム内のコントローラモジュール(図示せず)にパラメータを提供することを必要とし得る。
図7の例では、DSG715の実行のために供給されるパラメータは、パラメータ730として示されている。この例では、パラメータ730の1つは、そのパスを提供することなどによってDSGを識別する。このパラメータの値は、入力データソース710が特定の論理データセット用に構成される時点で保存されてもよい。
その他のパラメータ730は、それらが実行のためにコントローラモジュールによってDSG715に供給され得るように提供され得る。これらの実行時パラメータ(すなわち、実行時に供給される)は、DSGの実行に影響を与える場合がある。例えば、パラメータ「Param1」及び「Param2」の値は、実行時にDSGに供給されてもよい。このようなパラメータの1つの値は、例えば、DSG715が特定の読み出しモード(単一レコード、バッチ、クイック、共有など)で実行されるべきであることを指定することができる。パラメータの値は、別の例として、アプリケーションのアクセス優先順位を反映してもよい。
これらの実行時パラメータの値は、1つ又は複数の方法で取得することができる。それらは、例えば、アプリケーションの開発時にユーザによって提供された入力に基づいて、アプリケーション106-2においてエンコードされてもよい。例えば、パラメータの値は、開発環境において入力データソース710の構成パラメータとして入力された情報から導出されてもよい。別の例として、パラメータの値は、代替的又は追加的に、アプリケーションの開発中に、又は実行時のプロンプトに応答して、他のユーザ入力から導出されてもよい。さらに別の例として、アプリケーションは、時刻を示す外部入力、現在のシステム負荷、又はデータフローグラフへの入力として提供されるデータに依存する他の入力などの、様々な入力から実行時にパラメータの値を識別し得る。
さらに別の例として、パラメータの値は、代替的に又は追加的に、他のモジュールから取得されてもよい。具体的な例として、パラメータ730の少なくともいくつかの値は、入力データストア710に関連付けられた論理データセットに関する情報を保存するメタデータリポジトリ内の情報から読み出されてもよく、又は情報を処理することによって取得されてもよい。さらに別の例として、パラメータ730の少なくともいくつかの値は、ユーザに関する情報を維持するアクセス制御モジュール内の情報から読み出されてもよく、又は情報を処理することによって取得されてもよく、アプリケーションを開発したユーザ又はアプリケーションを実行しているユーザの役割に基づいて設定されるデータストアへのアクセス優先順位又は機構を反映し得る。
入力データソースパラメータ730の他のパラメータの値は、コントローラモジュール、又はデータ処理システムの他のコンポーネントが操作メタデータを捕捉することができるように、含まれてもよい。例えば、アクセスがエンコードされるデータセットの論理識別子は、例えば、この理由のために保存されてもよい。同様に、アクセスされる物理データセットの識別子が保存されてもよい。このパラメータの値は、実行時に最新である情報702などから、データセットマルチプレクサによって供給されてもよい。このような情報を捕捉することによって、例えば、操作メタデータモジュール528(図5A)が、データの検索の追加ファセットをサポートする情報を供給することが可能となり得る。
図7の例では、データセットマルチプレクサ105は、アプリケーション106-2の実行中に収集される情報706を保存するように示されている。例えば、情報706は、データセットがアクセスされた日付、それがアクセスされた時点のデータセットのサイズ、及び/又はデータセットに読み込まれたデータ量若しくはデータセットから書き込まれたデータ量、アプリケーション若しくはアクセスプログラムの実行又はデータの物理的な保存などによってデータアクセスに関与したコンピュータハードウェアのホストIDを含み得る。情報706の他の部分は、出力データストア720に関連付けられた論理データセット、アクセスされた物理データセット、プログラムに供給された「Param1」及び「Param2」などのパラメータの値、物理データセットがいつアクセスされたか、及び/又は他の情報を示してもよい。このようなエントリは、データセットへの各アクセスについて、又はデータセットへのいくつかの数の以前のアクセスについて、又はデータセットへのアクセス後の所定時間の間、保存されてもよい。この情報は、実行後に分析されることによって、データセットの使用の頻度又は最新性/鮮度などの、他の操作パラメータを決定することができる。
同様の情報が、出力データストア720のために保存されてもよい。出力データストア720に関連付けられた論理データセットにアクセスする操作が実行されると、リンクされたDSG725が呼び出され得る。DSG725の呼び出しは、そのアクセスロジック及び変換ロジックの実行をもたらし得る。実行されると、出力データストア720がアクセスされてもよく、データが、論理データセットのフォーマットから出力データストアのフォーマット及び/又は出力データストアの対応する物理データセットのフォーマットに変換された後、出力データストアに書き込まれてもよい。パラメータ740は、値がコントローラモジュールに供給され、実行中にDSG725によって利用され得るパラメータを表す。図7には示されていないが、操作メタデータのリポジトリ内のエントリは、同様に、出力データストア720に対応する物理データセットのアクセスに基づいて作成されてもよい。
データセットをデータセットカタログに登録する代表的な方法
図8は、物理データセットが、物理データセットに対応する論理データセットにアクセスするように構成されたアプリケーションからアクセスされ得るように、物理データセットをデータセットカタログに登録するための例示的なプロセス800のフローチャートである。プロセス800は、図1A~1Cを参照して説明したデータセットマルチプレクサ105などにおいて、データ処理システム104によって実行され得る。プロセス800は、代替的又は追加的に、他の実施形態に関連して本明細書の他の箇所で説明されるようなアクトを含む、他のアクトを含んでもよい。
プロセス800は、検出された事象に応答して開始され得る(801)。事象は、データ処理システムにおいて定義された論理データセットに対応するITシステム内の物理データセットへのアクセス機構を提供するデータセットカタログにカタログエントリが存在しないという表示であってもよい。検出された事象は、まだカタログエントリを有していない、ITシステム内に存在する物理データセットの自動検出であってもよい。このような表示は、例えば、物理データセットを論理データセットに対応するものとしてデータ処理システムに登録させるためのユーザ入力コマンドなどの、ユーザ入力の形式のものであってもよい。或いは、事象は、ITシステム内の物理データセットへのアクセス機構を提供するデータセットカタログのカタログエントリが古いという表示であってもよい。しかしながら、他の事象(本明細書で説明される他の事象を含む)が、プロセス800の実行をトリガしてもよい。例えば、定期的な(毎週、隔週など)インポートフィードの実行の一環として、データストアにおいて、新しい物理データセットが識別されてもよい。この識別が、プロセス800の実行をトリガしてもよい。
プロセス800は、データストアに保存された物理データセットに関する情報が取得されるアクト802に進み得る。物理データセットは、プロセス800の上記開始801の文脈で言及された物理データセットであってもよい。いくつかの実施形態では、データストア及び/又は物理データセットに関連付けられた物理識別子、データストア及び/又は物理データセットの保存場所への参照、データストアのタイプ、データストア及び/又は物理データセットのレコードフォーマット若しくはスキーマ、及び/又は他の情報(図4の文脈で説明された情報など)などの情報の一部が、自動的に発見されてもよい。
アクト804では、物理データセット及び対応する論理データセットについて、論理層対物理層のマッピングが生成され得る。いくつかの実施形態では、データセットマルチプレクサ105は、論理データセットの1つ又は複数のフィールドと、同じ情報を表す物理データセットの1つ又は複数のフィールドとの間のマッピングを生成し得る。このマッピングは、データ処理システム内で利用可能な情報、ユーザ入力、及び/又はセマンティックディスカバリによって導出された情報を含む、様々なソースからの情報を用いて生成され得る。例えば、ほとんどのエントリが「@」及び「.」の文字を含む物理データセットのフィールドは、「電子メール」と呼ばれる論理データセットのフィールドに関連している可能性がある。この関係は、セマンティックディスカバリによって導出することができ、マッピングを生成するために使用され得る。フィールド間の同様の関係は、ユーザ入力又は他の方法で指定されてもよい。論理データセットと物理データセットとの間のマッピングは、これらの関係を適用することによって生成され得る。いくつかの実施形態では、データセット間の関係を指定する一意キー及び/又は外部キーに関する情報が、マッピングを生成するために使用され得る。
これらの関係により、物理データセットにアクセスするプログラムは、物理データセットのフィールドと論理データセットのフィールドとの間に必要なマッピングを行うように構成され得る。プログラム用のテンプレートが選択され、次に、データフォーマットのアクセス及び変換の両方が提供されるように、マッピングを実装するように構成され得る。テンプレートを取得するために、アクト806において、アクト802で取得された情報に基づいてデータストアのタイプが決定され得る。アクト808において、データストアのタイプに対してプログラムテンプレートが利用可能であるか否かについて決定が行われ得る。多くのデータストアは、一貫したアクセスパラダイムを有することができ、これらは、テンプレートに取り込むことができる。従って、データ処理システムは、ORACLEデータベース又はSQL Serverデータベースなどの、広く使用されているタイプのデータ処理システム用のテンプレートのライブラリを保存してもよい。
プログラムテンプレートが利用可能であるという決定に応答して、プロセスは、利用可能なプログラムテンプレートが選択されるアクト810に進み、次に、選択されたプログラムテンプレートに基づいてプログラムが生成されるアクト812に進む。プログラムの生成は、ターゲット物理データセットへのアクセスと、論理データセットのデータフォーマット及び物理データセットのデータフォーマット間の変換を行うためにアクト804で生成されたマッピングを適用することとの両方を可能にし得る。
アクト812において、データストアから物理データセットにアクセスするためのプログラムが生成される。プログラムは、アクト812aにおいて1つ又は複数の第1のパラメータに基づいて選択されたプログラムテンプレートにデータ投入すること、及びアクト812bにおいて1つ又は複数の他のパラメータに関する情報を取得することによって生成され得る。
アクト812aにおいて、選択されたプログラムテンプレートは、アクト802において取得された情報(登録プロセス中に自動的に発見された情報など)に基づいて、プログラムテンプレートの第1のパラメータの値を識別することによって、データ投入され得る。
アクト812bにおいて、プログラムテンプレートの1つ又は複数の他のパラメータに関する情報が取得されてもよい。1つ又は複数の他のパラメータは、物理データセットにアクセスする方法を指定し得る。例えば、一部の情報は、データストアのメタデータを維持するメタデータリポジトリから取得されてもよい。別の例として、一部の情報は、ユーザ入力を介して取得されてもよい。例えば、ユーザは、アクセスのタイプ又はセキュリティ関連情報に関する情報を指定し得る。他のパラメータに関するユーザ入力は、登録プロセス中に取得されてもよい。
いくつかの実施形態では、アクト808においてプログラムテンプレートが利用可能でないとの決定に応答して、プロセスは、プログラムを生成するために使用されるプログラム構造が作成されるアクト820に進む。いくつかの実施形態では、プログラム構造は、ユーザに入力を促すことによって作成され得る。例えば、ユーザは、プログラム構造及び/又はパラメータ値を含むファイルを提供してもよい。次に、アクト822において、データストアから物理データセットにアクセスするためのプログラムが、ユーザによって入力されたプログラム構造に基づいて生成されてもよい。
アクト802、804、806、808、810、812、820、及び822は、本開示の範囲を逸脱することなく、データストア内の異なる物理データセットにアクセスするためのプログラムを生成するため、又は異なるデータストア内の物理データセットにアクセスするためのプログラムを生成するために行われ得ることが理解されよう。例えば、データストア内の第1の物理データセットにアクセスするための第1のプログラムが生成されてもよく、データストア内の第2の物理データセットにアクセスするための第2のプログラムが生成されてもよい。別の例として、第1のプログラムは、第1のデータストア内の第1の物理データセットにアクセスするために生成されてもよく、第2のプログラムは、第1のデータストアとは異なる第2のデータストア内の第2の物理データセットにアクセスするために生成されてもよい。
プログラムが生成されると、論理データセットの観点からプログラムされたアプリケーション内からプログラムの実行を呼び出すための情報が、データセットのカタログ107のオブジェクトに保存される。保存された情報は、データストア又はデータストアに保存された物理データセットの物理識別子、論理データセットの論理識別子、プログラムの実行時に使用されるパラメータの値、及び/又は他の情報を含み得る。いくつかの実施形態では、オブジェクトは、プログラムであってもよく、又はプログラムを含んでいてもよい。
このようにして、アクト812又は822で生成されたプログラムは、物理データセットに対応する論理データセットへのアクセスを指定するアプリケーションから使用可能である。従って、任意選択的に登録後いつでも行われてもよい(又は全く行われなくてもよい)アクト814では、アクト812又は822で生成されたプログラムが、1つ又は複数のアプリケーションにリンクされる。このリンクにより、論理データセットの観点からプログラムされたアプリケーションが、生成されたプログラムを用いて物理データセットにアクセスすることが可能になる。論理データセットにアクセスする操作が実行されると、リンクされたプログラムが実行され、それによって論理データセットに対応する物理データセットへのアクセスがもたらされる。
生成されたプログラムが論理データセットにアクセスするアプリケーションにリンクされているか否かにかかわらず、アクト816において、論理データセットに対応するデータの保存に対する変更を示す事象が検出されたか否かに関する決定が行われる。例えば、その変更は、第1のデータストアから第2のデータストアへの移行、論理データセットのフォーマットの変更、又は物理データセットのフォーマットの変更を示し得る。このような事象の検出に応答して、プロセスは、アクト802にループバックし、そこでプロセスが繰り返され得る。プロセスを繰り返すことにより、論理データセットに対応する物理データセットにアクセスするための新しいプログラムが生成されること、又は論理データセットに対応する物理データセットにアクセスするための既存のプログラムが更新されることが生じ得る。しかしながら、そのプログラムへのリンクは、論理データセットに対応するデータにアクセスするためにそのリンクを用いて構成されたアプリケーションが正しいデータに対して動作を継続するように、同じであってもよい。
いくつかの実施形態では、アクト816において変更事象が検出されなかったという決定に応答して、プロセス800は、アクセス情報が生成された論理データセットに対応する物理データセットにアクセスするためのプログラムが意図されたとおりに動作を継続するように、変更事象の監視を継続する。
さらなる実装形態の詳細
図9は、本明細書に記載の技術が実装され得る適切なコンピューティングシステム環境900の一例を示す。コンピューティングシステム環境900は、適切なコンピューティング環境の一例に過ぎず、本明細書に記載される技術の使用範囲又は機能性に関する制限を示唆することを意図するものではない。コンピューティング環境900は、例示的な動作環境900に例示されるコンポーネントの何れか1つ又は組み合わせに関連する依存関係又は要件を有すると解釈されるべきではない。
本明細書に記載する技術は、多数の他の汎用又は専用コンピューティングシステムの環境又は構成と共に使用可能である。本明細書に記載する技術と共に使用するのに適し得る周知のコンピューティングシステム、環境、及び/又は構成の例には、限定されることはないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル大衆消費電子製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステム又はデバイスの何れかを包含する分散コンピューティング環境などが包含される。
コンピューティング環境は、プログラムモジュールなどのコンピュータ実行可能命令を実行することができる。一般に、プログラムモジュールには、特定のタスクを行う、又は特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが包含される。本明細書に記載する技術は、通信ネットワークを通してリンクされるリモート処理デバイスによってタスクが行われる分散コンピューティング環境において実行されてもよい。分散コンピューティング環境では、プログラムモジュールは、メモリストレージデバイスを包含するローカル及びリモートコンピュータストレージ媒体の両方に位置していてもよい。
図9を参照して、本明細書に記載する技術を実施する例示的システムは、コンピュータ900の形態の汎用コンピューティングデバイスを包含する。コンピュータ910のコンポーネントは、限定されないが、処理装置920、システムメモリ930、及びシステムメモリを包含する様々なシステムコンポーネントを処理装置920に結合するシステムバス921を包含してもよい。システムバス921は、様々なバスアーキテクチャの何れかを使用した、メモリバス又はメモリコントローラ、周辺バス、及びローカルバスを包含する幾つかのタイプのバス構造の何れかであってもよい。例として、及び限定ではなく、このようなアーキテクチャには、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ電子装置規格化協会(Video Electronics Standards Association)(VESA)ローカルバス、及びメザニンバスとしても知られるペリフェラルコンポーネントインターコネクト(PCI)バスが包含される。
コンピュータ910は、一般的に、様々なコンピュータ可読媒体を包含する。コンピュータ可読媒体は、コンピュータ910によってアクセスすることができる任意の入手可能な媒体でよく、及び揮発性及び不揮発性両方の媒体、リムーバブル及び非リムーバブル媒体を包含する。例として、及び限定ではなく、コンピュータ可読媒体は、コンピュータストレージ媒体及び通信媒体を含んでもよい。コンピュータストレージ媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータなどの情報のストレージのための任意の方法又は技術で実施される、揮発性及び不揮発性、リムーバブル及び非リムーバブル媒体を包含する。コンピュータストレージ媒体には、限定されないが、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)又は他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又は他の磁気ストレージデバイス、又は所望の情報を保存するために使用することができ、且つコンピュータ910によってアクセスすることができるその他の媒体が包含される。通信媒体は、一般的に、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータを搬送波又は他のトランスポート機構などの変調データ信号で具現化し、及びあらゆる情報配信媒体を包含する。「変調データ信号」という用語は、それの特性集合の1つ又は複数を有する、又は信号の情報をエンコードするように変更された信号を意味する。例として、及び限定ではなく、通信媒体には、有線ネットワーク又は直接有線接続などの有線媒体、及び音響、RF、赤外線、及び他の無線媒体などの無線媒体が包含される。上記の何れかの組み合わせも、コンピュータ可読媒体の範囲内に包含されるものとする。
システムメモリ930は、読み出し専用メモリ(ROM)931及びランダムアクセスメモリ(RAM)932などの揮発性及び/又は不揮発性メモリの形態のコンピュータストレージ媒体を包含する。起動時などに、コンピュータ910内の素子間で情報を転送することを助ける基本ルーチンを含有した、基本入出力システム933(BIOS)は、一般的に、ROM931内に保存される。RAM932は、一般的に、即座に利用できる、及び/又は処理装置920によって現在操作されているデータ及び/又はプログラムモジュールを含有する。例として、及び限定ではなく、図9は、オペレーティングシステム934、アプリケーションプログラム935、他のプログラムモジュール936、及びプログラムデータ937を図示する。
コンピュータ910は、他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピュータストレージ媒体も包含することができる。単なる例として、図9は、非リムーバブル、不揮発性磁気媒体に対する読み取り又は書き込みを行うハードディスクドライブ941、フラッシュメモリなどのリムーバブル、不揮発性メモリ952に対する読み取り又は書き込みを行うフラッシュドライブ951、及びCD-ROM又は他の光学媒体などのリムーバブル、不揮発性光ディスク956に対する読み取り又は書き込みを行う光ディスクドライブ955を図示する。例示的動作環境において使用することができる他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピュータストレージ媒体には、限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体RAM、固体ROMなどが包含される。ハードディスクドライブ941は、一般的に、インタフェース940などの非リムーバブルメモリインタフェースを通してシステムバス921に接続され、及び磁気ディスクドライブ951及び光ディスクドライブ955は、一般的に、インタフェース950などのリムーバブルメモリインタフェースによってシステムバス921に接続される。
上述した、及び図9に図示したドライブ及びそれらに関連付けられたコンピュータストレージ媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、及びコンピュータ910の他のデータのストレージを提供する。図9においては、例えば、ハードディスクドライブ941は、オペレーティングシステム944、アプリケーションプログラム945、他のプログラムモジュール946、及びプログラムデータ947を保存するものとして図示される。これらのコンポーネントは、オペレーティングシステム934、アプリケーションプログラム935、他のプログラムモジュール936、及びプログラムデータ937と同じであってもよいし、或いは異なっていてもよいことに留意されたい。オペレーティングシステム944、アプリケーションプログラム945、他のプログラムモジュール946、及びプログラムデータ947は、少なくとも、それらが異なるコピーであることを図示するために、ここでは、異なる番号が付与されている。アクターは、キーボード962及び一般にマウス、トラックボール、又はタッチパッドと呼ばれるポインティングデバイス961などの入力デバイスによって、コンピュータ910にコマンド及び情報を入力することができる。他の入力デバイス(不図示)には、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどが包含され得る。これら及び他の入力デバイスは、システムバスに結合されたユーザ入力インタフェース960によって、処理装置920に接続されることが多いが、パラレルポート、ゲームポート、又はユニバーサルシリアルバス(USB)などの他のインタフェース及びバス構造によって接続されてもよい。モニタ991又は他のタイプのディスプレイデバイスも、ビデオインタフェース990などのインタフェースを介して、システムバス921に接続される。モニタに加えて、コンピュータは、出力周辺インタフェース995を通して接続することができる、スピーカ997及びプリンタ996などの他の周辺出力デバイスも包含することができる。
コンピュータ910は、リモートコンピュータ980などの1つ又は複数のリモートコンピュータへの論理接続を用いたネットワーク化環境で動作することができる。リモートコンピュータ980は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、又は他の共通ネットワークノードでもよく、及び一般的に、図9ではメモリストレージデバイス981のみが図示されているが、コンピュータ910に関連して上記した素子の多く又は全てを包含する。図9に描かれる論理接続は、ローカルエリアネットワーク(LAN)971及び広域ネットワーク(WAN)973を包含するが、他のネットワークも包含してもよい。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、及びインターネットにおいて、ありふれたものである。
LANネットワーキング環境で使用される場合、コンピュータ910は、ネットワークインタフェース又はアダプタ970を通してLAN971に接続される。WANネットワーキング環境で使用される場合、コンピュータ910は、一般的に、モデム972、又はインターネットなどのWAN973上で通信を確立するための他の手段を包含する。内部又は外部のものでもよいモデム972は、アクター入力インタフェース960又は他の適宜の機構を介して、システムバス921に接続されてもよい。ネットワーク化環境において、コンピュータ910に関連して描かれたプログラムモジュール、又はそれらの一部は、リモートメモリストレージデバイスに保存されてもよい。例として、及び限定ではなく、図9は、メモリデバイス981に常駐しているとして、リモートアプリケーションプログラム985を図示する。示されるネットワーク接続は、例示的なものであり、及びコンピュータ間で通信リンクを確立する他の手段が使用されてもよいことが理解されるだろう。
本明細書で説明する技法は、特定の実装態様に限定されないため、多数の方法の何れかで実装され得る。実装形態の詳細の例は、本明細書において、単なる例示目的で提供されるものである。さらに、本明細書に記載される技術の態様は、特定の技法又は技法の組み合わせの使用に限定されないので、本明細書に開示される技法は、個々に、又は任意の適切な組み合わせで使用されてもよい。
このように、本明細書に記載された技術のいくつかの態様について説明してきたが、さまざまな変更、修正、及び改良が可能であることを理解されたい。
例えば、論理データへのアクセスを指定するアプリケーションをユーザが書くことを説明する。いくつかの実施形態では、ユーザは、人間のユーザであってもよい。他の実施形態では、ユーザは、人工知能(AI)を備えたプログラムであってもよい。AIは、例えば、データセットを処理することによってデータ処理アルゴリズムを導出し、次にそれが他のデータセットに適用され得る。
別の例として、情報702、704、及び706は、別個のテーブルに維持されるものとして描かれている。しかしながら、情報は、1つのテーブルに維持されてもよく、又は任意のデータ構造において任意の適切な方法で組み合わせられてもよい。
このような変更、修正、及び改良は、本開示の一部であることが意図され、及び本開示の精神及び範囲内であることが意図される。さらに、本明細書に記載の技術の利点が示されるが、本明細書に記載の技術の全ての実施形態が、全ての記載した利点を包含するわけではないことが理解されるものとする。幾つかの実施形態は、本明細書において有利であると記載された何れの特徴も実施しない場合があり、場合によっては、記載された特徴の1つ又は複数が、さらなる実施形態を得るために実施されてもよい。従って、上記の記載及び図面は、単なる例である。
本明細書に記載の技術の上記態様は、多数のやり方の何れで実施されてもよい。例えば、これらの実施形態は、ハードウェア、ソフトウェア、又はそれらの組み合わせを用いて実施されてもよい。ソフトウェアで実施される場合には、ソフトウェアコードは、単一のコンピュータにおいて提供されていようと、複数のコンピュータ間で分散されていようと、任意の適宜のプロセッサ又は一群のプロセッサ上で実行することができる。このようなプロセッサは、集積回路として実施されてもよく、業界において、CPUチップ、GPUチップ、マイクロプロセッサ、マイクロコントローラ、又はコプロセッサなどの名称で知られている市販の集積回路コンポーネントを包含する集積回路コンポーネントにおいて、1つ又は複数のプロセッサを有する。代替的に、プロセッサは、ASICなどのカスタム回路、又はプログラマブル論理デバイスの構成に起因するセミカスタム回路において実施されてもよい。またさらなる代替手段として、プロセッサは、市販、セミカスタム、或いはカスタムであろうと、より大きな回路又は半導体デバイスの一部であってもよい。ある具体例として、幾つかの市販のマイクロプロセッサは、複数のコアの1つ又はサブセットがプロセッサを構成することができるように、複数のコアを有する。しかし、プロセッサは、任意の適宜のフォーマットの回路を使用して実施することができる。
さらに、コンピュータは、ラックマウント式コンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、又はタブレットコンピュータなどの多数の形態の何れかで具現化されてもよいことが理解されるものとする。追加的に、コンピュータは、携帯情報端末(PDA)、スマートフォン、又は任意のその他の適宜のポータブル又は固定電子デバイスを包含する、一般にコンピュータとは見なされないが、適宜の処理能力を備えたデバイスに組み込まれてもよい。
また、コンピュータは、1つ又は複数の入力デバイス及び出力デバイスを有していてもよい。これらのデバイスは、特に、ユーザインタフェースを提示するために使用することができる。ユーザインタフェースを提供するために使用することができる出力デバイスの例には、出力の視覚的表現のためのプリンタ又はディスプレイスクリーン、及び出力の可聴表現のためのスピーカ又は他の音生成デバイスが包含される。ユーザインタフェースに使用することができる入力デバイスの例には、キーボード、並びにマウス、タッチパッド、及びデジタイザタブレットなどのポインティングデバイスが包含される。別の例として、コンピュータは、音声認識により、又は他の可聴フォーマットで入力情報を受信してもよい。
このようなコンピュータは、企業ネットワーク又はインターネットなどのローカルエリアネットワーク又は広域ネットワークとして包含する、任意の適宜の形態の1つ又は複数のネットワークによって相互接続することができる。このようなネットワークは、任意の適宜の技術に基づいてもよく、及び任意の適宜のプロトコルに従って動作してもよく、及び無線ネットワーク、有線ネットワーク、又は光ファイバネットワークを包含してもよい。
また、本明細書に概要が述べられる様々な方法又はプロセスは、様々なオペレーティングシステム又はプラットフォームの何れか1つを用いる1つ又は複数のプロセッサに対して実行可能なソフトウェアとして符号化されてもよい。追加的に、このようなソフトウェアは、多数の適宜のプログラミング言語及び/又はプログラミング又はスクリプト作成ツールの何れかを使用して書かれてもよく、及びフレームワーク又は仮想マシンに対して実行される実行可能マシン語コード又は中間コードとしてコンパイルされてもよい。
この点において、本明細書に記載の技術の態様は、1つ又は複数のコンピュータ又は他のプロセッサに対して実行されると、上述の様々な実施形態を実施する方法を行う1つ又は複数のプログラムでエンコードされたコンピュータ可読ストレージ媒体(又は複数のコンピュータ可読媒体)(例えば、コンピュータメモリ、1つ又は複数のフロッピーディスク、コンパクトディスク(CD)、光ディスク、デジタルビデオディスク(DVD)、磁気テープ、フラッシュメモリ、フィールドプログラマブルゲートアレイ又は他の半導体デバイスにおける回路構成、又は他の有形コンピュータストレージ媒体)として具現化されてもよい。上記の例から明らかなように、コンピュータ可読ストレージ媒体は、非一時的な形態でコンピュータ実行可能命令を提供するのに十分な時間の間、情報を保持することができる。このような1つ又は複数のコンピュータ可読ストレージ媒体は、それ(ら)に保存された1つ又は複数のプログラムを、上述の技術の様々な態様を実施するために、1つ又は複数の異なるコンピュータ又は他のプロセッサにロードすることができるように、可搬であってもよい。本明細書においては、「コンピュータ可読ストレージ媒体」という用語は、製品(すなわち、製造物)又はマシンであると見なすことができる非一時的コンピュータ可読媒体のみを網羅する。代替的又は追加的に、本明細書に記載の技術の態様は、伝搬信号などの、コンピュータ可読ストレージ媒体以外のコンピュータ可読媒体として具現化されてもよい。
「プログラム」又は「ソフトウェア」という用語は、本明細書では、上述の技術の様々な態様を実施するようにコンピュータ又は他のプロセッサをプログラムするために使用することができる、あらゆるタイプのコンピュータコード又はコンピュータ実行可能命令のセット又はプロセッサ実行可能命令のセットを指すために総称的に使用される。追加的に、本実施形態のある態様によれば、実行されると、本明細書に記載の技術の方法を行う1つ又は複数のコンピュータプログラムは、単一のコンピュータ又はプロセッサに常駐する必要はなく、本明細書に記載の技術の様々な態様を実施するために、多数の異なるコンピュータ又はプロセッサ間で、モジュラー方式で分散されてもよいことが理解されるものとする。
コンピュータ実行可能命令は、1つ又は複数のコンピュータ又は他のデバイスによって実行される、プログラムモジュールなどの多くの形態のものでもよい。一般に、プログラムモジュールには、特定のタスクを行う、又は特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが包含される。一般的に、プログラムモジュールの機能性は、様々な実施形態において、要望通りに組み合わせられてもよいし、或いは分散されてもよい。
また、データ構造は、任意の適宜の形態でコンピュータ可読媒体に保存されてもよい。図示を簡単にするために、データ構造は、データ構造内の場所によって関連したフィールドを有して示される場合がある。このような関係は、同様に、フィールドのストレージにフィールド間の関係を伝達するコンピュータ可読媒体内の場所を割り当てることによって、達成することができる。但し、ポインタ、タグ、又はデータ要素間の関係を確立する他の機構の使用によることを包含する、任意の適宜の機構を使用して、データ構造のフィールドにおける情報間の関係を確立してもよい。
本明細書に記載の技術の様々な態様は、単独で、組み合わせて、又は上記に記載した実施形態において具体的に述べられていない様々な配置で使用されてもよく、従って、その適用において、上記の説明に記載された、又は図面に図示されたコンポーネントの詳細及び配置に限定されない。例えば、ある実施形態に記載した態様は、任意の様式で、他の実施形態に記載した態様と組み合わせることができる。
また、本明細書に記載の技術は、図8の参照を含む本明細書において例が提供された方法として具現化されてもよい。何れかの方法の一部として行われるアクトは、任意の適宜のやり方で、順序付けが行われてもよい。従って、アクトが、図示されたものとは異なる順序で(これは、説明のための実施形態では、逐次的なアクトとして示されたとしても、幾つかのアクトを同時に行うことを包含してもよい)行われる実施形態が構築されてもよい。
さらに、幾つかの行為は、「アクター」又は「ユーザ」によって行われると記載される。「アクター」又は「ユーザ」は、一人の個人である必要はなく、及び幾つかの実施形態では、「アクター」又は「ユーザ」に帰する行為は、複数の個人から成るチーム及び/又はコンピュータ支援ツール又は他の機構と組み合わせた個人によって行われてもよいことが理解されるものとする。
クレーム要素を修飾する、クレームにおける「第1の」、「第2の」、「第3の」などの序数用語の使用は、それ自体は、1つのクレーム要素の別のクレーム要素に対する優先、先行、又は順序、又は方法のアクトが行われる時間的順序を暗示せず、ある名称を有する1つのクレーム要素を、同じ名称(序数用語の使用を除き)を有する別の要素と区別するための単なるラベルとして使用することにより、これらのクレーム要素が区別される。
また、本明細書において使用される表現及び用語は、説明目的のものであり、及び限定として見なされるものではない。本明細書における、「包含する(including)」、「含む(comprising)」、又は「有する(having)」、「含有する(containing)」、「関与する(involving)」、及びそれらのバリエーションの使用は、その後にリストされるアイテム及びそれらの均等物、並びに追加のアイテムを網羅することを意味する。
100 ITシステム
102 連合データ環境
102-1,102-2,102-3,102-n データストア
104 データ処理システム
104-1,104-2,104-n データ処理システムのインスタンス
105 データセットマルチプレクサ
106,106-1,106-2,106-3,106-n アプリケーション
107 データセットカタログ
302,304 入力データソース、入力データストア
306,308 フィルタ
310 ソート
312 結合
314 出力データソース、出力データストア
315 ユーザインタフェース
330,340 入力データソースにアクセスするためのプログラム
350 出力データソースにアクセスするためのプログラム
370 論理データセットのリスト
372 ユーザインタフェース要素
375 「loyalty」論理データリスト
500 ITシステム
520 登録モジュール
522 カタログサービスインタフェース
524 動的サブグラフ生成器
526 メタデータ管理モジュール
528 操作メタデータモジュール
530 ユーザインタフェース
610,620 コンポーネント
702,704,706 情報
710 入力データストア
715 動的サブグラフ(DSG)
720 出力データストア
725 DSG
730 入力データソースパラメータ
740 出力データソースパラメータ
900 コンピューティングシステム環境
910 コンピュータ
920 処理装置
921 システムバス
930 システムメモリ
931 読み出し専用メモリ(ROM)
932 ランダムアクセスメモリ(RAM)
933 基本入出力システム(BIOS)
934 オペレーティングシステム
935 アプリケーションプログラム
936 他のプログラムモジュール
937 プログラムデータ
940 非リムーバブル不揮発性メモリインタフェース
941 ハードディスクドライブ
944 オペレーティングシステム
945 アプリケーションプログラム
946 他のプログラムモジュール
947 プログラムデータ
950 リムーバブル不揮発性メモリインタフェース
951 磁気ディスクドライブ
952 リムーバブル不揮発性メモリ
955 光ディスクドライブ
956 リムーバブル不揮発性光ディスク
960 ユーザ入力インタフェース
961 ポインティングデバイス
962 キーボード
970 ネットワークインタフェース又はアダプタ
971 ローカルエリアネットワーク(LAN)
972 モデム
973 広域ネットワーク(WAN)
980 リモートコンピュータ
981 メモリストレージデバイス
985 リモートアプリケーションプログラム
990 ビデオインタフェース
991 モニタ
995 出力周辺インタフェース
996 プリンタ
997 スピーカ

Claims (59)

  1. データストア内の物理データセットへのアクセスを可能にするためにデータセットカタログ内のエントリを生成及び/又は使用することによって、複数のデータセットを有する動的環境において効率的なデータ分析を可能にするための、データ処理システムによって行われる方法であって、前記データ処理システムが、論理データセットにアクセスするようにプログラムされたデータ処理アプリケーションを実行するように構成され、各論理データセットが、物理データセット内の対応するデータのフォーマットから独立したデータ用のスキーマを含み、前記データ処理システムが、前記データストア内の前記物理データセットへのアクセスをアプリケーションに提供するように構成可能なデータセットマルチプレクサを含み、前記方法が、
    前記データセットカタログにおいて複数のエントリを作成することであって、前記複数のエントリの各々が、論理データセット及び物理データセットに関連付けられ、並びに前記物理データセットにアクセスするためのコンピュータ実行可能命令を関連付けられている、作成することと、
    データセットへのアクセスを指定するデータ処理アプリケーション内の操作を行うためにアクセスするための第1の論理データセットを少なくとも部分的に識別する入力を受信することと、
    前記データ処理アプリケーション内での前記操作の実行時に、前記第1の論理データセットに関連付けられた前記データセットカタログ内のエントリに関連付けられた物理データセットにアクセスするための前記コンピュータ実行可能命令を呼び出すことと、
    論理データセットに関連付けられた物理データセットの変更を示す事象に応答して、前記データセットカタログ内のエントリを動的に更新することと、
    を含む、方法。
  2. 前記データセットカタログにおいて複数のエントリを作成することが、
    前記データストアのうちの第1のデータストアに保存された前記物理データセットのうちの第1の物理データセットに関連する情報を受信することであって、前記第1の物理データセットが第1の論理データセットに対応する、受信することと、
    前記第1の物理データセットに関連する前記情報に基づいて、前記第1のデータストアから前記第1の物理データセットにアクセスするための前記コンピュータ実行可能命令を含む第1のプログラムを生成することと、
    前記データセットカタログ内の第1のエントリにおいて、前記データ処理アプリケーションが前記第1のプログラムを用いて前記第1の物理データセットにアクセスすることを可能にするための前記第1のプログラムへのリンクを保存することと、
    を含む、請求項1に記載の方法。
  3. 前記第1のデータストアから前記第1の物理データセットにアクセスするための前記第1のプログラムを生成することが、
    前記受信した情報から前記第1のデータストアのタイプを識別することと、
    前記第1のデータストアの前記タイプ用の第1のプログラムテンプレートを選択することと、
    前記第1のプログラムテンプレートに、前記第1のプログラムテンプレートの1つ又は複数のパラメータの1つ又は複数の値を投入することによって、前記第1のプログラムを生成することと、
    を含む、請求項2に記載の方法。
  4. 第1の論理データセットを少なくとも部分的に識別する入力を受信することが、
    ユーザが少なくとも部分的に前記第1の論理データセットを識別するユーザインタフェースを提供することを含む、請求項1から3の何れか一項に記載の方法。
  5. 前記コンピュータ実行可能命令を呼び出すことが、
    前記データセットカタログにおいて、前記第1の論理データセットに関連付けられた前記エントリへのアクセスを可能にすることと、
    前記エントリ内の情報に基づいて、前記第1の論理データセットに対応する前記物理データセットを保存するデータストアへのアクセスを可能にすることと、
    を含む、請求項1から4の何れか一項に記載の方法。
  6. 前記データセットカタログ内のエントリを動的に更新することが、
    前記第1の論理データセットに対応する物理データセットに関連付けられた変更を示す事象を検出することと、
    前記事象の前記検出に基づいて、前記第1の論理データセットに関連付けられた前記データセットカタログ内の前記エントリを修正することと、
    を含む、請求項1から5の何れか一項に記載の方法。
  7. 前記データセットカタログ内の前記エントリを修正することが、
    前記第1の論理データセットに対応する前記物理データセットにアクセスするための前記コンピュータ実行可能命令を修正することを含む、請求項6に記載の方法。
  8. データストア内の複数の物理データセットへのアクセスを容易にするためにデータセットをデータセットカタログに登録することによって、複数のデータセットを有する動的環境において効率的なデータ分析を可能にするための、データ処理システムによって行われる方法であって、前記データ処理システムが、前記データストア内に保存された前記複数の物理データセットを用いて動作可能であり、前記データ処理システムが、前記複数の物理データセットのうちの物理データセットへのアクセスをアプリケーションに提供するように構成可能なデータセットマルチプレクサを含み、前記物理データセットが、前記データストアのうちのデータストアに保存され、前記物理データセットが、物理データセット内の対応するデータのフォーマットから独立したデータ用のスキーマを含む論理データセットに対応し、前記方法が、
    複数のデータストアのうちの第1のデータストアに保存された前記複数の物理データセットのうちの第1の物理データセットに関連する情報を受信することであって、前記第1の物理データセットが、第1の論理データセットに対応する、受信することと、
    前記第1の物理データセットに関連する前記情報に基づいて、前記第1のデータストアから前記第1の物理データセットにアクセスするためのコンピュータ実行可能命令を含む第1のプログラムを生成することと、
    前記アプリケーションが前記第1のプログラムを用いて前記第1の物理データセットにアクセスすることを可能にするために、オブジェクトのライブラリ内の第1のオブジェクトにおいて、前記第1のプログラムへのリンクを保存することと、
    を含む、方法。
  9. 前記方法が、
    前記第1の物理データセットに関連付けられた変更を示す事象の検出に基づいて、前記第1の物理データセットにアクセスするための前記第1のプログラムを修正するか否かを決定することをさらに含む、請求項8に記載の方法。
  10. 前記方法が、前記第1のプログラムを修正することを決定したことに基づいて、
    修正された第1のプログラムを生成することと、
    前記リンクのターゲットとして、前記第1のプログラムを前記修正された第1のプログラムに置き換えることと、
    をさらに含む、請求項9に記載の方法。
  11. 前記修正された第1のプログラムを生成することが、前記アプリケーション又は前記第1の論理データセットを修正することなく、前記修正された第1のプログラムを生成することを含む、請求項10に記載の方法。
  12. 前記第1の物理データセットに関連する前記情報が、前記第1のデータストアのタイプに関する情報を含む、請求項8から11の何れか一項に記載の方法。
  13. 前記データセットマルチプレクサが、前記複数の物理データセットにアクセスするための情報を保存する前記オブジェクトのライブラリを含み、前記オブジェクトのライブラリ内の前記第1のオブジェクトが、前記第1の物理データセットの識別子を含む、請求項8から12の何れか一項に記載の方法。
  14. 前記データセットマルチプレクサがAPIをさらに含み、前記方法が、前記APIによって前記アプリケーションに前記第1のオブジェクトへのアクセスを提供することをさらに含む、請求項13に記載の方法。
  15. 前記方法が、
    前記ライブラリ内のオブジェクトに対して、前記オブジェクトに情報が保存されているそれぞれの論理データセットのスキーマ及び論理名に基づいて、識別子を割り当てることをさらに含む、請求項13に記載の方法。
  16. 前記方法が、
    前記第1の物理データセットをデータセットカタログに登録するコマンドを受信することと、
    前記受信したコマンドに基づいて、前記第1のオブジェクトを生成し、及び前記第1のオブジェクトを前記ライブラリに保存することと、
    をさらに含む、請求項13に記載の方法。
  17. 前記第1の物理データセットの前記識別子が物理識別子である、請求項13に記載の方法。
  18. 前記第1のオブジェクトが、第2の識別子をさらに含み、前記第2の識別子が、前記第1のオブジェクトに関連付けられた論理データセットの論理識別子である、請求項17に記載の方法。
  19. 前記方法が、
    前記第1の物理データセットが、前記第1のデータストアに保存されている状態から第2のデータストアに保存されている状態に変更されたことを示す事象を検出したことに応答して、前記第1のオブジェクトにおいて、前記論理識別子を修正することなく前記物理識別子を修正することをさらに含む、請求項18に記載の方法。
  20. 前記第1のオブジェクトが、前記第1のプログラムの実行時にアクセスされたパラメータの値を含み、
    前記方法が、
    前記第1のプログラムにおいてアクセスされたパラメータの値の変更を示す事象の検出に基づいて、前記第1のオブジェクトに保存された前記パラメータの値を修正することをさらに含む、請求項13に記載の方法。
  21. 前記第1のプログラムがアクセスロジック及び変換ロジックを含み、前記アプリケーションが実行されると、前記第1のプログラムの前記アクセスロジック及び前記変換ロジックが実行されることにより、前記第1の物理データセットへのアクセスが提供され、並びに前記第1の物理データセット内で使用されるフォーマット及び前記第1の論理データセット内で使用されるフォーマット間の変換が行われる、請求項8から20の何れか一項に記載の方法。
  22. 前記第1のプログラムが、前記第1のプログラムの動作に影響を与える1つ又は複数のパラメータの値が前記第1のプログラムを介した前記第1の物理データセットのアクセスに影響を与えるように、前記1つ又は複数のパラメータを含む、請求項8から21の何れか一項に記載の方法。
  23. 前記アプリケーションが、前記第1のプログラムを呼び出す際に使用する前記1つ又は複数のパラメータの値を供給するように構成される、請求項22に記載の方法。
  24. 前記方法が、
    前記第1のデータストアのタイプを検出することと、
    前記検出されたタイプに基づいて、複数のテンプレートからテンプレートを選択することと、
    によって前記第1のプログラムを生成することをさらに含む、請求項8から23の何れか一項に記載の方法。
  25. 前記第1のプログラムが、前記第1のデータストアへの読み出しアクセス用に構成された第1の部分と、前記第1のデータストアへの書き込みアクセス用の第2の部分とを含む、請求項24に記載の方法。
  26. 前記第1のプログラムが、前記第1の物理データセットにアクセスするためのロジックを含む実行可能なデータフローグラフとして構成される、請求項8から25の何れか一項に記載の方法。
  27. アプリケーションが複数のデータストア内の複数の物理データセットにアクセスすることを可能にするためにデータセットカタログ内のエントリを使用することによって、複数のデータセットを有する動的環境において効率的なデータ分析を可能にするための、データ処理システムによって行われる方法であって、前記データ処理システムが、前記アプリケーションと前記複数のデータストア内に保存された前記複数の物理データセットとを用いて動作可能であり、前記アプリケーションが、物理データセット内の対応するデータのフォーマットから独立したデータ用のスキーマを含む論理データセットにアクセスするようにプログラムされており、前記方法が、
    ユーザが前記アプリケーションにおいてアクセスするための論理データセットを少なくとも部分的に識別するユーザインタフェースを提供することと、
    前記アプリケーションを実行することと、前記識別された論理データセットへのアクセスを伴う操作を実行した際に、
    前記論理データセットに関連付けられた、オブジェクトのライブラリ内のオブジェクトへのアクセスを可能にすることと、
    前記オブジェクト内の情報に基づいて、前記識別された論理データセットに対応する前記物理データセットを保存するデータストアへのアクセスを可能にすることと、
    を含む、方法。
  28. 前記方法が、
    前記識別された論理データセットに対応するデータの前記保存に関連付けられた事象に基づいて、前記オブジェクト内の前記情報を更新することをさらに含む、請求項27に記載の方法。
  29. 前記オブジェクト内の前記情報が、前記物理データセットにアクセスするための実行可能プログラムを含む、請求項27又は28に記載の方法。
  30. 前記物理データセットにアクセスするための前記実行可能プログラムが、前記物理データセット内で使用されるフォーマットと前記論理データセット内で使用されるフォーマットとの間でデータを変換するためのロジックをエンコードする、請求項29に記載の方法。
  31. 前記オブジェクトが、前記物理データセットにアクセスするための実行可能プログラムである、請求項27から30の何れか一項に記載の方法。
  32. 前記オブジェクト内の前記情報が前記データストアのタイプを含む、請求項27から31の何れかに一項に記載の方法。
  33. 前記オブジェクト内の前記情報が、前記物理データセットに関連付けられたレコードフォーマット又はスキーマを含む、請求項27から32の何れか一項に記載の方法。
  34. 前記オブジェクト内の前記情報が、前記物理データセットにアクセスする前記方法を指定する1つ又は複数のパラメータを含み、前記1つ又は複数のパラメータが、前記物理データセット内のデータが圧縮されているか否かを示す少なくとも1つのパラメータを含む、請求項27から33の何れか一項に記載の方法。
  35. 前記オブジェクト内の前記情報が、前記物理データセットにアクセスする前記方法を指定する1つ又は複数のパラメータを含み、前記1つ又は複数のパラメータが、前記アクセスのタイプを示す少なくとも1つのパラメータを含む、請求項27から34の何れか一項に記載の方法。
  36. 前記アクセスの前記タイプが、読み出しアクセス又は書き込みアクセスの表示を含む、請求項35に記載の方法。
  37. 前記アクセスの前記タイプが、高速接続又は低速接続によるアクセスの表示を含む、請求項35に記載の方法。
  38. 前記データ処理システムが、論理データセットに関連するメタデータのリポジトリを含み、
    前記ユーザインタフェースを提供することが、前記リポジトリ内のメタデータに基づく論理データセットのメニューを提示することを含む、請求項27から37の何れか一項に記載の方法。
  39. データストア内の物理データセットへのアクセスを可能にするためにデータセットカタログ内のエントリを生成することによって、複数のデータセットを有する動的環境において効率的なデータ分析を可能にするための、データ処理システムによって行われる方法であって、前記データ処理システムが、論理データセットにアクセスするようにプログラムされたデータ処理アプリケーションを実行するように構成され、各論理データセットが、物理データセット内の対応するデータのフォーマットから独立したデータ用のスキーマを含み、前記データ処理システムが、データストア内の物理データセットへのアクセスをアプリケーションに提供するように構成可能なデータセットマルチプレクサを含み、前記方法が、
    前記データストアの第1のデータストアに保存された第1の物理データセットに関連する情報を受信することであって、前記アプリケーションが、第1の論理データセットのアクセスのためにプログラムされ、前記第1の物理データセットが、前記第1の論理データセットに対応する、受信することと、
    前記受信された情報に基づいて、前記第1のデータストアから前記第1の物理データセットにアクセスするための第1のプログラムを生成することであって、前記第1のプログラムを生成することが、
    前記受信した情報から前記第1のデータストアのタイプを識別することと、
    前記第1のデータストアの前記タイプ用の第1のプログラムテンプレートを選択することと、
    前記第1のプログラムテンプレートに、前記第1のプログラムテンプレートの1つ又は複数のパラメータの1つ又は複数の値を投入することによって、前記第1のプログラムを生成することと、
    を含む、生成することと、
    前記第1の論理データセットのアクセスのためにプログラムされた前記アプリケーション内から前記第1のプログラムの実行を呼び出すための情報をオブジェクトに保存することと、
    を含む、方法。
  40. 前記第1のプログラムテンプレートにデータ投入することが、前記第1の物理データセットに関連する前記情報に基づいて、前記第1のプログラムテンプレートの1つ又は複数の第1のパラメータの1つ又は複数の値を自動的に発見することを含む、請求項39に記載の方法。
  41. 前記1つ又は複数の第1のパラメータが、前記第1の物理データセットに関連付けられたレコードフォーマット又はスキーマに関する情報を含む、請求項40に記載の方法。
  42. 前記第1の論理データセットのアクセスのためにプログラムされたアプリケーション内から前記第1のプログラムの実行を呼び出すための情報を前記オブジェクトに保存することが、前記第1のデータストアの識別子を保存することを含む、請求項39から41の何れか一項に記載の方法。
  43. 前記第1の論理データセットのアクセスのためにプログラムされたアプリケーション内から前記第1のプログラムの実行を呼び出すための情報を前記オブジェクトに保存することが、前記第1の論理データセットの論理識別子を保存することを含む、請求項39から42の何れか一項に記載の方法。
  44. 前記第1のプログラムを生成することが、
    前記第1のプログラムテンプレートの1つ又は複数の第2のパラメータに関する情報を取得することであって、前記1つ又は複数の第2のパラメータが、前記1つ又は複数の第1のパラメータとは異なる、取得することをさらに含む、請求項40に記載の方法。
  45. 前記1つ又は複数の第2のパラメータが、前記第1の物理データセットにアクセスする方法を指定する、請求項44に記載の方法。
  46. 前記第1のプログラムを生成することが、
    前記第1のデータストアの前記タイプに対してプログラムテンプレートが利用可能であるか否かを決定することと、
    前記第1のデータストアの前記タイプに対して前記第1のプログラムテンプレートが利用可能であるとの決定に基づいて、利用可能なテンプレートを前記第1のプログラムテンプレートとして選択することと、
    をさらに含む、請求項39から45の何れか一項に記載の方法。
  47. プログラムテンプレートが前記第1のデータストアの前記タイプに対して利用可能でないとの決定に基づいて、
    ユーザ入力に基づいてプログラム構造を作成することと、
    前記作成されたプログラム構造に基づいて、前記第1のデータストアにアクセスするための前記第1のプログラムを生成することと、
    をさらに含む、請求項46に記載の方法。
  48. 前記データストアの第2のデータストアに保存されている第2の物理データセットに関連する情報を受信することと、
    前記第2の物理データセットに関連する前記情報に基づいて、前記第2のデータストアから前記第2の物理データセットにアクセスするための第2のプログラムを生成することと、
    をさらに含む、請求項39から47の何れか一項に記載の方法。
  49. 前記データ処理システムが、複数の環境で実行されるように構成され、各環境が、前記データ処理システムのインスタンスを含み、
    前記オブジェクトには、前記複数の環境のそれぞれの範囲内で一意な識別子が割り当てられ、前記複数の環境にわたって共通する少なくとも一部を含む、請求項39から48の何れか一項に記載の方法。
  50. データストア内の物理データセットへのアクセスを容易にするためにデータセットカタログ内のエントリを更新することによって、複数のデータセットを有する動的環境において効率的な分析を可能にするための、データ処理システムによって行われる方法であって、前記データ処理システムが、論理データセットとして表されるデータにアクセスするようにプログラムされたデータ処理アプリケーションを実行するように構成され、各論理データセットが、物理データセット内の対応するデータのフォーマットから独立したデータ用のスキーマを含み、前記データ処理システムが、前記データストア内の前記物理データセットへのアクセスをアプリケーションに提供するように構成可能なデータセットマルチプレクサを含み、前記方法が、
    第1の論理データセットに対応する第1のデータストアに保存された第1の物理データセットに関連する情報を受信することと、
    前記受信した情報に基づいて、前記第1のデータストアから前記第1の物理データセットにアクセスするための第1のプログラムを生成することと、
    前記第1の論理データセットに対応する物理データセットに関連付けられた変更を示す事象を検出することと、
    前記事象の前記検出に基づいて、前記第1の論理データセットに対応する物理データセットにアクセスするための前記第1のプログラムを修正することと、
    を含む、方法。
  51. 前記物理データセットが前記第1の物理データセットであり、前記物理データセットに関連付けられた変更を示す前記事象が、前記第1の物理データセットを保存する前記第1のデータストアから第2のデータストアへの変更を示す事象を含み、前記方法が、
    前記第1のデータストアから前記第2のデータストアへの前記変更を示す前記事象を検出したことに応答して、前記第2のデータストアから前記第1の物理データセットにアクセスするように前記第1のプログラムを修正することをさらに含む、請求項50に記載の方法。
  52. 前記物理データセットが前記第1の物理データセットであり、前記物理データセットに関連付けられた変更を示す前記事象が、前記第1の物理データセットにアクセスするための前記第1のプログラムを生成するために使用されるパラメータの値の変更を示す事象を含む、請求項50又は51に記載の方法。
  53. 物理データセットに関連付けられた変更を示す事象を検出することが、前記第1の物理データセットを、前記第1の論理データセットに対応する第2の物理データセットに置き換えることを示す事象を検出することを含み、
    前記物理データセットにアクセスするための前記第1のプログラムを修正することが、前記第1のプログラムを前記第2の物理データセットにアクセスするための第2のプログラムに置き換えることを含む、請求項50から52の何れか一項に記載の方法。
  54. 前記データ処理システムが、第1の論理データセットへのアクセスを指定するアプリケーション内の操作を行うために前記第1のプログラムを呼び出すように構成され、
    前記データ処理システムが、複数の環境で実行されるように構成され、第1の環境が、前記データ処理システムの第1のインスタンスを含み、第2の環境が、前記データ処理システムの第2のインスタンスを含み、
    前記第1のデータストア及び前記第1のプログラムが、前記データ処理システムの前記第1のインスタンスに関連付けられ、
    前記方法が、
    前記データ処理システムの前記第2のインスタンス内で前記第1の論理データセットへのアクセスを指定するアプリケーション内の操作を行うための第2のプログラムを生成することをさらに含む、請求項50から53の何れか一項に記載の方法。
  55. 前記第1の論理データセットへのアクセスを指定する前記アプリケーションを前記第2の環境で実行することと、前記第1の論理データセットに対する前記アプリケーションによる操作の実行に応答して、第2の物理データセットにアクセスするように前記第2のプログラムにアクセスすることと、をさらに含む、請求項54に記載の方法。
  56. アプリケーションが複数のデータストア内の複数の物理データセットにアクセスすることを可能にするためにデータセットカタログ内のエントリを使用することによって、複数のデータセットを有する動的環境において効率的なデータ分析を可能にするための、データ処理システムによって行われる方法であって、前記データ処理システムが、論理データセットにアクセスするようにプログラムされたデータ処理アプリケーションを実行するように構成され、各論理データセットが、物理データセット内の対応するデータのフォーマットから独立したデータ用のスキーマを含み、前記データ処理システムが、前記複数のデータストア内の複数の物理データセットへのアクセスをアプリケーションに提供するように構成可能なデータセットマルチプレクサを含み、前記方法が、
    データセットカタログにアクセスして、論理データセットに関連付けられたオブジェクトを選択することと、
    前記選択されたオブジェクトに基づいて、前記論理データセットに対応する物理データセットを保存するデータソースのアクセスのために構成されたプログラムを呼び出すことと、
    によって、前記論理データセットへのアクセスを指定する操作を前記アプリケーション内で実行することを含む、方法。
  57. 前記方法が、
    前記データセットカタログ内のオブジェクトによって表される論理データセットの物理ストレージの変更を示す事象に応答して、前記データセットカタログ内の前記オブジェクトを動的に更新することをさらに含む、請求項56に記載の方法。
  58. 少なくとも1つのコンピュータハードウェアプロセッサと、
    前記少なくとも1つのコンピュータハードウェアプロセッサによって実行されると、前記少なくとも1つのコンピュータハードウェアプロセッサに請求項1から57の何れか一項に記載の方法を行わせるプロセッサ実行可能命令を保存した少なくとも1つの非一時的コンピュータ可読媒体と、
    を含む、データ処理システム。
  59. 少なくとも1つのコンピュータハードウェアプロセッサによって実行されると、前記少なくとも1つのコンピュータハードウェアプロセッサに請求項1から57の何れか一項に記載の方法を行わせるプロセッサ実行可能命令を含む、少なくとも1つの非一時的コンピュータ可読媒体。
JP2023546120A 2021-01-31 2022-01-31 データ処理システム用のデータセットマルチプレクサ Pending JP2024505236A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163143898P 2021-01-31 2021-01-31
US63/143,898 2021-01-31
US202163163709P 2021-03-19 2021-03-19
US63/163,709 2021-03-19
PCT/US2022/014547 WO2022165326A1 (en) 2021-01-31 2022-01-31 Dataset multiplexer for data processing system

Publications (1)

Publication Number Publication Date
JP2024505236A true JP2024505236A (ja) 2024-02-05

Family

ID=80520749

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023546120A Pending JP2024505236A (ja) 2021-01-31 2022-01-31 データ処理システム用のデータセットマルチプレクサ

Country Status (9)

Country Link
US (1) US20220245125A1 (ja)
EP (1) EP4285237A1 (ja)
JP (1) JP2024505236A (ja)
AU (1) AU2022213420A1 (ja)
BR (1) BR112023015241A2 (ja)
CA (1) CA3210343A1 (ja)
DE (1) DE112022000878T5 (ja)
MX (1) MX2023008980A (ja)
WO (1) WO2022165326A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230246818A1 (en) * 2022-01-31 2023-08-03 Salesforce.Com, Inc. Secure data migration
WO2023215028A1 (en) 2022-05-05 2023-11-09 Ab Initio Technology Llc Dataflow graph datasets

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511177A (en) * 1991-11-21 1996-04-23 Hitachi, Ltd. File data multiplexing method and data processing system
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US7716630B2 (en) 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
US7827201B1 (en) * 2007-04-27 2010-11-02 Network Appliance, Inc. Merging containers in a multi-container system
US7739312B2 (en) * 2007-04-27 2010-06-15 Network Appliance, Inc. Data containerization for reducing unused space in a file system
AU2009322602B2 (en) * 2008-12-02 2015-06-25 Ab Initio Technology Llc Mapping instances of a dataset within a data management system
US10565229B2 (en) * 2018-05-24 2020-02-18 People.ai, Inc. Systems and methods for matching electronic activities directly to record objects of systems of record
US8775447B2 (en) * 2010-06-22 2014-07-08 Ab Initio Technology Llc Processing related datasets
WO2012061109A1 (en) 2010-10-25 2012-05-10 Ab Initio Technology Llc Managing data set objects in a dataflow graph that represents a computer program
US8438247B1 (en) * 2010-12-21 2013-05-07 Amazon Technologies, Inc. Techniques for capturing data sets
US8676757B2 (en) * 2011-10-18 2014-03-18 Microsoft Corporation Application of a differential dataset to a data store using sequential change sets
US9495401B2 (en) * 2013-02-08 2016-11-15 Douglas T. Migliori Database-driven entity framework for internet of things
US9336013B2 (en) * 2013-02-08 2016-05-10 Automatic Data Capture Technologies Group, Inc. Systems and methods for metadata-driven command processor and structured program transfer protocol
GB2515736A (en) * 2013-07-01 2015-01-07 Ibm Controlling access to one or more datasets of an operating system in use
CA2932763C (en) 2013-12-05 2022-07-12 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
US11169993B2 (en) * 2014-06-06 2021-11-09 The Mathworks, Inc. Datastore mechanism for managing out-of-memory data
JP6457622B2 (ja) * 2014-07-18 2019-01-23 アビニシオ テクノロジー エルエルシー パラメータの集合の管理
US9720958B2 (en) * 2014-10-24 2017-08-01 International Business Machines Corporation User driven business data aggregation and cross mapping framework
US10372706B2 (en) * 2015-07-29 2019-08-06 Oracle International Corporation Tracking and maintaining expression statistics across database queries
US9442694B1 (en) * 2015-11-18 2016-09-13 International Business Machines Corporation Method for storing a dataset
US10346429B2 (en) * 2016-06-19 2019-07-09 Data.World, Inc. Management of collaborative datasets via distributed computer networks
US10592508B2 (en) * 2016-09-13 2020-03-17 The Bank Of New York Mellon Organizing datasets for adaptive responses to queries
US20180101312A1 (en) * 2016-10-06 2018-04-12 Netflix, Inc. Techniques for generating and operating on in-memory datasets
US10838973B2 (en) * 2017-01-11 2020-11-17 The Bank Of New York Mellon Processing datasets of varying schemas from tenants
US10824604B1 (en) * 2017-05-17 2020-11-03 Palantir Technologies Inc. Systems and methods for data entry
US11106820B2 (en) * 2018-03-19 2021-08-31 International Business Machines Corporation Data anonymization
US11902306B1 (en) * 2020-04-30 2024-02-13 Splunk Inc. Advanced persistent threat detection by an information technology and security operations application

Also Published As

Publication number Publication date
BR112023015241A2 (pt) 2023-11-21
CA3210343A1 (en) 2022-08-04
AU2022213420A1 (en) 2023-07-27
EP4285237A1 (en) 2023-12-06
AU2022213420A9 (en) 2024-05-16
US20220245125A1 (en) 2022-08-04
DE112022000878T5 (de) 2024-02-15
MX2023008980A (es) 2023-10-25
WO2022165326A1 (en) 2022-08-04

Similar Documents

Publication Publication Date Title
US11782892B2 (en) Method and system for migrating content between enterprise content management systems
US9778967B2 (en) Sophisticated run-time system for graph processing
US8712965B2 (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
AU2014233672B2 (en) System for metadata management
US9400700B2 (en) Optimized system for analytics (graphs and sparse matrices) operations
US9251222B2 (en) Abstracted dynamic report definition generation for use within information technology infrastructure
US20230018975A1 (en) Monolith database to distributed database transformation
US20220245125A1 (en) Dataset multiplexer for data processing system
CN111966692A (zh) 针对数据仓库的数据处理方法、介质、装置和计算设备
CN112579705B (zh) 元数据采集方法、装置、计算机设备和存储介质
US20240256576A1 (en) Data processing system with manipulation of logical dataset groups
CN115357590A (zh) 针对数据变更的记录方法、装置、电子设备及存储介质
US11615061B1 (en) Evaluating workload for database migration recommendations
US20240054150A1 (en) Systems and methods for automated data governance
US11740989B2 (en) Generating performance metrics from events derived from user interface logs
US20160292076A1 (en) Apparatus, program, and method for updating cache memory
CN117015769A (zh) 用于数据处理系统的数据集多路复用器
US8019781B2 (en) Host context framework
US11468101B2 (en) Context-rich key framework implementations for global concept management
US12079207B2 (en) Systems and methods for intelligent database report generation
CN117234899A (zh) 回归测试方法、装置、设备及计算机介质