Gemini アシスタンスを使用して Oracle のコードとスキーマを変換する

Database Migration Service は、Gemini for Workspace を コンバージョン ワークスペースに統合し、次の領域でコンバージョン プロセスを高速化、改善できるようにします。 Google Cloud

  • Gemini を活用した自動変換で決定論的変換の結果を強化し、AI の力を活用して PostgreSQL コードで必要な手動調整の数を大幅に減らします。

    この機能は、アップグレードされたコンバージョン ワークスペースでのみサポートされています。 アップグレードできるのは、新しく作成したワークスペースのみです。詳細については、 コンバージョン ワークスペースをアップグレードするをご覧ください。

  • コンバージョン アシスタントでコードの説明機能を提供します。コンバージョン アシスタントは、コンバージョン ロジックの理解、コンバージョンの問題の修正案の提案、変換されたコードの最適化に役立つ一連の専用プロンプトです。
  • Gemini コード変換の候補を使用すると、 変換の問題の修正を迅速に行うこ�������き���す。これは、変換の問題を修正する際に Gemini モデルが学習し、ワークスペース内の他の不具合のあるオブジェクトへの変更を提案するメカニズムです。

    また、この機能をコードの説明可能性と組み合わせて、Gemini を活用したエンドツーエンドのコード オブジェクト変換を実現することもできます。詳細については、 変換に関する問題のあるコードオブジェクトを修正するためのワークフローの例をご覧ください。

SQL コードとスキーマは、コンバージョン ワークスペースを作成するリージョンに保存されます。Gemini モデルでアシストされたコードとスキーマ変換を使用する場合、コードとスキーマは他のリージョンで処理される場合があります。

Gemini for Google Cloud がデータを使用する方法とタイミングに関する説明をご覧ください。

料金

Database Migration Service 変換ワークスペースで Gemini アシスタンスを使用するには、Gemini for API を有効にする必要があります。 Google Cloud Gemini の料金が適用されます。詳細については、 Gemini for Google Cloud の料金をご覧ください。

始める前に

Database Migration Service で Gemini を活用した機能を使用するには、次の操作を行います。

  1. プロジェクトで Gemini for Google Cloud を有効にします。

    API を有効にする

  2. プロジェクトで Google Cloud の Gemini を有効にすると、プロジェクト内のすべてのコンバージョン ワークスペースで コンバージョン アシスタント パターン マッチングが自動的に有効になります。 自動変換を使用するには、ワークスペースごとに有効にする必要があります。

    Gemini を活用した各機能の有効化または無効化は、 アップグレードされたコンバージョン ワークスペースを使用するかどうかによっても異なります。各機能の有効化または無効化の詳細については、このページの次のセクションをご覧ください。

Gemini の自動変換を使用する

ソース スキーマを変換するときに、Database Migration Service は確定的変換ルールを使用して、PostgreSQL 構文と同等のものを作成します。自動変換では、決定論的結果に Gemini を活用した修正を統合することで、コンバージョンの問題を減らし、コンバージョンの質を高めています。

自動変換を使用する手順は次のとおりです。

  1. 新しいコンバージョン ワークスペースを作成します。最新の効率的なエクスペリエンスを利用できるよう、す��にアップグレードしてください。
  2. [コンバージョン ワークスペース] に移動してワークスペースを選択します。

    コンバージョン ワークスペースに移動

  3. ワークスペースで 自動変換を有効にする
  4. ソースコードとスキーマを変換します。 [ソースを変換] をクリックします。

    Database Migration Service は、Gemini を活用した拡張機能を変換に自動的に適用します。ツリービューを使用すると、Gemini で拡張されているオブジェクトを確認できます。

    Gemini による拡張機能の概要が表示されたコンバージョン ツリービュー。
    図 1. Gemini 拡張ステータスを含むソーススキーマのツリービュー。(クリックして拡大)
    Gemini による拡張機能の概要が表示されたコンバージョン ツリービュー。
  5. ツリービューで拡張オブジェクトを選択すると、自動変換によって提供される拡張機能の詳細が表示されます。Gemini によって導入された変更が気に入らない場合は、[代わりに決定論的コードを使用する] をクリックして、オブジェクトを決定論的変換結果に戻します。

    Gemini を活用した自動変換パネル。変換されたスキーマに実装された調整に関する詳細が表示されます。
    図 2. Gemini を活用した自動変換パネル。コードとスキーマの拡張の詳細を確認できます。(クリックして拡大)
    Gemini を活用した自動変換パネル。変換されたスキーマに実装された調整に関する詳細が表示されます。

自動変換を有効にする

自動変換を無効にしていた場合は、Gemini パネルで有効にできます。

  1. Google Cloud コンソールで [コンバージョン ワークスペース] に移動し、ワークスペースを選択します。

    コンバージョン ワークスペースに移動

  2. pen_spark [Gemini] をクリックします。

    Gemini サイドパネルが開きます。

  3. [自動変換] チェックボックスをオンにして、[設定を保存] をクリックします。

    スキーマを変換すると、変換ワークスペースが自動的に変換されるようになりました。

  4. 省略可: [Gemini でソース オブジェクトを変換しますか?] ダイアログで、[変換] をクリックします。

    自動変換を有効にしても、変換されたオブジェクトは変更されません。 スキーマを変換することは後で再び行えます。

自動変換を無効にする

自動変換を無効にするには、次の操作を行います。

  1. Google Cloud コンソールで [コンバージョン ワークスペース] に移動し、ワークスペースを選択します。

    コンバージョン ワークスペースに移動

  2. pen_spark [Gemini] をクリックします。

    Gemini サイドパネルが開きます。

  3. [自動変換] チェックボックスをオフにして、[設定を保存] をクリックします。

    コンバージョン ワークスペースでスキーマを変換する際に、確定的なコードとスキーマの変換が使用されるようになりました。

  4. 省略可: [ソース オブジェクトを変換しますか?] ダイアログで、[変換] をクリックします。

    自動変換を無効にしても、変換されたオブジェクトは変更されません。コンバージョン結果を元に戻して確定的コンバージョン ルールを使用する場合は、後でスキーマを再度変換できます。

Gemini 変換アシスタントを使用する

変換アシスタントは、オブジェクトの変換ロジックをより深く理解したり、コードを最適化して変換の問題を解決する方法についてアイデアを尋ねたり、スキーマにコメントを追加してデータベース オブジェクトをセルフドキュメント化したりするために使用できる一連のプロンプトです。

コードとスキーマ変換の説明可能性に関する Gemini プロンプトにア��セスする方法を示したスクリーンショット。
図 1.Gemini 変換アシスタントのプロンプト。(クリックして拡大)
コードとスキーマ変換の説明可能性に関する Gemini プロンプトにアクセスする方法を示したスクリーンショット。

コンバージョン アシスタントを有効にする

プロジェクトで Gemini for Google Cloud を有効にすると、コンバージョン アシスタントがデフォルトで有効になります。コンバージョン アシスタントを無効にしていた場合は、ワークスペースで再度有効にできます。コンバージョン アシスタントを有効にする手順は、アップグレードされたコンバージョン ワークスペースを使用するかどうかによって異なります。

アップグレードされたワークスペース

アップグレードされたコンバージョン ワークスペースでコンバージョン アシスタントを有効にするには、次の操作を行います。

  1. Google Cloud コンソールで [コンバージョン ワークスペース] に移動し、ワークスペースを選択します。

    コンバージョン ワークスペースに移動

  2. pen_spark [Gemini] をクリックします。

    Gemini サイドパネルが開きます。

  3. [コンバージョン アシスタント] チェックボックスをオンにして、[設定を保存] をクリックします。

アップグレードされていないワークスペース

Gemini 自動変換を使用するようにアップグレードされていない古いワークスペースの場合、 プロジェクトで Gemini を有効にすると、変換アシスタントがデフォルトで有効になります。追加の手順は必要ありません。

コンバージョン アシスタントを無効にする

コンバージョン アシスタントを有効にする手順は、アップグレードされたコンバージョン ワークスペースを使用するかどうかによって異なります。

アップグレードされたワークスペース

アップグレードされたコンバージョン ワークスペースでコンバージョン アシスタントを有効にするには、次の操作を行います。

  1. Google Cloud コンソールで [コンバージョン ワークスペース] に移動し、ワークスペースを選択します。

    コンバージョン ワークスペースに移動

  2. pen_spark [Gemini] をクリックします。

    Gemini サイドパネルが開きます。

  3. [コンバージョン アシスタント] チェックボックスをオンにして、[設定を保存] をクリックします。

アップグレードされていないワークスペース

Gemini 自動変換を使用するようにアップグレードされていない古いワークスペースの場合、 プロジェクトで Gemini を有効にすると、変換アシスタントがデフォルトで有効になります。

プロジェクトで Gemini for Google Cloud を無効にすると、変換アシスタントを無効にできます。

オブジェクト変換問題の修正方法を表示

ルールベースのコードとスキーマ変換エンジンは、Oracle から PostgreSQL にオブジェクトを変換するときに問題が発生することがあります。たとえば、特定の Oracle 関数には PostgreSQL に直接相当するものがない場合があります。[オブジェクト変換問題の修正方法を表示] プロンプトを使用すると、変換の問題を解決できるコード変更の提案を取得できます。

このプロンプトは、変換に関する問題がある 編集可能なコード オブジェクトでのみ使用できます。コンバージョン ワークスペースの他のタイプのオブジェクトに対して、このプロンプトは表示されません。

このプロンプトを使用する手順は次のとおりです。

  1. Google Cloud コンソールで、[コンバージョン ワークスペース] に移動します。

    コンバージョン ワークスペースに移動

  2. 利用可能なコンバージョン ワークスペースのリストから、操作するコンバージョン ワークスペースを選択します。

    コンバージョン ワークスペース エディタが開きます。

  3. [Oracle] パネルで、Oracle オブジェ���トのいずれかを選択します。

  4. オブジェクトの詳細ビューで、[コンバージョン アシスタント] > [オブジェクト変換問題の修正方法を表示] を選択します。

    プロンプトの結果が表示されたペインが開きます。

  5. 提案された改善が表示されている差分画面を確認します。結果に満足したら、[候補を挿入] ボタンを使用して、変換されたオブジェクトを更新できます。

  6. 問題のあるコードオブジェクトごとに手順を��り返します。コード候補を適用すると、 Gemini モデルがパターンを学習し、ワークスペース内のすべての不具合のあるオブジェクトに修正を伝播する方法に関する提案を提供できます。

このオブジェクトの変換ロジックを表示

[このオブジェクトの変換ロジックを説明] プロンプトを使用すると、変換されたコードの動作について、新しいコードに適用されたベスト プラクティスの概要を含め、手順を追って説明を確認できます。

オブジェクトの変換ロジックの説明をリクエストする手順は次のとおりです。

  1. Google Cloud コンソールで、[コンバージョン ワークスペース] に移動します。

    コンバージョン ワークスペースに移動

  2. 利用可能なコンバージョン ワークスペースのリストから、操作するコンバージョン ワークスペースを選択します。

    コンバージョン ワークスペース エディタが開きます。

  3. [Oracle] パネルで、Oracle オブジェクトのいずれかを選択します。

  4. オブジェクトの詳細ビューで、[コンバージョン アシスタント] > [このオブジェクトの変換ロジックを表示] を選択します。

    プロンプトの結果が表示されたペインが開きます。

このコードの最適化方法を表示

ルールベースのコードとスキーマの変換の結果は技術的には正しいものの、PostgreSQL 環境用に完全に最適化されていない場合があります。[このコードの最適化方法を表示] プロンプトを使用すると、データベース オブジェクトのコード最適化に関する提案を取得できます。

このプロンプトを使用する手順は次のとおりです。

  1. Google Cloud コンソールで、[コンバージョン ワークスペース] に移動します。

    コンバージョン ワークスペースに移動

  2. 利用可能なコンバージョン ワークスペースのリストから、操作するコンバージョン ワークスペースを選択します。

    コンバージョン ワークスペース エディタが開きます。

  3. [Oracle] パネルで、Oracle オブジェクトのいずれかを選択します。

  4. オブジェクトの詳細ビューで、[コンバージョン アシスタント] > [このコードを最適化する] を選択します。

    プロンプトの結果が表示されたペインが開きます。

  5. 結果パネルで説明を確認し、コードを確認して、提案がニーズに合っていることを確認します。結果に満足したら、[候補を挿入] ボタンを使用して、変換されたオブジェクトを更新できます。

このオブジェクトの目的を記述するコメントを追加

[このオブジェクトの目的を記述するコメントを追加] プロンプトでは、データベース オブジェクトに追加してセルフドキュメント化スキーマを作成できるコードコメントの候補が生成されます。

このプロンプトを使用する手順は次のとおりです。

  1. Google Cloud コンソールで、[コンバージョン ワークスペース] に移動します。

    コンバージョン ワークスペースに移動

  2. 利用可能なコンバージョン ワークスペースのリストから、操作するコンバージョン ワークスペースを選択します。

    コンバージョン ワークスペース エディタが開きます。

  3. [Oracle] パネルで、Oracle オブジェクトのいずれかを選択します。

  4. オブジェクトの詳細ビューで、[コンバージョン アシスタント] > [このオブジェクトの目的を記述するコメントを追加] を選択します。

    プロンプトの結果が表示されたペインが開きます。

  5. 結果パネルで説明を確認し、コードを確認して、提案がニーズに合っていることを確認します。結果に満足したら、[候補を挿入] ボタンを使用して、変換されたオブジェクトを更新できます。

Gemini コード変換で変換の問題の修正を伝播する

ワークスペースでコンバージョンの問題を修正すると、Gemini モデルは修正から学習し、ワークスペース内の他の不具合のあるオブジェクトに対する変更を提案できます。この方法では、すべての編集を手動で行うことを必要とせず、修正を複数のオブジェクトに反映できます。

Gemini コンバージョン候補を有効にする

プロジェクトで Gemini for Google Cloud を有効にすると、コンバージョン候補はデフォルトで有効になります。この機能を無効にした場合は、ワークスペースで再度有効にできます。コンバージョン候補を有効にする手順は、アップグレードされたコンバージョン ワークスペースを使用するかどうかによって異なります。

アップグレードされたワークスペース

アップグレードされたコンバージョン ワークスペースでコンバージョン アシスタントを有効にするには、次の操作を行います。

  1. Google Cloud コンソールで [コンバージョン ワークスペース] に移動し、ワークスペースを選択します。

    コンバージョン ワークスペースに移動

  2. pen_spark [Gemini] をクリックします。

    Gemini サイドパネルが開きます。

  3. [パターン マッチング] チェックボックスをオンにして、[設定を保存] をクリックします。

アップグレードされていないワークスペース

Gemini 自動変換を使用するようにアップグレードされていない古いワークスペースの場合、 プロジェクトで Gemini を有効にすると、変換候補がデフォルトで有効になります。コンバージョンの候補を無効にしていた場合は、次の手順で再度有効にします。

  1. Google Cloud コンソールで [コンバージョン ワークスペース] に移動し、ワークスペースを選択します。

    コンバージョン ワークスペースに移動

  2. タスクバーで、pen_spark [Gemini] をクリックし、[コード候補] を選択します。

    このコンバージョン ワークスペースで Gemini コードのコンバージョン候補が有効になりました。

Gemini コンバージョンの候補を無効にする

コンバージョン アシスタントを有効にする手順は、アップグレードされたコンバージョン ワークスペースを使用するかどうかによって異なります。

アップグレードされたワークスペース

アップグレードされたコンバージョン ワークスペースでコンバージョン候補を有効にするには、次の操作を行います。

  1. Google Cloud コンソールで [コンバージョン ワークスペース] に移動し、ワークスペースを選択します。

    コンバージョン ワークスペースに移動

  2. pen_spark [Gemini] をクリックします。

    Gemini サイドパネルが開きます。

  3. [パターン マッチング] チェックボックスをオフにして、[設定を保存] をクリックします。

アップグレードされていないワークスペース

Gemini 自動変換を使用するようにアップグレードされていない古いワークスペースのコンバージョン候補を無効にするには、次の操作を行い��す。

  1. Google Cloud コンソールで [コンバージョン ワークスペース] に移動し、ワークスペースを選択します。

    コンバージョン ワークスペースに移動

  2. タスクバーで、pen_spark [Gemini] をクリックし、[コード候補] を選択します。

    このコンバージョン ワークスペースでは、Gemini コード変換の候補が無効になりました。

Database Migration Service で Gemini のコンバージョン候補を表示する

オブジェクトの問題を修正すると(SQL オブジェクトのコード編集、または [ オブジェクト変換問題の修正方法を表示] プロンプトで提案されたコードの適用)、Gemini モデルが変更を分析します。十分な変更が加えられた後、Gemini 統合によってプロンプトが表示され、さらに編集が提案されます。

Gemini の候補にアクセスするには:

  1. Google Cloud コンソールで、[コンバージョン ワークスペース] に移動します。

    コンバージョン ワークスペースに移動

  2. 利用可能なコンバージョン ワークスペースのリストから、操作するコンバージョン ワークスペースを選択します。

    コンバージョン ワークスペース エディタが開きます。

  3. [Oracle] パネルで、生成された SQL を調整するオブジェクトを選択します。

  4. オブジェクトで発生したコンバージョンの問題を修正し、コードの変更を保存します。 コードを手動で編集するか、 オブジェクト変換問題の修正方法を表示プロンプトを使用します。

    Gemini モデルは、コンバージョンの問題がある他のオブジェクトに同様の更新を提案できるまで、最近の修正を分析します。Gemini モデルが十分な修正を分析すると、[Gemini の提案を確認] ダイアログが表示されます。

    Gemini の [問題を修正] ダイアログ。
    図 2.Gemini の問題修正ダイアログ。 (クリックして拡大)
    Gemini の [問題を修正] ダイアログ。
  5. 行った変更に基づいて AI が生成した候補を確認するには、[候補を確認] をクリックします。

Gemini の変換の候補を確認する

[Gemini で問題を修正] ページには、行ったコード変更に基づいて Gemini モデルによって生成された候補が表示されます。これらの候補には、他のオブジェクトに適用できる同様の変更が含まれています。提案ごとに、提案を確認、変更、承認、無視できます。

[Fix issues with Gemini] ページには、オブジェクトのソースコードの 3 つのバリアントが表示されます。これらは、[Edit view] メニューで選択できます。

  • 元のソースコード(読み取り専用)
  • 移行先の下書きソースコード(読み取り専用)
  • Gemini の支援機能で生成された移行先のソースコード(編集可能)

[オブジェクト] ペインには、問題のあるオブジェクトのリストと、Gemini モデルによって提案された修正が含まれています。

Gemini の候補を確認する手順は次のとおりです。

  1. オブジェクトをクリックすると、関連する AI が提案する修正が表示されます。
  2. Gemini モデルが提案したコードを確認して編集します。
  3. 次のいずれかを行います。

    • 提案(編集内容を含む)を承認するには、[コードを承認] をクリックします。変更が変換ワークスペースのオブジェクトに適用され、オブジェクト リストのオブジェクトの状態が [保留中] から [承認済み] に変わります。

    • 変更を適用せずに候補(編集内容を含む)を保持するには、別のオブジェクトに切り替えます。オブジェクトは [Pending](保留中)ステータスのままです。コードを編集して、後で提案を承認または無視できます。

    • 保留中の候補や承認済みの候補を無視して編集内容を元に戻すには、[コードを無視] をクリックします。オブジェクト リスト内のオブジェクトの状態が [保留中] から [無視] に変わります。変更が元に戻されます。コードを編集して後で適用することもできます。

Gemini の候補を閉じて、適用していない変更をすべて破棄するには、次の操作を行います。

  1. [Gemini で問題を解決する] ページで、戻る矢印をクリックします。
  2. [Gemini を閉じる] ダイアログで [閉じる] をクリックします。

    現在の Gemini セッションは終了しています。候補ページに戻るには、再度 Gemini の候補にアクセスします。

次のステップ