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

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

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

  • 変換アシスタントによるコードの説明可能性機能を提供します。これは、変換ロジックの理解、変換の問題の修正の提案、変換されたコードの最適化に役立つ専用のプロンプトのセットです。
  • Gemini の品質評価で、変換されたコードを検証します。Gemini は、変換されたコードの正確性と、ソースコードとの機能的な同等性を分析するのに役立ちます。
  • コンバージョンの問題の修正を迅速に適用する。Gemini のコード変換の提案は、コンバージョンの問題を修正する際に Gemini モデルが学習し、ワークスペース内の他の問題のあるオブジェクトに変更を提案するメカニズムです。

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

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

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

費用

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

始める前に

Database Migration Service で Gemini を活用した機能を使用するには、プロジェクトで Google Cloud の Gemini を有効にします。

API を有効にする

プロジェクトで Gemini for Google Cloud を有効にすると、ワークスペースで Gemini を活用したすべての変換機能を使用できます。

必要なロール

Gemini 拡張変換機能を使用するために必要な権限を取得するには、プロジェクトに対する データベース移行管理者(roles/datamigration.admin)ロールを付与するよう管理者に依頼してください。

ロールの付与の詳細については、Identity and Access Management のドキュメントの アクセスを管理するをご覧ください。

この事前定義ロールには、Gemini 拡張変換機能を使用するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

Database Migration Service を使用して異種 SQL Server 移行を実行するには、次の権限が必要です。

  • datamigration.*
  • cloudaicompanion.entitlements.get

Gemini 自動変換を使用する

ソーススキーマを変換するときに、Database Migration Service は決定論的な変換ルールを使用して、PostgreSQL 構文に相当する構文を作成します。自動変換では、決定論的な結果に Gemini を活用した修正が統合され、変換の問題の数が減り、変換の品質が向上します。

Gemini を活用した修正で強化されたコード オブジェクトに対して、追加の品質評価と機能同等性評価を行うことができます。詳細については、 Gemini の品質評価をご覧ください。

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

  1. 新しいコンバージョン ワークスペースを作成します。最新の合理化されたエクスペリエンスを使用できるように、すぐにアップグレードしてください。
  2. [コンバージョン ワークスペース] に移動し、ワークスペースを選択します。

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

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

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

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

    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. [コンバージョン アシスタンス] チェックボックスをオンにして、[設定を保存] をクリックします。

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

コンバージョン アシスタントを無効にするには、次の操作を行います。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  5. 提案された改善点を示す差分画面を確認します。結果が気に入った場合は、[提案を挿入] ボタンを使用して、変換されたオブジェクトを更新できます。

  6. 障害コード オブジェクトごとにこの手順を繰り返します。コードの提案を適用すると、 Gemini モデルはパターンを学習し、ワークスペース内のすべての欠陥のあるオブジェクトに修正を反映する方法を提案できます。

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

「このオブジェクトの変換ロジックを説明する」プロンプトを使用すると、変換されたコードの動作をステップごとに説明できます。これには、新しいコードに適用されたベスト プラクティスの概要も含まれます。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  4. オブジェクトの詳細ビューで、Gemini 変換アシスタントのアイコン。 [アシスト] > [このコードの最適化方法を表示] を選択します。

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

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

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

「このオブジェクトの目的を説明するコメントを追加」プロンプトは、自己文書化スキーマのためにデータベース オブジェクトに追加できるコードコメントの提案を生成します。

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

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

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

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

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

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

  4. オブジェクトの詳細ビューで、Gemini 変換アシスタントのアイコン。 アシスト > このオブジェクトの目的を説明するコメントを追加を選択します。

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

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

Gemini の品質評価で変換の品質を確保する

Gemini は、品質評価によりコードとスキーマの変換の出力を検証するのに役立ちます。これらの評価では、変換されたコードの機能的な同等性の検証(つまり、PostgreSQL コードがソース SQL Server コードと同じ結果を生成することの確認)に重点を置いていますが、レポートには、変換の全体的な品質に関する詳細なフィードバックも含まれています。コードに問題が見つかった場合は、新しいコンバージョンの問題として報告されます。

コンバージョン ワークスペースの Gemini 変換品質レポートパネル。
図 3. Gemini 変換品質評価レポートの例。

ワークスペースの自動品質評価を構成することも、選択したオブジェクトのレポートを手動で実行することもできます。

自動品質評価を有効にする

対象となるコード オブジェクトに対して Gemini の品質評価を自動的に実行するように、コンバージョン ワークスペースを構成できます。この機能を使用するには、 Gemini 自動変換も有効にする必要があります。

自動品質評価を構成する手順は次のとおりです。

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

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

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

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

  3. [コンバージョン品質評価] チェックボックスをオンにして、[設定を保存] をクリックします。

Database Migration Service は、変換されたオブジェクトの品質評価レポートを自動的に作成します。

手動品質評価レポートを実行する

Gemini 自動変換機能で変換された、サポートされているコード オブジェクトに対して、オンデマンドで品質評価を実行できます。

手動品質評価を実行するには:

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

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

  2. コンバージョン ワークスペース エディタで、ソースパネルを使用して、Gemini で変換が拡張されたオブジェクトを選択します。

    Augmented by Gemini フィルタを使用すると、ナビゲーションが簡単になります。詳細については、 ソース スキーマ ビューでオブジェクトをフィルタするをご覧ください。

  3. [変換の詳細] パネルで、[品質評価レポート] タブを選択し、[このコードの品質を評価する] をクリックします。
  4. 評価が実行され、結果が [品質評価レポート] タブに表示されます。

品質評価の制限事項

  • Gemini の品質評価は、 Gemini 自動変換機能で変換されたオブジェクトでのみサポートされます。
  • スキーマ オブジェクトは品質評価でサポートされていません。
  • この評価は、主に機能の同等性と全体的な品質に重点を置いています。レポートにはパフォーマンス テストは含まれません。

Gemini コード変換で変換の問題の修正を反映する

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

Gemini の変換候補を有効にする

プロジェクトで Gemini for Google Cloud を有効にすると、コンバージョンの提案がデフォルトで有効になります。以前にこの機能を無効にした場合は、ワークスペースで再度有効にできます。コンバージョン アシスタントを有効にする手順は次のとおりです。

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

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

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

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

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

Gemini の変換候補を無効にする

コンバージョンの提案を無効にするには、次の操作を行います。

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

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

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

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

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

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 つのバリエーションが表示されます。これらは、[編集ビュー] メニューで選択できます。

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

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

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

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

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

    • 変更を適用せずに提案(編集内容を含む)を保持するには、別のオブジェクトに切り替えます。オブジェクトは Pending 状態のままです。コードを編集して、後で提案を適用または無視できます。

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

Gemini の提案を閉じて、適用していない変更をすべて破棄する手順は次のとおりです。

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

    現在の Gemini セッションは終了します。提案ページに戻るには、もう一度 Gemini の提案にアクセスします。

次のステップ