機械翻訳について

Amazon RedshiftのAutonomous AI Databaseへの移行

SQL Developer 18.3以降のバージョンで使用可能なSQL Developer Amazon Redshift Migration Assistantでは、スキーマごとにAmazon Redshift環境を簡単に移行できるフレームワークが提供されています。

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

Autonomous AI Database Redshift移行の概要

SQL Developerを使用すると、Amazon RedshiftからAutonomous AI Databaseにデータベース・ファイルを移行できます。

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

  • 変換: Redshiftデータ型は、Oracle Datatypeにマップされます。 やり直しオブジェクトの名前は、Oracle命名規則に基づいてOracle名に変換されます。 Redshift関数を使用する列のデフォルト値は、対応するOracleの値に置き換えられます。

  • 生成:変換されたメタデータに基づいて、スキーマおよびDDLsを生成します。

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

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

Amazon Redshiftに接続

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

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

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

    ノート:

    Amazon Redshift JDBCドライバJDBC 4.2-compatibleドライバを使用します。
  2. SQL DeveloperがAmazon Redshift JDBCドライバにアクセスできるローカル・ディレクトリに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の説明」

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

Autonomous AI Databaseへの接続

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

クライアント資格証明ウォレットのzipファイルを取得します。 詳細は、「クライアント資格証明(ウォレット)のダウンロード」を参照してください。
  1. 接続パネルで、「接続」を右クリックして「新規接続...」を選択します。
  2. 「Oracle」タブを選択し、Autonomous AI Databaseの接続情報を入力します。
  3. AWS Redshift移行の接続用として、データベースに対する_low接続を選択します。

    詳細は、Autonomous AI Databaseのデータベース・サービス名を参照してください。

  4. Autonomous AI Databaseへの接続を追加します。


    adb_connect_sqldev_17.4.pngの説明は以下のとおりです
    「図adb_connect_sqldev_17.4.pngの説明」

    詳細については、「Oracle SQL Developerをウォレット(mTLS)に接続」を参照してください。

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

クラウド移行ウィザードの開始

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

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

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

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

  • ターゲットのAutonomous AI Databaseを識別します。

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

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

Amazon Redshiftデータベースの識別

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

  1. AWSリフレッシュの移行で、接続を指定します。


    adw_migrate_redshift_step1of3.pngの説明は以下のとおりです
    「図adw_migrate_redshift_step1of3.pngの説明」
  • 接続 : Redshiftデータベース接続の名前。

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

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

  • データを含める : DDLおよびDATAは、選択されたスキーマおよびデータを移行します。

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

Amazon S3バケットURI書式

Amazon S3にあるソース・ファイルについては、ファイルにアクセスするためのURI形式の説明について、次を参照してください: バケットへのアクセスたとえば、次に示すのは、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"

移行アシスタントがこれらのフォルダを作成: oracle_schema_name/oracle_table_nameバケット内: my_bucket

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 AI Databaseの接続を作成します。Autonomous AI Databaseへの接続を参照してください。 この接続のユーザーは、管理権限を持っている必要があります。この接続は移行中にスキーマおよびオブジェクトを作成するために使用されます。

ノート:

ADMINユーザーまたは管理ロールを持つユーザーを使用します。

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

  • 接続: Autonomous Data Warehouseクラウド接続の名前。 必要に応じて、Autonomous AI Databaseの接続を作成します。 この接続は移行中スキーマおよびオブジェクトの作成に使用されるため、ユーザーは管理権限を持っている必要があります。

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

  • 正常な移行時にリポジトリを削除 :このオプションは、移行の完了後にリポジトリを削除する場合に選択します。 移行後、リポジトリは必要ありません。

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

    ノート:

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

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

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

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

詳細設定(オプション)

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

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

最大スレッド数: Autonomous AI Databaseの表へのデータのロード時に有効にするパラレル・スレッドの数を入力します。

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

移行実行の選択:

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

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

再シフト・アンロード・オプション: 上書きの許可 : このオプションを有効にすると、アンロード処理で既存のファイルがマニフェスト・ファイルを含めて上書きされます(アンロード・プロセスで作成されたデータファイルが一覧表示されます)。 デフォルトでは、上書き可能なファイルがある場合、アンロードは失敗します。

ADWCフォーマット・オプション: 拒否制限: Autonomous AI Databaseの表へのデータのロード時に拒否する行数を入力します。 移行操作では、指定した数の行が拒否された後、エラーが発生します。 デフォルトは0です。

Amazon Redshiftの移行の確認および終了

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

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


adw_migrate_aws_summary.pngの説明は以下のとおりです
「図adw_migrate_aws_summary.pngの説明」

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

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

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


adw_migrate_aws_schema_exists.pngの説明は以下のとおりです
「図adw_migrate_aws_schema_exists.pngの説明」

サマリー: 移行アシスタントで作成されるもの

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

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

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

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

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

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

  • redshift_s3unload.sql

  • adwc_ddl.sql

  • adwc_dataload.sql

  • adwc_dataload_scheduler.sql

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

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

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

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

レイクハウス・オブジェクトの作成

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

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

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

Amazon RedshiftデータのOracle Autonomous AI Databaseへのロード

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

特権ユーザー(ADMINなど)としてAutonomous AI Databaseに接続した状態でスクリプトを実行します。

レイクハウス・オブジェクトの作成時にターゲット・スキーマ名を変更する場合は、このスクリプトのターゲット・スキーマ名を適切に調整する必要があります。

JOB SCHEDULERの使用

SQL Developerは、DBMS_SCHEDULER PL/SQLパッケージを使用してOracle Schedulerオブジェクトを操作するためのグラフィカルなインタフェースを提供します。 SQL Developerスケジューリング機能を使用するには、SQL Developerユーザー・ガイドのSQL Developerを使用したジョブのスケジュールのトピック、Oracle Database管理者ガイドを参照して、ジョブ・スケジューリングの概念および重要なタスクを理解してください。

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

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

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

データ・ロード操作の詳細は、表の列に関する情報を格納する表MD_REPORTSQLDEV_MIGREPOSスキーマに参照してください: and

 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)

移行ログおよびレポート・ファイルの再シフト

移行の再シフト後、次の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 AI Databaseでアカウントを強化

  1. スキーマの削除SQLDEV_MIGREPOS

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

  2. ステージングに使用するAmazon S3バケットのドロップ

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

  3. S3へのアクセスに使用されるAmazonアカウント

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

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

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

  5. Autonomous AI Databaseでアカウントを強化

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