Genie Migrate で SQL スクリプトと ETL パイプラインを変換する
Genie Migrateは、Genie Codeを使用して、T-SQL、Snowflake、Redshift、Oracle、BigQuery、Teradataなどのダイアレクトから既存のSQLをDatabricksで実行されるコードに変換します。また、Informatica PowerCenter(ベータ)からの抽出、変換、読み込み(ETL)ワークロードをDatabricksノートブックに変換します。移行プロジェクトで作業を整理し、出力のターゲットフレームワーク(Databricks SQLクエリー、またはDataFrame APIを使用するDatabricksノートブック(ベータ))を選択します。Genie Migrateは各ソーススクリプトを分析し、変換された出力を検証し、結果をワークスペースフォルダーに書き込む前に反復的にエラーを修正します。
Genie Migrateは、既存のデータウェアハウスやETLツールからDatabricksにワークロードを移行するためのDatabricksツールの1つです。移行プロジェクトで作業を整理・追跡しながら、SQLスクリプトとETLパイプラインを変換します。
仕組み
ワークスペースに移行プロジェクトを作成することで、変換を開始します。このプロジェクトは各ファイルの状態を追跡し、移行を管理するための単一の場所を提供します。

変換を実行すると、Genie Codeはファイルを並行して変換するサブエージェントをデプロイします。各サブエージェントは、ソースの方言を分析し、プロジェクトのターゲットフレームワーク(Databricks SQLまたはDatabricksノートブック)の同等のコードを生成します。次に、変換されたコードを確認します:
- 構文 :変換されたコードがDatabricksでエラーなしに実行されることを確認します。
- 意味の意図 :変換されたコードが、同じ結合や
WHERE句など、ソースのビジネスロジックを保持していることを確認します。
チェックに失敗すると、サブエージェントがコードを修正し、再度チェックします。Genie Codeは、ファイルの変換時にカスタムスキルも適用します。カスタムスキルを作成(オプション)を参照してください。変換されたファイルは、プロジェクト用に指定したワークスペースフォルダーに直接書き込まれます。
また、Genie Codeの会話で/migrateコマンドを使用すると、プロジェクトなしで単一のファイルまたはフォルダーを変換できます。
要件
- 既存のSQLファイルまたはXMLファイルは、ワークスペースファイルとしてuploadされているか、エディターで開かれている必要があります。
- ワークスペースはGenie Codeの要件を満たす必要があります。See Genie Code.
- ベータ版にあるノートブックターゲットフレームワーク、プロジェクト分析とリネージ、またはInformatica PowerCenter変換を使用するには、ワークスペース管理者が プレビュー ページから 移行プロジェクトの実験的機能 を有効にする必要があります。Databricksプレビューの管理を参照してください。
サポートされるソース
コンバーターは、次の SQL 方言をサポートしています:
- T-SQL
- Snowflake SQL
- Redshift SQL
- Oracle
- BigQuery
- テラデータ
SQL 方言の移行プロジェクトを作成するときは、次のターゲットフレームワークのいずれかを選択します。
- DBSQL : ANSI互換のDatabricks SQLクエリー。
- ノートブック (ベータ): DataFrame APIを使用するDatabricksノートブックで、SQLでより明確になるロジックには
spark.sqlを使用します。
ベータ版
Informatica PowerCenterソースのサポートは ベータ版 です。使用するには、ワークスペース管理者は プレビュー ページから 移行プロジェクトの試験的機能 を有効にする必要があります。Databricksのプレビューを管理するを参照してください。
コンバーターは、ETL ソースとしての Informatica PowerCenter もサポートしています。
Informatica Intelligent データマネジメント クラウド(IDMC)およびInformatica Intelligent クラウド サービス(IICS)はサポートされていません。Genie Migrateは、Informaticaのエクスポート内のワークフローやマッピングなどのオブジェクトをDatabricksノートブックに変換するため、Informaticaプロジェクトでは常にノートブックターゲットフレームワークが使用されます。
Informaticaワークフローを変換用に準備するには、PowerCenterリポジトリマネージャーからPowerMart XML形式でエクスポートします。ワークフローレベルでエクスポートし、マッピング、セッション、マップレット、ワークレットなどの依存オブジェクトを含めます。エクスポートに認証情報を含めないでください。
コードを変換する
移行プロジェクトでSQLスクリプトとETLパイプラインを変換するステップを以下に説明します。
ステップ1: ソースファイルのupload。
既存の SQL ファイル (.sql) または ETL エクスポート (.xml) を ワークスペースファイルブラウザーを使用して upload するか、Databricks CLI を使用してスクリプトのディレクトリを一括 upload します。
ステップ2:マイグレーションプロジェクトを作成します。
ワークスペースから移行プロジェクトを作成します:
> **[マイグレーションプロジェクト]** をクリックします。
- プロジェクトの 名前 を入力します。
- ドロップダウンセレクターを使用して、 [ソース言語] と [ターゲットフレームワーク] を選択します。 [ターゲットフレームワーク] で、Databricks SQLクエリーを生成する場合は [DBSQL] を、Databricksノートブックを生成する場合は [ノートブック] (ベータ)を選択します。ソース言語として [Informatica] を選択した場合、ターゲットフレームワークは [ノートブック] に設定されます。
- ターゲットの 宛先フォルダ へのファイルパスを入力します。 参照 をクリックして、利用可能なワークスペースフォルダのリストから宛先を選択します。
- 作成 をクリックします。

ステップ 3: プロジェクトにファイルを追加します
新しいプロジェクトで:
- 「ファイルを追加」 > 「+ ファイルを追加」 をクリックします。
- ワークスペースからソースフォルダーまたはファイルを選択します。
Informaticaプロジェクトでは、.xml ファイルのみが追加されます。その他の種類のファイルはスキップされます。
ファイル tabには、各ファイルがファイルタイプ、行数、および変換ステータスとともに一覧表示されます。Informaticaプロジェクトは インベントリ tabで開き、各エクスポートとそれに含まれるオブジェクトが一覧表示されます。

ステップ4: コードの複雑さとリネージを確認する(ベータ版)
ベータ版
この機能はベータ版です。使用するには、ワークスペース管理者が [プレビュー] ページから [移行プロジェクトの試験的機能] を有効にする必要があります。「Databricks プレビューの管理」を参照してください。
プロジェクトを分析して、コードの複雑さとファイル間の依存関係を変換前に確認します。分析は SQL プロジェクトではオプションですが、Informatica プロジェクトでは必須です。
SQLプロジェクトを分析するには:
- プロジェクトで、 [すべて分析] をクリックします。プロジェクトにリネージがない場合、 [すべて分析] がdefaultのアクションとなります。それ以外の場合は、ボタンのドロップダウンメニューから [すべて分析] を選択します。ファイルを選択した場合でも、分析はプロジェクト内のすべてのファイルを対象とします。
- 分析が終了するまでお待ちください。実行中の分析をキャンセルするには、 停止 をクリックします。分析が終了すると、ボタンが すべて変換 に変わります。
- ソースファイルをクリックして複雑さの評価を開き、 「リネージ」 をクリックして、一緒に移行する必要がある相互依存するファイルとテーブルを表示する依存関係グラフを開きます。
Informaticaプロジェクトを分析するには、 [インベントリ] tabの [すべて分析] をクリックします。分析は、各エクスポートを、ワークフロー、ワークレット、マッピング、およびマプレットに分割します。エクスポートを変換する前に、エクスポートを分析する必要があります。
ステップ 5: 変換を実行する
Informaticaプロジェクトでは、uploadした.xmlのエクスポートではなく、分析によって作成されたワークフロー、マッピング、および他のオブジェクトを選択して変換します。
特定のファイルを変換するには、対象のファイルを選択し、 選択したファイルを変換 をクリックします。プロジェクト内のすべてのファイルを変換するには、選択を解除して、 すべて変換 をクリックします。Genie Codeは会話を開き、移行スキルを呼び出し、サブエージェントをデプロイしてファイルを同時に変換します。変換された各ファイルは、プロジェクトでリンクされたファイルとして表示されます。各ファイルには、次のいずれかの状態が表示されます。
- グレー :ファイルはまだ変換されていません( 未起動 、 キュー済み 、または 停止済み )。ファイルが変換されている間、スピナーが表示されます。
- 緑色の未入力 : ファイルは問題なく変換されました ( 変換済み )。
- 緑で塗りつぶし :変換されたファイルを確認し、承諾しました( レビュー済み )。
- 黄色 : ファイルは変換されましたが、レビューする必要があるアクションアイテムがあります。
- 赤 :変換が失敗しました( エラー )。
各ランは最大500個のファイルを変換します。500個を超えるファイルをキューに入れた場合、最初の500個の未変換ファイルが現在のバッチでランされます。バッチが終了したら、変換を再度起動して次の500個を変換します。
ステップ6: 変換結果のレビュー。
Databricks SQLプロジェクトの場合は、変換されたファイルをクリックして、SQLエディターでインラインdiffを開くと、ソースコードの各セクションが、それを置き換える提案されたDatabricks SQLの上に表示されます。提案されたすべての変更を受け入れるか、個々の編集を確認して受け入れます。ノートブックプロジェクトの場合は、変換されたファイルをクリックして、生成されたDatabricksノートブックを開きます。変換に失敗したスクリプトの場合は、エディターでコードを編集するか、Genie Codeに特定のセクションの再検証または再試行を依頼します。満足したら、変換されたSQLまたはノートブックをランして、Databricksでランすることを確認します。同じエラーが複数のファイルで発生した場合は、カスタムスキルで修正をキャプチャし、それらのファイルを再実行します。カスタムスキルの作成(オプション)を参照してください。
Informaticaプロジェクトでは、生成された各ノートブックを対応するPowerCenterマッピングと比較します。ソーステーブルとターゲットテーブル、結合、フィルター、ルーターグループ、ルックアップ、Update Strategyロジック、パラメーターを確認します。変換されたパイプラインを本番運用で使用する前に、非本番運用データで実行し、行数や主要な集計値などの結果をPowerCenterワークフローの出力と比較します。
カスタムスキルを作成 (オプション)
カスタムスキルを使用すると、Genie Codeがすべての変換中に自動的に適用するビジネスルールをエンコードできます。これらを使用して、独自のデータ型を処理したり、推奨されるターゲットパターンを適用したり、繰り返し行う修正を記録したりできます。移行スキルは Genie Code スキルであるため、他のスキルと同じように作成および管理できます。詳細については、「Genie Code をエージェントスキルで拡張する」を参照してください。
最初の変換の前に、すべてのスキルを定義する必要はありません。スキルがキャプチャする必要があるルールのほとんどは、最初の結果を確認した後にのみ明らかになります。一般的なワークフローは次のとおりです。
- ファイルの代表セットを変換します。
- アクション項目やエラーがあるファイルを確認し、サポートされていない同じデータ型、関数、名前パターンなど、ファイル間で繰り返されるエラーを探します。
- 繰り返されるエラーごとに修正を記録するスキルを作成します。
- 影響を受けたファイルのみを選択し、 選択した項目を変換 をクリックします。Genie Codeは、それらのファイルに新しいスキルを適用します。
より多くのコードを変換する際に、このサイクルを繰り返します。Genie Codeは、ワークスペース内の以降の変換に各スキルを適用するため、1つの修正で同じパターンを持つ他のファイルもカバーされます。
Genie Code の設定から、または Genie Code の会話からスキルを作成できます。詳細な指示、例、またはサポートファイルを含む複雑なスキルには、設定パスを使用してください。迅速な単一ルールスキルには、チャットパスを使用してください。
- Genie Code settings
- Genie Code chat
詳細な手順を作成し、Gitフォルダーでバージョン管理できるように、スキルをファイルとして作成します。
-
Genie Codeパネルで、
設定 をクリックし、次に
スキルフォルダーを開く をクリックします。
-
ワークスペースのスキルパス
Workspace/.assistant/skills/の下に、スキル用のフォルダーを作成します。たとえば、Workspace/.assistant/skills/sql-migration/。 -
スキルフォルダーに、必要なフロントマターと変換ルールを使用して
SKILL.mdファイルを作成します。例えば:---name: sql-migrationdescription: Conversion rules to apply when migrating legacy SQL to ANSI SQL.---Always convert the custom type MYDATE to TIMESTAMP_NTZ.
Genie Code は、次回の変換実行時にスキルを認識します。
エンコードしたい変換ルールを記述し、Genie Codeに保存を依頼します:
Always convert our custom type MYDATE to TIMESTAMP_NTZ. Save this as a custom migration skill.
Genie Codeはスキルを作成して登録し、ワークスペースでの今後の変換に適用されます。
アクティブなスキルを表示するには:
Show me my migration skills
スキルを削除するには:
Delete the migration skill for [description]
ワークスペーススキルはワークスペースレベルで保存され、ワークスペース内のすべてのユーザーで共有されます。
テストのヒント
エージェント ループの一環として、コンバーターは各ソース スクリプトを分析し、変換された出力が構文的に有効であり、ソースと意味的に同等であることを検証し、結果を書き込む前に失敗したセクションを繰り返し修正します。次のヒントは、出力を確認し、信頼性を高めるのに役立ちます。
- バッチ変換 :マルチファイル変換がエンドツーエンドで機能することを確認するために、2~5個の少量のファイルを1つのセッションで変換します。
- 構文検証 :変換後、Databricks SQLエディタまたはノートブックで出力をランして、エラーなく実行されることを確認してください。
- エッジ ケース :T-SQL のウィンドウ関数、Snowflake
QUALIFY、または RedshiftLISTAGGなど、方言固有の構文を含むスクリプトを含めて、コンバーターが複雑なパターンをどのように処理するかを確認します。 - セマンティックの正確性 : 元のクエリーと変換されたクエリーを同等のテストデータに対してランし、結果を比較します。出力が構文的に有効であるだけでなく、意味的に正しいことを確認します。