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

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 Migrateに渡され、各ファイルが変換され、構文と意味上の意図がチェックされ、チェックに合格するまで修正されます。カスタムスキルが入力され、変換されたファイルは移行プロジェクトに送られます。

変換を実行すると、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:マイグレーションプロジェクトを作成します。​

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

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

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

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

新しいプロジェクトで:

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

Informaticaプロジェクトでは、.xml ファイルのみが追加されます。その他の種類のファイルはスキップされます。

ファイル tabには、各ファイルがファイルタイプ、行数、および変換ステータスとともに一覧表示されます。Informaticaプロジェクトは インベントリ tabで開き、各エクスポートとそれに含まれるオブジェクトが一覧表示されます。

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

ステップ4: コードの複雑さとリネージを確認する(ベータ版)​

備考

ベータ版

この機能はベータ版です。使用するには、ワークスペース管理者が [プレビュー] ページから [移行プロジェクトの試験的機能] を有効にする必要があります。「Databricks プレビューの管理」を参照してください。

プロジェクトを分析して、コードの複雑さとファイル間の依存関係を変換前に確認します。分析は SQL プロジェクトではオプションですが、Informatica プロジェクトでは必須です。

SQLプロジェクトを分析するには:

  1. プロジェクトで、 [すべて分析] をクリックします。プロジェクトにリネージがない場合、 [すべて分析] がdefaultのアクションとなります。それ以外の場合は、ボタンのドロップダウンメニューから [すべて分析] を選択します。ファイルを選択した場合でも、分析はプロジェクト内のすべてのファイルを対象とします。
  2. 分析が終了するまでお待ちください。実行中の分析をキャンセルするには、 停止 をクリックします。分析が終了すると、ボタンが すべて変換 に変わります。
  3. ソースファイルをクリックして複雑さの評価を開き、 「リネージ」 をクリックして、一緒に移行する必要がある相互依存するファイルとテーブルを表示する依存関係グラフを開きます。

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 をエージェントスキルで拡張する」を参照してください。

最初の変換の前に、すべてのスキルを定義する必要はありません。スキルがキャプチャする必要があるルールのほとんどは、最初の結果を確認した後にのみ明らかになります。一般的なワークフローは次のとおりです。

  1. ファイルの代表セットを変換します。
  2. アクション項目やエラーがあるファイルを確認し、サポートされていない同じデータ型、関数、名前パターンなど、ファイル間で繰り返されるエラーを探します。
  3. 繰り返されるエラーごとに修正を記録するスキルを作成します。
  4. 影響を受けたファイルのみを選択し、 選択した項目を変換 をクリックします。Genie Codeは、それらのファイルに新しいスキルを適用します。

より多くのコードを変換する際に、このサイクルを繰り返します。Genie Codeは、ワークスペース内の以降の変換に各スキルを適用するため、1つの修正で同じパターンを持つ他のファイルもカバーされます。

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

その他のリソース​