メインコンテンツまでスキップ

エージェントコードコンバーターでSQLを変換

備考

ベータ版

この機能はベータ版です。それを使用するには、ワークスペース管理者が プレビュー ページから agentic code converter を有効にする必要があります。Databricksのプレビューを管理するを参照してください。

エージェント型コードコンバータは、Genie Code を使用して、T-SQL、Snowflake、Redshift、Oracle、BigQuery、Teradata などのダイアレクトの既存の SQL を、Databricks 上で実行可能なコードに変換します。移行プロジェクトで作業を整理し、出力のターゲットフレームワークを選択します。Databricks SQL クエリーを生成する場合は SQL を、DataFrame API を使用する Databricks ノートブックを生成する場合は Notebooks を選択します。コンバータは各ソーススクリプトを分析し、変換された出力を検証し、結果をワークスペースフォルダに書き込む前にエラーを反復的に修正します。

エージェントコードコンバーターは、既存のデータウェアハウスおよびETLツールからDatabricksへのワークロードを移行するためのDatabricksツーリングの一部です。移行プロジェクトで作業を整理および追跡しながら、ソースSQLを変換します。

仕組み

ワークスペースに移行プロジェクトを作成することで、変換を開始します。このプロジェクトは各ファイルの状態を追跡し、移行を管理するための単一の場所を提供します。

変換ワークフローの図:ソースファイルが移行プロジェクトに追加され、Genie Codeのサブエージェントがそれらを変換し、検証済みのANSI SQLがワークスペースフォルダーに書き込まれます。

変換を実行すると、Genie Code は移行スキルを呼び出し、ファイルを並行して変換するサブエージェントをデプロイします。各サブエージェントはソース言語を分析し、プロジェクトのターゲットフレームワーク(Databricks SQL または Databricks ノートブック)に対応するコードを生成して結果を検証し、失敗したセクションを再試行します。変換されたファイルは、プロジェクト用に指定したワークスペースフォルダに直接書き込まれます。

また、Genie Codeの会話で/migrateコマンドを使用すると、プロジェクトなしで単一のファイルまたはフォルダーを変換できます。

要件

  • エージェントコード変換ベータ版が有効なワークスペース。ワークスペース管理者は、**プレビュー**ページからこの機能を有効にします。Databricks プレビューの管理を参照してください。
  • 既存のSQLファイルは、ワークスペースでアクセス可能である必要があります。ワークスペースファイルとしてuploadされているか、エディターで開かれている必要があります。
  • ワークスペースはGenie Codeの要件を満たす必要があります。See Genie Code.

サポートされているソースと制限事項

コンバーターは次のソースのダイアレクトをサポートします。

  • T-SQL
  • Snowflake SQL
  • Redshift SQL
  • Oracle
  • BigQuery
  • テラデータ

移行プロジェクトを作成する際は、以下のターゲットフレームワークのいずれかを選択してください。

  • SQL : ANSI準拠のDatabricks SQLクエリー。
  • ノートブック : DataFrame API を使用する Databricks ノートブック。SQL で記述する方が明確なロジックには spark.sql を使用します。

各変換には、以下の制限が適用されます。

  • バッチには最大300個のファイルを含めることができます。
  • スクリプトは最大1,000行含めることができます。
  • Teradata BTEQスクリプトはまだサポートされていません。

既存のSQLコードを変換

移行プロジェクトで既存のSQLを変換する方法を次のステップで説明します。

ステップ1: ソースファイルのupload。

既存のSQLファイル(.sql)をワークスペースファイルブラウザを使用してuploadするか、Databricks CLIを使用してスクリプトのディレクトリを一括uploadします。

ステップ2:マイグレーションプロジェクトを作成します。

ワークスペースから移行プロジェクトを作成します:

  1. 新しいアイコン> **[マイグレーションプロジェクト]** をクリックします。
  2. プロジェクトの 名前 を入力します。
  3. ドロップダウンセレクターを使用して、 ソースダイアレクトターゲットフレームワーク を選択します。 ターゲットフレームワーク には、Databricks SQL クエリーを生成する場合は SQL を、Databricks ノートブックを生成する場合は Notebooks を選択します。
  4. ターゲットの 宛先フォルダ へのファイルパスを入力します。 参照 をクリックして、利用可能なワークスペースフォルダのリストから宛先を選択します。
  5. (オプション)プロジェクトのリネージを記述する リネージファイル へのパスを入力します。 参照 をクリックして、ワークスペース内のファイルリストからファイルを選択します。
  6. 作成 をクリックします。

「新規移行プロジェクト」ダイアログには、「プロジェクト名」、「ソースダイアレクト」、「ターゲットフレームワーク」、および「宛先フォルダ」フィールドが表示されます。

ステップ 3: プロジェクトにファイルを追加します

新しいプロジェクトで:

  1. 「ファイルを追加」 > 「+ ファイルを追加」 をクリックします。
  2. ワークスペースからソースフォルダーまたはファイルを選択します。

プロジェクトは、各ファイルをファイルタイプ、行数、変換ステータスとともにリストします。

追加されたソースファイルのファイルタイプ、行数、変換ステータスを表示する移行プロジェクト キャンバス。

ステップ 4: コードの複雑さとリネージを確認する (オプション)

Lakebridge Analyzerを実行した場合は、そのJSON出力をプロジェクトにuploadして、コードの複雑さとリネージを確認してください。ソースファイルをクリックして複雑性評価を開き、**リネージ**をクリックして、一緒に移行する必要がある相互依存ファイルとテーブルを示す依存関係グラフを開きます。Analyzerの実行方法については、Lakebridge Analyzerガイドを参照してください。

ステップ 5: 変換を実行する

変換するファイルを選択し、**ラン**をクリックします。Genie Code は会話を開き、移行スキルを呼び出し、サブエージェントをデプロイしてファイルを同時に変換します。変換された各ファイルは、プロジェクト内にリンクされたファイルとして表示されます。コンバーターは各ファイルに次のステータスを付けます。

  • グリーン : 正常に変換されました
  • 黄色 :要レビュー
  • **赤**: 変換に失敗しました。
  • 灰色 : 進行中

ステップ6: 変換結果のレビュー。

For SQL projects, click a converted file to open a side-by-side diff in the SQL editor, with the source code next to the proposed Databricks SQL. 提案されたすべての変更を承認するか、個別の編集内容を確認して承認します。 ノートブック プロジェクトの場合は、変換されたファイルをクリックして、生成されたDatabricksノートブックを開きます。変換に失敗したスクリプトについては、エディターでコードを編集するか、Genie Codeに特定のセクションの再検証または再試行を依頼してください。問題がなければ、変換されたSQLまたはノートブックを実行し、Databricks上で動作することを確認してください。

カスタムスキルを作成 (オプション)

カスタムスキルを使用すると、Genie Codeがすべての変換中に自動的に適用するビジネスルールをエンコードできます。これらを使用して、独自のデータ型を処理したり、推奨されるターゲットパターンを適用したり、繰り返し行う修正を記録したりできます。移行スキルは Genie Code スキルであるため、他のスキルと同じように作成および管理できます。詳細については、「Genie Code をエージェントスキルで拡張する」を参照してください。

Genie Code の設定から、または Genie Code の会話からスキルを作成できます。詳細な指示、例、またはサポートファイルを含む複雑なスキルには、設定パスを使用してください。迅速な単一ルールスキルには、チャットパスを使用してください。

詳細な手順を作成し、Gitフォルダーでバージョン管理できるように、スキルをファイルとして作成します。

  1. Genie Codeパネルで、歯車アイコン。 設定 をクリックし、次にアイコン内の矢印。 スキルフォルダーを開く をクリックします。

  2. ワークスペースのスキルパス Workspace/.assistant/skills/ の下に、スキル用のフォルダーを作成します。たとえば、Workspace/.assistant/skills/sql-migration/

  3. スキルフォルダーに、必要なフロントマターと変換ルールを使用してSKILL.mdファイルを作成します。例えば:

    ---
    name: sql-migration
    description: Conversion rules to apply when migrating legacy SQL to ANSI SQL.
    ---

    Always convert the custom type MYDATE to TIMESTAMP_NTZ.

Genie Code は、次回の変換実行時にスキルを認識します。

ワークスペーススキルはワークスペースレベルで保存され、ワークスペース内のすべてのユーザーで共有されます。

テストのヒント

エージェント ループの一環として、コンバーターは各ソース スクリプトを分析し、変換された出力が構文的に有効であり、ソースと意味的に同等であることを検証し、結果を書き込む前に失敗したセクションを繰り返し修正します。次のヒントは、出力を確認し、信頼性を高めるのに役立ちます。

  • バッチ変換 :マルチファイル変換がエンドツーエンドで機能することを確認するために、2~5個の少量のファイルを1つのセッションで変換します。
  • 構文検証 :変換後、Databricks SQLエディタまたはノートブックで出力をランして、エラーなく実行されることを確認してください。
  • エッジ ケース :T-SQL のウィンドウ関数、Snowflake QUALIFY、または Redshift LISTAGG など、方言固有の構文を含むスクリプトを含めて、コンバーターが複雑なパターンをどのように処理するかを確認します。
  • セマンティックの正確性 : 元のクエリーと変換されたクエリーを同等のテストデータに対してランし、結果を比較します。出力が構文的に有効であるだけでなく、意味的に正しいことを確認します。

その他のリソース