データベースの移行は、誰もが必要性を認識しつつも、誰も進んで実行したがらないプロジェクトの1つです。ツールは断片化されており、リスクの許容度はゼロです。チームは、抽出スクリプト、変換ツール、展開パイプライン、検証ジョブなどのデータ移行ツールをつなぎ合わせるのに数週間を費やし、さらに数週間かけてそれが正しいかどうかを悩みます。
Snowflake AIMは、この状況を変えるために開発されました。当初はSnowflake CoCo CLI内のスキルとして始まり、その後CoCo Desktopに導入されました。10月20日より、AIMは独自のインターフェイスを持つSnowflake AIMアプリケーションとして、パブリックプレビューで提供されています。
AIMアプリケーションにより、移行エンジニアは多くの新たなメリットを得ることができます。
- セットアップ不要、前提知識不要:標準のCoCo CLIとSnowflake CLIが利用可能であれば、アプリを開くだけで開始できます。SCAI CLIのインストール、IDEの構成、ターミナルコマンドの暗記は不要です。依存関係は初回実行時に自動的にインストールされます。アプリを更新する必要がある場合も簡単です。アプリから直接更新をクリックするだけです。
- ガイド付きエンドツーエンドワークフロー:移行の正しいシーケンスを知る必要はありません。アプリケーションは、ソースデータベースへの接続からSnowflakeでの検証済み展開まで、すべてのステージをガイドします。
- 移行に特化したUX:関連のないIDEや開発機能に気を取られることはありません。インターフェイス全体が移行ライフサイクルを中心に構成されています。必要なものはすべて表示され、不要なものは一切ありません。
- 永続的なプロジェクト状態:アプリを閉じて、数日後や数週間後に戻ってきても問題ありません。エージェントは中断したところから正確に再開します。再確認の手間や進捗の喪失、「どこまで進んだか」という混乱はありません。
- AIによる修復を伴う決定論的変換:ベースラインとして5年の実績を持つ決定論的コード変換エンジンの信頼性を得られるだけでなく、問題の説明、修正の提案、テストの生成など、ギャップを埋めるAIも活用できます。すべての修正は再利用可能なルールになり、すべてのルールはプロジェクト内の類似するすべてのオブジェクトに伝播できるため、作業を進めるにつれて移行がよりスマートになります。これにより、チームは同じパターンを200回修正する手間を省くことができます。
- 自動化されたテストと検証:ソース側のベースライン、双方向の比較、自動化された修正ループを提供します。データ検証とコードテストは別々の関心事として処理されるため、常に何を確認しているかを把握できます。
- マルチユーザーコラボレーション:複数のチームメンバーが、作業を重複させることなく同じプロジェクトに同時に取り組むことができます。
- 基盤となるCoCoのフルパワー:上級ユーザーは、カスタムルール、MCPツール、カスタムスキル、展開ウェーブのチューニングなど、エージェントプラットフォーム全体にアクセスできます。ガイド付きパスは、制限ではなく、迅速な進行をサポートするものです。
- 幅広いプラットフォームのサポート:SQL Server、Redshift、Oracle、Teradata、PostgreSQLを標準でサポートし、Snowflake AIMは15以上の言語と、SSISおよびInformaticaのETL変換をサポートしています。
同じ移行エンジンによる新しいエクスペリエンス
内部のコアエンジンは変更されていません。決定論的コード変換、依存関係を認識する展開ウェーブ、高度なエージェントによるテストと修正のループ(決定論的検証とAIドリブン検証の両方にまたがる)を強化し、進行するにつれて移行プロジェクトをよりスマートにします。変更されたのは、そのアクセス方法です。
AIMアプリケーションは、移行プロジェクト専用に構築されたスタンドアロンのデスクトップアプリケーションです。アプリケーションを開き、ソースデータベースを指定するだけで、IDEの構成やターミナルの操作なしに、ガイド付きワークフローが各ステージを案内します。
すでにCoCo CLIやCoCo Desktopを使用している場合、これらは引き続きAIMの優れたインターフェイスとして機能します。このアプリケーションは、移行ワークフローを中心に据えた、専用の第3のオプションです。AIMアプリケーションを使用すると、移行エンジニアは、各フェーズのガイド付きセットアップ、移行プロジェクトのステータスの明確な可視性、AIを支援するために人間の判断が必要な場所の正確な指標など、AIMエージェントからどのような支援が期待できるかを常に把握できます。移行を推進するエンジニアは、すべてのステージが順番に配置され、状態が追跡され、自由に一時停止して再開できる環境を得られます。移行を本業とせずにプロジェクトを引き継いだデータベース管理者やデータエンジニアは、空白のプロンプトではなく、構造化された環境を得ることができます。移行エンジニアは、ルールのカスタマイズ、修正パターンの作成、ウェーブの並べ替え、テストケースの構築など、基盤となるエージェントループを通じて完全な制御を維持します。一方、プロジェクトの利害関係者は、ログファイルを掘り下げることなく、進捗状況、オブジェクト数、検証結果の可視性を即座に得ることができます。


AIMアプリケーションの実際の機能
アプリケーションは、Snowflakeへの移行の6つのステージをガイドします。
- 接続:ソースデータベースへの接続をセットアップします。
- 初期化:必要なスキャフォールディングを備えたローカル移行プロジェクトを作成します。
- 登録:ソースからデータ定義言語(DDL)とストアドプロシージャを抽出するか、既存の.sqlファイルをインポートします。
- 変換:決定論的コード変換エンジンを通じて、ソースSQLをSnowflake SQLに変換します。
- 評価:完全なエンドツーエンドのリネージと、複数の専門的なレポートによって支援される移行計画を網羅するインタラクティブレポートを生成します。
- 移行:コードを展開し、データを移動して、結果を検証します。ここが作業の大部分を占める場所です。
- テストと修正のAIループ:決定論的パスでは処理できないものを、AI支援による修復が処理します。AIMはテストケースと合成データを生成し、変換されたコードを実行して精度を検証し、AIが問題を修正します。
移行フェーズの内部
ステージ1から5までは準備段階です。ステージ6は4つのワークストリームをカバーし、それぞれに独自のロジック、検証、修正ループがあります。エージェントは、それぞれが異なる方法で失敗する可能性があるため、それらを区別しながらすべてを調整します。
検証と修正のループについては、さらに詳しく説明する必要があります。実際、テストは1つではなく3つの問題です。
行が正しく配置されたことを確認することは、ストアドプロシージャがソースで返したものと同じものを返すことを確認することとは異なる作業であり、どちらも変換されたETLロジックが同じ結果を生成することを確認することとは異なります。アプリケーションはこれらを個別に処理します。
データベースコードのテストは、ストアドプロシージャ、関数、ビューを対象としています。エージェントは、EXECまたはCALLステートメントのCSVログがある場合は実際のクエリログから、またはAIを使用してテストケースと合成データを生成することにより、ソース側のベースラインをキャプチャします。これらを生成する際、専門のサブエージェントがビジネスロジックパス、データドリブンシナリオ、およびNULL、境界値、型の制限などのエッジケースをカバーします。その後、変換されたコードがSnowflakeで実行され、その出力がベースラインと比較されます。失敗すると修正ループが開始されます。根本原因を診断し、変換されたSQLにパッチを適用し、再展開して再テストし、出力が一致するか、次に進むことを選択するまで繰り返します。
ETLテストでは、変換されたdbtモデルまたはストアドプロシージャが、元のSSISパッケージまたはInformaticaワークフローと同等の結果を生成することを確認します。エージェントは各ETLコードユニットを要求し、フェーズベースの安定化エンジンを通じて実行し、修正を適用して、出力が正しくなるまで反復します。ETL変換は連鎖しているため、モデル間の依存関係を追跡し、ダウンストリームユニットが再テストされる前にアップストリームの修正が伝播するようにします。

データベースDDLの展開
テーブル、ビュー、ストアドプロシージャ、関数、シーケンスは、依存関係の順序でウェーブごとに展開されます。評価フェーズでは、オブジェクト間の関係がすでにマッピングされ、グループ化されているため、依存するものよりも前に前提条件が配置されます。各オブジェクトは個別に展開され、失敗はすぐに表面化します。依存する関数がテストに合格していないためにビューをコンパイルできない場合、エージェントはそれを保留し、依存関係がクリアされると再試行します。つまり、循環依存関係は金曜日の夜に手動で解決するのではなく、評価中に解決されます。

ETLパイプラインの移行
SSISパッケージとInformaticaワークフローは、運用の好みや既存のツールチェーンに応じて、dbt project on SnowflakeまたはSQLストアドプロシージャのいずれかのSnowflakeネイティブターゲットに変換されます。Snowflake AIMは、制御フロー、データフロー、変換ロジックを解析し、選択したターゲットで同等のものを生成します。決定論的パスで変換を完全に解決できない場合、AI支援による修復が変換できなかった内容を説明し、修正を提案して、インタラクティブに適用します。変換されたETLユニットは、独自の安定化およびテストサイクルを通じて実行されます。
レポートの再指定
Power BIレポートをはじめとするダウンストリームのアナリティクスアセットは、Snowflakeで再指定できます。エージェントは、接続文字列、データソースのマッピング、および各レポートが移行されたデータに対して引き続き正しくレンダリングされることの検証を処理します。ビジネスユーザーが毎朝開くレポートが依然として古いシステムにクエリを実行している場合、データベースとパイプラインを移行しても、その効果は限定的です。
履歴データの移行
データの移動は、オーケストレーターとワーカーのアーキテクチャで実行されます。オーケストレーターはワークフローのメタデータを管理し、状態を追跡します。一方、ワーカーはソースとSnowflakeの両方に接続してデータを移動し、ローカルまたはSnowparkコンテナサービスで実行され、大量のデータに対して水平方向にスケールします。
すべての実行は3つのレベルで自動的に検証されます。スキーマ比較(L1)では、Snowflakeのテーブル構造がソースと一致することを確認します。メトリック比較(L2)では、行数、合計、および主要な集計を確認します。行レベルの比較(L3)はオプションであり、完全な等価性が重要なテーブルに存在します。
パーティションキーの選択、間隔の処理、およびその他のプラットフォーム固有のデータ型マッピングは、エージェントを通じて構成されます。エージェントは、ソースにとって重要なオプションをガイドし、構成を生成します。

数週間にわたるプロジェクト向けに構築
プロジェクトを開始して数週間継続することができ、複数のユーザーが移行状態を共有して共同作業を行うことができます。エージェントはプロジェクトの状態を読み取り、抽出、変換、展開の記録をすべてそのままにして、中断したところから正確に再開します。何百ものオブジェクトと数週間にわたる移行の場合、それはマネージドプロジェクトと付箋の山の違いです。
複数の人が同時に同じプロジェクトに取り組むことができます。Gitリポジトリの統合を使用することで、エージェントは各担当者がどのコードユニットを要求したかを追跡するため、作業が重複したり、見落とされたりすることはありません。
サポートされているプラットフォーム
| 機能 | プラットフォーム |
|---|---|
| 直接接続とエンドツーエンドの移行 | SQL Server、Amazon Redshift、Oracle、Teradata、PostgreSQL |
| Snowflake AIMによる決定論的コード変換 | Azure Synapse、Netezza、Vertica、Google BigQuery、Databricks SQL、Apache Spark™ SQL、IBM DB2、Hive、Greenplum、Sybase IQ |
| ETL移行 | SSISパッケージとInformaticaワークフロー(dbtプロジェクトまたはSQLストアドプロシージャに変換) |
| BIの再指定 | Power BI |
新しいソースコネクタ、より深いETLサポート、より幅広いBI統合により、カバレッジは継続的に拡大しています。プラットフォームがまだリストにない場合は、最新のドキュメントをご確認ください。
プロジェクトの立ち上げ当初から、私たちは「自律性」と「スピード」の最適化を一貫して追求してきました。現代の企業や組織にとって、高度な専門エンジニアのリソースを浪費させたり、予期せぬ複雑さに直面してプロジェクトが停滞したりするようなデータ移行に甘んじる余裕はもはやありません。私たちは、直感的なセルフサービス体験を構築することで、現場チームがリスクやフリクション(運用の摩擦)に煩わされることなく、データを即座に実業務へ活用できる圧倒的な推進力(ベロシティ)を提供します。
Venky Ganti
Senior Director for Migration Product Management, Snowflake
データ移行の今後の展望
かつて移行はモダナイゼーションの負担であり、優秀なエンジニアを消耗させ、自信の代わりに不安を生み出す数か月にわたる困難な作業でした。専門知識が参加費であり、検証は信仰に帰着していました。
このアプリケーションは、その運用モードを廃止するための重要な一歩です。構造、自動化、および永続的なインテリジェンスにより、手動による調整の大部分が置き換えられ、結果としてSnowflake上の簡素化されたデータファウンデーションがより早く実現します。
また、より明確な分業も確立されます。このアプリケーションは、最も一般的な移行をエンドツーエンドで処理するように設計されています。これにより、Snowflakeのパートナーは、プラットフォームの切り替えの変更管理プロセス、深いカスタムロジックを持つ純粋に複雑な環境、異常なソーストポロジ、厳しい規制上の制約など、最も重要な部分に専門知識を集中させることができます。
ワークロードがテーブル、ビュー、ストアドプロシージャ、関数、ETLパイプライン、ダウンストリームのBIレポートのいずれであっても、AIMが調整を処理するため、チームは実際に判断が必要な場所に判断を費やすことができます。
使用を開始する
移行は依然として正しく行う必要があります。現在、それを確実に行うために特別に構築されたアプリケーションがあります。Snowflake AIMアプリケーションをダウンロードし、ソースデータベースを指定します。エージェントは依存関係をインストールし、プロジェクトをセットアップして、各ステージをガイドします。ご質問がある場合やサポートが必要な場合は、aim-support@snowflake.comまでお問い合わせください。
計画の策定に関するサポートSnowflake LiftOff移行ワークショップをご検討ください。当社のチームとパートナーがお客様と協力して基盤を確立し、実行可能な移行計画を策定します。

