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にデータベース・ファイルを移行できます。 - Amazon Redshiftへの接続
SQL Developerを使用すると、Amazon RedshiftからAutonomous AI Databaseにデータベース・スキーマおよび表を移行できます。 移行用にAmazon Redshiftからメタデータおよびデータを抽出するには、SQL DeveloperでAmazon Redshiftに接続する必要があります。 - Autonomous AI Databaseへの接続
SQL Developerを使用して、Autonomous AI Databaseへの接続を作成します - クラウド移行ウィザードの開始
SQL DeveloperのToolsメニューからクラウド移行ウィザードを起動して、Autonomous DatabaseへのAmazon Redshiftの移行を開始します。 - Amazon Redshiftの移行の確認および終了
サマリーには、指定した情報のサマリーが表示されます。 - 生成されたAmazon Redshift移行スクリプトの使用
移行スクリプトの生成を選択すると、移行ウィザードで指定したローカル・ディレクトリに新しいサブディレクトリが作成されます。 これらのスクリプトは、リアルタイムで実行するか、プログラム的な処理に使用できます。 - 移行後のタスクの実行
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ドライバのダウンロードとサード・パーティ・ドライバの追加
-
Amazon Redshift JDBCドライバをダウンロードして、Amazon Redshiftにアクセスします。 最新のJDBCドライバの場所については、Amazon Redshiftのドキュメントを参照してください。 詳細は、「Configure a JDBC Connection」を参照してください。
ノート:
Amazon Redshift JDBCドライバJDBC 4.2-compatibleドライバを使用します。 -
SQL DeveloperがAmazon Redshift JDBCドライバにアクセスできるローカル・ディレクトリにAmazon Redshift JDBCドライバを格納します。
-
接続する前に、サード・パーティのAmazon Redshift JDBCドライバをSQL Developerに追加します。 SQL Developerで、「ツール」>「プリファレンス」>「データベース」>「サード・パーティJDBCドライバ」に移動します(Macの場合は「Oracle SQL Developer > 「プリファレンス・データベース」>「サード・パーティJDBCドライバ」)。
-
「エントリの追加」をクリックして、ダウンロードするAmazon Redshift JDBCドライバへのパスを選択します。

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

「図dwcs_aws_migration_jdbc_add2.pngの説明」
Amazon Redshiftデータベースに対する接続の追加
Amazon Redshiftデータベースに接続します。
-
接続パネルで、「接続」を右クリックして「新規接続...」を選択します。
-
Amazon Redshiftタブを選択し、Amazon Redshiftの接続情報を入力します。
複数のスキーマを移行する予定の場合、Amazon Redshiftシステムのマスター・ユーザー名で接続することをお薦めします。

「図adw_migrate_aws_connect1.pngの説明」
-
JDBC接続の構成およびAmazon Redshift JDBC URLの取得の詳細は、「AWS: JDBC接続の構成」を参照してください。
-
接続のセキュリティ・オプション(Amazon [500150]接続エラーの場合)の構成の詳細は、「AWS: 接続の「セキュリティの構成」オプション(Amazon [500150]接続エラーの場合)」を参照してください。
-
仮想プライベート・クラウド(VPC)内にAmazon Redshift環境をデプロイした場合、インターネット経由でクラスタにアクセスできる必要があります。 公開インターネット・アクセスを有効にする方法の詳細は、http://docs.aws.amazon.com/redshift/latest/gsg/rs-gsg-authorize-cluster-access.htmlを参照してください。
-
問合せを長時間実行したときに、データベースへのAmazon Redshiftクライアント接続がハングまたはタイムアウトしたように見える場合、この問題に対処するために実行可能な解決策については、http://docs.aws.amazon.com/redshift/latest/mgmt/connecting-firewall-guidance.htmlを参照してください。
接続をテストしてから保存します。
Amazon認証およびアクセス制御に関する追加情報
Autonomous AI Databaseへの接続
SQL Developerを使用して、Autonomous AI Databaseへの接続を作成します
クラウド移行ウィザードの開始
SQL Developerのツール・メニューからクラウド移行ウィザードを起動して、Autonomous DatabaseへのAmazon Redshiftの移行を開始します。
「ツール」メニューで「移行」からクラウド移行をクリックすると、クラウド移行ウィザードが起動します。 クラウド移行ウィザードでは、Amazon RedshiftデータベースからAutonomous AI Databaseにスキーマ、オブジェクト(表)およびデータを移行できます。
クラウド移行ウィザードでは、一連のステップを簡単に実行できます。 クラウド移行ウィザードのステップは次のとおりです。
-
移行するAmazon Redshiftデータベースのスキーマを指定します。
-
ターゲットのAutonomous AI Databaseを識別します。
-
メタデータ(DDL)を移行するか、データを移行するか(あるいはその両方を行うか)を定義します。
-
システムをオンラインで移行するか、スクリプトを生成するか(あるいはその両方を行うか)を選択します。
Amazon Redshiftデータベースの識別
移行するAmazon Redshiftデータベースのスキーマを指定します。 スキーマ内の主に表であるすべてのオブジェクトが移行されます。 Autonomous AI Databaseへの移行は、スキーマごとに行われます。 スキーマ名を移行の一環として変更することはできません。
-
AWSリフレッシュの移行で、接続を指定します。

「図adw_migrate_redshift_step1of3.pngの説明」
-
接続 : Redshiftデータベース接続の名前。
-
使用可能なスキーマ :特定の接続で使用可能なスキーマ。
-
選択したスキーマ :追加アイコンをクリックして、使用可能なスキーマから移行するスキーマを選択します。
-
データを含める : DDLおよびDATAは、選択されたスキーマおよびデータを移行します。
データを移行する場合、AWSアクセス・キー、AWSシークレット・アクセス・キーおよびRedshiftデータがアンロードおよびステージングされる既存のS3バケットURIを指定する必要があります。 セキュリティ資格証明には、S3にデータを格納するための特定の権限が必要です。 移行に新しい個別のアクセス・キーを作成することをお薦めします。 後で同じアクセス・キーを使用して、セキュアなRESTリクエストを使用してデータをAutonomous AI Databaseにロードします。
-
AWSアクセス・キー:アクセス・キーの詳細は、AWS idおよびアクセス管理を参照してください。
-
AWSシークレット・アクセス: アクセス・キーの詳細は、AWS idおよびアクセス管理を参照してください。
-
S3バケットのURI:一般的なS3 ServiceExceptionエラーについては、S3ServiceExceptionエラーを参照してください。
S3バケットの詳細は、「S3バケットの作成および構成」を参照してください。
Amazon S3バケットURI書式
Amazon S3にあるソース・ファイルについては、ファイルにアクセスするためのURI形式の説明について、次を参照してください: バケットへのアクセスたとえば、次に示すのは、us-west-2リージョン内のadwcバケット内のファイル・フォルダ'folder_name'を指します。
https://s3-us-west-2.amazonaws.com/adwc/folder_nameS3バケット構成の例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の説明」
即時移行を選択した場合、移行ウィザードのダイアログは移行が終了するまで開いたままになります。 スクリプトの生成を選択すると、移行プロセスによって、指定されたローカル・ディレクトリに必要なスクリプトが生成され、スクリプトは実行されません。
移行を実行するには、「終了」をクリック
AWS Redshiftで選択したスキーマ名がAutonomous AI Databaseにすでに存在する場合、移行プロセスではこれらの選択したスキーマのデプロイが除外され、ダイアログが表示されます:

「図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 DatabaseにADMINなどの特権ユーザーとして接続している間に実行する必要があります。
デフォルトでは、移行用に作成されたスキーマは、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_REPORTをSQLDEV_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 ______________________________________________________________



