(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-02
(45)【発行日】2024-10-10
(54)【発明の名称】データベース移行のための機械学習予測
(51)【国際特許分類】
G06F 16/21 20190101AFI20241003BHJP
【FI】
G06F16/21
(21)【出願番号】P 2021504767
(86)(22)【出願日】2020-05-11
(86)【国際出願番号】 US2020032318
(87)【国際公開番号】W WO2021154321
(87)【国際公開日】2021-08-05
【審査請求日】2023-02-20
(32)【優先日】2020-01-31
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】カワス,マレー・ケイ
(72)【発明者】
【氏名】サーランギー,サウミカ
(72)【発明者】
【氏名】バス,スディプト
(72)【発明者】
【氏名】ボース,ラナジョイ
(72)【発明者】
【氏名】ナタラジャン,パドマ・プリヤ・ラジャン
(72)【発明者】
【氏名】ラーオ,ボガプラプ・エル・ケイ
(72)【発明者】
【氏名】ヤーミニ,パルール
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】国際公開第2020/012380(WO,A1)
【文献】国際公開第2019/016718(WO,A1)
【文献】特開2015-026372(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
データベース移行のための機械学習予測を生成するため
にコンピュータが実行する方法であって、
トレーニングデータを用いてトレーニングされたトレーニング済み機械学習モデルを格納するステップを含み、前記トレーニングデータは、複数のデータベース移行についての移行情報と、前記複数のデータベース移行のための移行方法とを含み、前記トレーニングデータの移行情報は、ソース・データベース・タイプおよびターゲット・データベース・インフラストラクチャを含み、前記方法はさらに、
ソース・データベース・タイプおよびターゲット・データベース・インフラストラクチャを含む候補データベース移行についての候補データベース移行情報を受信するステップと、
前記トレーニング済み機械学習モデルを用いて、前記候補データベース移行情報に基づいて移行方法を予測するステップとを含む、方法。
【請求項2】
前記トレーニングデータは、所与のデータベース移行についての移行情報のインスタンスと、前記所与のデータベース移行のための移行方法のインスタンスとを含み、前記移行方法は前記トレーニングデータのためのラベルを含む、請求項1に記載の方法。
【請求項3】
前記移行方法は、データベース複製、プラグ接続可能なデータベース実装、災害回復切替え、データベースクローニング、ならびに、データポンプ従来型エクスポートおよびインポートのうちの1つ以上を含む、請求項2に記載の方法。
【請求項4】
前記候補データベース移行情報は、前記
ソース・データベース・タイプに対応するソース・データベースを実装するコンピューティングデバイス上で実行されるスクリプトによって生成される、請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記複数のデータベース移行についての前記移行情報と、前記候補データベース移
行情報とは、ソース・データベース・サイズ、帯域幅基準およびダウンタイム基準を含む、請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記候補データベース移行のための前記予測された移行方法に関連する移行結果を含むフィードバック情報を受信するステップと、
トレーニングデータのインスタンスを生成するために前記フィードバック情報を処理するステップと、
データベース移行、前記データベース移行のための移行方法、および前記データベース移行のための前記移行方法に関連する結果を含むフィードバック情報に基づいて、前記処理されたフィードバック情報および複数の追加の処理されたフィードバック情報を含む更新済みトレーニングデータを生成するステップと、
前記更新済みトレーニングデータを用いて前記トレーニング済み機械学習モデルを再トレーニングするステップとを含む、請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記トレーニング済み機械学習モデルが、トレーニング済み機械学習モデルのセットからの複数の予測を集約するアンサンブル機械学習モデルを含む、請求項1~6のいずれか1項に記載の方法。
【請求項8】
前記トレーニングデータについての前記移行情報は移行特徴のセットを含み、前記移行特徴のセットは移行特徴の複数のサブセットに分割され、前記トレーニング済み機械学習モデルのセットは、前記移行特徴の複数のサブセットを受信して前記複数の予測を生成するように構成される、請求項7に記載の方法。
【請求項9】
前記トレーニング済み機械学習モデルのセットは、予測を生成するために前記移行特徴の異なるセットを受信するように構成される、請求項8に記載の方法。
【請求項10】
前記候補データベース移行情報を機械読取可能フォーマットに翻訳するステップをさらに含み、前記候補データベース移行情報は、前記候補データベース移行情報についてのデータ値の閉リストに基づいて、予め定められたマッピングを用いて、機械読取可能フォーマットデータにマッピングされ、前記方法はさらに、
前記トレーニング済み機械学習モデルを用いて、翻訳された前記移行情報に基づいて、前記候補データベース移行のための移行方法を予測するステップを含む、請求項1~9のいずれか1項に記載の方法。
【請求項11】
コンピュータに請求項1~10のいずれか1項に記載の方法を実行させる、プログラム。
【請求項12】
データベース移行のための機械学習予測を生成するためのシステムであって、
請求項11に記載のプログラムを格納するメモリと、
前記プログラムを実行するための1つ以上のプロセッサとを含む、システム。
【発明の詳細な説明】
【技術分野】
【0001】
分野
本開示の実施形態は、概して、データベース移行のための機械学習予測に関する。
【背景技術】
【0002】
背景
コンピューティングデバイスおよび接続されたデバイスの急増により、管理が必要なデータの量が膨大になりつつある。データのサイズが大きくなるにつれて、データの効率的な管理に関連する技術的課題はますます複雑になってきている。たとえば、或る実装例から次の実装例へのデータ移行、たとえば、オンプレミス実装例からクラウドベース実装例へのデータ移行などは、専門家の知識に依拠することが多い。さらに、データサービスの構成上の信頼性を考えると、移行中のデータベース可用性についての要件を満たすことが困難になる可能性がある。したがって、効率的なデータベース移行の技術によりデータ管理システムを向上させることができる。
【発明の概要】
【課題を解決するための手段】
【0003】
概要
本開示の実施形態は、概して、データベース移行のための機械学習予測を生成するためのシステムおよび方法を対象とする。トレーニングデータを用いてトレーニングされたトレーニング済み機械学習モデルを格納することができる。この場合、トレーニングデータは、データベース移行についての移行情報と、当該データベース移行のための移行方法とを含み、トレーニングデータ移行情報は、ソース・データベース・タイプおよびターゲット・データベース・インフラストラクチャを含む。ソース・データベース・タイプおよびターゲット・データベース・インフラストラクチャを含む候補データベース移行についての移行情報を受信することができる。トレーニング済み機械学習モデルを用いて、当該候補データベース移行についての当該移行情報に基づいて移行方法を予測することができる。
【0004】
実施形態の特徴および利点は、以下の説明に記載されるか、または以下の説明から明らかになり得るか、または本開示を実施することによって学習され得る。
【0005】
図面の簡単な説明
さらなる実施形態、詳細、利点、および変更は、添付の図面に関連付けて解釈されるべき好ましい実施形態についての以下の詳細な説明から明らかとなるだろう。
【図面の簡単な説明】
【0006】
【
図1】例示的な実施形態に従った、データベース移行のための機械学習予測を生成するためのシステムを示す図である。
【
図2】例示的な実施形態に従った、予測システムに動作可能に結合されたコンピューティングデバイスを示すブロック図である。
【
図3】例示的な実施形態に従った予測システムを示す図である。
【
図4】例示的な実施形態に従った機械学習モデルを向上させるためのフィードバックを受信するためのシステムを示す図である。
【
図5】例示的な実施形態に従った、データベース移行のための機械学習予測を生成するためのフロー図である。
【
図6】例示的な実施形態に従った、機械学習モデルを向上させるためのフィードバックを受信するためのフロー図である。
【発明を実施するための形態】
【0007】
詳細な説明:
実施形態は、トレーニング済み機械学習モデルを用いたデータベース移行のための移行技術を予測する。たとえば、オンプレミス・コンピューティングデバイスからクラウドコンピューティングシステムへの移行などのデータベース移行は、データベース複製、クローニング、プラグ接続可能なデータベース実装、および他の技術などのいくつかのさまざまな技術および技術の組合わせを用いて実装され得る。ソース・データベース実装/タイプ、ターゲット・データベース・インフラストラクチャ、ダウンタイム基準、帯域幅基準、および他の環境などの移行のための環境に基づいて、これらのデータベース移行技術のうちのいくつかは他の技術よりも有効であり得る。たとえば、しばしば、専門家は経験に基づいて移行技術を選択する可能性もある。
【0008】
実施形態は、所与の移行のための環境に基づいてデータベース移行技術を予測するためにトレーニング済み機械学習モデルを用いる。たとえば、トレーニングデータは、データベース移行についての情報と、移行を実現するのに用いられる技術(たとえば、移行のための環境を考慮すると成功すると見なされる技術)とを含み得る。このトレーニングデータは、機械学習モデルをトレーニングするために用いることができる。この場合、トレーニングは、データ中のトレンドを学習するようにモデルを構成することができる。したがって、トレーニング済みモデルは、データベース移行のための環境のセットを考慮すると有効となるであろう移行技術を予測するのに有効であり得る。言い換えれば、候補データベース移行をトレーニング済み機械学習モデルに供給することができるとともに、トレーニングデータ内の学習済みトレンドに基づいて移行技術についての予測を生成することができる。
【0009】
ここで、本開示の実施形態について詳細に説明するが、これらの例は添付の図面に例示されている。以下の詳細な説明では、本開示を完全に理解できるようにするために多数の具体的な詳細を記載している。しかしながら、本開示がこれらの具体的な詳細なしでも実施され得ることが当業者には明らかであるだろう。これらの実施形態の局面を不必要に曖昧にすることを避けるために、他の例では、周知の方法、手順、構成要素および回路は詳細には説明していない。同様の要素には可能な限り同様の参照番号が用いられるだろう。
【0010】
図1は、例示的な実施形態に従ったデータベース移行のための機械学習予測のためのシステムを示す。システム100は、ユーザデバイス102、移行情報の提出104、リポジトリ106、スクリプト実行および提出108、クラウドシステム110、サーバ112、機械学習コンポーネント114、ならびに、データセット116を含む。たとえば、システム100は、ソース・データベースをターゲット・データベースに移行させるための移行技術を予測するために用いることができる。ソース・データベースをターゲット・データベースに移行させるための移行情報は、ユーザによって提出すること(移行情報の提出104によって表わすこと)、および/または、スクリプトによって自動的に抽出するとともに提出すること(スクリプト実行および提出108によって表すこと)ができる。いくつかの実施形態においては、ユーザデバイス102は、移行のためのソース・データベースを実装する任意の好適なコンピューティングデバイスであり得るか、または、移行のためのソース・データベースを実装するシステムの一部である。
【0011】
いくつかの実施形態においては、移行情報の提出104は、ユーザによる移行情報の(たとえば、スプレッドシート、ウェブフォーム、プログレッシブ・ウェブアプリケーションなどへの)手動入力を含み得る。この提出はクラウドシステム110に伝達することができる。いくつかの実施形態においては、スクリプト実行および提出108は、ソースシステム/ソース・データベースから移行情報を抽出するように構成されたスクリプト(または、実行可能コードなど、他の任意の形態のコード)の実行を含み得る。たとえば、スクリプトは、リポジトリ106(たとえば、Githubまたは他の任意のリポジトリ)から抽出され得るとともに、ソースシステム/ソース・データベース上で実行され得る。スクリプトは、ソース・データベースと、ソース・データベースを実装するソースシステムとについての移行情報を抽出することができる。スクリプト実行および提出108は、移行情報を有するペイロードまたはドキュメントを生成し、これをクラウドシステム110に伝達することを含み得る。
【0012】
いくつかの実施形態においては、移行情報の提出104は、スクリプト実行および提出108とともに実現され得る。たとえば、スクリプトの実行は、ソース・データベースおよびソースシステムについての移行情報を生成することができるが、他の移行情報(たとえば、ターゲット・データベース・インフラストラクチャ、帯域幅基準、ダウンタイム基準など)を手動で入力することができるか、または、スクリプトによって生成される移行情報を手動入力で上書きすることができる。いくつかの実施形態においては、スクリプトは、追加の移行情報をユーザに促すように構成され得る。たとえば、スクリプト実行および提出108は、いくつかの移行情報(たとえば、ターゲット・データベース・インフラストラクチャ、帯域幅基準、ダウンタイム基準など)をユーザに促すことおよび手動入力することを含み得る。この実施形態においては、スクリプトによって生成されるとともにクラウドシステム110に伝達されるペイロードまたはドキュメントは、ソースシステム/データベースに関して抽出された情報と、手動で入力された追加の移行情報とを含む。
【0013】
いくつかの実施形態においては、クラウドシステム110は、サーバ112に要求を提出することができる。たとえば、当該要求は、(クラウドシステム110において受信される)含まれる移行情報に基づく推奨または予測された移行技術に対するものであってもよい。特に、移行情報は、移行についての環境を記述しており、当該要求は、履歴移行情報(たとえば、データセット116)に基づいて生成される移行技術予測に対するものであってもよい。いくつかの実施形態においては、移行情報は、クラウドシステム110、サーバ112、機械学習コンポーネント114において、またはフロー中の他の任意のポイントにおいて(たとえば、クライアント側コード、クライアントスクリプト、移行情報を生成するために実行されるスクリプトなどによって)、機械読取可能フォーマットに翻訳される。たとえば、この翻訳は、移行情報を2進数(たとえば、0および1)または他の好適な機械読取可能コード、たとえば16進数など、として表わす機械読取可能データであってもよい。この翻訳は、移行情報を対応する機械読取可能データに変換する予め定められた翻訳技術を用いて実行することができる。
【0014】
いくつかの実施形態においては、(たとえば、2進数などの機械読取可能フォーマットである)移行情報は機械学習コンポーネント114に伝達される。たとえば、データセット116(たとえば、トレーニングデータ)を用いて、機械学習モデル114をトレーニングして、候補データベース移行のための環境(たとえば、予測のための特徴)を表わす移行情報のセット(の入力)に基づいて、データベース移行技術を予測することができる。次いで、機械学習モデル114は、移行情報によって表わされる候補データベース移行のための移行技術を予測することができる。これらの予測された技術は、サーバ112およびクラウドシステム110に伝達することができ、クラウドシステム110は、結果を表示し、および/または予測された移行技術のうちの1つ以上を実現することができる。いくつかの実施形態においては、予測された技術は、当該予測された技術のうちの1つ以上を同様に表示または実現することができるユーザデバイス102に伝達することができる。
【0015】
図2は、実施形態に従ったコンピュータサーバ/システム210のブロック図である。
図2に示されるように、システム210は、システム210のさまざまなコンポーネント間、たとえばプロセッサ222とメモリ214との間など、で情報をやり取りするように構成されたバスデバイス212および/または他の通信メカニズムを含み得る。さらに、通信デバイス220は、ネットワーク(図示せず)を介してプロセッサ222から別のデバイスに送信されるデータを符号化するとともに、プロセッサ222のためにネットワークを介して別のシステムから受信されたデータを復号することによって、プロセッサ222と他のデバイスとの間の接続を可能にし得る。
【0016】
たとえば、通信デバイス220は、無線ネットワーク通信を実施するように構成されたネットワークインターフェイスカードを含み得る。赤外線、無線、Bluetooth(登録商標)、Wi-Fi、および/またはセルラー通信を含むさまざまな無線通信技術が用いられてもよい。代替的には、通信デバイス220は、イーサネット(登録商標)接続などの有線ネットワーク接続をもたらすように構成されてもよい。
【0017】
プロセッサ222は、システム210の演算機能および制御機能を実行するための1つ以上の汎用または専用のプロセッサを含み得る。プロセッサ222は、マイクロプロセッシングデバイスなどの単一の集積回路を含み得るか、または、プロセッサ222の機能を実現するために協働して機能する複数の集積回路装置および/もしくは回路基板を含み得る。加えて、プロセッサ222は、メモリ214内に格納されたオペレーティングシステム215、移行予測コンポーネント216および他のアプリケーション218などのコンピュータプログラムを実行し得る。
【0018】
システム210は、プロセッサ222によって実行されるべき命令と情報とを格納するためのメモリ214を含み得る。メモリ214は、データを抽出、提示、修正および格納するためのさまざまなコンポーネントを含み得る。たとえば、メモリ214は、プロセッサ222によって実行されたときに機能を実施するソフトウェアモジュールを格納していてもよい。モジュールは、システム210のためのオペレーティングシステム機能を提供するオペレーティングシステム215を含み得る。モジュールは、オペレーティングシステム215と、移行予測コンポーネント216と、他のアプリケーションモジュール218とを含み得る。オペレーティングシステム215は、システム210のためのオペレーティングシステム機能を提供する。移行予測コンポーネント216は、データベース移行技術を予測するためのシステム機能を提供し得るか、または、本開示の他の任意の機能をさらに提供し得る。いくつかの場合、移行予測コンポーネント216は、インメモリ構成として実装されてもよい。
【0019】
非一時的なメモリ214は、プロセッサ222によってアクセスされ得るさまざまなコンピュータ読取可能媒体を含み得る。たとえば、メモリ214は、ランダムアクセスメモリ(random access memory:RAM)、ダイナミックRAM(dynamic RAM:DRAM)、スタティックRAM(static RAM:SRAM)、読取り専用メモリ(read only memory:ROM)、フラッシュメモリ、キャッシュメモリ、および/または、他の任意のタイプの非一時的なコンピュータ読取可能媒体の任意の組合わせを含み得る。
【0020】
プロセッサ222は、バス212を介して、液晶ディスプレイ(liquid crystal display:LCD)などのディスプレイ224にさらに結合される。キーボード226およびコンピュータマウスなどのカーソル制御デバイス228は、インターフェイスとして機能してユーザがシステム210と接続することを可能にするように通信デバイス212にさらに結合されている。
【0021】
いくつかの実施形態においては、システム210は、より大型のシステムの一部であってもよい。したがって、システム210は、付加的な機能を含むように1つ以上の付加的な機能モジュール218を含み得る。他のアプリケーションモジュール218は、たとえば、オラクル(登録商標)・エンタープライズ・リソース・プランニング(Oracle Enterprise Resource Planning:ERP)クラウド、および/または、オラクル(登録商標)クラウドに組込まれたエンゲージメント・エンジン(engagement engine:EE)、たとえば、オラクル(登録商標)・ビジネス・インテリジェンス・エンタープライズ・エディション(Oracle Business Intelligence Enterprise Edition:OBIEE)、オラクル(登録商標)・データ・インテグレータ(Oracle Data Integrator)などのさまざまなモジュールを含み得る。データベース217は、モジュール216および218のための中央集中型ストレージを提供するために、かつ、たとえば、無線デバイスアクティビティ、およびいくつかの実施形態においては、ユーザプロファイル、取引履歴などを格納するために、バス212に結合される。データベース217は、論理的に関連する記録またはファイルを統合した集合体にデータを格納することができる。データベース217は、オペレーショナルデータベース、分析データベース、データウェアハウス、分散型データベース、エンドユーザデータベース、外部データベース、ナビゲーションデータベース、イン・メモリデータベース、ドキュメント指向型データベース、リアルタイムデータベース、リレーショナルデータベース、オブジェクト指向型データベース、Hadoop(登録商標)分散型ファイルシステム(Hadoop Distributed File System:HFDS)、または、当該技術分野において公知である他の任意のデータベースであってもよい。
【0022】
単一のシステムとして図示されているが、システム210の機能は分散型システムとして実装されてもよい。たとえば、メモリ214およびプロセッサ222は、システム210を集合的に表わす複数の異なるコンピュータにわたって分散されてもよい。一実施形態においては、システム210はデバイス(たとえば、スマートフォン、タブレット、コンピュータなど)の一部であってもよい。
【0023】
一実施形態においては、システム210は、デバイスとは別個のものであってもよく、記載される機能をデバイスに遠隔で提供してもよい。さらに、システム210の1つ以上のコンポーネントは含まれていなくてもよい。たとえば、ユーザまたは消費者のデバイスとしての機能のために、システム210は、スマートフォンであってもよく、または、プロセッサ、メモリおよびディスプレイを含むが
図2に示される他のコンポーネントのうちの1つ以上を含まず、
図2に示されない追加のコンポーネントを含む他の無線デバイスであってもよい。
【0024】
図3は、例示的な実施形態に従った予測システムを示す。システム300は、機械学習コンポーネント302と、トレーニングデータ304と、入力データ306と、予測308と、観察データ310とを含む。いくつかの実施形態においては、機械学習コンポーネント302は、1つ以上の機械学習要素(たとえば、ニューラルネットワーク、サポートベクトルマシン、ベイジアンネットワーク(Bayesian network)、ランダムフォレスト分類器、勾配ブースト分類器など)を含む設計モデルであってもよい。トレーニングデータ304は、機械学習コンポーネント302をトレーニングすることのできる任意のデータのセット(たとえば、教師あり学習についてのラベル付けされたデータなどの、対応するラベル付きの特徴のセット)であってもよい。いくつかの実施形態においては、トレーニングデータ304を用いて機械学習コンポーネント302をトレーニングして、トレーニング済み機械学習モデルを生成することができる。
【0025】
いくつかの実施形態においては、
図1の機械学習モデル114は、
図3の機械学習コンポーネント302と同様であり得るとともに、
図1のデータセット116は、
図3のトレーニングデータ304と同様であり得る。たとえば、トレーニング済み機械学習モデルは、ソース・ターゲット間データベース移行のための移行技術を予測するように構成されてもよい。いくつかの実施形態においては、トレーニングデータ304は、移行情報のインスタンス(たとえば、移行についての移行情報の個々のインスタンス)と、移行を実行するために用いられる移行技術(たとえば、移行情報の個々のインスタンスのための移行技術)を含む対応するラベルとを含み得る。したがって、所与の候補データベース移行のためのトレーニングデータ304の実施形態によってトレーニングされる機械学習コンポーネント302によって生成される予測308は、1つ以上の移行技術(たとえば、クローニング、複製、災害回復切替え、プラグ接続可能なデータベースなど)であり得る。
【0026】
いくつかの実施形態においては、予測された移行技術(または予測された技術の一部)を用いて、候補データベース移行を実行することができる。データベース移行が実現されると、予測された移行技術の有効性、たとえば、ダウンタイム基準、帯域幅基準、タイミング基準などの順守など、を判断することができる。予測された移行技術についてのフィードバックを抽出する(たとえば、
図3において観察データ310として表わす)ことができるとともに、このフィードバックを処理してトレーニングデータ304を更新することができる。
【0027】
機械学習コンポーネント302の設計は、任意の好適な機械学習モデルコンポーネント(たとえば、ニューラルネットワーク、サポートベクトルマシン、特殊回帰モデル、ランダムフォレスト分類器、勾配ブースト分類器など)を含み得る。たとえば、ニューラルネットワークは、(たとえば、トレーニング/勾配計算のために)所与のコスト関数とともに実装され得る。ニューラルネットワークは、任意の数(たとえば、0、1、2、3、またはそれ以上)の隠れ層を含み得るとともに、フィードフォワード・ニューラルネットワーク、回帰ニューラルネットワーク、畳み込みニューラルネットワーク、モジュラーニューラルネットワーク、および他の任意の好適なタイプを含み得る。いくつかの実施形態においては、ニューラルネットワークは、たとえば実装される隠れ層の数に基づいて、深層学習(ディープラーニング)用に構成することができる。いくつかの例では、ベイジアンネットワークが同様に実装されてもよく、または他のタイプの教師あり学習モデルが実装されてもよい。
【0028】
たとえば、サポートベクトルマシンは、いくつかの例では、1つ以上のカーネル(たとえば、ガウスカーネル、線形カーネルなど)とともに実装され得る。いくつかの実施形態においては、k最近傍(k-nearest neighbor:KNN)アルゴリズムが実装され得る。たとえば、KNNアルゴリズムは、(たとえば、入力306によって表わされる)候補データベース移行とトレーニングデータ304のインスタンスとの間の距離を決定することができ、この距離に対する1つ以上の「最近傍」を決定することができる(近傍の数は、Kについて選択された値に基づき得る)。次いで、予測308が、これらの「最近傍」インスタンスからの距離に基づいて生成され得る。
【0029】
いくつかの実施形態においては、機械学習コンポーネント302は、アンサンブル学習モデルを含み得る。たとえば、機械学習コンポーネント302はランダムフォレスト分類器を含み得る。当該ランダムフォレスト分類器が含む複数の機械学習コンポーネントの予測が組合わされている。ランダムフォレスト分類器の実装例は、(たとえば、ツリーごとにトレーニングデータのサブセットを用いて)トレーニングデータ304によってトレーニングされるデシジョンツリーを含む。次いで、ランダムフォレストアルゴリズムは、予測を得るためにこれらのデシジョンツリーからの票を集約することができる。
【0030】
いくつかの実施形態においては、機械学習モデル302は、XGBoostなどの勾配ブースト学習アルゴリズムを含み得る。勾配ブーストアルゴリズムは、トレーニングデータ304を用いてトレーニングされた複数のデシジョンツリーでアンサンブル学習技術を同様に活用することができるが、勾配ブーストアルゴリズムは、デシジョンツリーを順々に整列させることができる。この実装例では、シーケンスにおける後半のツリーは、先行するデシジョンツリーによって生成された予測からエラーを「訂正する」ことを学習する。勾配ブースト学習アルゴリズムは、個々のデシジョンツリーによって生成された予測を集約して予測308を生成する。個々のデシジョンツリーは、ツリーのノードを分割する再帰的分割アルゴリズム(たとえば、再帰的な2進分割)、または他の任意の好適なトレーニング技術を用いてトレーニングすることができる。
【0031】
いくつかの実施形態においては、機械学習コンポーネント302は、たとえば、第1のモデルの出力を第2のモデルの入力に送り込む状態で積重ねられた複数のモデルであってもよい。いくつかの実装例は、予測モデルの複数の層を含み得る。いくつかの実施形態においては、機械学習コンポーネント302の特徴を決定することもできる。たとえば、特徴工学技術を用いて、1つ以上の機械学習モデルによって実装される特徴のセットを生成することができる。
【0032】
いくつかの実施形態においては、機械学習コンポーネント302の設計は、トレーニング中、再トレーニング中、および/または更新されたトレーニング中に調整することができる。たとえば、調整は、ニューラルネットワーク内の隠れ層の数を調整すること、サポートベクトルマシンを実装するために用いられるカーネル計算を調整することなどを含み得る。この調整は、機械学習モデルによって用いられる特徴を調整/選択することも含み得る。実施形態は、トレーニング時に所望の性能を達成する(たとえば、所望の精度レベルで予測を実行する、所望のリソース利用率/時間メトリックに従って実行する等)機械学習コンポーネント302のための構成を得るためにトレーニング中にさまざまな調整構成(たとえば、さまざまなバージョンの機械学習モデルおよび特徴)を実装することを含む。
【0033】
いくつかの実施形態においては、機械学習モデルのトレーニングを再トレーニングすることおよび更新することは、更新済みトレーニングデータを用いてモデルをトレーニングすることを含み得る。たとえば、トレーニングデータは、観察されたデータ、または、(たとえば、教師あり学習で使用するために)ラベル付けされたデータを組込むように更新することができる。
【0034】
いくつかの実施形態においては、機械学習コンポーネント302は、教師なし学習コンポーネントを含み得る。たとえば、階層クラスタリング、k平均クラスタリングなどの1つ以上のクラスタリングアルゴリズム、または教師なし自動エンコーダなどの教師なしニューラルネットワークが実装され得る。この例では、(移行情報によって表わされる環境に対応する)データベース移行情報および移行技術を教師なし学習コンポーネントに入力して、特徴を移行技術に関連付けるクラスタなどのデータの局面を学習することができる。学習された関係に基づいて、候補データベース移行のための移行技術を表わす予測308が(たとえば、候補データベース移行を表わす特徴を含む入力306に基づいて)生成され得る。
【0035】
実施形態は、ネットワーク帯域幅、ダウンタイム問題点、およびターゲット・データベースなどの移行環境に基づいて移行技術を予測する。機械学習能力は、実施形態が実際の移行経験から微細な調整予測まで連続的に学習することを可能にする。多くの従来の実装例においては、データベース移行過程は、(たとえば、他の移行での経験に基づいて)移行技術に到達する経験豊富なデータベース専門家に依存することが必要となる。したがって、経験豊富なデータベース専門家のグループに依拠することができないデータベース移行の場合、効率的な移行を実行するのに苦労することが多くなる。
【0036】
さらに、データベースについての移行オプションは本質的に多数あることが多く、特定の移行シナリオにおいて問題となっている技術の理解が必要となることが多い。たとえば、各データベースのその時点でのフットプリントを理解し、完全な情報を照合し、次いで、経験に基づいて実現可能な移行経路になり得るものを決定するために、情報技術チームを集めることが必要になるかもしれない。多くの場合、データベース移行がどのように計画されたかと実際の経験との間に大きなギャップが観察される。これらのギャップにより、移行プロジェクトが過度なリスクに晒されるとともに、生産作業負荷をクラウドに移行させるための組織の信頼性が低下してしまう。
【0037】
実施形態は、技術展望の変化に応じて絶えず学習および進化を続ける全体論的な移行予測器を開発する際に方法論的アプローチを実現することによって、これらの移行シナリオのいくつかの問題を解決している。いくつかの実施形態においては、機械学習コンポーネントは、データベース専門家の膨大な経験から学習するようにトレーニングすることができる。たとえば、選択された経験豊富なデータベース専門家群の専門知識の集合を照合してデータセット/データシートを生成することができ、これにより、移行シナリオと関連する移行技術とを組合わせて、効率的な解決策を得ることができる。その後、このデータセットは、機械学習モデルを用いて、観察された移行経験および提供されたフィードバックに基づいて更新することができ、実際の移行結果を取り込んで、これらの結果から情報を導き出すことができる。
【0038】
いくつかの実施形態においては、ソース・データベース詳細、移行情報、および機械学習モデルを用いることにより、リアルタイムでの移行からの経験豊富なデータベース専門家の入力から作成されたデータセットに基づいて効率的な移行経路を予測することができる。たとえば、実施形態は、移行情報を抽出することと、トレーニング済み機械学習モデルを用いて移行技術を予測することと、機械学習モデルを最適化するためにフィードバックを収集することとを含み得る。
【0039】
再び
図1を参照すると、ソース・データベースをターゲット・データベースに移行させるための移行情報は、ユーザによって提出すること(移行情報の提出104によって表わすこと)、および/または、スクリプトによって自動的に抽出して提出すること(スクリプト実行および提出108によって表わすこと)ができる。例示的な移行情報は以下を含み得る。
【0040】
ソースDBバージョン:ソースDBシステムのデータベースバージョン
プラットフォーム:エンディアンフォーマット、大規模もしくは小規模、または他のプラットフォームファミリ
OSプラットフォーム:32ビットまたは64ビット、OSプラットフォーム(たとえば、Linux(登録商標))、または他のオペレーティングシステム情報
マルチテナント・コンパートメント:ソースDBがCDB対応であるか否か、12c以上であるか否か、など
NLS互換性:ソースおよびターゲットが同じ国語サポート(national language support:NLS)を有するか否か
DBサイズ:GBでのソース・データベース・サイズ
例示的なデータベースサイズ:
小規模DB[small DB:SDB](500G未満)
中規模DB[medium DB:MDB](500G~2TBのサイズ)
大規模DB[large DB:LDB](2TB~10TB)
VLDB[VLDB](10TB超え)
ネットワーク/帯域幅:ソースとターゲットとの間でのデータ転送に利用可能なネットワーク帯域幅
ターゲットDBインフラ:DBが実行されるであろうターゲットクラウド・インフラストラクチャ
オプション例:IaaS、PaaS/Exacs
ターゲットDBバージョン:ターゲットプラットフォーム上のデータベースのバージョン(同じバージョン/アップグレードされたバージョン)
許容ダウンタイム:移行のために許容される総ダウンタイム
許容ダウンタイムは以下のとおり分類することができる:
低ダウンタイム[low down time:LDT](10分~3時間)
中間ダウンタイム[medium down time:HDT](3時間~24時間)
ダウンタイム制約なし[downtime not a constraint:DNC]
【0041】
いくつかの実施形態においては、候補データベース移行についての移行情報は、ユーザを介して、および/または構成されたスクリプトによって取得することができる。たとえば、移行情報は、
図1の移行情報の提出104および/またはスクリプト実行および提出108によって取得することができる。いくつかの実施形態においては、移行情報の提出104は、開示される例示的な移行情報などの移行情報をユーザが(たとえば、スプレッドシート、ウェブフォーム、プログレッシブ・ウェブアプリケーション等に)手動で入力することを含み得る。たとえば、ユーザは、(たとえば、クラウドシステム100によって実現される)ウェブページにアクセスして、移行情報をウェブフォームで提供することができる。別の例では、ユーザは、ドキュメント(たとえば、スプレッドシート、フォーマットされたデータドキュメントなど)をポピュレートし、当該ドキュメントをたとえばクラウドシステム100にアップロードすることができる。
【0042】
いくつかの実施形態においては、スクリプト実行および提出108は、ソースシステム/ソース・データベースから移行情報を抽出するように構成されたスクリプト(または、実行可能コードなどの他の任意の形態のコード)の実行を含み得る。たとえば、スクリプトは、リポジトリ106(たとえば、Githubまたは他の任意のリポジトリ)から抽出されてソースシステム/ソース・データベース上で実行されてもよい。スクリプトは、ソース・データベースとソース・データベースを実装するソースシステムとに関する移行情報を抽出することができる。たとえば、ソース・データベースまたはソース環境(たとえば、ソース・データベースバージョン、プラットフォーム、OSプラットフォーム、マルチテナントコンパートメント、ソース・データベース・サイズなど)に関連する上述の移行情報は、このような情報を抽出するように構成されたスクリプトを実行することによってソース・データベースおよびソースシステムから取得することができる。スクリプト実行および提出108は、移行情報を含むペイロードまたはドキュメントを生成し、それをクラウドシステム110に伝達する(たとえば、アップロードする)ことを含み得る。
【0043】
いくつかの実施形態においては、リポジトリ106は、(たとえば、コードまたはスクリプトをダウンロードするための)サービスを提供することができる。たとえば、リポジトリ106はGithubであってもよく、スクリプトは、リポジトリによってホストされるユニフォーム・リソース・ロケータ(uniform resource locator:URL)からダウンロードすることができる。次いで、ダウンロードされたスクリプトを、評価すべきソースサーバ/マシン/システムに伝達することができる。言い換えれば、スクリプトは、候補データベース移行(たとえば、ソース・データベースをホストするマシン)に関連する移行情報を提供する問合わせ元であるソースのコンポーネントに伝達することができる。いくつかの実施形態においては、スクリプトは、管理者および/またはデータベースの所有者として実行することができる。スクリプトは、関連する移行情報で出力ファイルを生成することができる。たとえば、出力ファイルは、ソースシステムおよびデータベース移行情報、ターゲット移行情報、移行基準(たとえば、ダウンタイム、帯域幅、タイミング)などを含み得る。いくつかの実施形態においては、出力ファイルはバイナリフォーマットファイルであってもよい。次いで、出力ファイルは、関連するソース側システム/コンピューティングデバイスに伝達された後、クラウドシステム100にアップロードすることができる。
【0044】
いくつかの実施形態においては、移行情報の提出104は、スクリプト実行および提出108とともに実現され得る。たとえば、スクリプトの実行は、(本明細書に開示されるように)ソース・データベースおよびソースシステムに関する移行情報を生成することができるが、但し、他の移行情報(たとえば、ターゲット・データベース・インフラストラクチャ、帯域幅基準、ダウンタイム基準など)を手動入力することができるか、または、スクリプトによって生成される移行情報は手動入力で上書きすることができる。いくつかの実施形態においては、スクリプトは、追加の移行情報をユーザに促すように構成することができる。たとえば、スクリプト実行および提出108は、いくつかの移行情報(たとえば、ターゲット・データベース・インフラストラクチャ、帯域幅基準、ダウンタイム基準など)をユーザに促すことおよび手動で入力することを含み得る。この実施形態においては、スクリプトによって生成されてクラウドシステム110に伝達されるペイロードまたはドキュメントは、ソースシステム/データベースに関して抽出された情報と、手動で入力された追加の移行情報とを含む。
【0045】
いくつかの実施形態においては、移行情報は、機械読取可能フォーマットに翻訳され得る。たとえば、移行情報は、クラウドシステム110、サーバ112、機械学習コンポーネント114において、またはフロー中の他の任意のポイントにおいて(たとえば、クライアント側コード、クライアントスクリプト、移行情報を生成するために実行されるスクリプトなどによって)、第1のフォーマット(たとえば、人が読取可能なフォーマットまたは英数字フォーマット)から機械読取可能フォーマット(たとえば、2進数、10進数、16進数など)に翻訳することができる。いくつかの実施形態においては、機械読取可能フォーマットは、移行情報を0および1(または、10進数、16進数もしくは他の機械読取可能フォーマットと適合する他の好適な記号)として表わす機械読取可能データであってもよく、その翻訳は、移行情報を対応する機械読取可能データに変換する予め定められた翻訳技術を用いることによって実行することができる。
【0046】
たとえば、移行情報に関して存在するデータ値は、予め定められた2進数(または他のフォーマット)値に割当てることができる。いくつかの実施形態においては、移行情報の各要素(たとえば、列)は、予め定められた値の閉集合を有し得る。たとえば、OSプラットフォームは、潜在的なソースオペレーティングシステムプラットフォームの閉リストからの値を取ることができ、CDBは、値CDBまたは非CDBを有することができ、NLS互換性は、値YesまたはNOを有することができ、許容ダウンタイムは、ダウンタイムの閉リスト(たとえば、低、中間、制約なし)からの値を取ることができ、ネットワーク帯域幅は、ネットワーク帯域幅の閉リストからの値を取ることができる、等である。
【0047】
いくつかの実施形態においては、閉リストは、1つの移行情報についてのデータ値と機械読取可能値(たとえば、2進値)との間に予め定められた相関性をもたせることを可能にする。たとえば、ダウンタイムが3つの値(たとえば、低、中間、制約なし)の閉リストを有する場合、これらの値についての予め定められたバイナリマッピングは、010までの低ダウンタイム、001までの中間ダウンタイム、および100までの制約なしダウンタイムであってもよい。別の例では、閉リスト内のオペレーティングシステムプラットフォームの数は20であってもよく、閉リスト内のこれらの別個のデータ値は各々、2進値にマッピングすることができる。
【0048】
いくつかの実施形態においては、1つの移行情報(たとえば、列)についてのデータ値の閉リストは、データ値が辞書式順序で2進値に割り当てられるように処理することができる。いくつかの実施形態においては、移行情報の各々は、さまざまな技術に従ってフィルタリングすることができ、このため、辞書式順序での各移行情報についてのマッピングは、処理されたデータ/フィルタリングされたデータに基づいて作成することができる。いくつかの実施形態においては、マッピングは、各列値ごとに、明確な機械読取可能値を作成することができる。所与の実現例内においては、このマッピングは固定することができるので、入力値を翻訳して機械学習モデルに与えて正しい出力を生成することが可能となる。他の好適なマッピングを実現することもできる。したがって、いくつかの移行情報(たとえば、列)についてのデータ値の閉リストは、機械学習に役立つ機械読取可能バージョンなどの、単純形式の移行情報に翻訳することを可能にする。
【0049】
いくつかの実施形態においては、いくつかの移行情報についての閉リストは拡張可能である。たとえば、1つの移行情報(たとえば、列)に対して新しいデータ値が利用可能または実施可能になると、その1つの情報についての値の閉リストを拡張することができる。したがって、新しい値を閉リストに追加して新しい実装例を作成することができる。いくつかの実施形態においては、新しいデータ値が複数であれば、1つの移行情報の別個のデータ値を表わす機械読取可能な数値に1つ以上の数字を追加することが必要となる可能性がある。簡略例として、移行情報が1つであれば、単一の2進数(たとえば、0および1)によって符号化することのできる2つの別個のデータ値だけを予め用い得るが、1つ以上の新しい値を追加する場合、1つの桁を2進データ値(たとえば、4つの値を表わすことができる2つの2進数)に追加することが必要となるだろう。いくつかの実施形態においては、いくつかの移行情報についての実現可能なデータ値への変更に基づく新しい実装例は、機械学習モデルおよび/またはトレーニングデータへの変更、たとえば、トレーニングデータ値(たとえば、英数字値)と機械読取可能値(たとえば、2進値)との間での新しいマッピング、モデルの再トレーニングまたはモデルのトレーニングの更新、モデルアーキテクチャへの変更などを促進する可能性がある。
【0050】
いくつかの実施形態においては、さらに、移行情報の機械読取可能フォーマット(たとえば、2進数)が機械学習モデル114に供給され得るとともに、移行技術予測が、機械読取可能移行情報によって表わされる移行環境に基づいて生成され得る。たとえば、機械学習モデル114は、移行情報(たとえば、トレーニングデータの特徴)および対応する移行技術(たとえば、トレーニングデータのラベル)のセットを含み得るデータセット116を用いてトレーニングすることができる。いくつかの実施形態においては、データセット116は、本明細書中に開示される移行情報例(たとえば、ソースDBバージョン、プラットフォーム、OSプラットフォーム、ソース、DBサイズ、ターゲットDBインフラ、許容ダウンタイムなど)と同じいくつかの情報(たとえば、列)を含み得る。いくつかの実施形態においては、データセット116はまた、各列ごとに実現可能なデータ値についての同じ閉リストを含み得る。データセット116を用いることで、データセット内のラベルに基づいて、または移行を成功させるために用いられる移行技術に基づいて機械学習モデル114をトレーニングすることができる。
【0051】
したがって、機械学習モデル114は、(移行のための環境を表わす)移行情報を移行技術に関連付けるデータセット116内のトレンドを学習することができる。いくつかの実施形態においては、予測された移行技術は、機械学習モデル114に提供される(候補データベース移行のための)移行情報に基づいて、候補データベース移行のために生成され得る。
【0052】
いくつかの実施形態においては、データセット116は、機械学習モデル114をトレーニングするために用いられるトレーニングデータを表わすことができ、データセットは、(本明細書中に開示される移行情報を翻訳するために用いられる翻訳技術と同様の)機械読取可能フォーマットに処理することができる。たとえば、機械学習モデルは、機械学習モデルをトレーニングするために用いられるトレーニングデータが入力データと同様である場合、入力データについての予測を生成することができる。したがって、機械学習モデル114が機械読取可能バージョンの移行情報についての予測を生成するように構成および/またはトレーニングされる場合、当該機械学習モデルは、機械読取可能バージョンのデータセット116を用いて事前にトレーニングされている(かまたは、教師なしモデルは機械読取可能バージョンのデータセット116を利用する)。
【0053】
いくつかの実施形態においては、データセット116内のいくつかの情報に関して存在するデータ値は、予め定められた2進(または他のフォーマットの)値に割り当てることができる。いくつかの実施形態においては、データセット116の各要素(たとえば、列)は、移行情報と同様に、予め定められた値の閉セットを有し得る。たとえば、OSプラットフォームは、潜在的なソースオペレーティングシステムプラットフォームの閉リストからの値を取ることができ、CDBは、値CDBまたは非CDBを有することができ、NLS互換性は、値YesまたはNOを有することができ、許容ダウンタイムは、ダウンタイムの閉リスト(たとえば、低、中間、制約条件なし)からの値を取ることができ、ネットワーク帯域幅は、ネットワーク帯域幅の閉リストからの値を取ることができる、等である。
【0054】
いくつかの実施形態においては、閉リストは、移行情報の処理に関して上述したように、データセット116の列についてのデータ値と機械読取可能値(たとえば、2進値)との間に予め定められた相関性をもたせることを可能にする。いくつかの実施形態においては、機械読取可能フォーマットに対する移行情報のためのデータ値と機械読取可能フォーマットに対するデータセット116内のデータ値との間のマッピングは整合性があり、このため、(入力としての)移行情報に基づいて生成される予測は正確になり得る。たとえば、機械学習モデル114に入力された移行情報の翻訳済み機械読取可能データ値が、データセット116の翻訳済み機械読取可能データ値と一致する場合、データセット116内の学習済みトレンドを利用する予測を生成することができる。いくつかの実施形態においては、マッピングに対する変更は、整合性を維持するために移行情報を翻訳することおよびデータセット116を翻訳することの両方のために実現される。たとえば、マッピングに対する変更により、データセット116のフォーマットに対する変更を促すことができる。なぜなら、少なくとも、代表データ値が変化する可能性があったり、データセット116の特定の列についてのデータ値の閉リストが拡張される可能性があったりするからである。いくつかの実施形態においては、機械学習モデル114はトレーニング、再トレーニングまたは更新することができ、データセット116に対する変更に基づいてトレーニングを実行することができる。
【0055】
機械学習は、大量のデータを分析するために活用することができる。しかしながら、機械学習モデルを適切にトレーニングするために、しばしば、時間、リソースおよびノウハウが必要とされる。実施形態は、ソース・データベース情報、ターゲットインフラストラクチャ、プラットフォーム、データベースサイズなどの候補データベース移行(たとえば、候補データベース移行のための環境)についての移行情報に基づいて、移行技術を予測する。これは、電子メールを「スパムまたは非スパム」として分類する等の分類問題と見なすことができ、このため、分類機械学習アルゴリズムを活用して予測を達成することができる。実施形態は、複数の特徴を用いて目標値または値のセットを予測することができる機械学習アルゴリズムを活用する(たとえば、移行技術)。
【0056】
たとえば、機械学習モデル114の実施形態は、1つ以上の学習アルゴリズムを含む。
図3を参照すると、機械学習モデル114は、機械学習コンポーネント302を含み得る。いくつかの実施形態においては、機械学習モデル114はランダムフォレスト分類器を実装する。ランダムフォレスト分類器アルゴリズムはアンサンブル学習の一例である。アンサンブルアルゴリズムは、たとえば分類を予測するために、同じ種類または異なる種類の2つ以上のアルゴリズムを組み合わせたものである。アンサンブル学習は複数のアルゴリズムに基づいているので、しばしば、予測結果により分散を向上させることができる(したがって、過剰適合を回避することができる)。過剰適合が起こる可能性があるのは、モデルが、トレーニングデータのセット中の詳細およびノイズを、新たなデータについてのモデルの性能に悪影響を及ぼす程度にまで学習した場合である。言い換えれば、過剰適合が生じたトレーニング済みモデルは、新しいデータ、またはモデルをトレーニングするのに使用されなかったデータ上では十分に一般化しない。多くの場合、機械学習モデルが新しいデータに対して十分に機能すると予想されるので、過剰適合は機械予測の実用上の利益を減らしてしまう可能性がある。
【0057】
例示的なランダムフォレスト分類器は、トレーニングデータのサブセット(たとえば、ランダムに選択されたサブセット)からデシジョンツリーのセットを作成することができる。次いで、アルゴリズムは、さまざまなデシジョンツリーからの予測または票を集約して、最終予測を得ることができる。たとえば、トレーニングセットに特徴[X1,X2,X3,X4]が与えられると想定する。ランダムフォレストアルゴリズムは、たとえば、これらの特徴のサブセットからの入力を選んで3つのデシジョンツリーを作成してもよい。
1.[X1,X2,X3]
2.[X1,X2,X4]
3.[X2,X3,X4]
【0058】
この例では、各ツリーは、トレーニングデータにおいて利用可能な4つの特徴から3つの特徴を用いる。しかしながら、トレーニングデータ特徴はしばしば多数あって、いくつかの実現例では、各ツリーは、トレーニングデータ中の利用可能な特徴と比べて少ない数(たとえば、50%、25%、10%、5%など)の特徴を用いる。加えて、3つのデシジョンツリーをトレーニングする際に、トレーニングデータのインスタンスをランダムに選択することもできる。たとえば、トレーニングデータの「m」のインスタンスは、データセット(各々が精度計算/ノード分割に用いられるラベルを有する)において利用可能であってもよく、各ツリーは、トレーニングのために「k」のインスタンスを用いることができる。この場合、k<mである(場合によっては、k<<m)。
【0059】
次いで、アルゴリズムは、デシジョンツリーの各々からの過半数の票を用いるなどして、集約技術に基づいて予測を得ることができる。ランダムフォレスト分類器のパラメータは、デシジョンツリーの総数、デシジョンツリー関連のパラメータ(たとえば、ツリーについての特徴の数、デシジョンツリーノードを分割するためのリーフの数など)、集約技術(たとえば、過半数、平均など)、および他の好適なパラメータであり得る。
【0060】
いくつかの実施形態においては、機械学習モデル114は、XGBoostなどの勾配ブースト学習アルゴリズムを実装する。勾配ブーストデシジョンツリーアルゴリズムなどの勾配ブーストは学習に対するアンサンブルアプローチである。ランダムフォレストアルゴリズムと同様に、勾配ブーストは複数のデシジョンツリーを利用するが、但し、これらのツリーは、後続ツリーの各々が先行ツリーのエラーを減らすことを目的として、順次、構築される。たとえば、各ツリーはその先行ツリーから学習することができ、このため、シーケンス内で次に成長するツリーは、更新されたバージョンの残余ツリー(またはエラー)から学習することとなるだろう。基礎学習器(たとえば、シーケンス内の個々のツリー)は、バイアスが高い弱学習器であることが多い。但し、これらの弱学習器は、下流での予測のための情報に寄与する。したがって、XGBoostなどの勾配ブーストアルゴリズムは、弱学習器同士を有効に組合わせることによって強学習モデルを実現することができる。たとえば、最終的な強学習器は、個々の弱学習器ツリーが経験するバイアスおよび分散の両方を低減させる。
【0061】
いくつかの実施形態においては、機械学習モデル114はロジスティック回帰を実装する。ロジスティック回帰は、ロジット回帰またはロジットモデルとしても公知であり、先行するいくつかのデータを考慮して、イベント発生の確率を推定するために統計に用いられる数学的モデルである。ロジスティック回帰は、イベントが起こる(1)かまたはイベントが起こらない(0)という2値データで機能する。ロジスティック回帰は線形アルゴリズムである。
【0062】
いくつかの実施形態においては、機械学習モデル114はニューラルネットワークを実装する。たとえば、ニューラルネットワークは、(トレーニングデータのインスタンスのためのラベルを含む)データセット116を用いてトレーニングすることができる。計算された損失に基づいて、ニューラルネットワーク内のニューロンについての重みを計算するために、勾配がニューラルネットワークを通じて伝播され得る。トレーニングがなされると、ニューロンの重みを用いて、入力特徴のセット(たとえば、機械読取可能バージョンの移行情報)を考慮して予測を生成することができる。
【0063】
いくつかの実施形態においては、機械学習モデル114による予測を達成するために用いられる翻訳済み機械読取可能データ(たとえば、翻訳済みトレーニングデータおよび翻訳済み移行情報、または入力)は、改善された結果を得るように構成され得る。たとえば、いくつかの機械学習モデルはデータを多く必要とするものであるため、正確な予測を実現するために非常に大きなデータセットを必要とする。しかしながら、データベース移行が複雑であり、移行を達成するのに使用可能な移行技術の組合わせのばらつきが大きく、移行技術がハイペースで進化している等、他のいくつかの要因のために、データセット116のいくつかの実施形態はサイズ(たとえば、トレーニングデータのインスタンスまたは行)が制限されてしまう可能性がある。したがって、機械学習モデル114のいくつかの実施形態は、非ディープラーニングモデルに有利となるように、ディープラーニングアーキテクチャを回避する。
【0064】
いくつかの実施形態においては、翻訳済み機械読取可能データ(たとえば、翻訳済みトレーニングデータおよび翻訳済み移行情報、または入力)は、限られたデータセットで有効となる機械学習モデルのサブセットでの予測に成功するように構成することができる。たとえば、列ごとのデータ値の閉リスト、数値表現、およびデータ値の整合性により、限られたデータセットにおけるトレンドをこれらの機械学習モデルが検出することがより容易になり得る。したがって、機械読取可能データフォーマットへの翻訳は、いくつかの実施形態において用いられる環境および機械学習モデルに合わせて調整される。
【0065】
実施形態は、候補データベース移行のための移行技術を予測する。移行技術は、移行方法、移行技術、移行のための機能を実現する1つ以上のデータベース移行プロダクトなどを含み得る。いくつかの実施形態においては、移行技術は、オラクル(登録商標)・リカバリマネジャ(Oracle Recovery Manager:RMAN)およびオラクル(登録商標)・データガード(Oracle Data Guard)などの機能を用いることができる。
【0066】
RMANは、高い性能、管理可能なバックアップおよび回復についての要求を満たすオラクル(登録商標)データベース(Oracle Database)と一体化されたツールである。RMANは、バックアップおよびリストア中にブロックレベルの破損検出を実施するように設計されている。RMANは、ファイル多重化および圧縮によるバックアップ中の性能および空間消費を最適化することができるとともに、供給されるメディア管理ライブラリ(Media Management Library:MML)APIを介してバックアップソフトウェアシステムで動作する。
【0067】
RMANは、オンラインバックアップ、インクリメンタルバックアップ、ブロックメディアリカバリ、バックアップ管理タスクの自動化、および第三者メディア管理システムとの統合などのリッチな機能をデータガード構成に組込むことができる。RMANおよびデータガード(Data Guard)はともに、RMANバックアップを物理的なスタンバイデータベースにシームレスにオフロードすることを可能にし、顧客が自身の災害回復投資対象からより多くの値を得ることを可能にする。バックアップは、スタンバイデータベースが回復モードまたは読取り専用モードである間に取得できるため、通常のデータガード動作には影響を及ぼさない。バックアップは、プライマリデータベースサーバまたはスタンバイデータベースサーバのいずれかを回復させるために用いることができる。データガードおよびRMANはともに、高可用性が求められるデータベース可用性サポートアプリケーションのレベルを向上させるために信頼性の高い密に統合されたソリューションを提供する。データガードおよびRMANはともに、オラクル(登録商標)・データベース・エンタープライズ・エディション(Oracle Database Enterprise Edition)の完全にサポートされた特徴である(RMANにもオラクル・データベース・スタンダード・エディション(Oracle Database Standard Edition)が提供されている)。
【0068】
したがって、さまざまな移行技術はさまざまなソフトウェア機能、コンピューティングリソースのレベル、帯域幅などを活用することができる。利用される移行技術は、(移行情報によって表わされる)移行のための環境に基づいて組合される。例示的な移行技術は以下を含み得る。
【0069】
リカバリマネージャ(Recover Manager:RMAN)クロス・プラットフォーム・インクリメンタル・トランスポータブル・テーブル空間
- リカバリマネージャ(RMAN)は、データベース上でバックアップおよびリカバリタスクを実行してバックアップ戦略の管理を自動化するデータベースクライアントである。RMANクロス・プラットフォーム・インクリメンタル・トランスポータブル・テーブル空間を利用する際、RMANは、転送されているデータをターゲットプラットフォームのフォーマット(たとえば、エンディアンフォーマット)に変換する。
【0070】
- たとえば、いくつかの実装例では、第1のステップは、フルバックアップを送信元から宛先にコピーすることであり得る。次いで、各々が先行するものよりも小さくなっている一連のインクリメンタルバックアップを用いることにより、宛先システムにおけるデータをソースシステムから遅れないようにこのソースシステムにほぼ合わせることができ、ダウンタイムを最小限にすることができる。たとえば、この手順は、最終的なインクリメンタルバックアップおよびメタデータエクスポート/インポート中にダウンタイムを経る可能性がある。
【0071】
オンプレミスからクラウド・インフラストラクチャDBSystemへのハイブリッドデータガード(DataGuard)
- データガード(Data Guard)は、同じキャンパス上に位置するかまたは広い領域にわたって位置するオラクル(登録商標)データベースなどの災害回復ソリューションの管理を可能化および自動化する。データガードは、生産データベース(一次データベースとしても公知である)および1つ以上のスタンバイデータベースを含み得る。これは、生産データベースのトランザクション上整合性のあるコピーであり得る。
【0072】
オラクル(登録商標)ゴールデンゲート・リアルタイム・レプリケーション(Oracle Golden Gate Real Time Replication)
- オラクル(登録商標)ゴールデンゲート(Oracle GoldenGate)は、異種環境におけるリアルタイムのデータ統合および複製のための包括的なソフトウェアパッケージである。プロダクトセットは、高可用性ソリューション、リアルタイムデータ統合、トランザクション変更データキャプチャ、データ複製、変換、およびオペレーショナルエンタープライズシステムと分析エンタープライズシステムとの間の検証を可能にする。
【0073】
フルバックアップからのRMANリストアおよびリカバリ
- オラクル(登録商標)・リカバリ・マネージャ(Oracle Recovery Manager:RMAN)は、データベースを効率的にバックアップするとともにリカバリするための包括的な基礎を提供する。これは、バックアップおよびリストア中にブロックレベルの破損検出を行なうように設計されている。RMANは、ファイル多重化によるバックアップおよびバックアップセット圧縮中の性能および空間消費を最適化するとともに、オラクル(登録商標)・セキュアバックアップ(Oracle Secure backup)および第三者メディア管理プロダクトと統合されている。
【0074】
RMANアクティブ複製
- アクティブなデータベース複製は、ネットワーク上でライブターゲット・データベースを予備の宛先にコピーし、次いで複製データベースを作成することができる。他の移行技術と比較すると、1つの相違点は、既存のRMANバックアップおよびコピーの存在が不要である点である。複製作業は予備チャネルによって行われる。このチャネルは、予備ホスト上の予備インスタンス上のサーバセッションに対応する。
【0075】
MV2OCI:データを「ワンクリック(One-Click)」でオラクルクラウドデータベースへと移動
- 自律型データベース(MV2ADB)への移動は、たとえばオラクル(登録商標)・データポンプ(Oracle Data Pump)を活用して、「オンプレミス」データベースから自律型データベースクラウド(Autonomous Database Cloud)にデータをロードするツールである。データポンプインポート(Data Pump Import)は、たとえば、オラクル(登録商標)・クラウド・インフラストラクチャ・オブジェクト・ストレージ(Oracle Cloud Infrastructure Object Storage)上に常駐するデータポンプファイルからデータをインポートすることができる。いくつかの実装例では、データは、クラウドオブジェクトストアに保存され得るとともに、「mv2adb」を用いて自律型データベースクラウドにロードされ得る。
【0076】
物理データベース(physical database:PDB)のアンプラグおよびプラグ接続
- アンプラグ/プラグ接続移行は、PDBデータベース(たとえば、オラクル(登録商標)データベース(Oracle database)12c PDB)を(たとえば、データベース・サービス・データベース・デプロイメント上のオラクル(登録商標)データベース12cのデータベースにおける)PDBデータベースに移行させるために用いることができる。この移行技術は、オンプレミス・データベースおよびオラクル(登録商標)クラウド・インフラストラクチャ・データベース・サービス・データベースが互換性のあるデータベース文字セットおよび各国文字集合を有する場合に用いることができる。
【0077】
非コンテナデータベース(Non-container database:NonCDB)のアンプラグおよびプラグ接続
- アンプラグ/プラグ接続移行を用いることで、非CDBデータベース(たとえば、オラクル(登録商標)データベース12cの非CDBデータベース)を(たとえば、データベース・サービス・データベース・デプロイメント上のオラクル(登録商標)データベース12cのデータベースにおける)PDBデータベースに移行させることができる。この移行技術は、オンプレミス・データベースおよびオラクル(登録商標)・クラウド・インフラストラクチャ・データベース・サービス・データベースが互換性のあるデータベース文字セットおよび各国文字集合を有する場合に用いることができる。
【0078】
リモートクローン物理データベース(physical database:PDB)
- このリモートクローニング移行技術を用いることで、オンプレミス・データベース(たとえば、オラクル(登録商標)12cデータベース)から(たとえば、データベースサービス上のオラクル(登録商標)データベース12cのデータベースにおける)PDBにPDBをコピーすることができる。この移行技術は、データベース・サービス・データベースが互換性のあるデータベース文字セットおよび各国文字集合を有する場合に用いることができる。
【0079】
ゼロダウンタイム(zero downtime:ZDM)ユーティリティ
- ゼロダウンタイム移行を用いることで、最小限のダウンタイムでデータベースを移行させることができる。たとえば、ユーティリティは、たとえばオラクル(登録商標)・アクティブ・データガード(Oracle Active Data Guard)などの技術を活用することによって、大幅なダウンタイムを発生させることなく、オンプレミス・データベースおよびオラクル(登録商標)・クラウド・インフラストラクチャ・クラシック(Oracle Cloud Infrastructure Classic)インスタンスをオラクル(登録商標)・クラウド・インフラストラクチャ、Exadata Cloud at Customer、およびExadataクラウドサービスへと移行させることができる。
【0080】
- ゼロダウンタイム移行は、ソース・データベースをオラクル(登録商標)・クラウド・インフラストラクチャ・オブジェクト・ストレージ(Oracle Cloud Infrastructure Object Storage)にバックアップすること、このバックアップからターゲット環境において(オラクル(登録商標)・データガード最大性能(Oracle Data Guard Maximum Performance)保護モードおよび非同期(asynchronous:ASYNC)再実行トランスポートモードで)スタンバイデータベースを作成すること、ソース・データベースとターゲット・データベースとを同期させること、および一次データベースとしてターゲット・データベースに切替えること等のようなメカニズムを用いることができる。
【0081】
- ゼロダウンタイム移行は、データベース移行が完了した後にフォールバック能力を可能化することができる。切替え後、(たとえば、オラクル(登録商標)・クラウド・インフラストラクチャ、Exadata Cloud at CustomerまたはExadataクラウドサービスにおいて実行される)ターゲット・データベースが一次データベースとなり得るとともに、オンプレミスがスタンバイとなり得る。ゼロダウンタイム移行はまた、オフライン(バックアップおよびリカバリ)移行をサポートすることができる。
【0082】
リモートクローン(nonCDB)
- リモートクローン(nonCDB)を用いて、非CDBデータベース(たとえば、オラクル(登録商標)データベース12cの非CDBオンプレミス・データベース)をPDBデータベース(たとえば、データベースサービス上のオラクル(登録商標)データベース12cのデータベースにおけるPDB)にコピーすることができる。
【0083】
- リモートクローン(nonCDB)は、オンプレミス・データベースおよびデータベース・サービス・データベースが互換性のあるデータベース文字セットおよび各国文字集合を有する場合に用いることができる。
【0084】
データポンプ従来型エクスポート・インポート
- データポンプ従来型エクスポート・インポートを用いることで、オンプレミス・ソース・データベース、テーブル空間、スキーマ、またはテーブルをデータベース・サービス・データベース・デプロイメント上のデータベースに移行させることができる。
【0085】
データポンプ・フル・トランスポータブル
- データポンプ・フル・トランスポータブル移行技術は、データベース全体をオンプレミスホストからデータベース・サービス・データベース・デプロイメント上のデータベースにコピーすることができる。
【0086】
データポンプ・トランスポータブル・テーブル空間
- トランスポータブル・テーブル空間移行技術は、一般に、同じデータを従来どおりにエクスポート/インポートする場合よりも高速である。なぜなら、実際のデータを含むデータファイルが単純に宛先位置にコピーされるだけであるからである。データポンプを用いることで、テーブル空間オブジェクトのメタデータを新しいデータベースに転送することができる。
【0087】
- トランスポータブル・テーブル空間移行技術は、オンプレミス・データベースのデータベース文字セットとオラクル(登録商標)・クラウド・インフラストラクチャ・データベース・サービス・データベースとが互換性のある場合に用いることができる。
【0088】
PDBのためのRMANアクティブ複製
- アクティブなデータベース複製は、ネットワークを介してライブターゲット・データベースを予備の宛先にコピーし、次いで、複製データベースを作成することができる。他の移行技術との違いは、既存のRMANバックアップおよびコピーが不要である点である。複製作業は予備チャネルによって実行することができる。このチャネルは、予備ホスト上の予備インスタンス上のサーバセッションに対応している。RMAN DUPLICATEコマンドを用いるとともにPLUGGABLE DATABASE文節を用いて、プラグ接続可能なデータベースを複製することができる。
【0089】
RMANクロス・プラットフォーム・トランスポータブルPDB
- RMANクロス・プラットフォーム・トランスポータブルPDBは、オンプレミス・データベースのデータベース文字セットとデータベース・サービス・データベースのデータベース文字セットとが互換性のある場合に用いることができる。
【0090】
RMANクロス・プラットフォーム・トランスポータブル・テーブル空間(Transportable Tablespace:TTS)・バックアップセット
- RMANクロス・プラットフォーム・トランスポータブル・テーブル空間・バックアップセットは、オンプレミス・データベースのデータベース文字セットとデータベース・サービス・データベースのデータベース文字セットとが互換性があり、オペレーティングシステムが(たとえば別個のエンディアン上で)互換性がある場合に用いることができる。たとえば、オラクル(登録商標)データベース12cのオンプレミス・テーブル空間は、RMANクロス・プラットフォーム・トランスポータブル・バックアップセット方法を用いて、データベース・サービス・デプロイメント上のオラクル(登録商標)データベース12cのデータベースに移行させることできる。
【0091】
データポンプ付きRMANトランスポータブル・テーブル空間
- データポンプ付きRMANトランスポータブル・テーブル空間は、オンプレミス・データベースのデータベース文字セットとデータベース・サービス・データベースのデータベース文字セットとが互換性がある場合に用いることができる。
【0092】
- データポンプ付きRMANトランスポータブル・テーブル空間を用いることで、データポンプ・トランスポータブル・テーブル空間移行技術によって、必要に応じて、テーブル空間をREAD ONLYモードにすることを回避することができる。この移行技術は、オンプレミス・ソース・データベースをデータベースサービス上のデータベース・デプロイメントに移行させるために用いることができる。
【0093】
データポンプ付きトランスポータブル・テーブル空間のRMAN変換
- この移行技術はデータポンプ・トランスポータブル・テーブル空間技術と同様であるが、異なるプラットフォーム間でのトランスポートを可能にする(たとえば、エンディアン実装)ためにRMAN CONVERTコマンドが追加されている。クエリV$TRANSPORTABLE_PLATFORMを用いることで、オンプレミス・データベース・プラットフォームがクロス・プラットフォーム・テーブル空間のトランスポートをサポートするかどうかを判断するとともに、プラットフォームのエンディアンフォーマットを決定することができる。
【0094】
リフレッシュ可能PDB切替え
- リフレッシュ可能PDB切替えを用いることで、ソースPDBおよびリフレッシュ可能PDBの役割を切替えることができる。
【0095】
データベース構成アシスタント(Database configuration assistant:DBCA)PDBクローン
- マルチテナント・コンテナ・データベース(multitenant container database:CDB)内のプラグ接続可能なデータベース(PDB)によって表わされるオラクル(登録商標)・マルチテナント(Oracle Multitenant)アーキテクチャは、オラクル(登録商標)・データベース(Oracle Database)デプロイメントのために普及している。DBCA PDBクローンは、たとえば、複数のPDBを作成するために、PDBのGUIベースのクローニングを可能にするデータベース構成アシスタント(Database Configuration Assistant:DBCA)ベースの機能である。PDBクローンは、テストおよび開発を目的とした同一PDBの大量生産に役立ち得る。
【0096】
他の好適な移行技術を用いることもできる。さまざまな移行技術は、たとえば、ソースおよびターゲットのためのプラットフォーム、リソース可用性、ダウンタイム制約、コスト、ならびに他の要因に基づいて、特定の移行環境において好適であり得る。たとえば、これらの移行技術の組合わせを用いることで、コストの削減、リソース効率の向上、オーバーヘッドの削減、およびダウンタイム制約の順守によって、かつ、一般には、移行の特定の環境に対応するレベルの移行サービスを提供することによって、移行を最適化してもよい。実施形態は、移行のデータセット(たとえば、トレーニングデータ)からの学習されたトレンドを利用して、どの移行技術が特定の候補移行に適合するかを予測し、これにより、最適化された移行経験を提供する。
【0097】
いくつかの実施形態においては、予測された移行方法を用いて、データベース移行を実現することができる。たとえば、データベースをコピーすることができ、災害回復データベースを移行のために利用することができ、テーブル空間を移動させることができ、開示された移行技術のいずれかまたは多くを実現することができ、かつ、他の任意の好適な移行技術を実現してデータベース移行を達成することができる。言い換えれば、ソースシステムからターゲットシステムへのデータベース移行は、いくつかの実施形態においては、予測された移行技術を用いて物理的に達成され得る。
【0098】
いくつかの実施形態においては、予測された移行技術のうちの1つ以上についてのフィードバック(または一般には、候補データベース移行の実行についてのフィードバック)を用いて、機械学習予測の有効性を向上させることができる。
図4は、例示的な実施形態に従った機械学習モデルを向上させるためのフィードバックを受信するためのシステムを示す。システム400は、ユーザデバイス402、フィードバック提出404、クラウドシステム406、サーバ408、フィードバックストレージ410、フィードバック処理412、およびデータセット414を含む。たとえば、ユーザデバイス402を用いて、フィードバック404をクラウドシステム406に提供することができる。いくつかの実施形態においては、たとえば、(たとえば、ウェブフォームを用いて)ウェブページ上に情報を入力することによって、プログレッシブ・ウェブアプリケーション上に情報を入力することによって、ドキュメント(たとえば、スプレッドシートもしくはデータドキュメント)をアップロードすることによって、または、クラウドシステム406にフィードバックを提供するための他の好適な手段を通じて、データベース移行の実行についてのフィードバックを提供することができる。
【0099】
いくつかの実施形態においては、フィードバックは、タイミング(たとえば、ソース・データベースにとってターゲットに至るまでの移行時間)、ダウンタイム(たとえば、データベースが利用不可能であった時間量)、帯域幅(たとえば、データ使用)、基準の順守(たとえば、ダウンタイム基準、帯域幅基準などの順守)、作業時間(たとえば、問題を手入力で修正するのに必要な時間数)などに関する情報を含み得る。いくつかの実施形態においては、所与のデータベース移行に関する移行情報にはフィードバックが提供される。たとえば、フィードバックは、候補データベース移行のための予測された移行技術が実現されたことを反映させることができるとともに、候補データベース移行についての制約が予測された移行技術によって満たされたかどうかを報告することができる。いくつかの実施形態においては、フィードバックは、予測された移行技術がタイミングおよびコンピューティングリソースの観点から適切に実行されたが移行の環境のためにはコストが高すぎたことを示すこともある。いくつかの実施形態においては、フィードバックは、予測された移行技術が適切に機能しないであろうという人の専門家の分析に基づいて、この予測された移行技術を別の移行技術の代わりに用いたことを示すこともある。いくつかの実施形態においては、フィードバックはサーバ408に伝達することができる。フィードバックストレージ410は、時間が経過するにつれて、さまざまなデータベース移行のためのフィードバックを格納することができる。
【0100】
いくつかの実施形態においては、格納されたフィードバックを(たとえば、受信されたフィードバックの量または期間などの基準を満たした後に)処理することができる。フィードバック処理412は、所与のデータベース移行についての移行情報と移行の実行を成功させるのに用いられる移行方法とを含むトレーニングデータのインスタンス(たとえば、行)を生成するためにフィードバックを処理することを含み得る。いくつかの実施形態においては、移行が成功したかどうかと、これにより、トレーニングデータのインスタンスが追加されるべきかどうかとを判断するために、フィードバックをレビューすることができる。たとえば、実行された移行によってダウンタイム基準が満たされない場合、フィードバックは、トレーニングデータに追加されるのではなく破棄されてもよい。フィードバックは、ダウンタイム基準および他の移行基準(たとえば、時間基準の持続時間、作業時間基準)が満たされているかどうかを示すことができ、いくつかの実現例では、移行基準が満たされていることをフィードバックが示す場合に、移行が成功したと見なすことができる。いくつかの実施形態においては、移行についての基準を満たさなかった移行技術を使用した移行についてのフィードバックを用いて、トレーニングデータを更新することができる。
【0101】
いくつかの実施形態においては、データセット414は、処理されたフィードバックで更新することができる。たとえば、データセット414は、移行を実行するために用いられる移行情報および移行技術のインスタンスを有するトレーニングデータを含み得る。フィードバックが移行の成功(たとえば、ダウンタイム基準、タイミング基準、作業時間基準を満たしていること)を示す場合、当該フィードバックは、トレーニングデータのインスタンスを生成してデータセット414を更新するために処理され得る。いくつかの実施形態においては、移行が何らかの移行基準を満たさなかったことをフィードバックが示している場合、データセット414からは、移行情報および移行技術の同様のインスタンスが削除されてもよい。たとえば、距離メトリックを用いて、基準を満たさなかった移行とトレーニングデータのインスタンスとの間の距離を計算することができ、さらに、閾値基準未満となる距離メトリックをもたらすトレーニングデータの1つ以上のインスタンスをデータセット414から削除することができる。
【0102】
いくつかの実施形態においては、基準を満たさなかった移行に関するフィードバックを時間の経過とともに格納することができ、いくつかの同様の移行が基準を満たさないことを示す場合に、データセット414を削除することができる。たとえば、距離メトリックは移行間の類似性を示し得る。1つ以上の移行基準を満たさないことを示すフィードバックが受信された移行のセットについて距離メトリックを計算することができ、さらに、計算された距離が閾値を下回っている同様の移行を発見することができる。格納されたフィードバックに従って1つ以上の基準を満たさなかった同様の移行の数が閾値数を上回る(かまたは他の何らかのフィードバック基準を満たす)場合、データセット414から同様の移行が削除され得る。いくつかの実施形態においては、削除は、データセット414から同様の移行の(全てではなく)いくつかを除去することを含む。
【0103】
フィードバックを組込んだ実施形態は、移行技術を予測するために用いられる機械学習モデルを強化するために実際の移行結果を取込む。これにより、結果として、継続的な学習プロセスが得られることとなり、予測された移行技術を長期間にわたって継続して成功させることを確実にすることができる。言い換えれば、新しい移行技術および移行基準(たとえば、制約)を組込んで、それらの効果をアルゴリズムにおいて較正することができる。データベース移行技術を予測する実施形態はフレキシブルかつロバストであり、この場合、時間が経過するのにつれて新しい技術、移行基準または移行情報を追加することができ、変化する環境下で予測の生成を継続して成功させることができる。
【0104】
図5は、例示的な実施形態に従った、データベース移行のための機械学習予測を生成するためのフロー図である。一実施形態においては、
図5(および以下の
図6)の機能は、メモリまたは他のコンピュータ読取可能もしくは有形の媒体に格納されるとともにプロセッサによって実行されるソフトウェアによって実現される。他の実施形態においては、各々の機能は、(たとえば、特定用途向け集積回路(application specific integrated circuit:ASIC)、プログラマブルゲートアレイ(programmable gate array:PGA)、フィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)などを用いることによって)ハードウェアによって、またはハードウェアとソフトウェアとの任意の組み合わせによって、実行されてもよい。
【0105】
502では、トレーニングデータを用いて機械学習モデルをトレーニングすることができる。ここで、トレーニングデータは、複数のデータベース移行についての移行情報と、当該複数のデータベース移行のための移行方法とを含み、移行情報は、ソース・データベース・タイプおよびターゲット・データベース・インフラストラクチャを含む。たとえば、機械学習モデルは、ニューラルネットワーク、ランダムフォレスト分類器、ブースト勾配アルゴリズム、回帰の形態、または他の任意の好適な機械学習モデルを含み得る。機械学習モデルは、複数の機械学習コンポーネントからの予測を集約するアンサンブル形式の学習を用いることができる。
【0106】
いくつかの実施形態においては、トレーニングデータは、所与のデータベース移行についての移行情報と、所与のデータベース移行のための移行方法とのインスタンスを含み、移行方法はトレーニングデータのためのラベルである。移行方法は、データベース複製、プラグ接続可能なデータベース実装、災害回復切替え、データベースクローニング、ならびにデータポンプ従来型エクスポートおよびインポートのうちの1つ以上を含み得る。いくつかの実施形態においては、トレーニングデータからのデータベース移行についての移行情報は、ソース・データベース・サイズ、帯域幅基準およびダウンタイム基準を含む。
【0107】
504において、スクリプトは、候補データベース移行についてのデータベース移行情報を生成するためにソース・データベースを実装するコンピューティングデバイス上で実行され得る。たとえば、ソースシステム(たとえば、ソース・データベースをホストするコンピューティングデバイス)からソース移行情報を抽出するように構成されたスクリプトをダウンロードしてソースシステム上で実行することができる。
【0108】
506において、候補データベース移行についての移行情報を受信することができる。たとえば、実行されたスクリプトによって移行情報を生成することができる。いくつかの実施形態においては、移行情報は、(たとえば、ウェブページ上に、プログレッシブ・ウェブアプリケーション上に、またはスクリプトの実行中に)ユーザによって入力され得るかまたはユーザによってアップロードされ得る。いくつかの実施形態においては、移行情報は、ソースシステム情報を抽出するようにスクリプトを実行することと、ユーザによる手動入力との両方によって生成される。
【0109】
いくつかの実施形態においては、受信された移行情報は、機械読取可能な形式(たとえば、2進数または16進数)に翻訳され得る。たとえば、予め定められた翻訳技術を用いて、受信された移行情報を機械読取可能バージョンで生成することができる。いくつかの実施形態においては、候補データベース移行についての移行情報は、機械読取可能フォーマットに翻訳することができ、この場合、移行情報は、移行情報のためのデータ値の閉リストに基づいて、予め定められたマッピングを用いて、機械読取可能フォーマットデータにマッピングすることができる。
【0110】
508において、候補データベース移行のための移行方法は、移行情報に基づいてトレーニング済み機械学習モデルを用いて予測することができる。たとえば、機械学習モデルは、トレーニングデータのインスタンスのデータセット内のトレンドを学習するようにトレーニングすることができ、この場合、インスタンスは、移行情報を移行方法に関連付けている。これらの学習されたトレンドに基づいて、トレーニング済み機械学習モデルは、受信した移行情報を用いて、候補データベース移行のための移行方法を予測することができる。いくつかの実施形態においては、トレーニング済み機械学習モデルは、予測を生成するために、翻訳された移行情報、または機械読取可能バージョン(たとえば、2進数)の移行情報に供給される。
【0111】
いくつかの実施形態においては、機械学習モデルは、設定されたトレーニング済み機械学習モデルから複数の予測を集約するアンサンブル機械学習モデルを含む。たとえば、移行情報は移行特徴のセットを含み、移行特徴のセットは、移行特徴の複数のサブセットに分割することができ、トレーニング済み機械学習モデルのセットは、移行特徴のサブセットを受信して複数の予測を生成するように構成されている。いくつかの実施形態においては、機械学習モデルのセットは、移行特徴の異なるセットを受信して予測を生成するように構成されている。
【0112】
図6は、例示的な実施形態に従った機械学習モデルを向上させるためのフィードバックを受信するためのフロー図を示す。602において、候補データベース移行のための予測された移行方法に関連付けられた移行結果を含むフィードバック情報が受信される。フィードバック情報は、移行の結果(たとえば、持続時間、ダウンタイム、ダウンタイム基準の順守、持続時間基準の順守、作業時間など)および候補移行を達成するために用いられる移行方法または技術を含み得る。たとえば、フィードバックは、予測された移行方法が実現されたことを反映させることができるとともに、予測された移行方法が移行についての制約を満たしたかどうかを報告することができる。いくつかの実施形態においては、フィードバックは、予測された移行方法がタイミングおよびコンピューティングリソースの観点から適切に実行されたが移行の環境のためにはコストが高すぎることを示すこともある。いくつかの実施形態においては、フィードバックは、予測された移行方法が適切に機能しないであろうという人の専門家の分析に基づいて、この予測された移行方法を別の移行方法の代わりに用いたことを示すこともある。
【0113】
604において、さまざまな移行方法を用いた複数の移行に関するフィードバック情報を時間の経過とともに受信することができる。たとえば、フィードバックは、移行についての移行情報と当該移行を実現するために用いられる移行方法とを含み得る。いくつかの実施形態においては、フィードバック情報は、使用された移行方法が成功したかどうかを示す。複数の移行についてのフィードバックは、候補データベース移行についてのフィードバックと同様であり得る。
【0114】
606において、候補データベース移行についてのフィードバック情報を処理して、トレーニングデータのインスタンスを生成することができる。たとえば、候補データベース移行についてのフィードバック情報は、それが移行基準(たとえば、ダウンタイム基準、持続時間の基準、作業時間基準)を満たしていることを示す場合、移行方法は、候補データベース移行に対応する移行情報について成功と見なすことができる。したがって、候補データベース移行についての移行情報および移行方法を処理してトレーニングデータのインスタンスを生成することができる。
【0115】
いくつかの実施形態においては、データベース移行についての複数のフィードバックを処理することができる。たとえば、フィードバックが移行のセットについての移行基準の順守を示す場合、そのセット内の移行についての移行情報および移行方法を処理して、トレーニングデータのインスタンスを生成することができる。いくつかの実施形態においては、移行が移行基準を満たさなかったことを示すフィードバックが提供される場合、トレーニングデータのインスタンスは追加されない。
【0116】
608において、トレーニングデータは、処理されたフィードバックを用いて生成されたトレーニングデータのインスタンスで更新され得る。610において、機械学習モデルは、更新されたトレーニングデータを用いて再トレーニングされ得る。
【0117】
実施形態は、トレーニング済み機械学習モデルを用いてデータベース移行のための移行技術を予測する。たとえば、オンプレミス・コンピューティングデバイスからクラウドコンピューティングシステムへの移行などのデータベース移行は、データベース複製、クローニング、プラグ接続可能なデータベース実装、および他の技術などの多数の異なる技術および技術の組合わせを用いて実装され得る。ソース・データベース実装/タイプ、ターゲット・データベース・インフラストラクチャ、ダウンタイム基準、帯域幅基準、および他の環境などの移行のための環境に基づいて、これらのデータベース移行技術のうちのいくつかは他のものよりも有効であり得る。たとえば、しばしば専門家が経験に基づいて移行技術を選択してもよい。
【0118】
実施形態は、所与の移行のための環境に基づいてデータベース移行技術を予測するためにトレーニング済み機械学習モデルを用いる。たとえば、トレーニングデータは、データベース移行および当該移行を実現するために用いられる技術(たとえば、移行のための環境を考慮して成功と見なされる技術)についての情報を含み得る。このトレーニングデータは、機械学習モデルをトレーニングするために用いることができる。この場合、トレーニングは、データにおけるトレンドを学習するようにモデルを構成することができる。したがって、トレーニング済みモデルは、データベース移行のための1セットの環境を前提とすると有効となるであろう移行技術を予測するのに有効であり得る。言い換えれば、候補データベース移行をトレーニング済み機械学習モデルに供給することができ、トレーニングデータ内の学習されたトレンドに基づいて移行技術についての予測を生成することができる。
【0119】
本明細書全体にわたって記載される本開示の特徴、構造または特性は、1つ以上の実施形態において任意の好適な態様で組合わされてもよい。たとえば、本明細書全体を通じて「一実施形態」、「いくつかの実施形態」、「ある実施形態」、「ある複数の実施形態」、または、他の同様の言語の使用は、実施形態に関連して記載される特定の特徴、構造または特性が本開示の少なくとも1つの実施形態に含まれ得るという事実を指している。したがって、本明細書全体を通じて、「一実施形態」、「いくつかの実施形態」、「ある実施形態」、「ある複数の実施形態」、または、他の同様の言語の出現は、必ずしもすべてが同じ実施形態群を指すのではなく、記載された特徴、構造または特性は、1つ以上の実施形態において任意の好適な態様で組合わされてもよい。
【0120】
当業者であれば、上述の実施形態が異なる順序のステップで実施され得ること、および/または、開示される構成とは異なる構成の要素により実施され得ることを容易に理解するだろう。したがって、本開示は概説した実施形態を考慮しているが、本開示の精神および範囲内に収まるいくつかの変更例、変形例および代替的な構造が明らかになり得ることが当業者には明白であるだろう。したがって、本開示の範囲および境界を決定するために、添付の特許請求の範囲が参照されるべきである。