Amazon Web Services ブログ
AWS Database Migration Service を使用して PostgreSQL 10 のネイティブパーティション表に移行する
AWS Database Migration Service (AWS DMS) バージョン 2.4.3 についてご紹介します。これには、PostgreSQL 10 のネイティブパーティション表へデータを移行するサポートが含まれています。
この記事では、AWS DMS バージョン 2.4.3 を使用して Oracle パーティション表から PostgreSQL 10 のネイティブパーティション表へデータを移行する方法について説明します。これは特殊な設定をせずに行えます。AWS DMS と並行してパーティション表のスキーマ変換を実行するには、この変換をサポートするようになった AWS Schema Conversion Tool (AWS SCT) を使用できます。
PostgreSQL のパーティショニング
パーティショニングは、論理的に 1 つの大きな表をより小さな物理的なピースに分割することを指します。パーティショニングにはいくつかの利点があります。
AWS DMS を使用してこの記事の説明に従ってパーティション表に移行する前に、PostgreSQL のパーティション表に精通している必要があります。PostgreSQL はバージョン 10 でネイティブパーティショニングサポートを導入しました。
以下は、Oracle パーティション表から PostgreSQL 10 ネイティブパーティション表にデータを移行する例です。ソースの Oracle パーティション表は、作成日の列に 3 つのパーティションが作成されます。すべてのパーティションは、それぞれの日付範囲の値に基づいてデータを保持します。
ステップ 1: レンジパーティション基準を使用して Oracle パーティション表を作成する
次のコードの例は、レンジパーティション基準 (ステップ 1) を使用して Oracle パーティション表を作成する方法を示しています。
ステップ 2: AWS SCT を使用してまたは手動で PostgreSQL パーティション表を作成する
次のコードの例は、ステップ 2 の PostgreSQL パーティション表の作成方法を示しています。
以下の手順については、PostgreSQL ドキュメントの 「PostgreSQL 表のパーティショニング」のトピックをご覧ください。
ステップ 3: パーティションを作成する
次のステップでは、パーティションを作成します。各パーティションの定義では、親テーブルのパーティショニングメソッドとパーティションキーに対応する境界を指定する必要があります。次のコードの例は、この手順を示しています。
ステップ 4: キー列にインデックスを作成する
ステップ 4 では、キー列にインデックスを作成します。同時に、各パーティションに必要な他のインデックスを作成します。次のコードの例は、この手順を示しています。
ステップ 5: Oracle パーティション表にいくつかのレコードを挿入する
次に、以下のコードの例で示すように、レコードを Oracle のパーティション表に挿入します。
ステップ 6: Oracle パーティション表から PostgreSQL パーティション表に移行する AWS DMS タスクを作成する
ステップ 6 では、Oracle パーティション表から PostgreSQL パーティション表に移行する AWS DMS タスクを作成します。これを行うには、DMS バージョン 2.4.3 で次の表のマッピングを使用します。
ステップ 7: タスクの完了後に表が正常に移行されたかどうかを確認する
次に、AWS DMS タスクの完了後に表が正常に移行されたかどうかを確認します。DMS タスクは失敗せずに完了し、データは PostgreSQL 10のパーティション表に正常に移行されているはずです。
DMS がターゲット表の適切なパーティションにレコードを移行したことを確認するには、以下のクエリを実行します。
この移行を適切に処理するために、AWS DMS バージョン 2.4.3 では PostgreSQL ドライバーの新しいバージョン psqlodbc-10.03.0000 がサポートされています。
前述の移行では、DMS が PostgreSQL 10 のパーティション表の詳細を取得し、データを適切にロードしました。
概要
この記事で説明したように、AWS DMS バージョン 2.4.3 では、PostgreSQL 10 ネイティブパーティション表への移行がサポートされるようになりました。詳細については、AWS DMS ユーザーガイドをご覧ください。
著者について
Mahesh Kansara は アマゾン ウェブ サービスのデータベースエンジニアです。 彼は AWS のお客様と協力して様々なデータベースおよび分析プロジェクト関連の指導や技術支援を行っており、AWS を使用する際にお客様がソリューションの価値を向上させられるようにサポートしています。