機械翻訳について

C Autonomous Data WarehouseへのAmazon Redshiftの移行

SQL Developer 18.3以上のバージョンで使用できるSQL Developer Amazon Redshift移行アシスタントには、スキーマ単位でAmazon Redshift環境を簡単に移行できるフレームワークがあります。

この項では、Amazon Redshiftのオンライン移行と、後から実行するスケジュールされた手動移行のためのスクリプト生成について、そのステップおよびワークフローを説明します。

Autonomous Data WarehouseのRedshift移行の概要

SQL Developerを使用して、Amazon RedshiftからAutonomous Data Warehouseにデータベース・ファイルを移行できます。

  • 取得: ソース・データベースからメタデータ・スキーマおよび表を取得し、移行リポジトリに格納します。

  • 変換: Redshiftデータ型がOracleデータ型にマップされます。 Redshiftオブジェクト名は、Oracleネーミング規則に基づいてOracle名に変換されます。 Redshift関数を使用する列のデフォルトは、Oracleの同等機能で置換されます。

  • 生成: 変換されたメタデータに基づいてスキーマとDDLを生成します。

  • デプロイ: 生成したスキーマとDDLをデプロイします。

  • データのコピー: Redshift表からAmazon Storage S3にデータをアンロードし、次にAmazon Storageから前にデプロイした(スキーマ内の) Autonomous Data Warehouse表にデータをコピーします。

Amazon Redshiftへの接続

SQL Developerを使用して、Amazon RedshiftからAutonomous Data Warehouseにデータベース・スキーマおよび表を移行できます。 移行用にAmazon Redshiftからメタデータおよびデータを抽出するには、SQL DeveloperでAmazon Redshiftに接続する必要があります。

Amazon Redshift JDBCドライバのダウンロードとサード・パーティ・ドライバの追加

  1. Amazon RedshiftにアクセスするためにAmazon Redshift JDBCドライバをダウンロードします。 最新のJDBCドライバの場所については、Amazon Redshiftのドキュメントを参照してください。 詳細は、「Configure a JDBC Connection」を参照してください。

    注意:

    Amazon Redshift JDBCドライバJDBC 4.2-互換ドライバを使用します。
  2. Amazon Redshift JDBCドライバを、SQL DeveloperがAmazon Redshift JDBCドライバにアクセスできるローカル・ディレクトリに格納します。

  3. 接続する前に、サード・パーティのAmazon Redshift JDBCドライバをSQL Developerに追加します。 SQL Developer内で、「ツール」→「プリファレンス」→「データベース」→「サード・パーティJDBCドライバ」(Macの場合、「Oracle SQL Developer」→プリファレンス・データベース→「サード・パーティJDBCドライバ」)に移動します。

  4. 「エントリの追加」をクリックし、ダウンロードしたAmazon Redshift JDBCドライバへのパスを選択します。


    dwcs_aws_migration_jdbc_add1.pngの説明が続きます
    図dwcs_aws_migration_jdbc_add1.pngの説明
  5. 「OK」をクリックし、ダウンロードしたAmazon Redshift JDBCドライバを追加します。


dwcs_aws_migration_jdbc_add2.pngの説明が続きます
図dwcs_aws_migration_jdbc_add2.pngの説明

Amazon Redshiftデータベースに対する接続の追加

Amazon Redshiftデータベースに接続します。

  1. 「接続」パネルで、「接続」を右クリックして「新規接続」を選択します。

  2. 「Amazon Redshift」タブを選択して、Amazon Redshiftの接続情報を入力します。

    複数のスキーマを移行する予定の場合、Amazon Redshiftシステムのマスター・ユーザー名で接続することをお薦めします。


    adw_migrate_aws_connect1.pngの説明が続きます
    図adw_migrate_aws_connect1.pngの説明

接続をテストしてから保存します。

Amazon認証およびアクセス制御の追加情報

Autonomous Data Warehouseへの接続

SQL Developerを使用して、Autonomous Data Warehouseへの接続を作成します

クライアント資格証明ウォレットのzipファイルを取得します。 詳細は、「クライアント資格証明(ウォレット)のダウンロード」を参照してください。
  1. 「接続」パネルで、「接続」を右クリックして「新規接続」を選択します。
  2. 「Oracle」タブを選択して、Autonomous Data Warehouseの接続情報を入力します。
  3. AWS Redshift移行の接続用として、データベースに対する_low接続を選択します。 詳細は、「Autonomous Data Warehouseの事前定義されたデータベース・サービス名」を参照してください。
  4. Autonomous Data Warehouseに対する接続を追加します。
    dwcs_connect_sqldev182.pngの説明が続きます
    図dwcs_connect_sqldev182.pngの説明

    詳細は、「Oracle SQL Developer (18.2以上)での接続」を参照してください。

    接続をテストしてから保存します。

クラウド移行ウィザードの起動

SQL Developerの「ツール」メニューからクラウド移行ウィザードを起動して、Autonomous Data WarehouseへのAmazon Redshift移行を開始します。

クラウド移行ウィザードを起動するには、「ツール」メニューの「移行」から「クラウド移行」をクリックします。 クラウド移行ウィザードによって、Amazon RedshiftデータベースからAutonomous Data Warehouseにスキーマ、オブジェクト(表)およびデータを移行できます。


adw_migrate_redshift_start.pngの説明が続きます
図adw_migrate_redshift_start.pngの説明

クラウド移行ウィザードでは、一連のステップを簡単に実行できます。 クラウド移行ウィザードのステップは次のとおりです。

  • 移行するAmazon Redshiftデータベースのスキーマを指定します。

  • ターゲットのAutonomous Data Warehouseを指定します。

  • メタデータ(DDL)を移行するか、データを移行するか(あるいはその両方を行うか)を定義します。

  • システムをオンラインで移行するか、スクリプトを生成するか(あるいはその両方を行うか)を選択します。

Amazon Redshiftデータベースの指定

移行するAmazon Redshiftデータベースのスキーマを指定します。 スキーマ内のすべてのオブジェクト(主に表)が移行されます。 Autonomous Data Warehouseへの移行は、スキーマ単位で行われます。 スキーマ名を移行の一環として変更することはできません。

  1. AWS Redshift移行で、「接続」を指定します。


    adw_migrate_redshift_step1of3.pngの説明が続きます
    図adw_migrate_redshift_step1of3.pngの説明
  • 接続: Redshiftデータベース接続の名前。

  • 使用可能なスキーマ: 特定の接続に使用可能なスキーマ。

  • 選択したスキーマ: 「追加」アイコンをクリックして、「使用可能なスキーマ」から移行するスキーマを選択します。

  • データを含める: 「DDLとDATA」により、選択したスキーマとデータが移行されます。

データを移行する場合、AWSアクセス・キー、AWS秘密アクセス・キー、およびRedshiftデータをアンロードおよびステージングする既存のS3バケットURIを指定する必要があります。 セキュリティ資格証明には、S3にデータを格納するための一定の権限が必要です。 移行用の新しい個別のアクセス・キーを作成することをお薦めします。 同じアクセス・キーを後で使用して、セキュアなRESTリクエストによってAutonomous Data Warehouseにデータをロードします。

Amazon S3バケットのURI形式

Amazon S3に存在するソース・ファイルについて、ファイルにアクセスするためのURI形式の説明は、「Accessing a Bucket」を参照してください。たとえば、次の例では、us-west-2リージョンのadwcバケットの'folder_name'というファイル・フォルダを参照しています。

https://s3-us-west-2.amazonaws.com/adwc/folder_name

S3バケット構成の例1

次のS3バケットのURIを指定した場合:

https://s3-us-west-2.amazonaws.com/my_bucket

ウィザードによってmy_bucketを含むパス全体が検証されます。 テスト・ファイルの書込みが試行され、アクセスできない場合はプロンプトが表示されます。 my_bucketが存在しない場合、次のエラーがレポートされます。

Validation Failed

次に、コード生成によってDBMS_CLOUD.COPY_DATAファンクション用に次のパスが作成されます。

file_uri_list => "https://s3-us-west-2.amazonaws.com/my_bucket/oracle_schema_name/oracle_table_name/*.gz"

移行アシスタントによって、バケットmy_bucket内にoracle_schema_name/oracle_table_nameというフォルダが作成されます。

S3バケットの例2

次のS3バケットのURIを指定した場合:

https://s3-us-west-2.amazonaws.com/my_bucket/another_folder

ウィザードによってmy_bucketを含むパス全体が検証されます。 テスト・ファイルの書込みが試行され、アクセスできない場合はプロンプトが表示されます。 my_bucketが存在しない場合、次のエラーがレポートされます。

Validation Failed

この場合、another_folderは存在する必要はありません。 移行によって、my_bucket内にanother_folderバケットが作成されます。

次に、コード生成によってDBMS_CLOUD.COPY_DATAファンクション用に次のパスが作成されます。

file_uri_list => ‘https://s3-us-west-2.amazonaws.com/my_bucket/another_folder/oracle_schema_name/oracle_table_name/*.gz

ステップ2/3: Autonomous Data Warehouse Cloud

最初にターゲットのAutonomous Data Warehouseへの接続を作成します。「Autonomous Data Warehouseへの接続」を参照してください。 この接続のためのユーザーは、管理権限を持っている必要があります(この接続は、スキーマとオブジェクトを作成するために移行全体を通じて使用されるため)。

注意:

ADMINユーザーまたは管理ロールを持つユーザーを使用してください。

Amazon Redshift移行アシスタントにより、オンラインですぐに移行を実行するか、移行に必要なすべてのスクリプトを生成するか、またはその両方を行うことができます。 ローカル・ディレクトリにスクリプトを格納する場合、そのローカル・ディレクトリを指定する必要があります(ユーザーは、このディレクトリに書込み可能である必要があります)。


adw_migrate_redshift_step2of3.pngの説明が続きます
図adw_migrate_redshift_step2of3.pngの説明
  • 接続: Autonomous Data Warehouse Cloud接続の名前。 必要に応じてAutonomous Data Warehouseへの接続を作成します。 この接続は、スキーマとオブジェクトを作成するために移行全体を通じて使用されるため、ユーザーは、管理権限を持っている必要があります。

  • 移行リポジトリのパスワード: スキーマ移行の一環としてAutonomous Data Warehouseにインストールされる移行リポジトリのパスワード。 事前入力されたパスワードを使用するか、新しいパスワードを入力します。

  • 移行成功時にリポジトリを削除: 移行の完了後にリポジトリを削除するには、このオプションを選択します。 このリポジトリは、移行後は不要です。

  • 今すぐ移行: オンラインですぐに移行を実行するには、このオプションを選択します。

    注意:

    • ステップ1の「データを含める」「今すぐ移行」を両方とも選択しない場合、手動移行のために必要なすべてのSQLスクリプトの生成のみが選択されています。

    • ステップ1の「データを含める」を選択せず、「今すぐ移行」を選択した場合、選択したすべてのスキーマとその表がAutonomous Data Warehouseにデプロイされますが、データは表にロードされません。

    • ステップ1の「データを含める」「今すぐ移行」を両方とも選択した場合、選択したすべてのスキーマとその表がAutonomous Data Warehouseにデプロイされ、データが表にロードされます。

  • ディレクトリ: 移行に必要な生成済スクリプトを格納するためのディレクトリを指定します。これにより、スクリプトはローカル・ディレクトリに保存されます。

拡張設定(オプション)

S3ストレージへのアンロード時またはS3ストレージからAutonomous Data Warehouseへのコピー時にフォーマット・オプションを制御しないかぎり、デフォルト設定で正常に動作します。 フォーマット・オプションの詳細は、「DBMS_CLOUDパッケージのフォーマット・オプション」を参照してください。 拡張オプションを使用するには、「拡張設定」をクリックします。


adw_migrate_redshift_prefs.pngの説明が続きます
図adw_migrate_redshift_prefs.pngの説明

出力ディレクトリ: パスを入力するか、「ディレクトリの選択」をクリックして移行用のディレクトリまたはフォルダを選択します。

スレッドの最大数: Autonomous Data Warehouseの表にデータをロードするときに有効化するパラレル・スレッドの数を入力します。

スケジューラの使用: 移行用のスケジューラを有効化するには、このオプションを選択します。 AWS S3バケットからAutonomous Data Warehouseへのデータ・ロード移行操作のジョブをスケジュールできます。 スケジュール済ジョブをすぐに実行するか、将来の日時に実行するかを選択できます。 データ・ロードのスケジュール済ジョブをモニターするには、接続ナビゲータの「スケジューラ」ノードを使用します。

移行実行の選択:

  • 「即時」では、Redshift移行がトリガーされると同時にスケジューラが実行されます。

  • 「1回」では、将来の日時でスケジューラが実行されます。 「開始日」「タイムゾーン」を指定します。 デフォルトでは、「開始日」には、ローカル・システムの現在の日時が表示されます。 開始日を変更するには、カレンダ・アイコンで日付をダブルクリックして選択するか、スピナーで日付を強調表示してからフィールドをクリックして設定します。

Redshiftアンロード・オプション: 上書きの許可: このオプションを選択すると、アンロード・プロセスによって、マニフェスト・ファイル(アンロード・プロセスによって作成されるデータ・ファイルのリスト)を含む既存のファイルが上書きされます。 デフォルトでは、上書き可能なファイルが存在すると、アンロードは失敗します。

ADWCフォーマット・オプション: 拒否の制限あり: Autonomous Data Warehouseの表にデータをロードする際に、拒否する行数を入力します。 指定した行数が拒否されると、移行操作はエラーになります。 デフォルトは0です。

Amazon Redshift移行の確認と終了

「サマリー」に、指定した情報のサマリーが表示されます。

情報を変更するには、必要に応じて「戻る」を押します。


adw_migrate_aws_summary.pngの説明が続きます
図adw_migrate_aws_summary.pngの説明

即時移行を選択した場合、移行ウィザードのダイアログは、移行が終了するまで開かれたままです。 スクリプトの生成を選択した場合、移行プロセスによって、指定したローカル・ディレクトリに必要なスクリプトが生成されますが、スクリプトは実行されません。

移行を実行するには、「終了」をクリックします

AWS Redshiftで選択したスキーマ名がすでにAutonomous Data Warehouseに存在する場合、移行プロセスでは、それらの選択したスキーマのデプロイは除外され、次のダイアログが表示されます。


adw_migrate_aws_schema_exists.pngの説明が続きます
図adw_migrate_aws_schema_exists.pngの説明

サマリー: 移行アシスタントが作成するもの

  • Redshiftのschema_nameを使用して新しいAutonomous Data Warehouseユーザーを作成します。

  • スキーマ名に基づいてS3に新しいバケットを作成します。

  • 表ごとにS3にサブフォルダを作成します。

生成したAmazon Redshift移行スクリプトの使用

移行スクリプトを生成するように選択した場合、移行ウィザードで指定したローカル・ディレクトリに新しいサブディレクトリが作成されます。 これらのスクリプトは、リアルタイムで実行するか、プログラム的な処理に使用できます。

ディレクトリには次のスクリプトが含まれます。

  • redshift_s3unload.sql

  • adwc_ddl.sql

  • adwc_dataload.sql

  • adwc_dataload_scheduler.sql

これらのスクリプトには、Amazon RedshiftシステムをAutonomous Data Warehouseに移行するために必要なすべてのコマンドが含まれます。 これらのスクリプトは、リアルタイムで実行するか、プログラム的な処理に使用できます。

S3へのAmazon Redshiftデータのアンロード

正常な移行のための最初のステップでは、ステージング領域として機能するAmazon S3にAmazon Redshiftデータをアンロードします。 redshift_s3unload.sqlスクリプトには、アクセス資格証明および移行ウィザードのワークフローで指定したS3バケットを使用して、データをアンロードするためのすべてのAmazon Redshiftアンロード・コマンドが含まれます。

Amazon Redshift環境に接続してこのスクリプトを実行します。

データ・ウェアハウス・オブジェクトの作成

Autonomous Data Warehouseを準備するため、データをロードする前に空のデータ・ウェアハウス・スキーマを作成します。 Amazon Redshift移行アシスタントによって、adwc_ddl.sqlスクリプトですべてのAmazon Redshiftスキーマ構造はOracle構造に変換されました。

スクリプトは、ADMINなどの特権ユーザーとしてAutonomous Data Warehouseに接続しながら実行する必要があります。

デフォルトでは、移行用に作成されたスキーマは、Amazon Redshiftのスキーマと同じ名前を持ちます。 パスワードは、スクリプトで、またはスクリプトの実行後に、指定したユーザーの有効なパスワードに変更する必要があります。 スキーマ名を変更する場合、スキーマ名と、その名前に対するすべての参照を変更します。

Oracle Autonomous Data WarehouseへのAmazon Redshiftデータのロード

adwc_dataload.sqlスクリプトには、アンロードしたAmazon RedshiftデータをS3から直接Autonomous Data Warehouseにロードするために必要なすべてのロード・コマンドが含まれます。

スクリプトは、ADMINなどの特権ユーザーとしてAutonomous Data Warehouseに接続しながら実行します。

データ・ウェアハウス・オブジェクトの作成時にターゲット・スキーマ名を変更する場合、その変更に応じてこのスクリプトでターゲット・スキーマ名を調整する必要があります。

ジョブ・スケジューラの使用

SQL Developerには、DBMS_SCHEDULER PL/SQLパッケージをOracle Schedulerオブジェクトと組み合せて使用するためのグラフィカル・インタフェースがあります。 SQL Developerのスケジュール機能を使用するには、『SQL Developerユーザーズ・ガイド』および『Oracle Database管理者ガイド』のSQL Developerを使用したジョブのスケジュールに関する項を参照して、ジョブ・スケジュールの概念および基本タスクを理解してください。

接続の「スケジューラ」ノードが接続ナビゲータとDBAナビゲータに表示されます。 ADWC 'admin'ユーザーを使用して、データ・ロード・ジョブのステータスをモニターする'admin'が所有するスケジューラ・オブジェクトをナビゲートします。

ADWC 'admin'接続→「スケジューラ」→「ジョブ」に、<schema_name>_<table_name>という名前で、AWS RedshiftからAWDCへのデータ・ロード・ジョブが作成されています。

各データ・ロードの完了ステータスを表示するには、各スケジュール済ジョブを展開し、ステータスを確認してください。

データ・ロード操作の詳細は、表の列の情報を格納しているSQLDEV_MIGREPOSスキーマのMD_REPORT表と、次を参照してください

 OPERATION_ID, LOGFILE_TABLE, BADFILE_TABLE, SOURCE_SCHEMA_NAME, TARGET_SCHEMA_NAME, SOURCE_TABLE_NAME, 

および

 TARGET_TABLE_NAME, SOURCE_TABLE_ROWS, TARGET_TABLE_ROWS_LOADED, ERROR MESSAGE, 

および

STATUS (COMPLETED or FAILED)

Redshift移行ログとレポート・ファイル

Redshift移行の後、次の3つのファイルが生成されます。

  • MigrationResults.log: Redshift移行のログ・ファイル

  • readme.txt: 生成されたAmazon Redshift移行スクリプトの使用方法を説明したファイル。

  • redshift_migration_reportxxx.txt: 移行の情報が含まれます。サンプルは次のとおりです。

    ______________________________________________________________
    OPERATION ID : 8566
    LOGFILE TABLE : COPY$8566_LOG
    BADFILE TABLE : COPY$8566_BAD
    SOURCE SCHEMA : sample
    TARGET SCHEMA : SAMPLE
    SOURCE TABLE : listing
    TARGET TABLE : LISTING
    SOURCE TABLE ROWS : 192497
    TABLE ROWS LOADED : 192497
    ERROR MESSAGE : null
    STATUS : COMPLETED
    START TIME : 2018-09-27 17:25:18.662075
    END TIME : 2018-09-27 17:25:25.012695
    ______________________________________________________________

移行後タスクの実行

Redshift環境の移行に成功したら、次の移行後タスクについて検討する必要があります。

  • SQLDEV_MIGREPOSスキーマの削除

  • ステージングに使用されたAmazon S3バケットの削除

  • S3へのアクセスに使用されたAmazonアカウントのセキュリティ強化

  • S3からのデータ・ロードに使用されたデータベース資格証明の削除

  • Autonomous Data Warehouseのアカウントのセキュリティ強化

  1. SQLDEV_MIGREPOSスキーマの削除

    スキーマ移行の一環として、移行アシスタントにより、ターゲットのAutonomous Data Warehouseに最小限の移行リポジトリがインストールされます。 移行後、このアカウントは不要になるため、削除またはロックすることができます。

  2. ステージングに使用されたAmazon S3バケットの削除

    アンロードしたRedshiftデータを使用する場合を除き、アンロードしたデータを含むバケットを削除できます。

  3. S3へのアクセスに使用されたAmazonアカウントのセキュリティ強化

    他の目的で必要としないかぎり、S3アクセスに使用されたセキュリティ・アクセス・キーを非アクティブ化する必要があります。

  4. S3からのデータ・ロードに使用されたデータベース資格証明の削除

    S3にアクセスするためのAmazonセキュリティ資格証明は、Autonomous Data Warehouseのデータベース資格証明REDSHIFT_DWCS_CREDSとして、移行に使用された特権ユーザー・スキーマに暗号化されて格納されます。 この資格証明は、他の目的で必要としないかぎり、移行の成功後に削除することをお薦めします。 詳細は、「DROP_CREDENTIALプロシージャ」を参照してください。

  5. Autonomous Data Warehouseのアカウントのセキュリティ強化

    移行アシスタントによる移行の一環として作成された新しいスキーマについては、それらのアカウントをデータ格納のためにのみ使用する場合、必ずそのパスワードを変更するか、ロックして期限切れにしてください。