(57)【要約】  実施形態は、例によって抽出、変換、およびロードマッピングを学習するためのシステムおよび方法を提供する。複数の特徴が、ソーススキーマおよびターゲットスキーマから抽出され得る。ソーステーブルからデータを抽出し、抽出されたデータをターゲットテーブルにロードするための定義を含む例示的なＥＴＬマッピングが、機械学習アルゴリズムに提供され得る。機械学習アルゴリズムを使用し、ソーススキーマ、ターゲットスキーマ、および抽出された特徴に基づいて、１つ以上のＥＴＬルールが予測され得る。１つ以上のＥＴＬルールは、ソーススキーマからデータを抽出し、抽出されたデータをターゲットスキーマにロードするためのロジックを定義する。予測されたＥＴＬルールに基づいて、追加のＥＴＬマッピングが生成され得る。追加のＥＴＬマッピングは、ソーススキーマからデータを抽出し、抽出されたデータをターゲットスキーマにロードするための追加の定義を提供する。
2021519964.tif 000002
【特許請求の範囲】
【請求項１】
例によって抽出、変換、およびロード（ＥＴＬ）マッピングを学習するための方法であって、前記方法は、
ソーススキーマおよびターゲットスキーマから複数の特徴を抽出するステップを含み、前記特徴は、前記ソーススキーマおよび前記ターゲットスキーマの複数のテーブルのカラムを少なくとも含み、前記方法はさらに、
例示的なＥＴＬマッピングを機械学習アルゴリズムに提供するステップを含み、前記例示的なＥＴＬマッピングは、前記ソーススキーマの１つ以上のテーブルからデータを抽出し、抽出された前記データを前記ターゲットスキーマの１つ以上のテーブルにロードするための定義を含み、前記方法はさらに、
前記機械学習アルゴリズムを使用し、前記ソーススキーマ、前記ターゲットスキーマ、および抽出された前記特徴に基づいて、１つ以上のＥＴＬルールを予測するステップを含み、前記１つ以上のＥＴＬルールは、前記ソーススキーマからデータを抽出し、抽出された前記データを前記ターゲットスキーマにロードするためのロジックを定義し、前記方法はさらに、
予測された前記ＥＴＬルール、前記ソーススキーマ、前記ターゲットスキーマ、および抽出された前記特徴に基づいて、追加のＥＴＬマッピングを生成するステップを含み、前記追加のＥＴＬマッピングは、前記ソーススキーマの１つ以上のテーブルからデータを抽出し、抽出された前記データを前記ターゲットスキーマの１つ以上のテーブルにロードするための追加の定義を提供する、方法。
【請求項２】
前記例示的なＥＴＬマッピングおよび前記追加のＥＴＬマッピングは、ソーステーブルの１つ以上のソースカラムとターゲットテーブルのターゲットカラムとの間の関係を定義するマッピング式を含む、請求項１に記載の方法。
【請求項３】
前記例示的なＥＴＬマッピングは、カラム名接尾辞またはカラム名接頭辞のうちの少なくとも１つを実装するマッピング式を含む、請求項１に記載の方法。
【請求項４】
前記例示的なＥＴＬマッピングは、マッピング式のソースカラムに適用される１つ以上の関数を実装するマッピング式を含む、請求項１に記載の方法。
【請求項５】
前記例示的なＥＴＬマッピングは、前記ターゲットスキーマの第１のカラムをロードするために前記ソーススキーマのカラムに適用される第１の型の関数を実装するマッピング式を含み、
前記追加のＥＴＬマッピングは、前記ターゲットスキーマの第２のカラムをロードするために前記ソーススキーマの前記カラムに適用される前記第１の型の関数を実装するマッピング式を含む、請求項４に記載の方法。
【請求項６】
予測された前記ＥＴＬルールは、前記例示的なＥＴＬマッピングによって表わされるロジックを定義する、請求項１に記載の方法。
【請求項７】
前記例示的なＥＴＬマッピングは、前記ソーススキーマと前記ターゲットスキーマの第１の組のカラムとの間の関係を表わし、
予測された前記ＥＴＬルールは、前記ソーススキーマと前記ターゲットスキーマの第２の組のカラムとの間の関係についてのロジックを定義し、前記第２の組のカラムは前記第１の組のカラムとは異なっている、請求項６に記載の方法。
【請求項８】
前記追加のＥＴＬマッピングは、予測された前記ＥＴＬルールに基づいた、前記ターゲットスキーマの前記第２の組のカラムについてのマッピング式を含む、請求項７に記載の方法。
【請求項９】
前記複数の特徴は、前記ソーススキーマおよび前記ターゲットスキーマのテーブルについての外部キーを含む、請求項１に記載の方法。
【請求項１０】
前記複数の特徴は、前記ソーススキーマのカラムについてのメタデータを含み、前記メタデータは、前記ソーススキーマのカラム間の関係を示す、請求項１に記載の方法。
【請求項１１】
プロセッサによって実行されると、前記プロセッサに、例によって抽出、変換、およびロード（ＥＴＬ）マッピングを学習することを行なわせる命令を格納した、非一時的コンピュータ読取可能媒体であって、前記学習することは、
ソーススキーマおよびターゲットスキーマから複数の特徴を抽出することを含み、前記特徴は、前記ソーススキーマおよび前記ターゲットスキーマの複数のテーブルのカラムを少なくとも含み、前記学習することはさらに、
例示的なＥＴＬマッピングを機械学習アルゴリズムに提供することを含み、前記例示的なＥＴＬマッピングは、前記ソーススキーマの１つ以上のテーブルからデータを抽出し、抽出された前記データを前記ターゲットスキーマの１つ以上のテーブルにロードするための定義を含み、前記学習することはさらに、
前記機械学習アルゴリズムを使用し、前記ソーススキーマ、前記ターゲットスキーマ、および抽出された前記特徴に基づいて、１つ以上のＥＴＬルールを予測することを含み、前記１つ以上のＥＴＬルールは、前記ソーススキーマからデータを抽出し、抽出された前記データを前記ターゲットスキーマにロードするためのロジックを定義し、前記学習することはさらに、
予測された前記ＥＴＬルール、前記ソーススキーマ、前記ターゲットスキーマ、および抽出された前記特徴に基づいて、追加のＥＴＬマッピングを生成することを含み、前記追加のＥＴＬマッピングは、前記ソーススキーマの１つ以上のテーブルからデータを抽出し、抽出された前記データを前記ターゲットスキーマの１つ以上のテーブルにロードするための追加の定義を提供する、コンピュータ読取可能媒体。
【請求項１２】
前記例示的なＥＴＬマッピングは、カラム名接尾辞またはカラム名接頭辞のうちの少なくとも１つを実装するマッピング式を含む、請求項１１に記載のコンピュータ読取可能媒体。
【請求項１３】
前記例示的なＥＴＬマッピングは、マッピング式のソースカラムに適用される１つ以上の関数を実装するマッピング式を含む、請求項１１に記載のコンピュータ読取可能媒体。
【請求項１４】
前記例示的なＥＴＬマッピングは、前記ターゲットスキーマの第１のカラムをロードするために前記ソーススキーマのカラムに適用される第１の型の関数を実装するマッピング式を含み、
前記追加のＥＴＬマッピングは、前記ターゲットスキーマの第２のカラムをロードするために前記ソーススキーマの前記カラムに適用される前記第１の型の関数を実装するマッピング式を含む、請求項１３に記載のコンピュータ読取可能媒体。
【請求項１５】
予測された前記ＥＴＬルールは、前記例示的なＥＴＬマッピングによって表わされるロジックを定義する、請求項１１に記載のコンピュータ読取可能媒体。
【請求項１６】
前記例示的なＥＴＬマッピングは、前記ソーススキーマと前記ターゲットスキーマの第１の組のカラムとの間の関係を表わし、
予測された前記ＥＴＬルールは、前記ソーススキーマと前記ターゲットスキーマの第２の組のカラムとの間の関係についてのロジックを定義し、前記第２の組のカラムは前記第１の組のカラムとは異なっている、請求項１６に記載のコンピュータ読取可能媒体。
【請求項１７】
前記追加のＥＴＬマッピングは、予測された前記ＥＴＬルールに基づいた、前記ターゲットスキーマの前記第２の組のカラムについてのマッピング式を含む、請求項１６に記載のコンピュータ読取可能媒体。
【請求項１８】
システムであって、
メモリデバイスと通信している処理デバイスを含み、前記処理デバイスは、例によって抽出、変換、およびロード（ＥＴＬ）マッピングを学習するように構成され、前記学習することは、
ソーススキーマおよびターゲットスキーマから複数の特徴を抽出することを含み、前記特徴は、前記ソーススキーマおよび前記ターゲットスキーマの複数のテーブルのカラムを少なくとも含み、前記学習することはさらに、
例示的なＥＴＬマッピングを機械学習アルゴリズムに提供することを含み、前記例示的なＥＴＬマッピングは、前記ソーススキーマの１つ以上のテーブルからデータを抽出し、抽出された前記データを前記ターゲットスキーマの１つ以上のテーブルにロードするための定義を含み、前記学習することはさらに、
前記機械学習アルゴリズムを使用し、前記ソーススキーマ、前記ターゲットスキーマ、および抽出された前記特徴に基づいて、１つ以上のＥＴＬルールを予測することを含み、前記１つ以上のＥＴＬルールは、前記ソーススキーマからデータを抽出し、抽出された前記データを前記ターゲットスキーマにロードするためのロジックを定義し、前記学習することはさらに、
予測された前記ＥＴＬルール、前記ソーススキーマ、前記ターゲットスキーマ、および抽出された前記特徴に基づいて、追加のＥＴＬマッピングを生成することを含み、前記追加のＥＴＬマッピングは、前記ソーススキーマの１つ以上のテーブルからデータを抽出し、抽出された前記データを前記ターゲットスキーマの１つ以上のテーブルにロードするための追加の定義を提供する、システム。
【請求項１９】
前記例示的なＥＴＬマッピングは、マッピング式のソースカラムに適用される１つ以上の関数を実装するマッピング式を含む、請求項１１に記載のシステム。
【請求項２０】
前記例示的なＥＴＬマッピングは、前記ターゲットスキーマの第１のカラムをロードするために前記ソーススキーマのカラムに適用される第１の型の関数を実装するマッピング式を含み、
前記追加のＥＴＬマッピングは、前記ターゲットスキーマの第２のカラムをロードするために前記ソーススキーマの前記カラムに適用される前記第１の型の関数を実装するマッピング式を含む、請求項１３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願との相互参照
本願は、２０１８年４月１６日に出願された米国特許出願第１５／９５３，８７３号の優先権を主張する。当該出願の開示はここに引用により援用される。
【０００２】
分野
本開示の実施形態は一般に、例による抽出、変換、およびロードマッピングの学習に関する。
【背景技術】
【０００３】
背景
コンピューティングデバイスおよび接続されたデバイスの急増は、管理を必要とする莫大な量のデータを生成してきた。データ科学者などの人間によってしばしば実行されるデータ管理の一局面は、抽出、変換、およびロード（extract, transform, and load：ＥＴＬ）、または、抽出、ロード、および変換（extract, load, and transform：ＥＬＴ）であり、それらは、この開示全体にわたって区別なく使用されるであろう。一般に、ＥＴＬは、データをソーススキーマからターゲットスキーマへ動かすより大きいデータ移行プロセスの１ステップである。この移行プロセスは、ほんの数例を挙げると、テーブル／カラムマッピング、抽出およびロードルール／マッピング（たとえば、結合条件、作業単位判断など）、移行後および／または移行前変換といった、複数の層を有することが多い。その結果、データ管理の他の局面は機敏で効率的になるものの、ＥＴＬは、今日の従来の手法を活用する際に扱いにくいプロセスになる場合がある。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要
本開示の実施形態は一般に、関連技術を実質的に改良する、例によって抽出、変換、およびロードマッピングを学習するためのシステムおよび方法に向けられる。
【０００５】
いくつかの実施形態では、複数の特徴が、ソーススキーマおよびターゲットスキーマから抽出され得る。特徴は、ソーススキーマおよびターゲットスキーマの複数のテーブルのカラムを少なくとも含む。例示的なＥＴＬマッピングが、機械学習アルゴリズムに提供され得る。例示的なＥＴＬマッピングは、ソーススキーマの１つ以上のテーブルからデータを抽出し、抽出されたデータをターゲットスキーマの１つ以上のテーブルにロードするための定義を含む。機械学習アルゴリズムを使用し、ソーススキーマ、ターゲットスキーマ、および抽出された特徴に基づいて、１つ以上のＥＴＬルールが予測され得る。１つ以上のＥＴＬルールは、ソーススキーマからデータを抽出し、抽出されたデータをターゲットスキーマにロードするためのロジックを定義する。予測されたＥＴＬルール、ソーススキーマ、ターゲットスキーマ、および抽出された特徴に基づいて、追加のＥＴＬマッピングが生成され得る。追加のＥＴＬマッピングは、ソーススキーマの１つ以上のテーブルからデータを抽出し、抽出されたデータをターゲットスキーマの１つ以上のテーブルにロードするための追加の定義を提供する。
【０００６】
実施形態の特徴および利点は、以下の説明で述べられ、または説明から明らかになり、またはこの開示の実践によって学習されるであろう。
【０００７】
さらなる実施形態、詳細、利点、および変更が、添付図面とともに解釈される以下の好ましい実施形態の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【０００８】
【図１】例示的な一実施形態に従った、例によって抽出、変換、およびロードマッピングを学習するためのシステムを示す図である。
【図２】例示的な一実施形態に従った、ＥＴＬ学習システムに動作可能に結合されたコンピューティングデバイスのブロック図である。
【図３】例示的な一実施形態に従ったサンプルスターデータスキーマを示す図である。
【図４】例示的な一実施形態に従ったサンプルＥＴＬ仕様を示す図である。
【図５】例示的な一実施形態に従った、ＥＴＬツールによって実現されるサンプルＥＴＬ構造を示す図である。
【図６】例示的な一実施形態に従ったサンプルスキーママッピング構造を示す図である。
【図７】例示的な一実施形態に従ったサンプルＥＴＬマッピング式を示す図である。
【図８】例示的な一実施形態に従ったサンプル属性ベクトルを示す図である。
【図９】例示的な一実施形態に従った、例によって抽出、変換、およびロードマッピングを学習するための例示的な方法を示す図である。
【発明を実施するための形態】
【０００９】
詳細な説明
実施形態は、例によって抽出、変換、およびロードマッピングを学習する。ソーススキーマとターゲットスキーマとの間の関係は複雑であることが多く、このため、ＥＴＬのための機械学習アプリケーションを難しくする。実施形態は、改良された学習を可能にする、機械学習アルゴリズムに粒状レベルのデータ点を提供するソースデータスキーマおよびターゲットデータスキーマのための特徴抽出を活用する。また、ソースデータスキーマとターゲットデータスキーマとの間の例示的なマッピングが、ＥＴＬフレームワークに従って定義される機械学習アルゴリズムに提供される。その結果、機械学習アルゴリズムは、例においてターゲットスキーマとソーススキーマとの間に示された関係に基づいて、傾向を推定することができる。これらの推定された傾向は、スキーマに特有の粒状レベルで定義されるため、機械予測を助長する詳細なレベルで定義され得る。続いて、機械学習アルゴリズムは、ソースからターゲットへのデータの移行を達成するために使用され得る新たなＥＴＬルールを予測することができる。次に、ルールインタプリタが、予測された新たなＥＴＬルールに基づいてＥＴＬマッピングを生成するために活用され得る。
【００１０】
添付図面において例が示された本開示の実施形態を、これから詳細に参照する。以下の詳細な説明では、本開示の完全な理解を提供するために、多くの特定の詳細が述べられる。しかしながら、本開示はこれらの特定の詳細がなくても実践され得るということが、当業者には明らかであろう。他の例では、実施形態の局面を不必要に不明瞭にしないように、周知の方法、手順、コンポーネント、および回路は、詳細には説明されていない。可能な限り、同じ参照番号が同じ要素について使用される。
【００１１】
図１は、一実施形態に従った、例によって抽出、変換、およびロードマッピングを学習するためのシステムを示す。システム１００は、ソーススキーマ１０２と、ターゲットスキーマ１０４と、特徴抽出１０６と、例示的なＥＴＬマッピング１０８と、機械学習コンポーネント１１０と、出力ＥＴＬルール１１２と、ルールインタプリタ１１４と、出力ＥＴＬマッピング１１６とを含む。ソーススキーマ１０２およびターゲットスキーマ１０４は、リレーショナルデータテーブル、フラットファイル、ＮｏＳＱＬデータベース、メッセージキューまたはトピック、イベントストリーム、もしくはこれらの組合せといった、データを格納するための任意のデータスキーマであり得る。たとえば、ソーススキーマ１０２および／またはターゲットスキーマ１０４は、第３正規形（Third Normal Form：３ＮＦ）スキーマといった、１組のルールまたは規格に従って構成された１組のリレーショナルテーブルを含み得る。
【００１２】
一般に、各スキーマは、データの１つ以上のカラムを有するデータテーブルを含むであろう。スキーマは、テーブルおよびテーブルが格納するデータだけでなく、テーブル間の関係によって定義される。たとえば、第１のテーブルと第２のテーブルとの間の関係は、テーブルの各々に格納されたデータをリンクする外部キーによって定義され得る。いくつかの実施形態では、２つのテーブルが複数の関係を共有してもよい（たとえば、テーブル間の関係を定義する複数の外部キーを有し得る）。テーブル間の異なるタイプの関係が、さらにここに開示されるであろう。
【００１３】
データスキーマの設計はしばしば、設計者によって異なり得る。たとえば、所与の１組の関係を有する所与の１組のデータが、さまざまな設計を有する多くのデータスキーマによって首尾よく表わされ得る。ある１組のデータを検索するためにテーブル結合を必要とする設計もあれば、必要としない設計もある。加えて、多くのレガシーシステムは、現在公知のデータベースによって容易に実現されないスキーマ設計を実現する。どのようにソーススキーマからデータを抽出し、そのデータをターゲットスキーマにロードするかを考慮する際、とりわけ、テーブル、カラム、およびキーのための命名規則といったきめ細かい詳細が、ルール／マッピング構築において重要な役割を果たす。スキーマ設計の非常に主観的な性質により、ソーススキーマ１０２に格納されたデータをターゲットスキーマ１０４へ抽出、ロード、および／または変換するルール／マッピングは、これらのスキーマに特有であり得る。
【００１４】
実施形態では、正確なルール予測を生成するように機械学習コンポーネント１１０を構成するために、特徴抽出１０６が、ソーススキーマ１０２およびターゲットスキーマ１０４に対して実行される。たとえば、特徴抽出１０６は、ＥＴＬルール／マッピング生成を可能にするきめ細かい詳細を機械学習コンポーネント１１０に提供するために使用され得る。次に、学習コンポーネント１１０は、ソーススキーマ１０２およびターゲットスキーマ１０４についてのスキーマ特有ルール／マッピングを予測するために、この細かい粒状度で分析することができる。各スキーマについて抽出される特徴は、テーブル名、カラム名、テーブル型、テーブル間の外部キー、自己参照テーブル、および多くの他の特徴を含み得る。これらの抽出される特徴は、スキーマにおけるよく使用される包括的構造またはパターンを表わし、スキーマ情報を強化し、機械学習コンポーネント１１０のための作業を単純化することができる。
【００１５】
実施形態はまた、特徴抽出１０６によって抽出された特徴をルールインタプリタ１１４に提供する。たとえば、ルールインタプリタ１１４は、抽出された特徴を活用して、予測されたルールを解釈し、出力ＥＴＬマッピング１１６を生成することができる。特徴抽出１０６による抽出のために利用可能な特徴は、さらにここに開示されるであろう。
【００１６】
実施形態は、ソーススキーマ１０２からのデータの抽出およびターゲットスキーマ１０４へのデータのロードのための例示的なＥＴＬマッピング１０８を機械学習コンポーネント１１０に提供する。例示的なマッピング１０８は、ソーススキーマ１０２およびターゲットスキーマ１０４のデータ（たとえばテーブル）間の特定のマッピングであり得る。ＥＴＬマッピング１０８は（たとえば、ソーススキーマ１０２からターゲットスキーマ１０４へ移行する）特定のデータ移行タスクに特有であるため、学習コンポーネント１１０は、特定の移行タスクが実現されるためのＥＴＬルールを予測することができる。
【００１７】
実施形態は、生成された出力ＥＴＬルール１１２をルールインタプリタ１１４へ渡す。ルールインタプリタ１１４は、ルールを解釈して出力ＥＴＬマッピング１１６を生成することができる。たとえば、機械学習コンポーネント１１０は、１つ以上の条件文（たとえば、ＸおよびＹである場合にはＺである）の形をしたルールを生成することができ、ルールインタプリタ１１４は、これらのルールを解釈することによって、ソーススキーマ１０２とターゲットスキーマ１０４との間の実際のマッピングを生成することができる。実施形態は、ソーススキーマ１０２、ターゲットスキーマ１０４、および特徴抽出１０６からの抽出された特徴を、ルールインタプリタ１１４に提供する。たとえば、出力ＥＴＬルール１１２は、ソーススキーマ１０２およびターゲットスキーマ１０４の特定の構造に基づいて、および、これらのスキーマから抽出された特定の特徴に基づいて、出力ＥＴＬマッピング１１６へと解釈され得る。
【００１８】
いくつかの実施形態では、ソーススキーマ１０２とターゲットスキーマ１０４との間の特定のマッピングのためにＥＴＬマッピング１０８が提供される場合、スキーマ設計の主観的性質によってもたらされる機械学習複雑性が緩和される。たとえば、機械学習コンポーネント１１０に提供される特定のトレーニングデータは、ソーススキーマ１０２とターゲットスキーマ１０４との間の設計差を表わすため、機械学習コンポーネント１１０によって予測された出力ＥＴＬルール１１２は、包括的スキーマ関係トレーニングデータが使用される場合に生じ得る包括的設計差に基づくのではなく、これら特定の設計差に基づくであろう。ルールインタプリタ１１４は次に、これら特定のルールを使用し、スキーマ１０２、ターゲットスキーマ１０４、および特徴抽出１０６からの抽出された特徴を使用して、同様にソーススキーマ１０２およびターゲットスキーマ１０４に特有である出力ＥＴＬマッピングを生成することができる。実施形態によって達成される機能は、以前は人間の労力を大量に必要とした、特定のソーススキーマと特定のターゲットスキーマとの間のＥＴＬマッピングを生成するための自動化された手法である。
【００１９】
いくつかの実施形態では、ソーススキーマ１０２、ターゲットスキーマ１０４、特徴抽出１０６、例示的なＥＴＬマッピング１０８、機械学習コンポーネント１１０、出力ＥＴＬルール１１２、ルールインタプリタ１１４、および出力ＥＴＬマッピング１１６は、単一のシステムまたはコンピューティングデバイスによって実現され、さまざまなコンピューティングデバイスにわたって分散されてもよく、また、いくつかの実現化例では、さまざまな場所にわたって、これらの組合せが他の好適な態様で構成されてもよい。例示的な実現化例では、システム１００の要素は、ソフトウェア、ハードウェア、またはこれらの組合せであり得る。
【００２０】
図２は、実施形態に従ったコンピュータサーバ／システム２１０のブロック図である。図２に示すように、システム２１０は、プロセッサ２２２およびメモリ２１４といった、システム２１０のさまざまなコンポーネント間で情報を通信するように構成されたバスデバイス２１２および／または他の通信メカニズムを含んでいてもよい。加えて、通信デバイス２２０は、ネットワーク（図示せず）を通してプロセッサ２２２から別のデバイスへ送信されるデータを符号化し、ネットワークを通して別のシステムから受信されたデータをプロセッサ２２２のために復号することによって、プロセッサ２２２と他のデバイスとの間の接続性を可能にしてもよい。
【００２１】
たとえば、通信デバイス２２０は、無線ネットワーク通信を提供するように構成されるネットワークインターフェイスカードを含んでいてもよい。赤外線、無線、ブルートゥース（登録商標）、Ｗｉ−Ｆｉ（登録商標）、および／またはセルラー通信を含む、さまざまな無線通信手法が使用されてもよい。それに代えて、通信デバイス２２０は、イーサネット（登録商標）接続などの有線ネットワーク接続を提供するように構成されてもよい。
【００２２】
プロセッサ２２２は、システム２１０の計算および制御機能を実行するための１つ以上の汎用または専用プロセッサを含んでいてもよい。プロセッサ２２２は、マイクロ処理デバイスといった単一の集積回路を含んでいてもよく、もしくは、プロセッサ２２２の機能を達成するために連携して作動する複数の集積回路デバイスおよび／または回路基板を含んでいてもよい。加えて、プロセッサ２２２は、メモリ２１４内に格納された、オペレーティングシステム２１５、学習コンポーネント２１６、および他のアプリケーション２１８といったコンピュータプログラムを実行してもよい。
【００２３】
システム２１０は、プロセッサ２２２による実行のための命令および情報を格納するためのメモリ２１４を含んでいてもよい。メモリ２１４は、データを検索し、提示し、修正し、格納するためのさまざまなコンポーネントを含んでいてもよい。たとえば、メモリ２１４は、プロセッサ２２２によって実行されると機能を提供するソフトウェアモジュールを格納してもよい。モジュールは、システム２１０のためのオペレーティングシステム機能を提供するオペレーティングシステム２１５を含んでいてもよい。モジュールは、オペレーティングシステム２１５、学習コンポーネント２１６、および他のアプリケーションモジュール２１８を含み得る。オペレーティングシステム２１５は、システム２１０のためのオペレーティングシステム機能を提供する。学習コンポーネント２１６は、ソーススキーマからデータを抽出し、それをターゲットスキーマにロードするＥＴＬルール／マッピングを予測するためのシステム機能を提供してもよく、または、この開示の任意の他の機能をさらに提供してもよい。いくつかの例では、学習コンポーネント２１６は、インメモリ構成として実現されてもよい。
【００２４】
非一時的メモリ２１４は、プロセッサ２２２によってアクセスされ得るさまざまなコンピュータ読取可能媒体を含んでいてもよい。たとえば、メモリ２１４は、ランダムアクセスメモリ（random access memory：ＲＡＭ）、ダイナミックＲＡＭ（dynamic RAM：ＤＲＡＭ）、スタティックＲＡＭ（static RAM：ＳＲＡＭ）、読出専用メモリ（read only memory：ＲＯＭ）、フラッシュメモリ、キャッシュメモリ、および／または任意の他のタイプの非一時的コンピュータ読取可能媒体の任意の組合せを含んでいてもよい。
【００２５】
プロセッサ２２２はさらに、バス２１２を介して、液晶ディスプレイ（Liquid Crystal Display：ＬＣＤ）などのディスプレイ２２４に結合される。キーボード２２６とコンピュータマウスなどのカーソル制御デバイス２２８とがさらにバス２１２に結合され、ユーザがシステム２１０とインターフェイス接続することを可能にする。
【００２６】
いくつかの実施形態では、システム２１０は、より大きいシステムの一部であり得る。したがって、システム２１０は、追加の機能を含むための１つ以上の追加機能モジュール２１８を含んでいてもよい。他のアプリケーションモジュール２１８は、たとえば、運用システムを含むデータウェアハウスおよびデータウェアハウスターゲットのさまざまなコンポーネント、オラクル（登録商標）データインテグレータ（Oracle Data Integrator：ＯＤＩ）、変更データキャプチャ（Change Data Capture ：ＣＤＣ）メカニズムおよびカフカ（Kafka）ストリームベースの処理を用いてオラクル（登録商標）ゴールデンゲート（Oracle Golden Gate）に基づいてソースシステムで変更されたデータを含み得るアパッチ・カフカ（Apache Kafka）、ならびに他の好適なコンポーネントを含んでいてもよい。データベース２１７がバス２１２に結合されて、モジュール２１６および２１８のための集中格納を提供するとともに、たとえば無線デバイス活動を、また、いくつかの実施形態では、ユーザプロファイル、トランザクション履歴などを格納する。データベース２１７は、論理的に関連するレコードまたはファイルの統合された集合にデータを格納することができる。データベース２１７は、運用データベース、分析データベース、データウェアハウス、分散型データベース、エンドユーザデータベース、外部データベース、ナビゲーションデータベース、インメモリデータベース、ドキュメント指向データベース、リアルタイムデータベース、リレーショナルデータベース、オブジェクト指向データベース、Hadoop分散ファイルシステム（Hadoop Distributed File System：ＨＦＤＳ）、または当該技術分野で公知の任意の他のデータベースであり得る。
【００２７】
単一システムとして示されているものの、システム２１０の機能は、分散型システムとして実現されてもよい。たとえば、メモリ２１４およびプロセッサ２２２は、集団でシステム２１０を表わす複数の異なるコンピュータにわたって分散されてもよい。一実施形態では、システム２１０は、デバイス（たとえばスマートフォン、タブレット、コンピュータなど）の一部であってもよい。
【００２８】
一実施形態では、システム２１０はデバイスから離れていてもよく、デバイスのために説明された機能を遠隔で提供してもよい。また、システム２１０の１つ以上のコンポーネントが含まれていなくてもよい。たとえば、ユーザまたは消費者デバイスとしての機能のために、システム２１０は、プロセッサとメモリとディスプレイとを含み、図２に示す他のコンポーネントのうちの１つ以上を含まず、図２に示されない追加のコンポーネントを含む、スマートフォンまたは他の無線デバイスであってもよい。
【００２９】
図３は、例示的な一実施形態に従ったサンプルスターデータスキーマを示す。データスキーマ３００は、ファクトテーブル３０２と、ディメンション＿１テーブル３０４と、ディメンション＿２テーブル３０６と、ディメンション＿３テーブル３０８とを含む。一般に、スタースキーマでは、ファクトテーブルは、ドメインに関するファクトを保持し、一方、ディメンションテーブルは、これらのファクトについての属性を保持する。その結果、ファクトテーブル３０２は、ディメンション＿１テーブル３０４、ディメンション＿２テーブル３０６、およびディメンション＿３テーブル３０８とのさまざまな外部キー関係を有する。言い換えれば、ファクトテーブルにおけるロウ（行）のうちのいくつかは、外部キー（foreign key：ＦＫ）である。外部キーは、ディメンションテーブルへのリンクであり得る。ディメンションテーブルは、１つ以上のファクトテーブルによって参照されるイベントに関連付けられたコンテキストを格納するテーブルであり得る。
【００３０】
スターデータスキーマは、スノーフレークデータスキーマに似ているが、相違点がいくつかある。たとえば、スノーフレークデータスキーマは、複数の関連テーブルに正規化されたディメンションを含み、一方、スタースキーマは、非正規化されたディメンションを有し、各ディメンションは単一のテーブルによって表わされる。これらのスキーマの各々は、データ冗長性、問合せ設計の単純性などに関連する異なる利点を提供する。たとえば、正規化の格納効率利点は、正規化されたデータスキーマを問合せる効率とのトレードオフをもたらし得る。
【００３１】
図１を再度参照して、機械学習コンポーネント１１０は、ソーススキーマ１０２、ターゲットスキーマ１０４、および例示的なＥＴＬマッピング１０８の測定可能で観察可能な特性を記述する特徴を抽出するために、特徴抽出１０６に依拠する。特徴はドメインに特有であってもよく、ソリューションの典型的な局面のうちのいくつかをカプセル化してもよい。一般に、存在する特徴がより独立しているほど、より多くの学習が可能である。下記は、ソーススキーマ１０２およびターゲットスキーマ１０４から抽出され得るサンプル特徴である。
【００３２】
テーブルまたはカラム名
名前は、ソースをターゲットテーブル／カラム（列）にマッピングする際の決定源であり得る。例示的な特徴は、以下を含む：
・ソースおよびターゲットテーブル／カラム名が同一である
・フォルダ名が、接頭辞または接尾辞を有するソース／ターゲットテーブル名からなる
・マッピング名が、接頭辞または接尾辞を有するソースまたはターゲットテーブル名からなる
・マッピング名が、テーブル名の前、後、および間に固定された文字列を有するソースおよびターゲット名からなる
・マッピング名が、似た名前を有する他のカラムにおいて単調に増加する数を含む
・ソーステーブルおよびターゲットテーブルが、｛１、２、３、４、それ以上｝の類似性距離を有して類似している
・カラム名が文字列「UDF」で始まる
・テーブルが「_L」または「_F」で終わる
・カラム名が「EFFECTIVE_DT」である
抽出された特徴のうちのいくつかは、フレームワークの一部として定義されるであろう。また、特定のテーブルまたは接頭辞および接尾辞に関連するいくつかの特徴は、ソーススキーマおよびターゲットスキーマに基づいて作成され得る。
【００３３】
カラム型
カラム型は、さまざまなＥＴＬルール／マッピングを作る決定において使用されてもよい。さまざまな実施形態に従った例示的なカラム特徴は、以下のとおりである：
・ソースおよびターゲットカラム型が同一である
・ソースはターゲット型の部分型である（たとえば、ソースはVARCHAR(20)であり、ターゲット型はVARCHAR(30)である）
・ターゲットカラム型は「Date」である
・カラムは主キーに属する
・カラムは外部キー制約に属する
・カラムは、このテーブルの外部キーに属する
・カラムは「非ヌル」制約を有する
・テーブルは、NUMBERという型のカラムを、他の型より２〜３倍以上有する。
【００３４】
テーブル関係
テーブル関係は、結合またはルックアップ条件、順序付け、およびテーブル識別を判断するために使用され得る。さまざまな実施形態に従った例示的なテーブル関係特徴は、以下のとおりである：
・テーブルは自己参照性である
・テーブルは入力外部キー制約を有する
・テーブルは出力外部キー制約を有する
・テーブルは、｛１つ、２つ、それ以上の｝出力外部キー制約を有する
・テーブルは、｛１つ、２つ、それ以上の｝入力外部キー制約を有する
・テーブルＴ１はテーブルＴ２を参照する
・テーブルＴ１は、Ｔ２に直接接続され、または、出力外部キーを通して間接的に接続される
・テーブルＴ１は、Ｔ２に直接接続され、または、Ｘ個未満の間接的関係を有して出力外部キーを通して間接的に接続される。
【００３５】
いくつかの状況では、設計者の意図が、根本的なスキーマから明らかではないかもしれない。ドメインの専門知識が、あるＥＴＬルール／マッピングを作る決定にとって有用かもしれない。たとえば、高度に接続されたデータモデルにおけるどのテーブルをデータセットに含めるべきかが明らかではないことが多い。いくつかの例では、テーブルおよびカラムについて、所望の挙動を可能にするために、追加のメタデータが根本的なデータベーススキーマに追加され得る。たとえば、１０個のテーブルが外部キー制約を通して接続されてもよいが、それらの一部のみが、「group1」属性の同じ値を有するソースデータセットに含まれてもよい。別の例では、スキーマまたはテーブルは、割り当てられた型であってもよい。たとえば、スキーマは、ファクト、ディメンション、階層またはブリッジテーブルを有するスタースキーマであってもよい。下記は、特徴抽出中に抽出され得るあるいくつかのメタデータを示す：
・メタデータ属性Ｘは、値Ｙを有する
・メタデータ属性Ｘが定義されない
・テーブルＴ１のメタデータ属性Ｘの値が、テーブルＴ２のメタデータ属性Ｘの値と同一である
・テーブルＴ１のメタデータ属性Ｘの値が、テーブルＴ２のメタデータ属性Ｘの値よりも｛小さい、大きい｝
・メタデータ属性Ｘは、｛ソース、ターゲット｝｛テーブル、カラム｝Ｙと同じ名前を有する。
【００３６】
いくつかの実施形態では、メタデータは、他の入力（たとえば、ソーススキーマ１０２の他の構造、ターゲットスキーマ１０４の他の構造、他の抽出された特徴、および例示的なＥＴＬマッピング１０８）からは容易に通信されないであろう情報を、機械学習コンポーネント１１０および／またはルールインタプリタ１１４に提供することができる。メタデータは、特定のドメイン特有の目的に依存する、名前と値のペアとして表わされ得る。場合によっては、値は、値のリスト／配列であってもよい。
【００３７】
ＥＴＬジェネレータのいくつかの実現化例は、以下のメタデータのうちの１つ以上を含み得る：
・「ソーステーブル」は、１つまたは複数のソーステーブルを識別するために、ターゲットテーブルにおいて使用され得る。これは、不適切な命名規則による不整合といった曖昧さを解決するための状況で使用され得る；
・「パターン名」および「パターン参加者」は、ソーステーブルおよびターゲットテーブルのために使用され、使用されるパターン全体と、各テーブルがどの役割を果たすか（参加者）とを明確にすることができる。たとえば、これは、ＥＴＬ使用事例で一般的な他の設計パターンに似た役割を果たすことができる；
・ソーステーブルおよびターゲットテーブルにおける「グループ」は、構造の範囲を定義するために使用され得る。たとえば、高度に接続されたデータベーススキーマでは、単位を定義するＦＫ制約を通して関連したテーブルを判断することは、難易度が高い。これらの場合、グループ化を示すことは役に立つ；
・ターゲットスキーマテーブルにおける「フィルタ条件」は、情報の一部を定義するためのソーステーブルに対する条件を表わすために使用され得る。そのような条件は、ソースシステムにおけるドメイン特有の詳細によって駆動されることが多い。そのような情報を提供することは、学習アルゴリズムが条件を生成されたルールに含めることを可能にする。
【００３８】
いくつかの実施形態では、ターゲットＥＴＬシステムのためのいくつかの標準化されたメタデータ要素のためにデフォルト挙動を実現することが可能であり得る。上述の例は、そのような包括的要素に含められ得る。いくつかの実施形態では、メタデータは、ソーススキーマに特有の他のやり方で使用されてもよい。いくつかの実施形態では、特徴抽出１０６は、ソーススキーマ１０２およびターゲットスキーマ１０４から、複数の上述の例示的な特徴を抽出する。
【００３９】
いくつかの実施形態では、出力ＥＴＬマッピング１１６は、自動化スキーママッピング、または、ソーススキーマ１０２のターゲットスキーマ１０４へのマッピングの概念に関連する。この開示の実施形態で説明される手法は、スキーママッピングだけでなく、ソーステーブルからデータを抽出し、データを変換してターゲットテーブルにロードするための手順、すなわち、ＥＴＬまたはＥＬＴとして公知のプロセスを達成する。ＥＴＬソリューションを首尾よく可能にするために、スキーママッピングは、前もって起こることが多い。いくつかの実現化例では、どのソーステーブルカラムがどのターゲットテーブルカラムにマッピングされるかを判断すれば十分である。単純な場合では、整合するソーステーブルカラムとターゲットテーブルカラムとは、十分に似た名前を使用し、関連するデータ型を定義する。
【００４０】
実施形態は、ソーススキーマ１０２をターゲットスキーマ１０４にマッピングする例示的なＥＴＬマッピング１０８を提供する。例示的なＥＴＬマッピング１０８は、容易に分析され得る任意の形で表わされてもよく、ＥＴＬ実行ファイル（たとえば、データ移行のために実行されるように構成された出力ＥＴＬマッピング１１６）を生成するための基盤である。たとえば、さまざまな実施形態で使用されるＥＴＬ拡張マークアップ言語（extensible markup language：ＸＭＬ）仕様フォーマットは、ＥＴＬツールであるオラクルデータインテグレータ（ＯＤＩ）からのＥＴＬ  ＸＭＬ仕様に類似し得る。いくつかの実施形態では、例示的なＸＭＬ  ＥＴＬ仕様は、複数の部分を含み得る：
・マッピングの定義
ｏ  マッピングの名前
ｏ  ＥＴＬソフトウェアツールに位置するフォルダの名前（たとえば、論理ファイル位置）
ｏ  ソーステーブル、ならびに、ソースをフィルタリング、ルックアップ、および結合する方法。さまざまな実施形態では、ソースは、ソーススキーマおよびターゲットスキーマに存在するかもしれない
ｏ  ターゲットテーブル
ｏ  パラメータを使用して構成された抽出（たとえば、構造化問合せ言語（structured query language：ＳＱＬ）またはデータベースリンク）および挿入戦略（たとえば、インクリメント、マージ、アペンド）
ｏ  定数を含み得る各ターゲットカラムについてのマッピング式、１つまたは複数のソースカラムを用いる１対１のカラムマッピングまたは式
・変数
ｏ  変数名
ｏ  変数型
ｏ  変数定義
・シーケンス
ｏ  シーケンスの名前
ｏ  シーケンスの型（たとえばＤＢシーケンス）
ｏ  シーケンス定義
・ＥＴＬマッピングと他のＥＴＬプリミティブ（別名パッケージ）とをオーケストレーションする方法の定義
ｏ  パッケージ名
ｏ  ＥＴＬツールに位置するフォルダの名前
ｏ  マッピングの順次または並列実行
ｏ  変数の初期化
ｏ  手順の実行。
【００４１】
ＸＭＬ仕様に加えて、ソースおよびターゲットデータベースモデルは、考慮するべき特徴を含む：
・ソーススキーマおよびターゲットスキーマの名前
・テーブル名およびカラム名
・カラムの型
・非ヌル制約、主キー制約、および外部キー制約
・一意インデックス。
【００４２】
いくつかの実施形態では、変数は、マッピングおよびＥＴＬオーケストレーション定義において参照され得る状態（数または文字列）を維持するためのＥＴＬツールのアーチファクトであり得る。いくつかの実施形態では、シーケンスは、データベース自体においてしばしば定義されるＥＴＬ定義の一部であり得る。たとえば、シーケンスは、データベースのためのデータ定義言語（data definition language：ＤＤＬ）スクリプトとして提供可能であり、または、別々に生成されてもよい。
【００４３】
さまざまな実施形態では、ソーススキーマからターゲットスキーマへのデータの抽出、変換、およびロードは、１つまたは１グループのソースが抽出され、変換され、１つまたは１グループのターゲットテーブルにロードされる１組のサブプロジェクトとして構造化される。たとえば、ＥＴＬ設計は、作業単位の一部としてどのテーブルをマッピングするかを判断することと、ソースカラムとターゲットカラムとの間のマッピング式を設計することという、ほぼ独立した２つのレベルを含み得る。作業単位は、１つまたは複数のマッピングと、手順、シーケンス定義、変数定義などといったＥＴＬソリューションのためのさまざまな他の詳細とを含み得る。下記は、これら２つのレベルについての例示的なテーブルおよびカラムマッピングを提供する。
【００４４】
テーブルマッピング設計
テーブルレベルのＥＴＬ設計は、どのソーステーブルおよびターゲットテーブルが作業単位に参加するかを考慮する。いくつかの一般的パターンが存在する：
・１対１のパターン：１つのソーステーブルが１つのターゲットテーブルにマッピングされる；
・多対１のパターン：複数のソーステーブルが１つのデータセットへと結合され、１つのターゲットテーブルにマッピングされる。これは、スタースキーマを用いて運用システムからのデータをデータウェアハウスにロードする際に一般的なシナリオである。たとえば、非正規化されたディメンションテーブルを生成するために、ディメンション階層を表わす複数のテーブルが結合される；
・１対多のパターン：１つのソーステーブルがレコードのすべてまたは一部を複数のターゲットテーブルにマッピングしてもよく、それらは、ソースカラムのすべてまたは一部を含む。この方法は、無関係なテーブル属性を別々のテーブルへと分離するために使用され得る；
・型−部分型パターン：１つのソーステーブルが複数のターゲットテーブルにマッピングされ、それらは、共通データを型テーブルへと分離し、特定の詳細を１つまたは複数の部分型テーブルへと分離する。これは、上述の１対多のパターンの特殊なケースである。型−部分型関係を有する複数のソーステーブルが１つのターゲットテーブルにマッピングされるという逆のケースも可能である；
・集計テーブルパターン：集計テーブルが典型的には、集計レベルを定義するために、測定値に対する集計関数および「group by」句を使用して、ターゲットスキーマ内で、よりきめ細かいデータを有するテーブルから導き出される。
【００４５】
カラムマッピング設計
カラムマッピングは、カラムの型、カラム型およびカラム名、ならびに利用可能なソースカラムに関連する多くの一般的変形を有する：
・テーブルの主キーに属しており、ソースからコピーされ、ＤＢシーケンスを使用して作成され、またはルックアップ演算を使用して（たとえば、左外部結合を用いて）親テーブルからコピーされ得る、カラム；
・外部キーカラムは、１つの自然キーに基づいて外部キーカラムを検索するために、ルックアップが、参照されるテーブルを有するターゲットスキーマにおいて（たとえば、左外部結合を用いて）実行されることを示唆する；
・カラムは、ソーステーブルとターゲットテーブルとの間で単純に１対１でコピーされてもよい；
・カラムは、CASTなどの単純式を使用して、ターゲットカラムの型にマッピングされてもよい；
・あるシステムカラム（たとえば、データソースＩＤ、日付の更新、または挿入データ）は、一貫して命名されてもよく、同じ式を使用するであろう。
【００４６】
いくつかの実施形態では、１つまたは複数のソーステーブルの１つのターゲットテーブルへのマッピングは、作業単位へと編成される。単純な場合では、１つのマッピングは、フォルダまたはパッケージに存在する１作業単位である。いくつかの実現化例では、フォルダは、関連するマッピング、変数定義、シーケンス定義、または手順をグループ化するという概念であり得る。同様に、パッケージは、これらの関連するＥＴＬ要素がどのシーケンスで実行されるかを定義することができる。
【００４７】
いくつかの実施形態では、型−部分型パターンは、ソーステーブルを型テーブルと１つまたは複数の部分型テーブルとにマッピングする複数のマッピングとして実現されてもよい。これらのマッピングは、フォルダまたはパッケージに位置する１作業単位を作成することができる。加えて、テーブル構造は、型情報を含むターゲットテーブルが最初にロードされ、他のすべてのテーブルがその後、またはおそらく並行してロードされることを必要としてもよい。
【００４８】
機械学習コンポーネント１１０に抽出された特徴と例示的なＥＴＬマッピング１０８とが提供された後で、新たなＥＴＬルール／マッピングが、ソーススキーマ１０２からのデータの抽出およびターゲットスキーマ１０４へのそのデータのロードのために予測され得る。いくつかの実施形態では、ソリューションフレームワークが、ソリューションのさまざまな局面を判断するために、異なるモジュールを用いて定義され得る。たとえば、これらのモジュールのうちの１つ以上は、特定のソリューションが特定のソース／ターゲットスキーマのために定義され得るように、柔軟であるよう、かつ構成可能になるよう設計され得る。いくつかの例では、決定はルールとして表わされてもよく、いくつかの例では、決定は確率または重みとして表わされる。
【００４９】
従来のＥＴＬジェネレータはしばしば、これらのルールをハードコード化する。いくつかのジェネレータは、ＥＴＬジェネレータフレームワークを特定の状況に適応させるために、ＥＴＬチームがルールを手動で書くかまたは構成することを可能にする。このアプローチは、従来のジェネレータと比べて著しい利点を有するものの、それは依然として著しい工数を必要とする。対照的に、さまざまな実施形態では、ＥＴＬプロセスの異なる局面について、ＥＴＬルールおよび構成が、提供された例示的なＥＴＬマッピング１０８を使用して自動的に（すなわち、人間の介入なしで）学習され得る。ＥＴＬルールを自動的に生成するプロセスは、複数のコンポーネントに分解されてもよく、各コンポーネントは、学習され得る決定を伴い得る。実施形態は次に、出力ＥＴＬルール１１２をルールインタプリタ１１４に提供して出力ＥＴＬマッピング１１６に到達させることができ、それらは、スキーマ間の移行を達成するために使用され得る。
【００５０】
いくつかの実施形態では、機械学習コンポーネント１１０は、ソーススキーマ１０２、ターゲットスキーマ１０４、および例示的なＥＴＬマッピング１０８から抽出された特徴に基づいて学習される局面を有し得る複数のモジュールを含み得る。たとえば、学習は、例示的なＥＴＬマッピング１０８から観察されるＥＴＬソリューションの局面を判断するスキーマ、テーブル、およびカラム特徴の組合せを学習する教師あり学習アルゴリズムを使用して達成され得る。
【００５１】
多くの点で、学習は、全般的または包括的ではない。たとえば、（たとえばサンプルＥＴＬマッピング１０８を提供する）ＥＴＬソリューションの設計者は、提供された例（および、いくつかの例では提供されたメタデータ）に基づいて、学習を、１つまたは複数の学習手法を使用して特定の問題に適合するように調整することができる。
【００５２】
いくつかの実施形態では、ＥＴＬルールの学習に先立って、さまざまな準備が実行され得る。たとえば、テーブルは、ロウのデータソース、初期ロードの日時、最終更新の日時、レコードを最後に更新した人のユーザＩＤなどといった、演算データを取込むことができる。これらのカラムは典型的には、すべてのまたは大抵のテーブルが所有するシステムカラムである。場合によっては、テーブルのグループが共通のカラムを定義してもよく、それは、共有設計の表示である。例は、型−部分型パターンのための型カラム、バージョンレコードのための有効日および現在のフラグカラム、または、階層を示す包括的ＬＶＬ＜ｎ＞カラムである。スキーマで頻繁に使用されるカラムは、追加のＥＴＬルールを予測するために機械学習コンポーネント１１０による学習中に使用され得る追加の特徴（たとえば「isCommonColumnType_x」）へと変換され得る。
【００５３】
別の例では、スキーマの構造に関する情報を追加の特徴として導き出すことは、学習を支援することができる。従来の１つの相違は、高度に正規化された運用スキーマと、非正規化されスター型に編成された報告スキーマとの間にある（たとえば、スノーフレークスキーマ対スタースキーマ）。この判断は典型的には、スキーマがスターからなるか否かを判断できるアルゴリズムを用いて下され得る。そのような判断を下す例示的なアルゴリズムは、「物理データベーステーブルおよびメタデータからの論理データベーススキーマの自動生成」（AUTOMATIC GENERATION OF LOGICAL DATABASE SCHEMAS FROM PHYSICAL DATABASE TABLES AND METADATA）と題された、マイケル・サッシン（Michael Sassin）への米国特許出願公開第２０１６／００７８０６４号において提供される。
【００５４】
関連するアルゴリズムは、スタースキーマテーブルを、ファクト、ディメンション、階層、ブリッジテーブル、ルックアップテーブルなどとして分類することができる。大抵の場合、アルゴリズムは、これらの判断を下すために外部キー制約を使用することができる。命名規則、および、カラムにおけるあるカラムまたはデータ型の出現、もしくは、NUMBERという型およびnumberでない型のカラム間の比率も、学習されてもよい。
【００５５】
いくつかの実施形態では、この種の学習を実行するために、予め分類されたテーブル型を有するスタースキーマのより大きいデータセットが提供され得る。正規化されたスキーマテーブルも、同様の手法を使用して分類されてもよい。実現化例のうちのいくつかでは、目標は、モデルパターンまたは設計原型を識別することであってもよい。他の実施形態では、この情報は、メタデータとして提供されてもよく、または、他の態様でシステムの学習コンポーネントにとって利用可能になってもよい。
【００５６】
いくつかの実施形態では、ＥＴＬマッピングは、作業単位として生成される。たとえば、スキーママッピングアルゴリズムによって判断されるカラムマッピングに基づいてテーブルを識別するための手法が、以前に開示されている。いくつかの実施形態では、スキーママッピングによって定義された作業単位は、例示的なＥＴＬマッピング１０８によって定義された作業単位に基づいている。
【００５７】
いくつかの実施形態では、ＥＴＬソリューションのための作業単位が分類され得る。各作業単位は、特定のコンテキストにおける類似した問題への再使用可能なソリューションを提供する、以前に開示されたソリューションパターンに従ってもよい。データの非正規化、型−部分型パターンのマッピングなどのために、複数のソリューションパターンが確立される。分類は、導き出された追加の特徴として役に立ち得る。なぜなら、それは、より複雑なルールのためのショートカットになり得るためである。いくつかの実施形態では、作業単位のパターンを予測するために、アルゴリズムが使用される。パターン名はメタデータとして、機械学習コンポーネント１１０に供給され得る。
【００５８】
いくつかの実施形態では、学習アルゴリズムは、分類アルゴリズムまたはルール学習アルゴリズムとして実現され得る。いくつかの例では、例による学習は、複雑な決定を学習しようとする際に課題に直面する場合がある。実施形態はまた、達成された学習に基づいてユーザが入力（たとえば選択）を提供するように促される教師あり実現化例を含み得る。例示的なアプローチが、Ｓ．ボシオネク（Bocionek）およびＭ．サッシン、「適応インターフェイスエージェントおよびプログラミング・バイ・デモンストレーション・システムのためのダイアログベースの学習」（Dialog-Based Learning (DBL) for Adaptive Interface Agents and Programming-by-Demonstration Systems）、テクニカルリポート（Technical Report）ＣＭＵ−ＣＳ−９３−１７５、カーネギーメロン大学（Carnegie Mellon University）、１９９３年７月、でさらに説明される。
【００５９】
作業単位を学習する際、結合条件はしばしば、スタースキーマまたは任意の他の好適なスキーマなどからデータセットを抽出するように要求される。たとえば、テーブルは、テーブル間の外部キー制約によって定義されたカラムを利用する条件を使用して結合され得る。結合は、外部キーカラムの非ヌル制約に依存して、内部または外部結合であってもよい。いくつかの実施形態では、この標準アプローチの変形は、参加するテーブルの特徴（たとえば、結合に参加するカラムは、代替キー、インデックスのカラムであること、または、固定された名前を単純に有することなど）に基づいて学習されてもよい。
【００６０】
作業単位を学習する際、マッピング式も、ソーススキーマ１０２とターゲットスキーマ１０４との間で学習される。マッピング式は、以下を含む複数の広範なカテゴリに該当し得る：
・主キーカラムのマッピング
・外部キーカラムのマッピング
・コードカラムのマッピング
・システムカラム
・他のカラム。
【００６１】
いくつかの実施形態では、主キーカラムは、既存の主キーカラムを検索するために代理キーを使用して、または（外部キーを介して）親テーブルをルックアップすることによって作成される。たとえば、そのような判断を下すために、ターゲットマッピング式が分析され得る。代理キーの値はデータベースシーケンスとして定義されてもよく、それは、ターゲットマッピング式にあってもよい。自然キーが使用される場合、式は、ターゲットマッピング式におけるソーステーブルの主キーカラムを定義することができる。
【００６２】
いくつかの実施形態では、ソーススキーマ１０２における外部キーカラムは、ソーススキーマ１０２における親テーブルの値をルックアップするために使用される。コードカラムは、ルックアップ演算を使用して同様の態様で外部キーカラムとして変換される。これらの例では、学習されないもののＥＴＬフレームワークによって提供される、安定した１組のルックアップまたは作成パターンが存在する。
【００６３】
たとえば、関連する式が、例示的なＥＴＬマッピング１０８によって定義され得る。たとえば、ディメンションテーブルをスタースキーマにロードする際、一般的パターンが使用され得る。ディメンションテーブルは、代理キーを主キーとして定義し、ソースシステムから生じる自然キーをルックアップキーとして提供することができる。いくつかの例では、ディメンションテーブルは、ディメンションロウがすでにロードされたかどうかを判断するために自然キーを使用するルックアップとして機能することができ、その場合、新たに到着するデータは、ディメンションの更新をトリガする変更レコードと考えられる。ディメンションをロードまたは更新するためのカラムおよびアクションおよび／またはシーケンスといった特定の詳細は、実現化例に基づいて異なり得る。ＥＴＬルールの各インスタンスについて、ソーステーブルおよびターゲットテーブルにおける参加カラムが識別され、それらの選択に関連付けられたルールが学習され得る。
【００６４】
たとえば、テーブルＳがターゲットテーブルＴにマッピングされ、それは、親テーブルＴ２との外部キー関係を有する、と仮定する。外部キーカラムをＴに代入するために、ソーステーブルＳは、Ｔ２でも利用可能である、当該関係のための１つまたは複数の自然キーカラムを有するべきである。いくつかの実施形態では、学習アルゴリズムは、例示的なＥＴＬマッピング１０８で使用されるカラムのために（たとえば、特徴抽出１０６によって抽出された）抽出特徴を使用して、外部カラム名に関する規則を学習することができる。大抵の場合、命名規則において、何らかのレベルの規則性が使用される（たとえば、名前は、親テーブルの名前を使用し、同じ接頭辞または接尾辞を使用する）。ソーステーブルまたはターゲットテーブルのいずれかが、特徴によって表わされ得る規則に従っていないいくつかの場合、カラムレベルのメタデータが、スキーマを補足するために追加され得る。
【００６５】
いくつかの実施形態では、符号化された値のルックアップは、外部キールックアップに関する場合と類似したルールに従う。潜在的な相違は、ロウのキーカラムではなく、マッピングされた値が検索されることである。他の点では、コードカラムは、キーカラムと類似したプロセスに従い得る。
【００６６】
いくつかの実施形態では、システムカラムも同様に、定数名を有するソース値をコピーすること、提供されたアイデンティティ（たとえば、最後に更新されたユーザについてのユーザＩＤ）に基づいて関数（たとえばsystem time）、定数（たとえば、CURRENT_FLGは「Ｙ」に設定される）、またはルックアップをテーブルに挿入すること、といったルールに従う。これらのルールは、例示的なＥＴＬマッピング１０８に基づいて学習され得る。
【００６７】
いくつかの実施形態では、上述のカテゴリのうちの１つに該当しない他のカラムが存在するかもしれない。多くの場合、これらのカラムは、ソースカラムから１対１でマッピングされ得る（たとえば、データは単純にターゲットカラムへ渡される）。一般的変形は、ヌル値についてソースデータがチェックされ、デフォルト値が供給されること、または、ソースカラムが切り捨てられるかまたは異なる型にはめられることである。これらのルールは、例示的なＥＴＬマッピング１０８に基づいて再び学習され得る。
【００６８】
いくつかの実現化例では、いくつかのＥＴＬルール／マッピングは複雑であるかもしれず、よって、例に基づく学習環境を助長しないかもしれない。これらの例では、複雑なルール／マッピングは学習システムによってスキップされてもよく、ユーザは、最終的なＥＴＬソリューションを達成するためにルール／マッピングを手動で生成してもよい。言い換えれば、ソーススキーマとターゲットスキーマとの間の複雑なルールおよび／またはマッピングを含むいくつかの実施形態は、自動化ルールおよびマッピング生成と手動ルールおよびマッピング生成との混合物に依拠し得る。
【００６９】
ソーススキーマ、ターゲットスキーマ、例示的なＥＴＬマッピング、および学習されたＥＴＬルールを含む使用事例が考慮される。たとえば、付録は、（親スキーマおよび子スキーマを用いて）ソーススキーマおよびターゲットスキーマを生成するために使用されるＳＱＬを含む。ソーススキーマの一実現化例は、データウェアハウスステージングスキーマであり得る。ターゲットスキーマの一実現化例は、変更レコードを有する３ＮＦ企業データウェアハウススキーマであり得る。
【００７０】
実施形態は、１つのソーステーブルが１つ以上のターゲットテーブルをロードするために使用される場合に、ＥＴＬルールおよび／またはマッピングを実現することができる。自然キーおよびバージョン番号を使用してスキーマのための外部キーをルックアップするために、レコードバージョニングが使用され得る。フィルタ条件を含むメタデータ要素が提供され得る。ソーススキーマおよびターゲットスキーマのためのシステムカラムのために、一般的なマッピング式が使用され得る。いくつかの例示的なＥＴＬマッピングは、単純な１対１のカラムマッピングを含む。
【００７１】
いくつかの実現化例では、ソーススキーマおよびターゲットスキーマは、５００個を超えるテーブルを含み得る。そのようなＥＴＬプロジェクトは、手動で実行するために著しい人手、時間（たとえば数年）、およびリソースを要し得る。しかしながら、多くのマッピングは、少数のＥＴＬパターンによって特徴付けられ得る（たとえば、マッピングの９０％は、２つまたは３つのＥＴＬパターンによって特徴付けられ得る）。いくつかの実現化例では、複雑性が低い約１００個のルールが、実施形態によって学習され得る。考慮された使用事例では、ソーススキーマおよびターゲットスキーマは、定義された命名規則に従う。
【００７２】
例示的なＥＴＬシステムのコンポーネントは、ＥＴＬツールと、ＥＴＬ仕様と、ＥＴＬトランスレータと、ＥＴＬジェネレータと、ルールインタプリタ（たとえば、図１のルールインタプリタ１１４に類似）と、学習コンポーネント（たとえば、図１の学習コンポーネント１１０に類似）とを含む。所与の実現化例では、ルールは、関連付けられた式を用いる決定および条件であり得る。場合によっては、テンプレートまたはテンプレートの一部が、ルールにリンクされ得る。
【００７３】
ＥＴＬツールの実施形態は、ＥＴＬコンポーネントおよびマッピングを表わすことができる。たとえば、ＥＴＬツールは、定義を、ソースシステムおよびターゲットシステムに対して実行される実行ファイルに変換することができる。オラクル（登録商標）データインテグレータ（ＯＤＩ）というＥＴＬツールは、いくつかの実現化例で使用される一例であり得る。ＥＴＬ仕様の一実現化例は、ＥＴＬソリューションを特定する人間読取可能および機械読取可能テキストフォーマット定義であり得る。いくつかの実施形態では、ＥＴＬ仕様は、ターゲットＥＴＬシステムからほぼ独立している。例示的なＥＴＬ仕様は、オラクル（登録商標）データウェアハウスファクトリーＥＴＬトランスレータ（Data Warehouse Factory ETL Translator：ＤＷＦ  ＥＴＬ）によって使用されるＥＴＬ仕様を含む。
【００７４】
図４は、一実施形態に従った例示的なＥＴＬ仕様を示す。仕様４００は、フォルダ名およびアーチファクト名；ソーステーブルおよびターゲットテーブルの参照；フィルタ、結合、ルックアップ、統合、および集計；ターゲットカラムおよびそれらのための式；データをテーブルから抽出／テーブルにロードする方法に関する追加命令などのうちの１つ以上についての定義を含み得る。仕様４００はＸＭＬフォーマットで定義されるが、任意の他の好適なフォーマット（たとえば、JavaScript（登録商標）オブジェクト表記法（JavaScript Object Notation：ＪＳＯＮ）、YAML Ain't Markup Language（ＹＡＭＬ）、プレーンテキストなど）が実現され得る。
【００７５】
ＥＴＬトランスレータの実施形態は、ＥＴＬ仕様を、ターゲットＥＴＬツールによって使用される定義に変換することができる。例示的なトランスレータは、ＯＤＩ定義を生成するためにＤＷＦ  ＥＴＬによって実現される。ＥＴＬジェネレータの実施形態は、典型的にはソーステーブルおよびターゲットテーブルの定義から、ＥＴＬ仕様を生成することができる。たとえば、生成されたＥＴＬ仕様は、導き出されたメタデータ、ソーススキーマおよび／またはターゲットスキーマから抽出された特徴、ならびに／もしくは、明示的なメタデータに基づき得る。いくつかの実現化例では、ＥＴＬ仕様は、たとえば、自動生成、手動生成、またはこれらの組合せに基づいて提供され得る。
【００７６】
学習コンポーネントの実施形態は、ＥＴＬフレームワーク（たとえば、ＥＴＬ仕様、および他のＥＴＬ構成）ならびにＥＴＬジェネレータのコンテキストにおいて特定の決定を定義することができる。図１の機械学習コンポーネント１１０を参照して開示されたように、学習コンポーネントは、例示的なＥＴＬマッピングに基づいてＥＴＬルールを生成することができる。この考慮された使用事例では、例示的なＥＴＬマッピングは、ＥＴＬ仕様定義および／またはスキーマメタデータとして表わされ得る。学習は、スキーマのデータの異なるルール／マッピング／グループに特有であり得る。いくつかの実施形態では、学習コンポーネントは、データの異なるルール／マッピング／グループのために特定の学習タスクを実行する（および、特定の機械予測を行なう）ように各々構成された複数の機械学習アルゴリズムを実現するように構成され得る。
【００７７】
実施形態は、ソーススキーマとターゲットスキーマとの間のスキーママッピングの一部を生成するために機械学習を活用することを含む。たとえば、学習コンポーネントに提供された例示的なＥＴＬマッピングに基づいて、マッピングの一部が学習され予測され得る。いくつかの実現化例では、その一部は、ソーススキーマからの大きい割合のデータ（たとえば、テーブル／カラムの９０％）であり得る。いくつかの実現化例は、総合的な１組を生成するために手動マッピングを活用することを含む。いくつかの実施形態では、学習コンポーネントが総合的な１組のマッピングを生成することを可能にするために、十分な例示的なＥＴＬマッピングが提供され得る。
【００７８】
学習コンポーネントによって実行されるＥＴＬ学習の局面は、ＥＴＬソリューションの詳細を含む。図５は、一実施形態に従ったＥＴＬツール（たとえばＯＤＩ）のフォルダ構造を示す。構造５００は、マッピングおよび他のＥＴＬ手順において使用されるＯＤＩフォルダおよび／またはサブフォルダの名前であり得るフォルダ５０２を含む。フォルダ命名方式の実施形態は、定数（たとえば、フォルダ５０２の要素によって示されるような「LOAD_DI_HDWF…」）を含んでいてもよく、および／または、ソース／ターゲットテーブルの名前を含んでいてもよい。構造５００はまた、ＥＴＬ要素５０４を含んでいてもよく、それらはパッケージ、マッピング、および手順であり得る。これらのＥＴＬ要素５０４も、ソース／ターゲットテーブルの名前を含んでいてもよい。マッピングはしばしば、マッピングに関連するソーステーブルまたはターゲットテーブルに基づいてグループ化され得る。
【００７９】
図６は、一実施形態に従ったマッピング構造を示す。たとえば、マッピング構造６００は、所与のマッピングにおいて使用されるテーブル６０２を含む。これらのテーブルはしばしば、ＥＴＬについての「パターン」において定義される。テーブルは、マッピング構造内で外部キーを介して参照され得る。フィルタ６０４がテーブル６０２に適用され、たとえばソーステーブルに適用され得る。例示的なフィルタ機能性は、ルール／条件に基づくロウフィルタリングおよびカラムフィルタリングを含み得る。フィルタ（たとえば、フィルタについてのルール／条件）が、メタデータを通して供給され、または、他のメカニズムを通して提供され得る。フィルタリング機能性は、ＥＴＬプロセスフローにおけるデータ操作および／または変換段階の一部であり得る。たとえば、フィルタ６０４は、ソースデータテーブルからのソースデータをターゲットデータテーブルにマッピングするための関連するマッピングにおいて使用されるデータ操作を表わし得る。
【００８０】
実施形態は、データ（たとえばソースデータ）を操作、変換、および／またはフィルタリングするために結合を実行することを含む。結合は、外部キー制約を使用して実行され得る。ルックアップ６０６は、マッピング構造における関連するターゲットデータテーブルへの参照であり得る。ルックアップ６０６は同様に、外部キー制約に基づいて定義され得る。マッピング構造６００は、さまざまな実施形態に従った、ソーススキーマとターゲットスキーマとの間のマッピングのための構造を表わし得る。
【００８１】
図７は、一実施形態に従ったマッピング式を示す。たとえば、構造７００は、マッピング式７０２、７０４、７０６、および７０８を含む。マッピング式は、（たとえばデータテーブルからの）ソースデータをターゲット属性およびデータテーブルにマッピングすることができる。いくつかの例では、マッピング式７０４によって示されるように、ソースカラムが、似た名前を有するターゲットカラムにマッピングされ得る。いくつかの例では、マッピング式７０８において示されるように、sysdateなどのシステム関数が、マッピング式において使用され得る。
【００８２】
いくつかの例では、マッピング式７０２において示されるように、「：」または「＃」で始まる文字列を取り込む変数などの変数が、マッピング式において使用され得る。いくつかの例では、マッピング式７０６において示されるように、CAST、NVL、または何らかの他のカスタム関数などの関数が、カラムを包むために使用され得る。実施形態はまた、SUM、AVG、Group Byなどの集計関数をマッピング式内に含む。
【００８３】
考慮された使用事例と付録で開示されたソーススキーマおよびターゲットスキーマとを参照して、実現された学習コンポーネントは、（以下にさらに開示される）ソーススキーマ、ターゲットスキーマ、抽出された特徴、および例示的なマッピングに基づいて、データにおける多くの傾向を学習することができる。テーブルにおけるシステムカラムは、ソーステーブルおよびターゲットテーブルにおいて系統的に使用され得る。たとえば、データレコードが追加、更新、または削除されてもよく、ユーザが作成および更新されてもよく、フラグ機能性が一貫していてもよい。
【００８４】
学習コンポーネントの実施形態は、著しい数のソースおよび／またはターゲットテーブルに生じる、同じ名前を有するカラムについての式を学習することができる。状況によっては、カラムマッピングは、（たとえば、型に基づいて）カラム名ごとに１つまたはいくつかの変形を定義することができる。学習コンポーネントは、この変形のための基準を具体的に判断することができる。
【００８５】
実施形態は、学習コンポーネントをトレーニングするためにデータを選択することを含み得る。たとえば、例示的なＥＴＬマッピングにわたって同じターゲットカラムへのマッピングを選択することは、いくつかの実現化例について学習成果を改良することができる。カラムマッピングに対する決定は、参加カラムに直接関連するメタデータに基づいて実行されてもよく、メタデータは、ある状況では、カラムのテーブルについてのメタデータを含むように、たとえば、名前またはパターン型などの情報を含むように拡張され得る。考慮された使用事例についての例示的なカラムメタデータは、名前、接頭辞または接尾辞などの名前に関連する特徴、コラムデータ型、付加的に追加されたメタデータ要素などを含む。
【００８６】
図８は、例示的な一実施形態に従ったサンプル属性ベクトルを示す。たとえば、属性ベクトル８００は、考慮された使用事例に関連するソーススキーマ、ターゲットスキーマ、および抽出された特徴のデータを含み得る。カラム８０２はソースカラム属性を示し、一方、カラム８０４はターゲットカラム属性を示す。特徴８０６は、関連するカラム名についての接頭辞および接尾辞といった、ソーススキーマからの抽出された特徴を示す。マッピング式８０８は、たとえば学習コンポーネントによって学習されるマッピング式を示す。
【００８７】
一実施形態では、使用事例において、複数の例示的なマッピング式が、学習コンポーネントに提供され得る。例示的なマッピング式「trg.update_date = src.update」は、使用事例データ（たとえば、付録からのソーススキーマおよびターゲットスキーマ）において５回の出現を有する。加えて、例示的なマッピング式「trg.update_date = CAST(src.update, DATE)」は、使用事例データにおいて４回の出現を有する。ソースカラムupdate_dateは、例示的なマッピングの第１の組においてDateという型を使用し、例示的なマッピングの第２の組においてTimestampという型を使用する。したがって、第２の組の例についてのマッピング式において、CAST関数が使用される。示された使用事例では、学習コンポーネントの目標は、同様のマッピング式がいつあてはまるかを学習すること、および、適切な状況でこれらのマッピング式のうちの１つ（たとえば、CASTまたはそれ以外）を選ぶことであり得る。
【００８８】
学習コンポーネントの実施形態は、所望の学習／予測を達成するために、ＩＤ３決定木学習アルゴリズムまたは任意の他の好適な学習アルゴリズムを実現することができる。たとえば、学習コンポーネントは、以下のロジックを学習することができる。
【００８９】
【数１】
2021519964.tif 000003
【００９０】
例示的な使用事例では、学習コンポーネントの実施形態は、システムカラムtrg.update_dtについてのマッピングを学習／予測することができる。この学習／予測は、学習コンポーネントに提供された類似する例示的なマッピング（たとえば、上述の「trg.update」および「srcupdate」についてのマッピング式）に基づき得る。加えて、使用事例では、実施形態は、「CAST」関数を用いるマッピング式をいつ選択するべきか、および他のマッピング式をいつ選択するべきかを判断するために、ロジックを学習／予測することができる。学習されたマッピング式についてのロジックは、提供された例示的なマッピング式におけるロジックと同様である。すなわち、データ型がTimestampである場合、CASTが使用される。同様に、他の使用事例は、ソーススキーマとターゲットスキーマとの間のパターンを示す他の例示的なマッピング式を提供することができ、学習コンポーネントは、ＥＴＬルールを予測するために、同様のマッピング式をいつ、どのようにデータの他の局面に適用するべきかを学習することができる。
【００９１】
使用事例を考慮して、学習されたＥＴＬルールは、ルールインタプリタによって解釈され得る。たとえば、ルールインタプリタは、上述の学習されたロジックを解釈し、ソーススキーマ、ターゲットスキーマ、および抽出された特徴に基づいて、ルール（および表わされたロジック）に従ったＥＴＬマッピングを生成することができる。特に、ＥＴＬマッピングは、trg.update_dtカラムについて生成され得る。生成されたマッピングは次に、ＥＴＬソリューションにおいて使用されてもよく、最終的には、ソーススキーマからターゲットスキーマへのデータ移行を達成するために使用されてもよい。
【００９２】
実施形態では従来のＥＴＬが考慮されているが、ストリーム処理ＥＴＬも実現され得る。たとえば、さまざまな実現化例ではアパッチ・カフカが含まれていてもよく、その場合、カフカ・ストリーム（Kafka Streams）アプリケーションプログラミングインターフェイス（Application Programming Interface：ＡＰＩ）、アパッチ・ストーム（Apache Storm）、アパッチ・スパーク（Apache Spark）、アパッチ・サムザ（Apache Samza）といったさまざまなストリーム処理フレームワークによって、メッセージストリームが消費され得る。いくつかの実施形態では、開示されたさまざまなソリューションを達成するために、バッチ処理ではなく、ストリーム処理が実現され得る。
【００９３】
図９は、例示的な一実施形態に従った、例によって抽出、変換、およびロードルールを学習するための例示的な機能性を示す。一実施形態では、以下の図９の機能は、メモリまたは他のコンピュータ読取可能媒体または有形媒体に格納され、プロセッサによって実行されるソフトウェアによって実現される。他の実施形態では、各機能は、ハードウェアによって（たとえば、特定用途向け集積回路（application specific integrated circuit：ＡＳＩＣ）、プログラマブルゲートアレイ（programmable gate array：ＰＧＡ）、フィールドプログラマブルゲートアレイ（field programmable gate array：ＦＰＧＡ）などの使用を通して）、または、ハードウェアとソフトウェアとの任意の組合せによって実行されてもよい。
【００９４】
９０２で、複数の特徴が、ソーススキーマおよびターゲットスキーマから抽出され得る。特徴は、ソーススキーマおよびターゲットスキーマの複数のテーブルのカラムを少なくとも含む。いくつかの実施形態では、特徴はさらに、カラムについての識別子、カラムについてのメタデータ、テーブルについての外部キー、および他の好適な特徴を含み得る。いくつかの例では、ソーススキーマにおけるカラムについてのメタデータは、そのカラムとソーススキーマの他のカラム／テーブルとの間の関係を示すことができ、または、他の好適なデータ関係を示すことができる。
【００９５】
９０４で、例示的なＥＴＬマッピングが、機械学習アルゴリズムに提供され得る。例示的なＥＴＬマッピングは、ソーススキーマの１つ以上のテーブルからデータを抽出し、抽出されたデータをターゲットスキーマの１つ以上のテーブルにロードするための定義である。例示的なＥＴＬマッピングは、ソーステーブルの１つ以上のソースカラムとターゲットテーブルのターゲットカラムとの間の関係を定義するマッピング式であり得る。
【００９６】
いくつかの実施形態では、例示的なＥＴＬマッピングは、カラム名接尾辞またはカラム名接頭辞のうちの少なくとも１つを実装するマッピング式を含み得る。いくつかの実施形態では、例示的なＥＴＬマッピングは、マッピング式のソースカラムに適用される１つ以上の関数を実装するマッピング式を含み得る。
【００９７】
９０６で、機械学習アルゴリズムを使用し、ソーススキーマ、ターゲットスキーマ、および抽出された特徴に基づいて、１つ以上のＥＴＬルールが予測され得る。１つ以上のＥＴＬルールは、ソーススキーマからデータを抽出し、抽出されたデータをターゲットスキーマにロードするためのロジックを定義する。いくつかの実施形態では、予測されたＥＴＬルールは、例示的なＥＴＬマッピングによって表わされるロジックを定義し得る。
【００９８】
一実施形態では、例示的なＥＴＬマッピングは、ソーススキーマとターゲットスキーマの第１の組のカラムとの間の関係を表わす。予測されたＥＴＬルールは、ソーススキーマとターゲットスキーマの第２の組のカラムとの間の関係についてのロジックを定義することができ、第２の組のカラムは第１の組のカラムとは異なっている。一実施形態では、追加のＥＴＬマッピングは、予測されたＥＴＬルールに基づいた、ターゲットスキーマの第２の組のカラムについてのマッピング式を含む。
【００９９】
９０８で、予測されたＥＴＬルールは解釈され得る。たとえば、ソーススキーマとターゲットスキーマとの間のマッピング式を生成するために、ルールインタプリタが、ＥＴＬルールで定義されたロジックを解釈することができる。解釈は、ソーススキーマ、ターゲットスキーマ、および抽出された特徴に基づき得る。いくつかの実施形態では、ＥＴＬソリューションの詳細を定義するＥＴＬ仕様が実現され、解釈はＥＴＬ仕様に基づき得る。
【０１００】
９１０で、予測されたＥＴＬルール、ソーススキーマ、ターゲットスキーマ、および抽出された特徴に基づいて、追加のＥＴＬマッピングが生成され得る。追加のＥＴＬマッピングは、ソーススキーマの１つ以上のテーブルからデータを抽出し、抽出されたデータをターゲットスキーマの１つ以上のテーブルにロードするための追加の定義を提供する。たとえば、追加のＥＴＬマッピングを生成するために、ルールインタプリタが使用され得る。いくつかの実施形態では、追加のＥＴＬマッピングは、ソーステーブルの１つ以上のソースカラムとターゲットテーブルのターゲットカラムとの間の関係を定義するマッピング式を含み得る。
【０１０１】
一実施形態では、例示的なＥＴＬマッピングは、ターゲットスキーマの第１のカラムをロードするためにソーススキーマのカラムに適用される第１の型の関数を実装するマッピング式を含み得る。追加のＥＴＬマッピングは、ターゲットスキーマの第２のカラムをロードするためにソーススキーマのカラムに適用される第１の型の関数を実装するマッピング式を含み得る。
【０１０２】
実施形態は、例によって抽出、変換、およびロードマッピングを学習する。ソーススキーマとターゲットスキーマとの間の関係は複雑であることが多く、このため、ＥＴＬのための機械学習アプリケーションを難しくする。実施形態は、改良された学習を可能にする、機械学習アルゴリズムに粒状レベルのデータ点を提供するソースデータスキーマおよびターゲットデータスキーマのための特徴抽出を活用する。また、ソースデータスキーマとターゲットデータスキーマとの間の例示的なマッピングが、ＥＴＬフレームワークに従って定義される機械学習アルゴリズムに提供される。その結果、機械学習アルゴリズムは、例においてターゲットスキーマとソーススキーマとの間に示された関係に基づいて、傾向を推定することができる。これらの推定された傾向は、スキーマに特有の粒状レベルで定義されるため、機械予測を助長する詳細なレベルで定義され得る。続いて、機械学習アルゴリズムは、ソースからターゲットへのデータの移行を達成するために使用され得る新たなＥＴＬルールを予測することができる。次に、ルールインタプリタが、予測された新たなＥＴＬルールに基づいてＥＴＬマッピングを生成するために活用され得る。
【０１０３】
この明細書全体にわたって説明されたこの開示の特徴、構造、または特性は、１つ以上の実施形態において任意の好適な態様で組合されてもよい。たとえば、この明細書全体にわたる「一実施形態」、「いくつかの実施形態」、「ある実施形態」、または他の同様の文言の使用は、その実施形態に関連して説明された特定の特徴、構造、または特性が、本開示の少なくとも１つの実施形態に含まれ得るという事実を指す。このため、この明細書全体にわたる「一実施形態」、「いくつかの実施形態」、「ある実施形態」という句、または他の同様の文言の出現は、必ずしもすべてが同じグループの実施形態を指すとは限らず、説明された特徴、構造、または特性は、１つ以上の実施形態において任意の好適な態様で組合されてもよい。
【０１０４】
当業者であれば、上述されたような実施形態は、異なる順序のステップを用いて、および／または、開示されるものとは異なる構成における要素を用いて実践され得る、ということを容易に理解するであろう。したがって、この開示は概説された実施形態を考慮しているが、ある変更、変形、および代替構造が、この開示の精神および範囲内にとどまりながら明らかであろう、ということが、当業者には明らかであろう。したがって、この開示の境界を判断するために、添付された請求項を参照するべきである。
【０１０５】
付録：
ソーステーブル：
【０１０６】
【数２】
2021519964.tif 000004
2021519964.tif 000005
2021519964.tif 000006
2021519964.tif 000007
2021519964.tif 000008
2021519964.tif 000009
【０１０７】
ターゲットテーブル−親：
【０１０８】
【数３】
2021519964.tif 000010
2021519964.tif 000011
2021519964.tif 000012
2021519964.tif 000013
【０１０９】
ターゲットテーブル−子：
【０１１０】
【数４】
2021519964.tif 000014
2021519964.tif 000015
【図１】
2021519964.tif 000016
【図２】
2021519964.tif 000017
【図３】
2021519964.tif 000018
【図４】
2021519964.tif 000019
【図５】
2021519964.tif 000020
【図６】
2021519964.tif 000021
【図７】
2021519964.tif 000022
【図８】
2021519964.tif 000023
【図９】
2021519964.tif 000024
【国際調査報告】
2021519964.tif 000025
2021519964.tif 000026
2021519964.tif 000027