DMS スキーマ変換のソースとしての Oracle Data Warehouse データベースの使用 - AWS Database Migration Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

DMS スキーマ変換のソースとしての Oracle Data Warehouse データベースの使用

DMS スキーマ変換の移行ソースとして Oracle Data Warehouse データベースを使用して、データベースコードオブジェクトとアプリケーションコードを Amazon Redshift に変換できます。

サポートされる Oracle データベースのバージョンについては、「DMS Schema Conversion のソースデータプロバイダー」を参照してください。ソースの Oracle データベースで DMS スキーマ変換を使用する方法の詳細については、「Oracle から PostgreSQL への移行のステップバイステップウォークスルー」を参照してください。

Oracle Data Warehouse データウェアハウスをソースとして使用する場合の権限

Oracle Data Warehouse をソースとして使用するには、次の権限が必要です。

  • CONNECT

  • SELECT_CATALOG_ROLE

  • SELECT ANY DICTIONARY

Oracle データウェアハウスから Amazon Redshift への変換設定

DMS スキーマ変換を編集する方法については、「移行プロジェクトのスキーマ変換設定の指定」を参照してください。

Oracle Data Warehouse から Amazon Redshift への変換設定には、以下の設定が含まれます。

  • 選択した重大度以上のアクション項目に関するコメントを変換後のコードに追加する: この設定では、変換後のコード内のアクション項目に関するコメントの数を制限します。DMS は、選択した重大度以上のアクション項目に関するコメントを変換後のコードに追加します。

    たとえば、変換したコード内のコメントの数を最小限に抑えるには、[エラーのみ] を選択します。変換したコードのすべてのアクション項目にコメントを含めるには、[すべてのメッセージ] を選択します。

  • ターゲット Amazon Redshift クラスターの最大テーブル数: この設定では、DMS がターゲット Amazon Redshift クラスターに適用できるテーブルの最大数を設定します。Amazon Redshift には、クラスターノードタイプの使用を制限するクォータがあります。この設定では、以下の値がサポートされます。

    • 自動: DMS はノードタイプに応じてターゲット Amazon Redshift クラスターに適用するテーブルの数を決定します。

    • 値を設定する: テーブル数を手動で設定します。

    DMS は、テーブルの数が Amazon Redshift クラスターが保存できる数よりも多い場合でも、すべてのソーステーブルを変換します。DMS は変換後のコードをプロジェクトに保存し、ターゲットデータベースには適用しません。変換後のコードを適用したときに Amazon Redshift クラスターのテーブルクォータに達すると、DMS は警告メッセージを表示します。また、DMS は、テーブル数が制限に達するまで、ターゲット Amazon Redshift クラスターにテーブルを適用します。

    Amazon Redshift のテーブルクォータについては、「Amazon Redshift のクォータと制限」を参照してください。

  • UNION ALL ビューを使用する: この設定では、DMS が 1 つのソーステーブルに対して作成できるターゲットテーブルの最大数を設定できます。

    Amazon Redshift は、テーブルのパーティションをサポートしていません。テーブルのパーティショニングをエミュレートしてクエリの実行を迅速化するために、DMS はソーステーブルの各パーティションを Amazon Redshift の個別のテーブルに移行できます。次に、DMS は、作成したすべてのターゲットテーブルのデータを含むビューを作成します。

    DMS は、ソーステーブルのパーティションの数を自動的に決定します。ソーステーブルパーティショニングのタイプによっては、この数は Amazon Redshift クラスターに適用できるテーブルのクォータを超える場合があります。このクォータに達しないようにするには、DMS が 1 つのソーステーブルのパーティションに対して作成できるターゲットテーブルの最大数を入力します。デフォルトのオプションは 368 個のテーブルです。これは 1 年 366 日のパーティションと、NO RANGE パーティションおよび UNKNOWN パーティションの 2 つのテーブルを表します。

  • Oracle コードで使用する日付型フォーマット要素は Amazon Redshift の日時フォーマット文字列に類似する: この設定を使用して、TO_CHARTO_DATETO_NUMBER などのデータ型フォーマット関数を Amazon Redshift がサポートしていない日時フォーマット要素に変換します。デフォルトでは、DMS は拡張パック関数を使用して、変換されたコード内のサポートされていないフォーマット要素をエミュレートします。

    Oracle の日時フォーマットモデルには、Amazon Redshift の日時フォーマット文字列よりも多くの要素が含まれています。ソースコードに Amazon Redshift がサポートする日時形式の要素のみが含まれている場合、変換されたコードで拡張パック関数を使用しないように、この値を設定します。拡張関数を使用しないほうが、変換されたコードの実行速度が速くなります。

  • Oracle コードで使用する数値フォーマット要素は、Amazon Redshift の数値フォーマット文字列に類似する: この設定を使用して、Amazon Redshift がサポートしていない数値データ型フォーマット関数を変換します。デフォルトでは、DMS は拡張パック関数を使用して、変換されたコード内のサポートされていないフォーマット要素をエミュレートします。

    Oracle の数値フォーマットモデルには、Amazon Redshift の数値フォーマット文字列よりも多くの要素が含まれています。ソースコードに Amazon Redshift がサポートする数値フォーマット要素のみが含まれている場合、変換されたコードで拡張パック関数を使用しないように、この値を設定します。拡張関数を使用しないほうが、変換されたコードの実行が速くなります。

  • NVL 関数を使用して Oracle の LEAD 関数と LAG 関数の動作をエミュレートする: ソースコードで LEAD 関数および LAG 関数のオフセットのデフォルト値を使用しない場合、DMS は NVL 関数を使用してこれらの関数をエミュレートできます。デフォルトでは、DMS は、LEAD 関数と LAG 関数を使用するたびにアクション項目を生成します。NVL を使用してこれらの関数をエミュレートすると、変換されたコードの実行速度が速くなります。

  • プライマリキーとユニークキーの動作をエミュレートする: この設定により、DMS はターゲット Amazon Redshift クラスターでのプライマリキーとユニークキーの制約の動作をエミュレートします。Amazon Redshift はプライマリキーやユニークキーの制約を強制せず、これらのキーを情報提供のみを目的として使用します。ソースコードでプライマリキーまたはユニークキーの制約を使用する場合は、この設定を使用して DMS が制約の動作をエミュレートするように設定します。

  • 圧縮エンコードを使用する: この設定により、Amazon Redshift テーブル列に圧縮エンコードを適用します。DMS は、Redshift のデフォルトアルゴリズムを使用して圧縮エンコードを自動的に割り当てます。圧縮エンコードの詳細については、「Amazon Redshift データベースデベロッパーガイド」の「圧縮エンコード」を参照してください。

    デフォルトでは、Amazon Redshift はソートキーと分散キーとして定義されている列に圧縮を適用しません。これらの列に圧縮を適用するには、[KEY 列で圧縮エンコードを使用する] を設定します。このオプションは、[圧縮エンコードを使用] を設定した場合にのみ選択できます。