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

エージェントコードコンバーターで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 など、方言固有の構文を含むスクリプトを含めて、コンバーターが複雑なパターンをどのように処理するかを確認します。
  • セマンティックの正確性 : 元のクエリーと変換されたクエリーを同等のテストデータに対してランし、結果を比較します。出力が構文的に有効であるだけでなく、意味的に正しいことを確認します。

その他のリソース​