(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024167074
(43)【公開日】2024-11-29
(54)【発明の名称】フレキシブル抽出、変換、読み込み(ETL)プロセス
(51)【国際特許分類】
G06F 16/25 20190101AFI20241122BHJP
【FI】
G06F16/25
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024080610
(22)【出願日】2024-05-17
(31)【優先権主張番号】63/503,399
(32)【優先日】2023-05-19
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
2.ORACLE
(71)【出願人】
【識別番号】524187542
【氏名又は名称】サーモ エレクトロン ノース アメリカ エルエルシー
(71)【出願人】
【識別番号】503363806
【氏名又は名称】サーモ フィニガン エルエルシー
【氏名又は名称原語表記】Thermo Finnigan LLC
(71)【出願人】
【識別番号】524187553
【氏名又は名称】ハイ ケム エス.アール.オー.
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100229448
【弁理士】
【氏名又は名称】中槇 利明
(72)【発明者】
【氏名】マーク レスラー
(72)【発明者】
【氏名】サチン デシュパンデ
(72)【発明者】
【氏名】マシュー カンプ
(72)【発明者】
【氏名】ドラゴスラフ クメニク
(72)【発明者】
【氏名】マーティン コノプカ
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175CA09
5B175CA11
(57)【要約】 (修正有)
【課題】処理デバイスによって実行される抽出、変換、読み込み(ETL)処理のためのシステム、方法、コンピューティングデバイス及びコンピュータ可読媒体を提供する。
【解決手段】方法は、データカタログから、アプリケーションデータとターゲットスキーマとの間のフィールドマッピングを受信することと、ETL処理キューから、メタデータを含み、かつ、アプリケーションデータに関連するレコード又はデータファイルが処理の準備ができていることを示す信号を受信することと、メタデータを処理して、レコード又はデータファイルの場所を識別し、識別された場所からレコード又はデータファイルを取り出すことによって、ソースデータを決定することと、ターゲットスキーマに従って定義されたビッグデータテーブルにソースデータを提供することと、を含む。
【選択図】
図3
【特許請求の範囲】
【請求項1】
処理デバイスによって実行される抽出、変換、読み込み(ETL)処理のための方法であって
データカタログから、アプリケーションデータとターゲットスキーマとの間のフィールドマッピングを受信することと、
ETL処理キューから、メタデータを含み、かつ、前記アプリケーションデータに関連するレコード又はデータファイルが処理の準備ができていることを示す信号を受信することと、
前記メタデータを処理して前記レコード又は前記データファイルの場所を識別し、前記識別された場所から前記レコード又は前記データファイルを取り出すことによって、ソースデータを決定することと、
前記ターゲットスキーマに従って定義されたテーブルにソースデータを提供することとを含む、方法。
【請求項2】
前記フィールドマッピングが、アプリケーション又はサーバによって前記データカタログに格納される、請求項1に記載の方法。
【請求項3】
前記アプリケーションは、前記アプリケーションデータを使用するように構成される、請求項2に記載の方法。
【請求項4】
前記アプリケーションが、利用可能であれば、新しいレコード又は新しいソースデータファイルを前記データカタログに登録するように構成される、請求項2に記載の方法。
【請求項5】
前記レコード又は前記データファイルが、前記アプリケーションによる処理の準備ができているものとして、前記データカタログに登録されている、請求項2に記載の方法。
【請求項6】
前記レコード又は前記データファイルは、前記データカタログによって前記ターゲットスキーマと整合されている、請求項5に記載の方法。
【請求項7】
前記信号は、前記データカタログによって、前記ETL処理キューに挿入される、請求項5に記載の方法。
【請求項8】
前記フィールドマッピングは、前記アプリケーションデータの種類に従って定義される、請求項7に記載の方法。
【請求項9】
前記アプリケーションデータの前記種類に一致する前記レコード又は前記データファイルの種類に基づいて、前記信号は、前記データカタログによって挿入される、請求項8に記載の方法。
【請求項10】
前記ターゲットスキーマは、前記データカタログ内のターゲットテーブルに展開される、請求項1に記載の方法。
【請求項11】
前記レコード又は前記データファイルは、新規のものであるか、又は更新されている、請求項1に記載の方法。
【請求項12】
前記信号は、前記レコード又は前記データファイルの場所を含む、請求項1に記載の方法。
【請求項13】
前記レコード又は前記データファイルが以前に提供されたスキーマに関連付けられていない場合、前記データカタログが、前記アプリケーションデータと前記ターゲットスキーマとの間の前記フィールドマッピングを提供する、請求項1に記載の方法。
【請求項14】
前記ソースデータは、前記データカタログによって提供されるメタデータを使用して、前記テーブルに提供される、請求項1に記載の方法。
【請求項15】
前記ソースデータは第1のソースデータを含み、前記ターゲットスキーマは第1のターゲットスキーマを含み、前記方法は、
前記データカタログから、第2のアプリケーションデータと第2のターゲットスキーマとの間の第2のフィールドマッピングを受信することと、
前記ETL処理キューから、第2のメタデータを含み、かつ、前記第2のアプリケーションデータに関連する第2のレコード又は第2のデータファイルが処理の準備ができていることを示す第2の信号を受信することと、
前記第2のメタデータを処理して、識別された第2の場所から、前記第2のレコード又は前記第2のデータファイルの第2の場所を識別することによって、第2のソースデータを決定することであって、前記第1のソースデータと前記第2のソースデータは異なるフォーマットを含む、決定することと、
前記第2のターゲットスキーマに従って定義された前記テーブルに第2のソースデータを提供することであって、前記第1のターゲットスキーマと前記第2のターゲットスキーマは同じスキーマである、提供することとを更に含む、請求項1に記載の方法。
【請求項16】
前記ソースデータは第1のソースデータを含み、前記ターゲットスキーマは第1のターゲットスキーマを含み、前記方法は、
前記データカタログから、第2のアプリケーションデータと第2のターゲットスキーマとの間の第2のフィールドマッピングを受信することと、
前記ETL処理キューから、第2のメタデータを含み、かつ、前記第2のアプリケーションデータに関連する第2のレコード又は第2のデータファイルが処理の準備ができていることを示す第2の信号を受信することと、
前記第2のメタデータを処理して、識別された第2の場所から、前記第2のレコード又は前記第2のデータファイルの第2の場所を識別することによって、第2のソースデータを決定することであって、前記第1のソースデータと前記第2のソースデータは異なるフォーマットを含む、決定することと、
前記第2のターゲットスキーマに従って定義された前記第2のテーブルに第2のソースデータを提供することであって、前記第1のターゲットスキーマと前記第2のターゲットスキーマは異なるスキーマである、提供することとを更に含む、請求項1に記載の方法。
【請求項17】
システムであって、
命令を格納する非一時的コンピュータ可読記憶媒体と、
少なくとも1つの電子プロセッサであって、前記命令を実行して、
データカタログから、アプリケーションデータとターゲットスキーマとの間のフィールドマッピングを受信することと、
ETL処理キューから、メタデータを含み、かつ、前記アプリケーションデータに関連するレコード又はデータファイルが処理の準備ができていることを示す信号を受信することと、
前記メタデータを処理して前記レコード、又は前記データファイルの場所を識別し、前記識別された場所から前記レコード又は前記データファイルを取り出すことによって、ソースデータを決定することと、
前記ターゲットスキーマに従って定義されたテーブルにソースデータを提供することとを行うよう構成された、少なくとも1つの電子プロセッサとを含む、システム。
【請求項18】
前記フィールドマッピングが、アプリケーション又はサーバによって前記データカタログに格納される、請求項17に記載のシステム。
【請求項19】
実行可能命令を含む非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、電子プロセッサに、
データカタログから、アプリケーションデータとターゲットスキーマとの間のフィールドマッピングを受信することと、
ETL処理キューから、メタデータを含み、かつ、前記アプリケーションデータに関連するレコード又はデータファイルが処理の準備ができていることを示す信号を受信することと、
前記メタデータを処理して前記レコード又は前記データファイルの場所を識別し、前記識別された場所から前記レコード又は前記データファイルを取り出すことによって、ソースデータを決定することと、
前記ターゲットスキーマに従って定義されたテーブルにソースデータを提供することとを行わせる、非一時的コンピュータ可読記憶媒体。
【請求項20】
前記フィールドマッピングがアプリケーション又はサーバによって前記データカタログに格納される、請求項19に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、2023年5月19日に出願された米国仮特許出願第63/503,399号の通常出願であり、この利益を主張し、その全内容は参照により本明細書で援用される。
【0002】
(発明の分野)
データ分析における近年の考え方によれば、ビッグデータストアのデータを変換する必要性は、抽出、変換、読み込み(extract, transform, and load、ETL)の慣行に従って、大幅に削減される。一般に、ETLは、複数のデータソースからのデータを、データウェアハウス、又は他のターゲットシステムにロードされる単一の一貫したデータストアに組み合わせる、データ統合プロセスである。ETLプロセスは、データ分析、及び機械学習ワークストリームの基礎を提供する。一連の論理ルールを通して、ETLプロセスは、特定の情報のニーズに対処するだけでなく、バックエンドプロセス、又はエンドユーザ体験を向上させ得る、より高度な分析にも対応するように、データをクレンジングし、整理する。
【発明の概要】
【0003】
本明細書に開示されるのは、システム、並びに関連する方法、コンピューティングデバイス、及びコンピュータ可読媒体である。例えば、いくつかの実施形態では、処理デバイスによって実行されるETL処理のための方法は、データカタログから、アプリケーションデータとターゲットスキーマとの間のフィールドマッピングを受信することと、ETL処理キューから、メタデータを含み、かつ、アプリケーションデータに関連するレコード、又はデータファイルが処理の準備ができていることを示す信号を受信することと、メタデータを処理して、レコード又はデータファイルの場所を識別し、識別された場所からレコード又はデータファイルを取り出すことによって、ソースデータを決定することと、ターゲットスキーマに従って定義されたビッグデータテーブルにソースデータを提供することと、を含む。
【図面の簡単な説明】
【0004】
実施形態は、添付図面と併せて以下の詳細な説明により容易に理解されるであろう。本説明を容易にするために、同様の参照数字は、同様の構造要素を示す。実施形態は、添付図面の図において、限定するものとしてではなく、例として示されている。
【
図1】様々な実施形態に係る、例示的なコンテナ図を示す。
【
図2】様々な実施形態に係る、フレキシブルETL処理用の例示的な支援モジュールのブロック図である。
【
図3】様々な実施形態に係る、フレキシブルETL処理を提供するための例示的な方法のフロー図である。
【
図4】様々な実施形態に係る、本明細書で開示される支援方法の一部、又は全ての実行で使用され得る、グラフィカルユーザインターフェイスの一例である。
【
図5】様々な実施形態に係る、本明細書で開示される支援方法の一部、又は全てを実行し得る、例示的なコンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【0005】
データ分析では、通常、特定のユースケースを支援するために、膨大なカスタムモデリングを必要とする。オンライン分析処理(online analytical processing、OLAP)構造が広範囲のユースケースを支援するために作成されるデータウェアハウジングでさえも、これらの構造をモデリングし、ETLパイプラインにデータを投入するには、その範囲の適用性を提供するために、データソースに関する特定の知識と、ファクトテーブル及びディメンジョンテーブルのカスタムモデリングが必要である。更に、プラットフォームチームがこのカスタムモデリング、及び専用パイプライン開発を担う場合、チームはカスタム開発の際限のないサイクルに陥り、プラットフォームの展開を複雑にして、プラットフォームの採用を妥協する恐れがある。
【0006】
その上、データをビッグデータストアに移動させることは、ETLジョブのカスタムコーディング、及びスケジューリングを必要とすることが多い。同様に、データカタログ内のデータ系統を追跡するには、データマッピングを取り出すためにデータカタログをデータコネクタ、及び/又はETLツールにリンクする必要がある。そうでなければ、データ系統の手動キュレーションが必要になり得る。通常、こうした技術は、従来のエンタープライズビッグデータストアを管理する際に、採用される。しかしながら、こうしたエンタープライズデータ技術を適用することによって、データプラットフォーム上でビッグデータを管理することは、特に効率的でも、管理可能でもない。いくつかの実施形態では、本明細書に記載される技術は、従来のエンタープライズデータ技術における動作の順序を逆転させることによって、こうした問題を解決する。例えば、いくつかの実施形態において、データ系統は、最初にデータカタログ内に構成され、それによって、ETLプロセスが実装するデータ移動を定義する。これにより、様々なデータソース、データ種類、及び/又は、ターゲットシステムにわたって幅広く適用可能、かつ/又は拡張され得るETLジョブをフレキシブルに定義できる。したがって、本明細書に記載されるフレキシブルETLプロセスは、必要とされるカスタムコーディングの量を低減させることができる。更に、データ系統がデータカタログにおいて最初に定義されるので、こうしたデータ関係のキュレーションは、正確で、最新のままであり得る。
【0007】
したがって、記載のシステム、及び方法は、データカタログのデータ系統機能を採用する、フレキシブルETLプロセスを提供する。一般に、採用されるデータ系統は、ETLプロセスによって必要とされるデータマッピングを定義し、データがファイル、又は運用データベースなどのデータソースから、例えば、ビッグデータテーブルにどのように移動するかを追跡する。いくつかの実施形態では、フレキシブルETLプロセスは、データカタログからのデータソース、及びターゲットに関するメタデータを使用して、カスタムコーディング無しに、入力データをソースからターゲットに移動させる。フレキシブルETLプロセスを実装すると、分析及び報告目的用に新しいデータソースを取り込むために必要とされる手間の度合が減少する。更に、フレキシブルETLプロセスを実装すると、新しいデータソースとの統合が加速し、維持するコードの量が低減され、かつ/又は、新しいデータカタログと自動的に整合される。更に、汎用ETLを実装すると、レイテンシ及びメモリ要件が低減され、運用データベースの最適化が促進される。
【0008】
いくつかの実施形態において、記載のフレキシブルETLプロセスを使用して、バッチ処理で各ファイルを個別に読み取る必要なく、多数の別個のデータファイルにわたってデータをクエリする機能を提供する必要性に対処し、様々なソースからのデータを効率的に結合し、必ずしも特定のアプリケーションに依存しないユースケースに対処するために、ダッシュボードでデータを視覚化する機能を提供する。
【0009】
本明細書に記載されるフレキシブルETLプロセスを実装することにより、ETL、データレイク、レイクショアマート、及びビジネスインテリジェンスなど、全てが企業コンピューティングの典型的な構成要素とされる、多くの従来の情報技術分野が改善される。こうした技術を展開することは、企業環境において一般的であり得るように、複数の展開モデルを利用し、アラートに即時に対応する専用サポートスタッフが不足しているプラットフォームでは困難となる。更に、必要に応じて、追加のコモディティハードウェアをクラスタに追加することが比較的簡単であり得る企業展開とは異なり、性能を向上させるために、こうした展開をスケーリングすることも困難であり得る。その結果、本明細書に記載されるフレキシブルETLプロセス、及び関連アーキテクチャは、最小限のリソースを使用して性能を最大化する一方、データの一貫性、及び/又は可用性を維持するための定期的な支援の必要性を大幅に低減し、かつ/又は無くす。
【0010】
ソースファイルからクエリ可能テーブルへのデータ移動を追跡する必要性は、データカタログ形式でプラットフォーム内のデータを記述する必要性と一致する。こうした問題、及び他の技術的問題に対処するために、フレキシブルETLプロセスは、ソースデータファイルとターゲットテーブルとの間のマッピングを維持することにより、ビッグデータストアへのデータ転送がどのように実行されるべきかを示すことが可能となる。更に、フレキシブルETLプロセスは、プラットフォーム内のデータ移動に関する来歴情報を提供する。更に、データカタログ内の文書種類、関連付けられたスキーマ、及びデータフィールドの表現には、当該データの意味を定義するセマンティック情報が付随しているので、プラットフォーム内外のデータの互換性が可能になる。
【0011】
特定の定義
以下の詳細な説明では、本明細書の一部を形成する添付の図面が参照され、同様の数字は全体を通して同様の部分を示し、例解として、実施され得る実施形態が示される。本開示の範囲から逸脱することなく、他の実施形態が利用され得、構造的又は論理的変更が行われ得ることを理解されたい。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではない。
【0012】
様々な動作は、本明細書に開示される主題を理解するのに最も役立つように、複数の別個のアクション又は動作として順に説明され得る。しかしながら、説明の順序は、これらの動作が必然的に順序に依存することを示唆するものとして解釈されるべきではない。具体的には、これらの動作は、提示の順序で実施されない場合がある。説明される動作は、説明される実施形態とは異なる順序で実施され得る。様々な追加の動作が実施され得、及び/又は説明された動作が追加の実施形態において省略され得る。
【0013】
本開示の目的のために、「A及び/又はB(A and/or B)」及び「A又はB(A or B)」という語句は、(A)、(B)、又は(A及びB)を意味する。本開示の目的のために、「A、B、及び/又はC(A, B, and/or C)」及び「A、B、又はC(A, B , or C)」という語句は、(A)、(B)、(C)、(A及びB)、(A及びC)、(B及びC)、又は(A、B、及びC)を意味する。いくつかの要素は単数形(例えば、「処理デバイス」)で言及され得るが、任意の適切な要素は、その要素の複数のインスタンスによって表され得、逆もまた同様である。例えば、処理デバイスによって実施されるものとして説明された動作のセットは、異なる処理デバイスによって実施される動作のうちの異なるものを用いて実装され得る。
【0014】
本説明は、「ある実施形態」、「様々な実施形態」、及び「いくつかの実施形態」という語句を使用し、それらの各々は、同じ又は異なる実施形態のうちの1つ以上を指し得る。更に、本開示の実施形態に関して使用される「備える(comprising)」、「含む(including)」、「有する(having)」などの用語は、同義である。寸法の範囲を説明するために使用されるとき、「X~Y(between X and Y)」という語句は、XとYとを含む範囲を表す。本明細書で使用する場合、「装置」は、任意の個々のデバイス、デバイスの集合、デバイスの一部、又はデバイスの一部の集合を指し得る。図面は、必ずしも縮尺どおりではない。
【0015】
本明細書で使用する場合、「データカタログ」という用語は、限定されないが、例えば、セマンティック定義を含む、文書サービス、及び他のサービスによって管理される文書のファイル種類に関連するメタデータの集合を含む。
【0016】
本明細書で使用する場合、「オントロジ」という用語は、限定されないが、例えば、明確に定義されたプロパティにわたる、エンティティのクラスを含む、エンティティのセット、及びエンティティ同士の関係を含む。
【0017】
本明細書で使用する場合、「知識グラフ」という用語は、限定されないが、例えば、通常、オントロジに整合されたグラフデータベースに格納された、意味のある関係によってリンクされたエンティティの記述の集合を含む。
【0018】
本明細書で使用する場合、「トリプルストア」、又は「セマンティックトリプルストア」という用語は、限定されないが、例えば、主として、主語、述語、及び、目的語を表す三つ組み形式でデータを格納し、通常、SPARQLプロトコルを使用して、クエリ機能を提供する非構造化照会言語(no structured query language、NoSQL)データベースを含む。「グラフデータベース」としても知られている。
【0019】
本明細書で使用する場合、「データカタログサービス」という用語は、限定されないが、例えば、セマンティック定義を含む、文書リポジトリ内に格納されたファイル、又はデータベース内のテーブルなどのデータセットに関連するメタデータを管理するサービスを含む。データカタログサービスは、データがどのようにして、例えば、ビッグデータストア、又はリレーショナルデータベースサーバに移動されるべきかに関するメタデータを格納し得る。
【0020】
本明細書で使用する場合、「検索インデックス」という用語は、限定されないが、例えば、全文検索などの検索条件に基づく、エンティティの迅速な識別のためにメタデータの格納を最適化するサービスを含む。
【0021】
本明細書で使用する場合、「ETLツール」という用語は、限定されないが、例えば、データを抽出、変換、読み込むように設計されたソフトウェアを含む。
【0022】
本明細書で使用する場合、「ETL処理キュー」という用語は、限定されないが、例えば、ETLパイプライン内で処理される必要がある文書、又はデータセットへの参照を含む、Kafka、又はRabbitMQなどのメッセージブローカ内のチャネルを含む。
【0023】
本明細書で使用する場合、「データベースサーバ」、又は「リレーショナルデータベースサーバ」という用語は、限定されないが、例えば、定義されたクエリ言語を使用して、迅速にクエリするために表形式データを格納し、最適化するシステムを含む。
【0024】
本明細書で使用する場合、「ビッグデータストア」という用語は、限定されないが、例えば、通常は元のデータフォーマットであるが、場合によっては、ORC又はParquetなどの最適化されたビッグデータファイルフォーマットでもある、分析用の多数のファイルを格納するためのデータリポジトリを含む。様々な実装形態において、「ビッグデータストア」は「データレイク」とも称され得る。いくつかの実施形態において、多数のファイルは、100万以上程度のファイルである。
【0025】
例示的なフレキシブルETLプロセス
例示的な実施形態において、フレキシブルETLプロセスは、以下のように概説することができる。アプリケーションは、そのソースデータのデータスキーマ、ターゲットビッグデータテーブルのスキーマ、及び/又はこうしたソーススキーマとターゲットスキーマとの間のフィールドマッピングを、データカタログに登録する。一般に、フィールドマッピングでは、(例えば、上記ソースからの)永続的フィールドがターゲットスキーマへとどのようにマッピングされるかを記述する。ETLプロセスは、こうしたフィールドマッピングをデータカタログから読み取り、フィールドマッピングに基づいて、定義されたターゲットビッグデータテーブル(例えば、それらが既に存在しない場合)を作成する。新しいソースデータファイル、又はレコードが利用可能である場合、アプリケーションは、それをデータカタログに登録する。データカタログは、新しいデータファイル、又はレコードを適切なスキーマと整合させる(例えば、構成時)。新しいデータファイル、又はレコードが、ビッグデータテーブルにマッピングされたスキーマに関連付けられている場合、データカタログは、レコードをETL処理キューに挿入する。新しいデータファイル、又はレコードが、ビッグデータテーブルにマッピングされたスキーマに関連付けられていない場合、データカタログは、新しいデータの可用性を登録する。ETLツールは、データがどのようにビッグデータテーブルにマッピングされるべきかに関する情報を含む、レコードをETL処理キューから読み取る。ETLツールは、入力データを処理してレコードにし、そのレコードを適切なビッグデータテーブルに転送する。
【0026】
フレキシブルETLプロセスが採用されるべきソースデータの例示的なカテゴリは、容易に解析され得るCSV、JSON、及びXMLのような標準ファイルフォーマットのデータ、個々のレコードの形式でリレーショナルデータベースから取り込まれたデータ、データパーサが容易に利用可能であるSPC、又はGAMLのような標準科学ファイルフォーマットのデータなどを含む。様々な実装態様において、ソースデータはデータベースファイルを含む。例えば、ソースデータは、MySQL(登録商標)ファイル、PostgreSQLファイル、Microsoft SQL Serverファイル、Oracleデータベースファイル、SQLiteファイルなどのリレーショナルデータベースファイルを含み得る。いくつかの例において、データベースファイルは科学機器の結果ファイルである。例えば、結果ファイルは、Proteome Discoverer結果ファイル、及び/又は、Compound Discoverer(商標)結果ファイルを含むことができる。
【0027】
したがって、異なるソースデータ(例えば、異なるファイルフォーマット、異なるデータ構造、異なるスキーマなどを有するソースデータ)の、同じターゲットスキーマ(例えば、ターゲットデータベースのスキーマ、ビッグデータストア内のターゲットデータテーブル)への、又は異なるターゲットスキーマ(例えば、異なるターゲットデータベースのスキーマ、又は同じビッグデータストア内の異なるターゲットデータテーブルなど)へのマッピング、かつ/又はインポートを自動化することによって、フレキシブルETLプロセスは、コンピューティング技術を改善する。異なるソースデータのデータフィールドとターゲットスキーマとの間のマッピングプロセスを自動化することによって、フレキシブルETLプロセスは、手間のかかる手動マッピングプロセスが原因で生じ得るエラーを低減し、又は無くして、膨大で多様なソースデータをターゲットデータテーブル、データベースなどにインポートする際の全体的な信頼性、及び速度を改善する。
【0028】
例えば、多様なソースデータは、様々なフォーマット(例えば、CSV、JSON、XMLなど)を使用し、かつ/又は、様々な構造(例えば、階層、リレーショナル、又はフラット)を有し得る。フレキシブルETLプロセスは、多様なデータソースのフィールドをターゲットスキーマへと体系的、かつ自動的にマッピングし、異なるフォーマットを有する異なるソースデータがターゲットスキーマへとスムーズに統合され得ることを確実にする。更に、ソースデータの多様性が増すにつれて、各種のソースデータをターゲットスキーマへと手動でマッピングすることは、持続不可能になり得る。フレキシブルETLプロセスによって実行される自動マッピングは、多様な範囲のソースデータの種類を扱うことができるので、フレキシブルETLプロセスは、効率的にスケーリングすることで、相応のエラー率を増加させることなく、処理されるソースデータの量と種類が増加する。
【0029】
システムコンテキスト
いくつかの実施形態において、フレキシブルETLプロセスは、本明細書に記載される動作機能、及び分析機能の双方を網羅するプラットフォームを介して提供される。動作機能は、例えば、文書サービス(
図1を参照)を含む。いくつかの実施形態において、提供される分析機能では、いくつかの様々なプラットフォームを介して提供される複数の文書リポジトリを支援する。
【0030】
いくつかの実施形態において、アプリケーションは、文書サービスを介してプラットフォームにデータを格納する。いくつかの実施形態では、分析機能は、文書サービスからのデータの一部を、ビッグデータクエリに合わせて最適化された別個のストレージにプルし、アプリケーションのユーザが閲覧するためのダッシュボード上へのデータの提示を可能にする、デフォルトインテリジェンスツールを提供する。いくつかの実施形態において、アプリケーションによっては、ある特定のアプリケーションのユースケースを満たすために、最適化された分析機能内でデータをクエリするものもあり得る。いくつかの実施形態では、データが分析目的用に取り込まれるか、又はアクセスされ得る、いくつかの異なる経路、つまり、(1)文書データフロー、(2)レコードデータフロー、及び(3)仮想データフローがある。これらについて、以下のセクションで別々に説明する。
【0031】
文書データフロー
図1は、分析機能150のどの要素がプラットフォーム、及びそのアプリケーション(図示せず)と相互作用するかを示す、例示的なコンテナ
図100を示す。いくつかの実施形態では、文書サービス122は、実際の文書を取り出すことができるアクセスURLを含む、プラットフォーム内に位置する文書、及び他のデータセットをデータカタログサービス104に登録する役割を果たす。いくつかの実施形態では、プラットフォーム内、又はプラットフォーム外の複数のデータリポジトリが、文書をデータカタログサービス104に登録する。他のサービスも、例えば、メタデータをデータセット、又は、インジェクション若しくはシーケンスなどのデータセットに関連するエンティティのいずれかにリンクすることによって、メタデータをデータカタログサービス104に登録し得る。図示されるように、データカタログサービス104用の一次データストレージは、セマンティックトリプルストア106であり得る。様々な実装形態では、セマンティックトリプルストア106は、Apache Jena FusekiサーバによってホストされるApache Jena RDFトリプルストアなどの、ウェブベースのセマンティックトリプルストアを含む。いくつかの例では、セマンティックトリプルストア106は、Eclipse RDF4Jフレームワークを使用して実装されるウェブベースのトリプルストアを含む。しかしながら、プロジェクトの詳細に応じて、他のデータベース実装形態を採用してもよい。
【0032】
いくつかの実施形態では、検索インデックス102は、(例えば、検索インデックスデータのキーがセマンティックトリプルストア106内のエンティティの識別子である場合、キーワード、又は検索文字列によって)データカタログ内のインデックス付けされたデータセットにわたって、高速検索機能を提供する。いくつかの実施形態では、検索インデックス102は、データカタログ内のメタデータに対する検索を実行するために、プラットフォーム、又は当該プラットフォーム上のアプリケーション120に公開され、その結果を、関連付けられたメタデータをプルするために、データカタログサービス104に送信することができる。
【0033】
いくつかの実施形態では、データカタログサービス104は、新しい文書、又は更新された文書を処理する準備ができているという信号を、下流データパイプラインに提供する。例えば、データカタログサービス104は、メッセージをETL処理キュー108に送信し、そこで、ETLツール110は、メッセージを取り出すことができる。いくつかの実施形態では、ETLツール110(例えば、ApacheNiFi)は、例えば、FTP、HTTP、又はGRPCを介して、リスナをインスタンス化することによって、そのパイプラインに文書を導入する。
【0034】
いくつかの実施形態において、ETLツール110は、データカタログサービス104をETLツール110から切り離す、独立キューを介して、処理用文書がより確実にキューに入れられることを保証する。いくつかの実施形態では、ETLツール110は、CSV、JSON、若しくはXMLなどの一般的なファイルフォーマットの文書、SPC、GAML、若しくはAllotrope ADFなどの、標準的な分析ファイルフォーマットの文書、又は専用フォーマットの文書若しくはデータセットのうちの1つからのソース文書を処理する。いくつかの実施形態では、ソースファイル及びターゲットテーブル用のスキーマ定義がデータカタログ内で定義される限り、最初の2つのカテゴリは、汎用ETLパイプラインによって管理される。いくつかの実施形態では、第3のカテゴリは、処理されるべき専用フォーマットごとに、専用ETLパイプラインによって管理される。
【0035】
いくつかの実施形態において、ETLツール110は、新しい文書が処理される必要があることを示すメッセージを、ETL処理キュー108から取り出す。いくつかの実施形態では、メッセージには、文書のメディア種類に関する情報が含まれており、この情報は、どのような種類の文書であるかを定義するものであり、ひいては、その文書がETLパイプライン内でどのように処理されるかを決定する。いくつかの実施形態では、汎用ETLパイプラインを通じて処理可能な文書について、ETLツール110は、データカタログサービス104からスキーママッピング情報を取り出し、文書をパイプライン内の適切なパスに誘導するか、又は、文書が専用フォーマットのうちの1つである場合には、パイプライン内の専用パスに誘導する。いくつかの実施形態では、ETLツール110は、データをビッグデータストア112に保存する。
【0036】
記録データフロー
図1のコンテナ同士の関係に関する上記の説明は、文書ベースのデータ(例えば、文書とファイル)の取り込みに焦点を当てている。しかしながら、同じアーキテクチャは、リレーショナルデータベースからの変更データ取り込みレコードなどのレコードに基づいて、データ取り込みを支援することができる。メタデータに加えて、ファイル外のデータ変更を追跡する他のサービスは更に、データカタログサービス104を通じてレコードを送信することが可能であり、いくつかの実施形態において、これらのレコードでは、セマンティックトリプルストア106に処理されないが、ETLツール110によって処理され、ビッグデータストア112に格納されるべきレコードとして、ETL処理キュー108に渡されるはずである。その結果、
図1で図示される例示のアーキテクチャは、新たなユースケースをサポートできるので、文書、又はファイル以外の動作データを分析機能150に転送して、例えば、動作機能と干渉しないことを確実にするために、このようなクエリのパターンをソースデータベースからオフロードする必要がある状況において、分析、又は人工知能(AI)/機械学習(ML)のユースケースをサポートすることが可能である。
【0037】
仮想データフロー
更に、
図1に示されるアーキテクチャを採用して、仮想データフローモデルを支援可能であり、仮想データフローモデルはまた、分析エンジン114(例えば、Trino(登録商標))、及びアプリケーションデータベースなどのリレーショナルデータストアを採用して、リレーショナルストアとビッグデータストア112内のデータとの間の異種結合を実行する。いくつかの実施形態において、分析エンジン114は、ある特定の分析クエリを実行するために、データをリレーショナルストアから移動させる必要性を低減するか、又は無くすように、設計される。かかる実施形態では、分析エンジン114からリレーショナルデータストアへの接続の構成は、分析機能150の展開時に実行される。いくつかの実施形態では、データセマンティクが(分析エンジン114によって)クエリ可能要素に拡張されることを確実にするために、プラットフォームによって提供されるサービスは、リレーショナルデータストアの定義をデータカタログサービス104に登録する。いくつかの実施形態では、ビッグデータストア112内のデータに対する視覚化(例えば、チャート)を提供するアプリケーション120が、採用される。しかしながら、ある特定のユースケースでは、アプリケーション120はまた、分析エンジン114に直接クエリするように構成され得る。
【0038】
上述のアプリケーション120の多くは、(例えば、
図5のコンピューティングデバイス4000上で)インストールされ、構成されるソフトウェアパッケージに相当する。例えば、いくつかの実施形態では、分析エンジン114は、ビッグデータストア112及びメタストアサービス118(例えば、Hive(登録商標))と接続するように構成されるが、インテリジェンスツール116は、チャート及びダッシュボードの設計を(例えば、
図5を参照して、本明細書で論じるディスプレイデバイス4010を介して)アプリケーションユーザ101に提供するように、分析エンジン114と接続するように構成される。いくつかの実施形態では、ETLツール110内のETLジョブは、インテリジェンスツール116内の構成の形態をとる。
【0039】
図2は、様々な実施形態に係る、支援動作を実施するための支援モジュール1000のブロック図である。支援モジュール1000は、プログラムされたコンピューティングデバイスなどの回路(例えば、電気的、及び/又は光学的構成要素を含む)によって実装され得る。支援モジュール1000のロジックは、単一コンピューティングデバイスに含まれ得るか、又は必要に応じて互いに通信している複数のコンピューティングデバイスに分散され得る。
図5のコンピューティングデバイス4000を参照して、単独で又は組み合わせて、支援モジュール1000を実装し得るコンピューティングデバイスの例を、本明細書で論じる。いくつかの実施形態では、こうしたコンピューティングデバイスは相互に接続し、支援モジュール1000は、コンピューティングデバイスの1つ以上にわたって実装され得る。
【0040】
支援モジュール1000は、マッピングロジック1002、受信ロジック1004、ソースデータロジック1006、及び/又は永続化ロジック1008を、含み得る。本明細書で使用する場合、「ロジック」という用語は、ロジックと関連付けられた動作のセットを実施する装置を含み得る。例えば、支援モジュール1000に含まれるロジック要素のいずれかは、コンピューティングデバイスの1つ以上の処理デバイスに、関連付けられた動作のセットを実施させる命令でプログラムされた、1つ以上のコンピューティングデバイスによって実装され得る。特定の実施形態では、ロジック要素は、1つ以上の非一時的コンピュータ可読媒体を含み得、1つ以上の非一時的コンピュータ可読媒体は、1つ以上のコンピューティングデバイスの1つ以上の処理デバイスによって実行されるときに、1つ以上のコンピューティングデバイスに、関連付けられた動作のセットを実施させる命令を有する。本明細書で使用する場合、「モジュール」という用語は、当該モジュールに関連付けられた1つ以上の機能を一緒に実施する1つ以上のロジック要素の集合を指し得る。モジュール内のロジック要素のうちの異なるものは、同じ形態をとり得るか、又は異なる形態をとり得る。例えば、モジュール内のいくつかのロジックは、プログラムされた汎用処理デバイスによって実装され得、モジュール内の他のロジックは、特定用途向け集積回路(application-specific integrated circuit、ASIC)によって実装され得る。別の例では、モジュール内のロジック要素の異なるものは、1つ以上の処理デバイスによって実行される、異なる命令のセットと関連付けられ得る。モジュールは、関連する図面に示されたロジック要素の全てを含まない場合があり、例えば、モジュールは、そのモジュールが、そのモジュールを参照して本明細書で論じられる動作のサブセットを実施するとき、関連する図面に示されるロジック要素のサブセットを含み得る。
【0041】
マッピングロジック1002は、アプリケーションデータと、データカタログ又はデータカタログサービス(例えば、
図1のデータカタログサービス104)に展開されるターゲットスキーマとの間のフィールドをマッピングするように構成され得る。いくつかの実施形態では、フィールドマッピングは、アプリケーションデータを使用して、利用可能であれば、新しいレコード又は新しいソースデータファイルをデータカタログに登録するように構成されたアプリケーション又はサーバによって、データカタログに格納される。いくつかの実施形態では、レコード又はデータファイルは、データカタログによってターゲットスキーマと整合されている。いくつかの実施形態では、アプリケーションデータの種類に従って、マッピングを定義する。
【0042】
受信ロジック1004は、ETL処理キュー(例えば、ETL処理キュー108)から、メタデータを含み、かつ、アプリケーションデータに関連するレコード又はデータファイルが処理の準備ができていることを示す信号を受信するように構成され得る。いくつかの実施形態において、信号は、データカタログによって、ETL処理キューに挿入される。いくつかの実施形態では、アプリケーションデータの種類に一致するレコード又はデータファイルの種類に基づいて、信号は、データカタログによって挿入される。いくつかの実施形態では、信号は、レコード又はデータファイルの場所を含む。
【0043】
ソースデータロジック1006は、レコード又はデータファイルを処理することによって、ソースデータを決定するように構成され得る。永続化ロジック1008は、ターゲットスキーマに従って定義されたビッグデータテーブルにソースデータを提供するように構成され得る。いくつかの実施形態では、ソースデータは、データカタログによって提供されるメタデータを使用して、ビッグデータテーブルに提供される。
【0044】
図3は、様々な実施形態に係る、支援動作を実施する方法2000のフロー図を示す。方法2000の動作は、本明細書で開示される特定の実施形態(例えば、
図1を参照して本明細書で論じられる分析機能150、
図4を参照して本明細書で論じられるGUI3000、及び/又は、
図5を参照して本明細書で論じられるコンピューティングデバイス4000)を参照して例示され得るが、方法2000は、任意の好適な支援動作を実施するために、任意の好適な設定で使用され得る。動作は、
図2においてそれぞれ1回ずつ、特定の順序で例示されているが、この動作は、所望に応じて適切に並べ替えられ、かつ/又は、繰り返され得る(例えば、実施される異なる動作は、適宜、並行して実施され得る)。
【0045】
方法2000では、2002において、第1の動作を実施できる。例えば、支援モジュール1000のマッピングロジック1002は、2002の動作を実施可能である。第1の動作は、データカタログから、アプリケーションデータとターゲットスキーマとの間のフィールドマッピングを受信することを含み得る。
【0046】
2004で、第2の動作を実施できる。例えば、支援モジュール1000の受信ロジック1004が、2004の動作を実施し得る。第2の動作は、ETL処理キューから、メタデータを含み、かつ、アプリケーションデータに関連するレコード又はデータファイルが処理の準備ができていることを示す信号を受信することを含み得る。
【0047】
2006で、第3の動作を実施できる。例えば、支援モジュール1000のソースデータロジック1006は、2006の動作を実施し得る。第3の動作は、メタデータを処理してレコード又はデータファイルの場所を識別し、識別された場所からレコード又はデータファイルを取り出すことによって、ソースデータを決定することを含み得る。
【0048】
2008で、第4の動作を実施できる。例えば、支援モジュール1000の永続化ロジック1008は、2108の動作を実施可能である。第4の動作は、ターゲットスキーマに従って定義されたビッグデータテーブルにソースデータを提供することを含み得る。
【0049】
本明細書で開示される支援方法は、人間のユーザとの相互作用を含むことができる。こうした相互作用は、ユーザに情報を提供すること、又はユーザがコマンド(例えば、汎用ETL用の構成、又は汎用ETLによって処理されるレコード及びデータファイルを提供するアプリケーション)、クエリ(例えば、ローカル又はリモートデータベースへの)、若しくは他の情報を入力するためのオプションを提供することを含み得る。いくつかの実施形態では、これらの相互作用は、ユーザに出力を提供し、かつ/又は入力を提供するようにユーザに指示する(例えば、
図5を参照して本明細書で論じられる他のI/Oデバイス4012に含まれるキーボード、マウス、トラックパッド、又はタッチスクリーンなどの、1つ以上の入力デバイスを介して)ディスプレイデバイス(例えば、
図5を参照して本明細書で論じられる、ディスプレイデバイス4010)上の視覚的表示を含むグラフィカルユーザインターフェイス(graphical user interface、GUI)を通じて、実施され得る。本明細書で開示される支援システムは、ユーザと相互作用するための任意の好適なGUIを含み得る。
【0050】
図4は、様々な実施形態に係る、本明細書で開示される支援方法の一部又は全ての実施において使用され得る、例示的なGUI3000を示す。上記のように、GUI3000は、コンピューティングデバイスのディスプレイデバイス(例えば、
図5を参照して本明細書で論じられるディスプレイデバイス4010)上に提供され得、ユーザは、任意の好適な入力デバイス(例えば、
図5を参照して本明細書で論じられる他のI/Oデバイス4012に含まれる入力デバイスのいずれか)、及び、入力技術(例えば、カーソルの移動、モーションキャプチャ、顔認識、ジェスチャ検出、音声認識、ボタンの作動など)を使用して、GUI3000と相互作用し得る。
【0051】
GUI3000は、データ表示領域3002、データ分析領域3004、制御領域3006、及び設定領域3008を含み得る。
図4で示す領域の特定の数及び配置は、例示的なものに過ぎず、任意の所望の特徴を含む領域の任意の数及び配置がGUI3000に含まれ得る。データ表示領域3002は、データを表示可能である。
【0052】
データ分析領域3004は、データ分析の結果(例えば、データ表示領域3002に示されるデータ及び/又は他のデータを分析した結果)を表示し得る。例えば、データ分析領域3004は、ビッグデータテーブル内に格納されたアプリケーションからのソースデータを表示し得る。いくつかの実施形態では、データ表示領域3002、及びデータ分析領域3004は、GUI3000内で組み合わせられてもよい。
【0053】
制御領域3006は、ユーザがフレキシブルETLの実装を制御可能にするオプションを含み得る。設定領域3008は、ユーザが、GUI3000(及び/又は、他のGUI)の特徴及び機能を制御する、かつ/又はデータ表示領域3002及びデータ分析領域3004に関する共通のコンピューティング動作を実施することを可能にするオプションを含み得る(例えば、
図5を参照して本明細書で論じられる記憶デバイス4004などの、記憶デバイス上にデータを保存すること、別のユーザにデータを送信すること、データをラベル付けすることなど)。
【0054】
上記のように、支援モジュール1000は、1つ以上のコンピューティングデバイスによって実装され得る。
図5は、様々な実施形態に係る、本明細書で開示される支援方法の一部又は全てを実施し得る、コンピューティングデバイス4000のブロック図である。いくつかの実施形態では、支援モジュール1000は、単一のコンピューティングデバイス4000、又は複数のコンピューティングデバイス4000によって、実装され得る。
【0055】
図5のコンピューティングデバイス4000は、いくつかの構成要素を有するものとして例示されているが、こうした構成要素のうちのいずれか1つ以上は、用途及び設定に合わせて好適となるように省略又は複製されてもよい。いくつかの実施形態では、コンピューティングデバイス4000に含まれる構成要素の一部又は全ては、1つ以上のマザーボードに取り付けられ、ハウジング(例えば、プラスチック、金属、及び/又は他の材料を含む)に封入されてもよい。いくつかの実施形態において、こうした構成要素は、単一のシステムオンチップ(system-on-a-chip、SoC)上に製造可能である(例えば、SoCは、1つ以上の処理デバイス4002、及び1つ以上の記憶デバイス4004を含み得る)。付加的に、様々な実施形態では、コンピューティングデバイス4000は、
図5で例示される構成要素のうちの1つ以上を含まない場合があるが、任意の好適なインターフェイス(例えば、ユニバーサルシリアルバス(Universal Serial Bus、USB)インターフェイス、高精細マルチメディアインターフェイス(High-Definition Multimedia Interface、HDMI(登録商標))インターフェイス、コントローラエリアネットワーク(Controller Area Network、CAN)インターフェイス、シリアルペリフェラルインターフェイス(Serial Peripheral Interface、SPI)インターフェイス、イーサネットインターフェイス、無線インターフェイス、又は任意の他の適切なインターフェイス)を使用して、1つ以上の構成要素に結合するためのインターフェイス回路(図示せず)を含み得る。例えば、コンピューティングデバイス4000は、ディスプレイデバイス4010を含まない場合があるが、ディスプレイデバイス4010を結合可能とする、ディスプレイデバイスインターフェイス回路(例えば、コネクタ及びドライバ回路)を含み得る。
【0056】
コンピューティングデバイス4000は、処理デバイス4002(例えば、1つ以上の処理デバイス)を含み得る。本明細書で使用する場合、「処理デバイス」という用語は、レジスタ、及び/又はメモリからの電子データを処理して、その電子データをレジスタ及び/又はメモリに格納され得る他の電子データに変換する、任意のデバイス又はデバイスの一部分を指し得る。処理デバイス4002は、1つ以上のデジタル信号プロセッサ(digital signal processor、DSP)、特定用途向け集積回路(ASIC)、中央処理ユニット(central processing unit、CPU)、グラフィックス処理ユニット(graphics
processing unit、GPU)、暗号プロセッサ(ハードウェア内で暗号アルゴリズムを実行する専用プロセッサ)、サーバプロセッサ、又は任意の他の好適な処理デバイスを含み得る。
【0057】
コンピューティングデバイス4000は、記憶デバイス4004(例えば、1つ以上の記憶デバイス)を含み得る。記憶デバイス4004は、ランダムアクセスメモリ(random access memory、RAM)(例えば、静的RAM(static
RAM、SRAM)デバイス、磁気RAM(magnetic RAM、MRAM)デバイス、ダイナミックRAM(dynamic RAM、DRAM)デバイス、抵抗性RAM(resistive RAM、RRAM)デバイス、又は導電性ブリッジRAM(conductive-bridging RAM、CBRAM)デバイス)、ハードドライブベースのメモリデバイス、ソリッドステートメモリデバイス、ネットワークドライブ、クラウドドライブ、又はメモリデバイスの任意の組み合わせなどの1つ以上のメモリデバイスを含み得る。いくつかの実施形態では、記憶デバイス4004は、処理デバイス4002とダイを共有するメモリを含み得る。かかる実施形態では、メモリは、キャッシュメモリとして使用され得、例えば、組み込みダイナミックランダムアクセスメモリ(embedded dynamic random access memory、eDRAM)、又はスピン転送トルク磁気ランダムアクセスメモリ(spin transfer torque magnetic random access memory、STT-MRAM)を含み得る。いくつかの実施形態では、記憶デバイス4004は、1つ以上の処理デバイス(例えば、処理デバイス4002)によって実行されると、コンピューティングデバイス4000に、本明細書に開示される方法の任意の適切な方法又はその一部を実施させる命令を有する非一時的コンピュータ可読媒体を含み得る。
【0058】
コンピューティングデバイス4000は、インターフェイスデバイス4006(例えば、1つ以上のインターフェイスデバイス4006)を含み得る。インターフェイスデバイス4006は、コンピューティングデバイス4000と他のコンピューティングデバイスとの間の通信を管理するために、1つ以上の通信チップ、コネクタ、並びに/又は他のハードウェア及びソフトウェアを含み得る。例えば、インターフェイスデバイス4006は、コンピューティングデバイス4000との間でデータを転送するための無線通信を管理する回路を含み得る。「無線」という用語、及びその派生語は、非固体媒体を通じた変調電磁放射を使用することでデータを通信可能とする、回路、デバイス、システム、方法、技術、通信チャネルなどを記述するために使用され得る。この用語は、関連するデバイスがいかなる配線も含まないことを意味するものではないが、実施形態によっては、含まない場合もある。無線通信を管理するためのインターフェイスデバイス4006に含まれる回路は、限定されないが、Wi-Fi(IEEE802.11ファミリ)、IEEE802.16規格(例えば、IEEE802.16-2005 Amendment)を含む米国電気電子学会(Institute for Electrical and Electronic Engineers、IEEE)規格、何らかの修正、更新、及び/又は改訂を伴うロングタームエボリューション(Long-Term Evolution、LTE)プロジェクト(例えば、アドバンストLTEプロジェクト、ウルトラモバイルブロードバンド(ultra-mobile broadband、UMB)プロジェクト(「3GPP(登録商標)2」とも称される)など)を含む、いくつかの無線規格、又はプロトコルのいずれかを実装可能である。いくつかの実施形態では、無線通信を管理するためのインターフェイスデバイス4006に含まれる回路は、モバイル通信用グローバルシステム(Global System for Mobile Communication、GSM)、汎用パケット無線サービス(General Packet Radio Service、GPRS)、ユニバーサルモバイル電気通信システム(Universal Mobile Telecommunications System、UMTS)、高速パケットアクセス(High Speed Packet Access、HSPA)、進化型HSPA(Evolved HSPA、E-HSPA)、又はLTEネットワークに従って動作し得る。いくつかの実施形態では、無線通信を管理するためにインターフェイスデバイス4006に含まれる回路は、GSM進化型高速データ(Enhanced Data for GSM Evolution、EDGE)、GSM EDGE無線アクセスネットワーク(GSM EDGE Radio Access Network、GERAN)、ユニバーサル地上無線アクセスネットワーク(Universal Terrestrial Radio Access Network、UTRAN)、又は進化型UTRAN(Evolved UTRAN、E-UTRAN)に従って動作し得る。いくつかの実施形態では、無線通信を管理するためのインターフェイスデバイス4006に含まれる回路は、符号分割多元接続(Code Division Multiple Access、CDMA)、時分割多元接続(Time Division Multiple Access、TDMA)、デジタル拡張コードレス電気通信(Digital Enhanced Cordless Telecommunications、DECT)、エボリューションデータ最適化(Evolution-Data Optimized、EV-DO)、及びそれらの派生物、並びに3G、4G、5G、及びそれ以降として指定される任意の他の無線プロトコルに従って動作し得る。いくつかの実施形態では、インターフェイスデバイス4006は、無線通信の受信及び/又は送信用の1つ以上のアンテナ(例えば、1つ以上のアンテナアレイ)を含み得る。
【0059】
いくつかの実施形態では、インターフェイスデバイス4006は、電気的、光学的、又は任意の他の好適な通信プロトコルなどの有線通信を管理するための回路を含み得る。例えば、インターフェイスデバイス4006は、イーサネット技術に従って通信を支援する回路を含み得る。いくつかの実施形態では、インターフェイスデバイス4006は、無線通信及び有線通信の双方を支援し得、かつ/又は複数の有線通信プロトコル及び/若しくは複数の無線通信プロトコルを支援し得る。例えば、インターフェイスデバイス4006の回路の第1のセットは、Wi-Fi又はBluetoothなどの短距離無線通信専用であってもよく、インターフェイスデバイス4006の回路の第2のセットは、全地球測位システム(global positioning system、GPS)、EDGE、GPRS、CDMA、WiMAX、LTE、EV-DOなどの長距離無線通信専用であってもよい。いくつかの実施形態では、インターフェイスデバイス4006の回路の第1のセットは、無線通信専用であってもよく、インターフェイスデバイス4006の回路の第2のセットは、有線通信専用であってもよい。
【0060】
コンピューティングデバイス4000は、バッテリ/電力回路4008を含み得る。バッテリ/電力回路4008は、1つ以上のエネルギー貯蔵デバイス(例えば、バッテリ若しくはコンデンサ)、及び/又はコンピューティングデバイス4000の構成要素をコンピューティングデバイス4000とは別個のエネルギー源(例えば、ACライン電力)に結合するための回路を含み得る。
【0061】
コンピューティングデバイス4000は、ディスプレイデバイス4010(例えば、複数のディスプレイデバイス)を含み得る。ディスプレイデバイス4010は、ヘッドアップディスプレイ、コンピュータモニタ、プロジェクタ、タッチスクリーンディスプレイ、液晶ディスプレイ(liquid crystal display、LCD)、発光ダイオードディスプレイ、又はフラットパネルディスプレイなどの任意の視覚インジケータを含み得る。
【0062】
コンピューティングデバイス4000は、他の入力/出力(I/O)デバイス4012を含み得る。他のI/Oデバイス4012は、例えば、1つ以上のオーディオ出力デバイス(例えば、スピーカ、ヘッドセット、イヤホン、アラームなど)、1つ以上のオーディオ入力デバイス(例えば、マイクロフォン又はマイクロフォンアレイ)、位置デバイス(例えば、当技術分野で既知であるような、コンピューティングデバイス4000の位置を受信するために衛星ベースシステムと通信するGPSデバイス)、オーディオコーデック、ビデオコーデック、プリンタ、センサ(例えば、熱電対若しくは他の温度センサ、湿度センサ、圧力センサ、振動センサ、加速度計、ジャイロスコープなど)、カメラなどの画像キャプチャデバイス、キーボード、マウス、スタイラス、トラックボール、若しくはタッチパッドなどのカーソル制御デバイス、バーコードリーダ、クイックレスポンス(Quick Response、QR)コードリーダ、又は無線周波数識別(radio frequency identification、RFID)リーダを含み得る。
【0063】
コンピューティングデバイス4000は、ハンドヘルド又はモバイルコンピューティングデバイス(例えば、セルフォン、スマートフォン、モバイルインターネットデバイス、タブレットコンピュータ、ラップトップコンピュータ、ネットブックコンピュータ、ウルトラブックコンピュータ、携帯情報端末(personal digital assistant、PDA)、ウルトラモバイルパーソナルコンピュータなど)、デスクトップコンピューティングデバイス若しくはサーバコンピューティングデバイス、又は他のネットワークコンピューティング構成要素など、当該用途及び設定のための任意の好適なフォームファクタを有してもよい。
【0064】
以下の段落は、本明細書に開示される実施形態の様々な例を提供する。
【0065】
実施例1は、処理デバイスによって実行されるETL処理のための方法である。この方法は、データカタログから、アプリケーションデータとターゲットスキーマとの間のフィールドマッピングを受信することと、ETL処理キューから、メタデータを含み、かつ、アプリケーションデータに関連するレコード又はデータファイルが処理の準備ができていることを示す信号を受信することと、メタデータを処理して、レコード又はデータファイルの場所を識別し、識別された場所からレコード又はデータファイルを取り出すことによって、ソースデータを決定することと、ターゲットスキーマに従って定義されたビッグデータテーブルにソースデータを提供することとを含む。
【0066】
実施例2は、実施例1の主題を含み、フィールドマッピングがアプリケーション又はサーバによってデータカタログに格納されることを更に規定する。
【0067】
実施例3は、実施例1及び2のいずれかに記載の主題を含み、アプリケーションは、アプリケーションデータを使用するように構成されることを更に規定する。
【0068】
実施例4は、実施例1~3のいずれかに記載の主題を含み、アプリケーションが、利用可能であれば、新しいレコード又は新しいソースデータファイルをデータカタログに登録するように構成されることを更に規定する。
【0069】
実施例5は、実施例1~4のいずれかに記載の主題を含み、レコード又はデータファイルが、アプリケーションによる処理の準備ができているものとして、データカタログに登録されていことを更に規定する。
【0070】
実施例6は、実施例1~5のいずれかに記載の主題を含み、レコード又はデータファイルがデータカタログによってターゲットスキーマと整合されていることを更に規定する。
【0071】
実施例7は、実施例1~6のいずれかに記載の主題を含み、信号が、データカタログによってETL処理キューに挿入されることを更に規定する。
【0072】
実施例8は、実施例1~7のいずれかに記載の主題を含み、マッピングがアプリケーションデータの種類に従って定義されることを更に規定する。
【0073】
実施例9は、実施例1~8のいずれかに記載の主題を含み、信号が、アプリケーションデータの種類と一致するレコード又はデータファイルの種類に基づいて、データカタログによって挿入されることを更に規定する。
【0074】
実施例10は、実施例1~9のいずれかに記載の主題を含み、ターゲットスキーマがデータカタログ内のターゲットビッグデータテーブルに展開されることを更に規定する。
【0075】
実施例11は、実施例1~10のいずれかに記載の主題を含み、レコード又はデータファイルが新規のものであるか、又は更新されていることを更に規定する。
【0076】
実施例12は、実施例1~11のいずれかに記載の主題を含み、信号にはレコード又はデータファイルの場所が含まれることを更に規定する。
【0077】
実施例13は、実施例1~12のいずれかに記載の主題を含み、レコード又はデータファイルが以前に提供されたスキーマに関連付けられていない場合、データカタログが、アプリケーションデータとターゲットスキーマとの間のマッピングを提供することを更に規定する。
【0078】
実施例14は、実施例1~13のいずれかに記載の主題を含み、ソースデータが、データカタログによって提供されるメタデータを使用して、ビッグデータテーブルに提供されることを更に規定する。
【0079】
実施例15は、実施例1~14のいずれかに記載の主題を含み、ソースデータが第1のソースデータを含み、ターゲットスキーマが第1のターゲットスキーマを含み、この方法は、データカタログから、第2のアプリケーションデータと第2のターゲットスキーマとの間の第2のフィールドマッピングを受信することと、ETL処理キューから、第2のメタデータを含み、かつ、第2のアプリケーションデータに関連する第2のレコード又は第2のデータファイルが処理の準備ができていることを示す第2の信号を受信することと、第2のメタデータを処理して、識別された第2の場所から、第2のレコード又は第2のデータファイルの第2の場所を識別することによって、第2のソースデータを決定することであって、第1のソースデータと第2のソースデータは異なるフォーマットを有する、決定することと、第2のターゲットスキーマに従って定義されたテーブルに第2のソースデータを提供することであって、第1のターゲットスキーマと第2のターゲットスキーマは異なるスキーマである、提供することとを含むことを更に規定する。
【0080】
実施例16は、実施例1~15のいずれかに記載の主題を含み、ソースデータが第1のソースデータを含み、ターゲットスキーマが第1のターゲットスキーマを含み、この方法は、データカタログから、第2のアプリケーションデータと第2のターゲットスキーマとの間の第2のフィールドマッピングを受信することと、ETL処理キューから、第2のメタデータを含み、かつ、第2のアプリケーションデータに関連する第2のレコード又は第2のデータファイルが処理の準備ができていることを示す第2の信号を受信することと、第2のメタデータを処理して、識別された第2の場所から、第2のレコード又は第2のデータファイルの第2の場所を識別することによって、第2のソースデータを決定することであって、第1のソースデータと第2のソースデータは異なるフォーマットを有する、決定することと、第2のターゲットスキーマに従って定義された第2のテーブルに第2のソースデータを提供することであって、第1のターゲットスキーマと第2のターゲットスキーマは異なるスキーマである、提供することとを含むことを更に規定する。
【0081】
実施例17は、システムであって、このシステムは、命令を格納する非一時的コンピュータ可読記憶媒体と、少なくとも1つの電子プロセッサとを含み、電子プロセッサは、命令を実行して、データカタログから、アプリケーションデータとターゲットスキーマとの間のフィールドマッピングを受信することと、ETL処理キューから、メタデータを含み、かつ、アプリケーションデータに関連するレコード又はデータファイルが処理の準備ができていることを示す信号を受信することと、メタデータを処理して、レコード又はデータファイルの場所を識別し、識別された場所からレコード又はデータファイルを取り出すことによって、ソースデータを決定することと、ターゲットスキーマに従って定義されたテーブルにソースデータを提供することとを行うように構成される。
【0082】
実施例18は、実施例17の主題を含み、フィールドマッピングがアプリケーション又はサーバによってデータカタログに格納されることを更に規定する。
【0083】
実施例19は、実施例17及び18のいずれかに記載の主題を含み、アプリケーションは、アプリケーションデータを使用するように構成されることを更に規定する。
【0084】
実施例20は、実施例17~19のいずれかに記載の主題を含み、アプリケーションが、利用可能であれば、新しいレコード又は新しいソースデータファイルをデータカタログに登録するように構成されることを更に規定する。
【0085】
実施例21は、実施例17~20のいずれか1つに記載の主題を含み、レコード、又はデータファイルが、アプリケーションによる処理の準備ができているものとして、データカタログに登録されたことを更に規定する。
【0086】
実施例22は、実施例17~21のいずれかに記載の主題を含み、レコード又はデータファイルがデータカタログによってターゲットスキーマと整合されていることを更に規定する。
【0087】
実施例23は、実施例17~22のいずれかに記載の主題を含み、信号が、データカタログによってETL処理キューに挿入されることを更に規定する。
【0088】
実施例24は、実施例17~23のいずれかに記載の主題を含み、マッピングがアプリケーションデータの種類に従って定義されることを更に規定する。
【0089】
実施例25は、実施例17~24のいずれかに記載の主題を含み、信号が、アプリケーションデータの種類と一致するレコード又はデータファイルの種類に基づいて、データカタログによって挿入されることを更に規定する。
【0090】
実施例26は、実施例17~25のいずれかに記載の主題を含み、ターゲットスキーマがデータカタログ内のターゲットビッグデータテーブルに展開されることを更に規定する。
【0091】
実施例27は、実施例17~26のいずれかに記載の主題を含み、レコード又はデータファイルが新規のものであるか、又は更新されていることを更に規定する。
【0092】
実施例28は、実施例17~27のいずれかに記載の主題を含み、信号にはレコード又はデータファイルの場所が含まれることを更に規定する。
【0093】
実施例29は、実施例17~28のいずれかに記載の主題を含み、レコード又はデータファイルが以前に提供されたスキーマに関連付けられていない場合、データカタログが、アプリケーションデータとターゲットスキーマとの間のマッピングを提供することを更に規定する。
【0094】
実施例30は、実施例17~29のいずれかに記載の主題を含み、ソースデータが、データカタログによって提供されるメタデータを使用して、ビッグデータテーブルに提供されることを更に規定する。
【0095】
実施例31は、実施例1~14のいずれかに記載の主題を含み、ソースデータが第1のソースデータを含み、ターゲットスキーマが第1のターゲットスキーマを含み、少なくとも1つの電子プロセッサは、命令を実行して、データカタログから、第2のアプリケーションデータと第2のターゲットスキーマとの間の第2のフィールドマッピングを受信することと、ETL処理キューから、第2のメタデータを含み、かつ、第2のアプリケーションデータに関連する第2のレコード又は第2のデータファイルが処理の準備ができていることを示す第2の信号を受信することと、第2のメタデータを処理して、識別された第2の場所から、第2のレコード又は第2のデータファイルの第2の場所を識別することによって、第2のソースデータを決定することであって、第1のソースデータと第2のソースデータは異なるフォーマットを有する、決定することと、第2のターゲットスキーマに従って定義されたテーブルに第2のソースデータを提供することであって、第1のターゲットスキーマと第2のターゲットスキーマは異なるスキーマである、提供することとを行うように構成されることを更に規定する。
【0096】
実施例32は、実施例1~14のいずれかに記載の主題を含み、ソースデータが第1のソースデータを含み、ターゲットスキーマが第1のターゲットスキーマを含み、少なくとも1つの電子プロセッサは、命令を実行して、データカタログから、第2のアプリケーションデータと第2のターゲットスキーマとの間の第2のフィールドマッピングを受信することと、ETL処理キューから、第2のメタデータを含み、かつ、第2のアプリケーションデータに関連する第2のレコード又は第2のデータファイルが処理の準備ができていることを示す第2の信号を受信することと、第2のメタデータを処理して、識別された第2の場所から、第2のレコード又は第2のデータファイルの第2の場所を識別することによって、第2のソースデータを決定することであって、第1のソースデータと第2のソースデータは異なるフォーマットを有する、決定することと、第2のターゲットスキーマに従って定義された第2のテーブルに第2のソースデータを提供することであって、第1のターゲットスキーマと第2のターゲットスキーマは異なるスキーマである、提供することとを行うように構成されることを更に規定する。
【0097】
実施例33は、実行可能命令を含む非一時的コンピュータ可読記憶媒体であって、この実行可能命令は、電子プロセッサに、データカタログから、アプリケーションデータとターゲットスキーマとの間のフィールドマッピングを受信することと、ETL処理キューから、メタデータを含み、かつ、アプリケーションデータに関連するレコード又はデータファイルが処理の準備ができていることを示す信号を受信することと、メタデータを処理して、レコード又はデータファイルの場所を識別し、識別された場所からレコード又はデータファイルを取り出すことによって、ソースデータを決定することと、ターゲットスキーマに従って定義されたテーブルにソースデータを提供することとを行わせる。
【0098】
実施例34は、実施例33の主題を含み、フィールドマッピングがアプリケーション又はサーバによってデータカタログに格納されることを更に規定する。
【0099】
実施例35は、実施例33及び34のいずれかに記載の主題を含み、アプリケーションは、アプリケーションデータを使用するように構成されることを更に規定する。
【0100】
実施例36は、実施例33~35のいずれかに記載の主題を含み、アプリケーションが、利用可能であれば、新しいレコード又は新しいソースデータファイルをデータカタログに登録するように構成されることを更に規定する。
【0101】
実施例37は、実施例33~36のいずれかに記載の主題を含み、レコード又はデータファイルが、アプリケーションによる処理の準備ができているものとして、データカタログに登録されていることを更に規定する。
【0102】
実施例38は、実施例33~37のいずれかに記載の主題を含み、レコード又はデータファイルがデータカタログによってターゲットスキーマと整合されていることを更に規定する。
【0103】
実施例39は、実施例33~38のいずれかに記載の主題を含み、信号が、データカタログによってETL処理キューに挿入されることを更に規定する。
【0104】
実施例40は、実施例33~39のいずれかに記載の主題を含み、マッピングがアプリケーションデータの種類に従って定義されることを更に規定する。
【0105】
実施例41は、実施例33~40のいずれかに記載の主題を含み、信号が、アプリケーションデータの種類と一致するレコード又はデータファイルの種類に基づいて、データカタログによって挿入されることを更に規定する。
【0106】
実施例42は、実施例33~41のいずれかに記載の主題を含み、ターゲットスキーマがデータカタログ内のターゲットビッグデータテーブルに展開されることを更に規定する。
【0107】
実施例43は、実施例33~42のいずれかに記載の主題を含み、レコード又はデータファイルが新規のものであるか、又は更新されていることを更に規定する。
【0108】
実施例44は、実施例33~43のいずれかに記載の主題を含み、信号にはレコード又はデータファイルの場所が含まれることを更に規定する。
【0109】
実施例45は、実施例33~44のいずれかに記載の主題を含み、レコード又はデータファイルが以前に提供されたスキーマに関連付けられていない場合、データカタログが、アプリケーションデータとターゲットスキーマとの間のマッピングを提供することを更に規定する。
【0110】
実施例46は、実施例33~45のいずれかに記載の主題を含み、ソースデータが、データカタログによって提供されるメタデータを使用して、ビッグデータテーブルに提供されることを更に規定する。
【0111】
実施例47は、実施例1~14のいずれかに記載の主題を含み、ソースデータが第1のソースデータを含み、ターゲットスキーマが第1のターゲットスキーマを含み、実行可能命令は、電子プロセッサに、データカタログから、第2のアプリケーションデータと第2のターゲットスキーマとの間の第2のフィールドマッピングを受信することと、ETL処理キューから、第2のメタデータを含み、かつ、第2のアプリケーションデータに関連する第2のレコード又は第2のデータファイルが処理の準備ができていることを示す第2の信号を受信することと、第2のメタデータを処理して、識別された第2の場所から、第2のレコード又は第2のデータファイルの第2の場所を識別することによって、第2のソースデータを決定することであって、第1のソースデータと第2のソースデータは異なるフォーマットを有する、決定することと、上記第2のターゲットスキーマに従って定義されたテーブルに第2のソースデータを提供することであって、第1のターゲットスキーマと第2のターゲットスキーマは異なるスキーマである、提供することとを行せることを更に規定する。
【0112】
実施例48は、実施例1~14のいずれかに記載の主題を含み、ソースデータが第1のソースデータを含み、ターゲットスキーマが第1のターゲットスキーマを含み、実行可能命令は、電子プロセッサに、データカタログから、第2のアプリケーションデータと第2のターゲットスキーマとの間の第2のフィールドマッピングを受信することと、ETL処理キューから、第2のメタデータを含み、かつ、第2のアプリケーションデータに関連する第2のレコード又は第2のデータファイルが処理の準備ができていることを示す第2の信号を受信することと、第2のメタデータを処理して、識別された第2の場所から、第2のレコード又は第2のデータファイルの第2の場所を識別することによって、第2のソースデータを決定することであって、第1のソースデータと第2のソースデータは異なるフォーマットを有する、決定することと、第2のターゲットスキーマに従って定義された第2のテーブルに第2のソースデータを提供することであって、第1のターゲットスキーマと第2のターゲットスキーマは異なるスキーマである、提供することとを行せることを更に規定する。
【外国語明細書】