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

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

備考

ベータ版

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

エージェント型コードコンバーターはGenie Codeを使用して、T-SQL、Snowflake、Redshift、Oracle、BigQuery、Teradataなどのダイアレクトから既存のSQLをDatabricksで実行されるANSI SQLに変換します。マイグレーションプロジェクトで作業を整理します。そこでは、コンバーターが各ソーススクリプトを分析し、変換された出力を検証し、結果をワークスペースフォルダーに書き込む前にエラーを繰り返し修正します。

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

仕組み

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

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

変換を実行すると、Genie Code は移行スキルを呼び出し、ファイルを並行して変換するサブエージェントをデプロイします。各サブエージェントはソース方言を分析し、ANSI SQL 相当を生成し、結果を検証し、失敗したセクションを再試行します。変換されたファイルは、プロジェクトで指定したワークスペース フォルダに直接書き込まれます。

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

要件

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

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

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

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

コンバーターは ANSI SQL を対象としています。各変換には次の制限が適用されます:

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

既存のSQLコードを変換

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

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

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

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

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

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

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

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

新しいプロジェクトで:

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

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

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

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

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

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

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

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

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

変換されたファイルをクリックすると、SQL エディターで並列差分が開かれ、提案された Databricks SQL の横にソースコードが表示されます。提案されたすべての変更を承認するか、個々の編集を確認して承認してください。変換に失敗したスクリプトについては、エディターでコードを編集するか、Genie Code に再検証または特定のセクションの再試行を依頼してください。ご満足いただけたら、変換された SQL をノートブックまたは 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 など、方言固有の構文を含むスクリプトを含めて、コンバーターが複雑なパターンをどのように処理するかを確認します。
  • セマンティックの正確性 : 元のクエリーと変換されたクエリーを同等のテストデータに対してランし、結果を比較します。出力が構文的に有効であるだけでなく、意味的に正しいことを確認します。

その他のリソース