[アップデート] AWS Database Migration Service でターゲットエンドポイントへ S3 を指定する時に Glue データカタログを自動生成するオプションが利用出来るようになりました

2023.03.19

いわさです。

AWS DMS ではターゲットに Amazon S3 を指定することが出来ます。

本日のアップデートでターゲットに S3 を指定してタスク実行したタイミングで Glue データカタログを併せて自動作成するオプションが利用出来るようになりました。
これによって、データ移行後に Athena などですぐにクエリを実行することが出来ます。

このオプションは自動で有効化されずに、いくつかの設定や前提条件が必要です。
今回実際に設定して試してみましたので紹介したいと思います。

ターゲットエンドポイントでデータカタログ生成オプションを有効化する

今回は RDS for MySQL から Amazon S3 への移行を行います。
AWS DMS コンソールで次のようにソースエンドポイントとターゲットエンドポイントを作成します。

そして、ターゲットエンドポイント(Amazon S3)のエンドポイント設定にオプションを追加します。
「新しい設定の追加」を選択します。

デフォルトでは設定されていない以下のパラメータを true で指定します。

  • GlueCatalogGeneration
  • IncludeOpForFullLoad

データカタログ自動生成機能自体はGlueCatalogGenerationになりますが、このオプションを使う場合はIncludeOpForFullLoadも有効化する必要があります。

To run a task with CSV data format and GlueCatalogGeneration enabled, IncludeOpForFullLoad also needs to be enabled

レプリケーションインスタンスのエンジンバージョンは 3.5.0 以上を指定する

エンドポイントとレプリケーションインスタンスを構成後に移行タスクを実行出来るので、レプリケーションインスタンスも作成します。

ここでもうひとつ注意点があります。
レプリケーションインスタンスのエンジンバージョンは 3.5.0 以上を使う必要があり、本日時点のデフォルトバージョン 3.4.7 だと次のようにタスクが実行出来ません。

以下のリリースノートに記載のあるとおり、データカタログ自動作成機能は AWS Database Migration Service 3.5.0 からの新機能となっているためです。

本日時点で AWS DMS 3.5.0 を使用するためには「ベータ DMS バージョンを含める」を ON にした上で 3.5.0 以上のバージョンを指定する必要があります。

タスク実行時には特に指定不要

ここまで構成出来ていると、あとは移行タスクを実行するだけですが、移行タスクの構成時には特にデータカタログに関する設定はありません。

設定後、自動生成されたデータカタログを使って次のように Athena でアクセス出来ることを確認しました。

さいごに

本日は AWS Database Migration Service でターゲットエンドポイントへ S3 を指定する時に Glue データカタログを自動生成するオプションが利用出来るようになったので使ってみました。

1 ~ 2 個のテーブルであれば自分でデータカタログを用意しても然程大変ではないと思いますが、移行テーブル数が多い場合などはマッピングついでにデータカタログまで作成してくれるので、その後 Athena などで利用したい場合は重宝するのではないでしょうか。