AWS SCT のソースとしての Oracle データウェアハウスの使用 - AWS Schema Conversion Tool

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

AWS SCT のソースとしての Oracle データウェアハウスの使用

AWS SCT を使用して、スキーマ、コード・オブジェクトおよびアプリケーション・コードを Oracle データウェアハウスから Amazon Redshift または Amazon Redshift に変換し、AWS Glue を組み合わせて使用できます。

ソースとしての Oracle データウェアハウスの権限

Oracle データウェアハウスをソースとして使用するには、次の権限が必要です。

  • 接続

  • select_catalog_role

  • ディクショナリを選択します

ソースとしての Oracle データウェアハウスへの接続

以下の手順を使用して、Oracle データウェアハウスソースデータベースを AWS Schema Conversion Tool に接続します。

Oracle データウェアハウスソースデータベースに接続するには
  1. AWS Schema Conversion Tool で、[Add source] (ソースの追加) を選択します。

  2. [Oracle] を選択し、その後 [Next] (次へ) を選択します。

    [Add source] (ソースの追加) ダイアログボックスが表示されます。

  3. [接続名] にデータベースの名前を入力します。この名前が AWS SCT の左側のパネルのツリーに表示されます。

  4. AWS Secrets Manager からのデータベース認証情報を使用するか、手動で入力してください。

    • Secrets Manager のデータベース認証情報を使用するには、以下の手順に従ってください。

      1. [AWS シークレット] で、シークレットの名前を選択します。

      2. [入力] を選択すると、Secrets Manager のデータベース接続ダイアログボックスにすべての値が自動的に入力されます。

      Secrets Manager のデータベース認証情報を使用する方法については、「AWS Secrets Manager を使用する」を参照してください。

    • Oracle ソースデータウェアハウス接続情報を手動で入力するには、以下の手順に従ってください。

      パラメータ アクション
      タイプ

      データベースへの接続タイプを選択します。選択したタイプに応じて、以下の追加情報を提供します。

      • SID

        • [サーバー名]: ソースデータベースサーバーのドメインネームシステム (DNS) 名または IP アドレスを入力します。

        • Server port: ソースデータベースサーバーへの接続に使用するポート。

        • Oracle SID: Oracle System ID (SID)。Oracle SID を見つけるには、Oracle データベースに対して以下のクエリを発行します。

          SELECT sys_context('userenv','instance_name') AS SID FROM dual;

      • サービス名

        • Server name: ソースデータベースサーバーの DNS 名または IP アドレス。

        • Server port: ソースデータベースサーバーへの接続に使用するポート。

        • Service Name: 接続先の Oracle サービスの名前。

      • [TNS エイリアス]

        • TNS file path: Transparent Network Substrate (TNS) 名接続情報を含むファイルへのパス。

        • TNS file path: ソースデータベースへの接続に使用するこのファイルからの TNS エイリアス。

      • [TNS 接続識別子]

        • [TNS 識別子]: 登録された TNS 接続情報の識別子。

      User name (ユーザー名) と [Password] (パスワード)

      データベース認証情報を入力して、ソースデータベースサーバーに接続します。

      AWS SCT でパスワードを使用して、プロジェクト内のデータベースに接続することを選択する場合にのみソースデータベースに接続します。ソースデータベースのパスワードの漏洩を防ぐため、デフォルトで AWS SCT にパスワードは保存されません。AWS SCT プロジェクトを閉じて再び開いた場合は、必要に応じて、ソースデータベースへの接続に使用するパスワードの入力を求められます。

      SSL の使用

      データベースへの接続に Secure Sockets Layer (SSL) を使用する場合は、このオプションを選択します。[SSL] タブで、必要に応じて、以下の追加情報を提供します。

      • [SSL A認証]: 接続に SSL 認証を使用するには、このオプションを選択します。

      • [信頼ストア]: 証明書を保存している信頼ストアの場所。

      • [キーストア]: プライベートキーと証明書を保存しているキーストアの場所。この値は、[SSL 認証] を選択した場合は必須ですが、それ以外の場合はオプションです。

      Store Password

      AWS SCT は、安全なボールトを作成して、SSL 証明書とデータベースパスワードを保存します。このオプションをオンにすると、データベースのパスワードが保存されるため、パスワードを入力しなくてもデータベースにすばやく接続できます。

      [Oracle ドライバーパス]

      ソースデータベースへの接続に使用するドライバのパスを入力します。詳細については、「必要なデータベースドライバーのダウンロード」を参照してください。

      ドライバパスをグローバルプロジェクト設定に保存する場合、ドライバパスは接続ダイアログボックスに表示されません。詳細については、「グローバル設定でのドライバパスの保存」を参照してください。

  5. [Test Connection] (接続のテスト) を選択して、AWS SCT がソースデータベースに正常に接続できることを確認します。

  6. [Connect] (接続) を選択して、ソースデータベースに接続します。

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

Oracle データウェアハウスから Amazon Redshift への変換設定を編集するには、AWS SCT で [設定] を選択し、次に [変換設定] を選択します。上のリストから [Oracle] を選択し、次に [Oracle – Amazon Redshift] を選択します。AWS SCT に、Oracle データウェアハウスから Amazon Redshift への変換に使用可能なすべての設定が表示されます。

AWS SCT での Oracle データウェアハウスから Amazon Redshift への変換設定には、以下のオプションが含まれています。

  • 変換されたコード内のアクション項目に関するコメントの数を制限する。

    [変換後のコードにコメントを追加] で、選択した重要度以上のアクションアイテムについて、アクションアイテムの重要度を選択します。AWS SCT は、選択した重要度以上のアクションアイテムについて、変換後のコードにコメントを追加します。

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

  • AWS SCT でターゲット Amazon Redshift クラスターに適用できるテーブルの最大数を設定します。

    [ターゲット Amazon Redshift クラスターの最大テーブル数] では、AWS SCT が Amazon Redshift クラスターに適用できるテーブルの数を選択します。

    Amazon Redshift には、クラスターノードタイプの使用を制限するクォータがあります。[自動] を選択した場合、AWS SCT はノードタイプに応じてターゲット Amazon Redshift クラスターに適用するテーブルの数を決定します。オプションで、値を手動で選択します。詳細については、「Amazon Redshift 管理ガイド」の「Amazon Redshift のクォータと制限」を参照してください。

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

  • ソーステーブルのパーティションを Amazon Redshift の別のテーブルに移行するには。そのためには、[UNION ALL ビューを使用する] を選択し、AWS SCT が 1 つのソーステーブルに対して作成できるターゲットテーブルの最大数を入力します。

    Amazon Redshift は、テーブルのパーティションをサポートしていません。この動作をエミュレートしてクエリをより速く実行するために、AWS SCT は、ソーステーブルの各パーティションを Amazon Redshift の個別のテーブルに移行できます。次に、AWS SCT はこれらすべてのテーブルのデータを含むビューを作成します。

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

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

    Oracle の日時フォーマットモデルには、Amazon Redshift の日時フォーマット文字列と比較してより多くの要素が含まれています。ソースコードに Amazon Redshift がサポートする日時形式の要素のみが含まれている場合、変換されたコードに拡張パック関数は必要ありません。変換後のコードで拡張パック関数を使用しないようにするには、Oracle コードで使用する [日付型フォーマット要素が Amazon Redshift の日時フォーマット文字列に似ている] ものを選択してください。この場合、変換されたコードの処理が速くなります。

    Oracle の数値フォーマットモデルには、Amazon Redshift の数値フォーマット文字列よりも多くの要素が含まれています。ソースコードに Amazon Redshift がサポートする数値形式の要素のみが含まれている場合、変換されたコードに拡張パック関数は必要ありません。変換後のコードで拡張パック関数を使用しないようにするには、[Oracle コードで使用する数値形式の要素は Amazon Redshift の数値形式の文字列と類似している] を選択します。この場合、変換されたコードの処理が速くなります。

  • Oracle LEAD および LAG 分析関数を変換します。デフォルトでは、AWS SCT は LEAD および LAG 関数ごとにアクション項目が生成されます。

    ソースコードでこれらの関数でオフセットのデフォルト値を使用していない場合、AWS SCT は NVL 関数でこれらの関数の使用をエミュレートできます。そのためには、[NVL 関数を使用して Oracle LEAD 関数と LAG 関数の動作をエミュレートする] を選択します。

  • Amazon Redshift クラスターのプライマリキーとユニークキーの動作をエミュレートするには、[プライマリキーとユニークキーの動作をエミュレートする] を選択します。

    Amazon Redshift はユニークキーやプライマリキーを強制せず、情報提供のみを目的として使用します。これらの制約をコードで使用する場合は、AWS SCT が変換後のコードでもその動作をエミュレートすることを確認してください。

  • Amazon Redshift テーブルの列に圧縮を適用します。そのためには、[圧縮エンコードを使用] を選択します。

    AWS SCT は、デフォルトの Amazon Redshift アルゴリズムを使用して、圧縮エンコーディングを列に自動的に割り当てます。詳細については、『Amazon Redshift データベースデベロッパーガイド』の「圧縮エンコード」を参照してください。

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

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

Oracle データウェアハウスから Amazon Redshift への変換最適化設定を編集するには、AWS SCT で [設定] を選択し、次に [変換設定] を選択します。上のリストから [Oracle] を選択し、次に [Oracle – Amazon Redshift] を選択します。左側のペインで、[最適化戦略] を選択します。AWS SCT に Oracle データウェアハウスから Amazon Redshift への変換の変換最適化設定が表示されます。

AWS SCT での Oracle データウェアハウスから Amazon Redshift への変換最適化設定には、以下のオプションが含まれています。

  • 自動テーブル最適化を使用するには。そのためには、[Amazon Redshift の自動テーブルチューニングを使用する] を選択します。

    自動テーブル最適化は、テーブルの設計を自動的に最適化する Amazon Redshift の自己調整プロセスです。詳細については、『Amazon Redshift データベース開発者ガイド』の「自動テーブル最適化の操作」を参照してください。

    自動テーブル最適化のみを利用するには、[初期キー選択戦略] で [なし] を選択します。

  • 戦略を使用してソートキーと分散キーを選択するには。

    Amazon Redshift メタデータ、統計情報、またはこれらのオプションの両方を使用して、ソートキーと配布キーを選択できます。[最適化戦略] タブの [初期キー選択戦略] では、以下のいずれかのオプションを選択します。

    • メタデータを使用し、統計情報は無視する

    • メタデータを無視し、統計情報を使用する

    • メタデータと統計情報を使用する

    選択したオプションに応じて、最適化戦略を選択できます。次に、各戦略について、値 (0~100) を入力します。これらの値は各戦略の重みを定義します。これらの重み値を使用して、AWS SCTは各ルールがディストリビューションキーとソートキーの選択にどのように影響するかを定義します。デフォルト値は、AWS 移行のベストプラクティスに基づいています。

    [小さいテーブルを検索] 戦略の小さいテーブルのサイズを定義できます。[最小テーブル行数] と [最大テーブル行数] には、テーブル内の最小行数と最大行数を入力して小さいテーブルとして定義します。AWS SCT は ALL 分散スタイルを小さなテーブルに適用します。この場合は、テーブル全体のコピーがすべてのノードに分散されます。

  • 戦略の詳細を設定するには。

    各最適化戦略の重みを定義することに加えて、最適化設定を構成できます。そのためには、[変換の最適化] を選択します。

    • [ソートキー列の制限] には、ソートキーの列の最大数を入力します。

    • [歪んだしきい値] には、列の歪んだ値のパーセンテージ (0 ~ 100) を入力します。AWS SCT は、歪み値がしきい値より大きい列を分散キーの候補リストから除外します。AWS SCT では、列の歪んだ値をレコードの総数に対する最も一般的な値の出現回数の割合として定義します。

    • [クエリ履歴テーブルの上位 N 件のクエリ] には、分析対象として最も頻繁に使用されるクエリの数 (1 ~ 100) を入力します。

    • [統計ユーザーを選択] では、クエリ統計を分析したいデータベースユーザーを選択します。

    また、[最適化戦略」タブでは、[小さいテーブルを検索] 戦略の小さいテーブルのサイズを定義できます。[最小テーブル行数] と [最大テーブル行数] には、テーブル内の最小行数と最大行数を入力すると、小さいテーブルとして考慮されます。AWS SCT は ALL 分散スタイルを小さなテーブルに適用します。この場合は、テーブル全体のコピーがすべてのノードに分散されます。