オンプレミスのデータウェアハウスから Amazon Redshift にデータを移行する - AWS Schema Conversion Tool

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

オンプレミスのデータウェアハウスから Amazon Redshift にデータを移行する

AWS SCT エージェントを使用して、オンプレミスのデータウェアハウスからデータを抽出し、Amazon Redshift に移行できます。エージェントはデータを抽出し、データを Amazon S3 に、また大規模な移行の場合は AWS Snowball エッジデバイスにアップロードします。その後、AWS SCT を使用して Amazon Redshift にデータをコピーすることができます。

Amazon S3 はストレージおよび取得サービスです。Amazon S3 にオブジェクトを保存するには、Amazon S3 バケットに保存するファイルをアップロードします。ファイルをアップロードする際に、オブジェクトだけでなく、いずれのメタデータにも権限を設定することができます。

大規模な移行

大規模なデータ移行には数テラバイトの情報が含まれることがあり、ネットワークのパフォーマンスおよび移行するデータ量によっては、低速になる場合があります。AWS SnowballEdge はAWSクラウドにデータを転送するために使用できるサービス faster-than-network を使用して速度AWS-所有アプライアンス。AWS Snowball エッジデバイスは最大 100 TB のデータを保持できます。256 ビットの暗号化、およびセキュリティと完全なセキュリティを確保するための業界標準であるトラステッドプラットフォームモジュール (TPM) を使用します。 chain-of-custody データに対して。AWS SCTと の連携AWS Snowballエッジデバイス。

AWS SCT と AWS Snowball エッジデバイスを使用する場合、2 段階でデータを移行します。まず、AWS SCTデータをローカルで処理し、そのデータをAWS Snowballエッジデバイス。次に、AWS Snowball エッジのプロセスを使用してデバイスを AWS に送付すると、AWS が自動的にデータを Amazon S3 バケットにアップロードします。次に、データが Amazon S3 で利用できるようになったら、AWS SCT を使用して Amazon Redshift にデータを移行します。データ抽出エージェントは、AWS SCT がクローズしている間もバックグラウンドで使用できます。

次の図は、サポートされるシナリオを示しています。


            抽出エージェントのアーキテクチャ

データ抽出エージェントは、現在、以下のソースデータウェアハウスでサポートされています。

  • Greenplum データベース (バージョン 4.3 以降)

  • Microsoft SQL Server (バージョン 2008 以降)

  • Netezza (バージョン 7.0.3 以降)

  • Oracle (バージョン 10 以降)

  • Teradata (バージョン 13 以降)

  • Vertica (バージョン 7.2.2 以降)

  • Azure SQL データウェアハウス (Azure Synapse)

連邦情報処理標準 (FIPS) のセキュリティ要件に準拠する必要がある場合は、Amazon Redshift の FIPS エンドポイントに接続できます。FIPS エンドポイントは、以下の AWS リージョンで利用できます。

  • 米国東部 (バージニア北部) リージョン (redshift-fips.us-east-1.amazonaws.com)

  • 米国東部 (オハイオ) リージョン (redshift-fips.us-east-2.amazonaws.com)

  • 米国西部 (北カリフォルニア) リージョン (redshift-fips.us-west-1.amazonaws.com)

  • 米国西部 (オレゴン) リージョン (redshift-fips.us-west-2.amazonaws.com)

データ抽出エージェントの使用方法については、以下のトピックを参照してください。

データ抽出エージェントを使用するための前提条件

データ抽出エージェントを使用する前に、Amazon S3 バケット情報を保存し、Secure Sockets Layer (SSL) 信頼ストアとキーストアを設定します。

Amazon S3 設定

エージェントは、データを抽出すると Amazon S3 バケットにアップロードします。続行する前に、AWS アカウントと Amazon S3 バケットへの接続に必要な認証情報を入力する必要があります。認証情報とバケット情報はグローバルアプリケーション設定のプロファイルに保存してから、AWS SCT プロジェクトに関連付けます。必要に応じて、[Global settings] (グローバル設定)[] をクリックして、新しいプロファイルを作成します。詳細については、「AWS サービスプロファイルの AWS SCT への保存」を参照してください。

IAM ロールの継承について

セキュリティを強化するには、AWS Identity and Access ManagementAmazon S3 バケットにアクセスするための (IAM) ロール。これを行うには、権限を持たないデータ抽出エージェントの IAM ユーザーを作成します。次に、Amazon S3 アクセスを有効にする IAM ロールを作成し、このロールを引き受けることができるサービスとユーザーのリストを指定します。詳細については、「IAM ユーザーガイド」の「IAM ロール」を参照してください。

Amazon S3 バケットにアクセスするための IAM ロールを設定するには

  1. 新規 IAM ユーザーを作成します。ユーザーの資格情報については、プログラム的なアクセスタイプを作成することができます。

  2. データ抽出エージェントが次の役割を引き受けることができるように、ホスト環境を構成します。AWS SCT提供します。前の手順で設定したユーザーが、データ抽出エージェントが資格情報プロバイダーチェーンを使用できるようにしていることを確認します。詳細については、次を参照してください。認証情報の使用AWS SDK for Javaデベロッパーガイド

  3. Amazon S3 バケットへのアクセス許可を持つ新しい IAM ロールを作成します。

  4. このロールの信頼セクションを変更して、ロールを引き受ける前に作成したユーザーを信頼します。次の例では、置き換えます。111122223333:user/DataExtractionAgentNameIAM ユーザーの名前を指定します。

    { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/DataExtractionAgentName" }, "Action": "sts:AssumeRole" }
  5. このロールの信頼セクションを信頼するように変更するredshift.amazonaws.comロールを引き受けることができます。

    { "Effect": "Allow", "Principal": { "Service": [ "redshift.amazonaws.com" ] }, "Action": "sts:AssumeRole" }
  6. このロールを Amazon Redshift クラスターに添付します。

これで、データ抽出エージェントをAWS SCT。

IAM ロールを仮定すると、データ移行は次のように機能します。データ抽出エージェントが起動し、認証情報プロバイダチェーンを使用してユーザー資格情報を取得します。次に、のデータ移行タスクを作成します。AWS SCTをクリックし、データ抽出エージェントが引き受けるための IAM ロールを指定し、タスクを開始します。AWS Security Token Service(AWS STS) は、Amazon S3 にアクセスするための一時的な認証情報を生成します。データ抽出エージェントは、これらの認証情報を使用して Amazon S3 にデータをアップロードします。

次に、AWS SCTAmazon Redshift に IAM ロールを提供します。次に、Amazon Redshift は、から新しい一時的な認証情報を取得します。AWS STS[] をクリックして、Amazon S3 にアクセスします。Amazon S3 から Amazon Redshift テーブルにデータをコピーするために Amazon Redshift はこれらの認証情報を使用します。

セキュリティ設定

AWS Schema Conversion Tool と抽出エージェントは、Secure Sockets Layer (SSL) を介して通信できます。SSL を有効にするには、信頼ストアとキーストアを設定します。

抽出エージェントとの安全な通信を設定するには

  1. AWS Schema Conversion Tool を開始します。

  2. を開く設定メニューを選択し、[Global settings] (グローバル設定)。[Global settings] (グローバル設定) ダイアログボックスが表示されます。

    次に示されているように、[Security] (セキュリティ) タブを選択します。

    
                            [Global Settings] (グローバル設定) ダイアログボックスの [Security] (セキュリティ) タブ
  3. 選択信頼とキーストアを生成する、または既存のトラストストアを選択

    選択内容信頼とキーストアを生成するで、信頼ストアおよびキーストアの名前とパスワード、および生成されたファイルの場所へのパスを指定します。これらのファイルは、後のステップで使用します。

    選択内容既存のトラストストアを選択で、信頼ストアおよびキーストアのパスワードとファイル名を指定します。これらのファイルは、後のステップで使用します。

  4. 信頼ストアおよびキーストアを指定した後で、[] を選択します。OK[] を閉じます。[Global settings] (グローバル設定)[] ダイアログボックス。

抽出エージェントをインストールする

AWS Schema Conversion Tool を実行しているコンピュータとは別の、個別のコンピュータに複数の抽出エージェントをインストールすることをお勧めします。

抽出エージェントは現在、次のオペレーティングシステムでサポートされています。

  • Microsoft Windows

  • Red Hat Enterprise Linux (RHEL) 6.0

  • Ubuntu Linux (バージョン 14.04 以降)

以下の手順を使用して、抽出エージェントをインストールします。抽出エージェントをインストールするそれぞれのコンピュータでこの手順を繰り返します。

抽出エージェントをインストールするには

  1. AWS SCT インストーラファイルをまだダウンロードしていない場合、AWS SCT のインストール、検証、更新 の手順に従い、ダウンロードします。AWS SCT インストーラファイルを含む .zip ファイルには抽出エージェントのインストーラファイルも含まれています。

  2. Amazon Corretto 11 の最新バージョンをダウンロードしてインストールします。詳細については、次を参照してください。Amazon Corretto 11 のダウンロードAmazon Corretto 11 ユーザーガイド

  3. agents というサブフォルダ内で移行エージェントのインストーラファイルを見つけます。コンピュータのオペレーティングシステムごとに、抽出エージェントをインストールするための正しいファイルは以下のとおりです。

    オペレーティングシステム ファイル名

    Microsoft Windows

    aws-schema-conversion-tool-extractor-1.0.build-number.msi

    RHEL

    aws-schema-conversion-tool-extractor-1.0.build-number.x86_64.rpm

    Ubuntu Linux

    aws-schema-conversion-tool-extractor-1.0.build-number.deb

  4. 新しいコンピュータにインストーラファイルをコピーして、個別のコンピュータで抽出エージェントをインストールします。

  5. インストーラファイルを実行します。次に示すように、オペレーティングシステムの手順を使用します。

    オペレーティングシステム インストール手順

    Microsoft Windows

    ファイルをダブルクリックしてインストーラを実行します。

    RHEL

    ファイルをダウンロードまたは移動したフォルダーで、次のコマンドを実行します。

    sudo rpm -ivh aws-schema-conversion-tool-extractor-1.0.build-number.x86_64.rpm sudo ./sct-extractor-setup.sh --config

    Ubuntu Linux

    ファイルをダウンロードまたは移動したフォルダーで、次のコマンドを実行します。

    sudo dpkg -i aws-schema-conversion-tool-extractor-1.0.build-number.deb sudo ./sct-extractor-setup.sh --config
  6. 選択で、ライセンス契約に同意して、

  7. インストールするパスを入力します。AWS SCTデータ抽出エージェントを選択し、

  8. 選択インストールをクリックして、データ抽出エージェントをインストールします。

    AWS SCTデータ抽出エージェントをインストールします。インストールを完了するには、データ抽出エージェントを構成します。AWS SCTは、構成セットアッププログラムを自動的に起動します。詳細については、「抽出エージェントを設定する」を参照してください。

  9. 選択完了をクリックして、データ抽出エージェントを構成した後、インストールウィザードを閉じます。

抽出エージェントを設定する

以下の手順を使用して、抽出エージェントを設定します。抽出エージェントがインストールされている各コンピュータに対してこの手順を繰り返します。

抽出エージェントを設定するには

  1. 設定セットアッププログラムを起動します。

    • Microsoft Windows では、AWS SCTは、データ抽出エージェントのインストール中に構成セットアッププログラムを自動的に起動します。

      必要に応じて、次のコマンドを使用して Windows でセットアッププログラムを手動で起動します。

      cd path/AWSSchemaConversionTool-Extractor.jar java -jar AWSSchemaConversionTool-Extractor.jar -config

      前の例では、以下のようになっています。pathは、をインストールしたパスです。AWS SCTデータ抽出エージェント。

    • RHEL と Ubuntu で、sct-extractor-setup.shエージェントをインストールした場所からのファイル。

    セットアッププログラムで情報の入力が求められます。それぞれのプロンプトで、デフォルト値が表示されます。

  2. プロンプトごとにデフォルト値をそのまま使用するか、新しい値を入力します。

    以下の情報を指定します。

    • を使用する場合リスニングポート[] に、エージェントがリッスンするポート番号を入力します。

    • を使用する場合ソースベンダーの追加「」と入力します。yesをクリックし、ソースデータウェアハウスプラットフォームを入力します。

    • を使用する場合JDBC ドライバー[] に、JDBC ドライバをインストールした場所を入力します。

    • を使用する場合[Working folder]で、のパスを入力します。AWS SCTデータ抽出エージェントは、抽出されたデータを格納します。作業フォルダは、エージェントからの他のコンピュータにある場合があります。また、単一の作業フォルダを別々のコンピュータの複数のエージェントで共有することもできます。

    • を使用する場合SSL 通信の有効化「」と入力します。yes

    • を使用する場合キーストア[] に、キーストアファイルの場所を入力します。

    • を使用する場合キーストアパスワード[] に、キーストアのパスワードを入力します。

    • を使用する場合クライアント SSL 認証を有効にする「」と入力します。yes

    • を使用する場合信頼ストア[] に、信頼ストアファイルの場所を入力します。

    • を使用する場合信頼ストアパスワード[] に、信頼ストアのパスワードを入力します。

セットアッププログラムは抽出エージェント用の設定ファイルを更新します。設定ファイルは settings.properties という名前で、抽出エージェントをインストールした場所にあります。

以下に示すのは、サンプルの設定ファイルです。

$ cat settings.properties #extractor.start.fetch.size=20000 #extractor.out.file.size=10485760 #extractor.source.connection.pool.size=20 #extractor.source.connection.pool.min.evictable.idle.time.millis=30000 #extractor.extracting.thread.pool.size=10 vendor=TERADATA driver.jars=/usr/share/lib/jdbc/terajdbc4.jar port=8192 redshift.driver.jars=/usr/share/lib/jdbc/RedshiftJDBC42-1.2.43.1067.jar working.folder=/data/sct extractor.private.folder=/home/ubuntu ssl.option=OFF

構成設定を変更するには、settings.propertiesテキストエディタを使用してファイルするか、エージェント設定を再実行します。

専用のコピーエージェントを使用した抽出エージェントのインストールと構成

抽出エージェントは、共有ストレージと専用のコピーエージェントのある構成にインストールできます。このシナリオを以下に図表で示します。


                    専用のコピーエージェント構成のあるエクストラクタエージェント

この構成は、ソースデータベースサーバーが最大 120 の接続をサポートし、ネットワークに十分なストレージが接続されている場合に有効です。以下の手順を使用して、専用のコピーエージェントのある抽出エージェントを構成します。

抽出エージェントと専用のコピーエージェントをインストールして構成するには

  1. すべての抽出エージェントの作業ディレクトリで共有ストレージ上の同じフォルダが使用されていることを確認します。

  2. 抽出エージェントをインストールする の手順に従って、エクストラクタエージェントをインストールします。

  3. 抽出エージェントを設定する の手順に従って、抽出エージェントを構成しまが、ソース JDBC ドライバのみを指定します。

  4. 抽出エージェントを設定する の手順に従って、専用のコピーエージェントを構成しまが、Amazon Redshift JDBC ドライバーのみを指定します。

抽出エージェントを開始する

以下の手順を使用して、抽出エージェントを開始します。抽出エージェントがインストールされている各コンピュータに対してこの手順を繰り返します。

抽出エージェントはリスナーとして機能します。この手順でエージェントを開始すると、エージェントは手順をリッスンし始めます。後のセクションで、データウェアハウスからデータを抽出する手順をエージェントに送信します。

抽出エージェントを開始するには

  • 抽出エージェントがインストールされているコンピュータで、次に示す、お使いのオペレーティングシステム用のコマンドを実行します。

    オペレーティングシステム 開始コマンド

    Microsoft Windows

    StartAgent.bat バッチファイルをダブルクリックします。

    RHEL

    エージェントをインストールしたフォルダへのパスで以下のコマンドを実行します。

    sudo initctl start sct-extractor

    Ubuntu Linux

    エージェントをインストールしたフォルダへのパスで以下のコマンドを実行します。Ubuntu のバージョンに適切なコマンドを使用します。

    Ubuntu 14.04: sudo initctl start sct-extractor

    Ubuntu 15.04以降: sudo systemctl start sct-extractor

エージェントの状態を確認するには、同じコマンドを実行します。ただし、startstatus に置き換えます。

エージェントを停止するには、同じコマンドを実行します。ただし、startstop に置き換えます。

AWS Schema Conversion Tool に抽出エージェントを登録する

AWS SCT を使用して抽出エージェントを管理します。抽出エージェントはリスナーとして機能します。AWS SCT から手順を受け取る場合、データウェアハウスからデータを抽出します。

次の手順に従い、AWS SCT プロジェクトに抽出エージェントを登録します。

抽出エージェントを登録するには

  1. [AWS Schema Conversion Tool] を開始して、プロジェクトを開きます。

  2. を開く表示メニューを選択し、データ移行ビュー (その他)。[Agents] (エージェント) タブが表示されます。以前にエージェントを登録したことがある場合は、AWS SCT[] は、タブ上部のグリッドに表示されます。

  3. [Register] (登録) を選択します。

    AWS SCT プロジェクトにエージェントを登録したら、異なるプロジェクトには同じエージェントを登録できません。AWS SCT プロジェクトでエージェントが不要になった場合は、登録解除できます。登録解除後に、別のプロジェクトに登録できます。

  4. 選択Redshift のデータエージェント[] を選択してから、OK

  5. に自分の情報を入力します。接続[] ダイアログボックスの [] タブ:

    1. を使用する場合説明[] に、エージェントの説明を入力します。

    2. を使用する場合ホスト名[] に、エージェントのコンピューターのホスト名または IP アドレスを入力します。

    3. を使用する場合ポート[] に、エージェントがリッスンするポート番号を入力します。

    4. [Register] (登録) を選択して、AWS SCT プロジェクトにエージェントを登録します。

  6. 前述のステップを繰り返して、AWS SCT プロジェクトに複数のエージェントを登録します。

AWS SCT エージェントの情報の非表示と復旧

AWS SCT エージェントは、大量の情報を暗号化します。例えば、ユーザーのキー信頼ストアのパスワード、データベースアカウント、AWS アカウント情報などです。これは、seed.dat と呼ばれる特別なファイルを使用して実行されます。デフォルトでは、エージェントはこのエージェントを最初に設定するユーザーの作業フォルダで、このファイルを作成します。

さまざまなユーザーがエージェントを設定および実行できるため、 へのパスは seed.dat{extractor.private.folder} ファイルの settings.properties パラメータに保存されます。エージェントが開始すると、このパスを使用して、作用するデータベース用のキー信頼ストア情報にアクセスするための seed.dat ファイルを見つけます。

以下の場合に、エージェントが保存したパスワードの回復が必要になることがあります。

  • ユーザーが seed.dat ファイルを失い、AWS SCT エージェントの場所とポートが変更されなかった場合。

  • ユーザーが seed.dat ファイルを失い、AWS SCT エージェントの場所とポートが変更された場合。この場合、通常は変更が発生します。これは、エージェントが別のホストまたはポートに移行され、seed.dat ファイル内の情報が無効になっているためです。

これらの場合、エージェントが SSL を使用しないで開始されたときは、エージェントは開始され、以前に作成したエージェントストレージにアクセスできます。次に、復元の待機状態になります。

ただし、これらの場合、エージェントが SSL を使用して開始されたときは、エージェントを再起動することはできません。これは、エージェントが settings.properties ファイルに保存された証明書のパスワードを復号できないためです。このような種類のスタートアップでは、エージェントは起動に失敗します。次のようなエラーがログに記録されます。「エージェントは SSL モードを有効にして起動できませんでした。エージェントを再設定してください。理由: キーストアのパスワードが正しくありません。」

この問題を修正するには、新しいエージェントを作成し、SSL 証明書にアクセスするための既存のパスワードを使用するようにエージェントを設定します。そのためには、次の手順を使用します。

この手順を実行すると、エージェントは実行され、回復を待機中 状態になります。必要なパスワードを AWS SCT 自動的にエージェントに送信し、回復を待機中 状態になります。エージェントがパスワードを取得すると、任意のタスクを再開できます。AWS SCT 側でそれ以上のユーザーアクションは必要ありません。

エージェントを再設定し、SSL 証明書にアクセスするためのパスワードを復元するには

  1. 新しい AWS SCT エージェントをインストールし、設定を実行します。

  2. agent.name ファイルの instance.properties プロパティを、ストレージが作成されたエージェントの名前に変更し、新しいエージェントが既存のエージェントストレージに対して動作できるようにします。

    instance.properties ファイルは、エージェントのプライベートフォルダに保存されます。このフォルダは次の命名規則を使用して名前が付けられます。{output.folder}\dmt\{hostName}_{portNumber}\

  3. {output.folder} の名前を、前のエージェントの出力フォルダの名前に変更します。

    この時点で、AWS SCT はまだ古いホストとポートで古いエクストラクタへのアクセスを試みています。その結果、アクセス不可能なエクストラクタは、FAILED ステータスになります。次に、ホストおよびポートを変更できます。

  4. 古いエージェントのホスト、ポート、またはその両方を変更します。そのためには、Modify コマンドを使用して、リクエストのフローを新しいエージェントにリダイレクトします。

AWS SCT が新しいエージェントに ping を実行できる場合、AWS SCT はエージェントから 回復を待機中 状態を受け取ります。その後、AWS SCT は自動的にエージェントのパスワードを回復します。

エージェントストレージを操作する各エージェントは、storage.lck にある {output.folder}\{agentName}\storage\ という特別なファイルを更新します。このファイルには、エージェントのネットワーク ID と、ストレージがロックされるまでの時間が含まれています。エージェントがエージェントストレージを操作する場合、storage.lck ファイルを更新し、ストレージのリースを 5 分ごとに 10 分延長します。リースの有効期限が切れるまでは、他のインスタンスはこのエージェントストレージを操作できません。

でのデータ移行ルールの作成AWS SCT

AWS Schema Conversion Tool でデータを抽出する前に、抽出するデータの量を減らすフィルタを設定できます。データ移行ルールは、を使用して作成できます。WHERE句を使用して、抽出するデータを減らします。例えば、単一のテーブルからデータを選択する WHERE 句を記述できます。

データ移行ルールを作成し、プロジェクトの一部としてフィルタを保存できます。プロジェクトを開いた状態で、以下の手順でデータ移行ルールを作成します。

データ移行ルールを作成するには

  1. を開く表示メニューを選択し、データ移行ビュー (その他)

  2. 選択データ移行ルール[] を選択してから、新しいルールの追加

  3. データ移行ルールを設定します。

    1. を使用する場合名前[] に、データ移行ルールの名前を入力します。

    2. を使用する場合スキーマ名の例[] に、スキーマに適用するフィルタを入力します。このフィルタで、WHERE 句の評価には LIKE 句が使用されます。スキーマを 1 つ選択するには、正確なスキーマ名を入力します。複数のスキーマを選択するには、ワイルドカードとして「%」文字を使用し、スキーマ名の任意の数の文字に一致させます。

    3. を使用する場合テーブル名[] に、テーブルに適用するフィルタを入力します。このフィルタで、WHERE 句の評価には LIKE 句が使用されます。テーブルを 1 つ選択するには、正確な名前を入力します。複数のテーブルを選択するには、ワイルドカードとして「%」文字を使用して、テーブル名の任意の数の文字に一致させます。

    4. [Where clause] に、データをフィルタする WHERE 句を入力します。

  4. フィルタを設定したら、[Save] (保存) を選択してフィルタを保存します。変更をキャンセルする場合は、[Cancel] (キャンセル) を選択します。

  5. フィルタの追加、編集、削除が完了したら、[] を選択します。Save All[] をクリックして、すべての変更を保存します。

フィルタを削除せずに無効にするには、切り替えアイコンを使用します。既存のフィルタを複製するには、コピーアイコンを使用します。既存のフィルタを削除するには、削除アイコンを使用します。フィルタへの変更を保存するには、[] を選択します。Save All

プロジェクト設定からエクストラクタとコピー設定を変更する

からプロジェクト設定のウィンドウAWS SCTで、データ抽出エージェントと Amazon Redshift に設定を選択できます。COPYコマンド。

この設定を選択するには、[] を選択します。設定,プロジェクト設定[] を選択してから、データ移行。ここで、編集できます。抽出設定,Amazon S3 設定, および設定をコピー

以下の表の手順を使用して、の情報を入力します。抽出設定

このパラメータについて この操作を行います

圧縮形式

入力ファイルの圧縮形式を指定します。以下のオプションのいずれかを選択します。GZIP,BZIP2,ZSTD, または圧縮なし

区切り文字

入力ファイル内のフィールドを区切る ASCII 文字を指定します。非印刷文字はサポートされていません。

文字列としての NULL 値

データにヌルターミネータが含まれている場合は、このオプションをオンにします。このオプションをオフにすると、Amazon RedshiftCOPYcommand は null をレコードの末尾として扱い、ロードプロセスを終了します。

ソート戦略

ソートを使用して、障害点からの抽出を再開します。次の並べ替え方法のいずれかを選択します。最初の失敗後にソートを使用する (推奨),可能な場合はソートを使用する, または並べ替えを使用しないでください。。詳細については、「AWS SCT で移行前にデータをソートする」を参照してください。

ソース一時スキーマ

抽出エージェントが一時オブジェクトを作成できる、ソースデータベースのスキーマの名前を入力します。

アウトファイルサイズ (MB)

Amazon S3 にアップロードされたファイルのサイズ (MB) を入力します。

Snowball アウトファイルサイズ (MB)

にアップロードされたファイルのサイズを MB 単位で入力します。AWS Snowball。ファイルのサイズは 1 ~ 1,000 MB です。

DB サーバーでサポートされ、テーブルサイズ (MB 単位) が次の値を超える場合は、テーブルパーティション分割を使用します。

このオプションをオンにしてテーブルパーティション化を使用し、パーティション化するテーブルのサイズを入力します。

EXTRACT LOB

このオプションをオンにすると、ソースデータベースからラージオブジェクト (LOB) が抽出されます。LOB には BLOB、CLOB、nClobs、XML ファイルなどがあります。すべての LOB についてAWS SCT抽出エージェントは、データファイルを作成します。

Amazon S3 バケット LOB フォルダ

の場所を入力します。AWS SCTLOB を格納するための抽出エージェント。

RTRIM を文字列列に適用する

指定された一連の文字を抽出された文字列の末尾から切り捨てます。

Amazon S3 にアップロードした後、ファイルをローカルに保つ

このオプションをオンにすると、データ抽出エージェントがファイルを Amazon S3 にアップロードした後もローカルマシン上にファイルが保持されます。

以下の表の手順を使用して、の情報を入力します。Amazon S3 設定

このパラメータについて この操作を行います

プロキシを使用する

このオプションをオンにすると、プロキシサーバーを使用して Amazon S3 にデータをアップロードできます。次に、データ転送プロトコルを選択し、ホスト名、ポート、ユーザー名、およびパスワードを入力します。

[Endpoint type] (エンドポイントタイプ)

選択FIPSを使用して、連邦情報処理規格 (FIPS) エンドポイントを使用します。選択VPCE[] をクリックして、Virtual Private Cloud (VPC) エンドポイントを使用します。それならのためにVPC エンドポイント[] で、VPC エンドポイントのドメインネームシステム (DNS) を入力します。

Amazon Redshift にコピーした後、Amazon S3 にファイルを保持する

このオプションをオンにすると、これらのファイルを Amazon Redshift にコピーした後で Amazon S3 に抽出されたファイルが保持されます。

以下の表の手順を使用して、の情報を入力します。設定をコピー

このパラメータについて この操作を行います

最大エラーカウント

ロードエラーの数を入力します。操作がこの限界に達すると、AWS SCTデータ抽出エージェントは、データロードプロセスを終了します。デフォルト値は0 で、AWS SCTデータ抽出エージェントは、障害に関係なくデータのロードを続行します。

無効な UTF-8 文字を置き換える

このオプションをオンにすると、有効でない UTF-8 文字を指定された文字に置き換え、データのロード操作を続行できます。

空白を NULL 値として使用する

このオプションをオンにすると、空白文字で構成される空白フィールドが null として読み込まれます。

空を NULL 値として使用する

このオプションをオンにすると、空をロードできます。CHARそしてVARCHARフィールドを null として指定します。

列を切り詰める

このオプションをオンにすると、列内のデータがデータ型仕様に適合するように切り捨てられます。

自動圧縮

コピー操作中に圧縮エンコーディングを適用するには、このオプションをオンにします。

統計情報の自動更新

コピー操作の最後に統計を更新する場合は、このオプションをオンにします。

ロード前にファイルをチェックする

Amazon Redshift にロードする前にデータファイルを検証するには、このオプションをオンにします。

AWS SCT で移行前にデータをソートする

AWS SCT で移行前にデータをソートすることには、いくつかの利点があります。最初にデータをソートすると、障害が発生した場合に、AWS SCT は最後に保存した個所から抽出エージェントを再起動できます。また、Amazon Redshift にデータを移行する場合、最初にデータをソートすると、AWS SCT はより迅速に Amazon Redshift にデータを挿入できます。

このような利点は、AWS SCT でデータ抽出クエリを作成する方法と関係します。AWS SCT は、これらのクエリで DENSE_RANK 分析関数を使用できます。ただし、DENSE_RANK は抽出されたデータセットのソートに多くの時間とサーバーリソースを使用するため、AWS SCT では DENSE_RANK を使わずに済む場合は使用しません。

AWS SCT を使用して移行前にデータをソートするには

  1. AWS SCT プロジェクトを開きます。

  2. オブジェクトのコンテキスト (右クリック) メニューを開き、[] を選択します。ローカルタスクの作成

  3. [アドバンストタブ、およびソート戦略[] で、次のいずれかのオプションを選択します。

    • [Never use sorting] (ソートを使用しない) 抽出エージェントは DENSE_RANK 分析関数を使用せず、障害が発生した場合は最初からやり直します。

    • [Use sorting if possible] (可能な場合はソートを使用) テーブルにプライマリキーまたは一意の制約事項がある場合、抽出エージェントは DENSE_RANK を使用します。

    • [Use sorting after first fail] (最初の失敗の後ソートを使用) (推奨) 抽出エージェントは、まず DENSE_RANK を使用せずにデータを取得しようとします。最初の試行が失敗すると、抽出エージェントは DENSE_RANK を使用してクエリを再構築し、障害発生時の場所を保持します。

    
                        [Global Settings] (グローバル設定) ダイアログボックスの [Security] (セキュリティ) タブ
  4. 以下で説明するように追加のパラメータを設定し、[Create] (作成) を選択してデータ抽出タスクを作成します。

AWS SCT データ抽出タスクを作成、実行、モニタリングする

データ抽出タスクを作成、実行、モニタリングするには、以下の手順を使用します。

エージェントにタスクを割り当て、データを移行するには

  1. AWS Schema Conversion Tool で、スキーマを変換した後に、プロジェクトの左側のパネルから 1 つ以上のテーブルを選択します。

    すべてのテーブルを選択することもできますが、パフォーマンス上の理由からそうしないことをお勧めします。データウェアハウスのテーブルのサイズに基づいて、複数のテーブルに複数のタスクを作成することをお勧めします。

  2. 各テーブルのコンテキスト (右クリック) メニューを開き、[] を選択します。タスクの作成。-ローカルタスクの作成次に示すように、ダイアログボックスが開きます。

    
                        タスクダイアログボックス
  3. を使用する場合タスク名[] で、タスクの名前を入力します。

  4. を使用する場合移行モード[] で、以下のいずれかのオプションを選択します。

    • 抽出のみ-データを抽出し、ローカル作業フォルダに保存します。

    • 抽出およびアップロード— データを抽出し、Amazon S3 にアップロードします。

    • 抽出、アップロード、コピー— データを抽出し、Amazon S3 にアップロードして、Amazon Redshift データウェアハウスにコピーします。

  5. を使用する場合暗号化タイプ[] で、以下のいずれかのオプションを選択します。

    • 無し:データ移行プロセス全体のデータ暗号化をオフにします。

    • CSE_SK:対称キーを使用したクライアント側の暗号化を使用して、データを移行します。AWS SCTでは、自動的に暗号化キーを生成し、Secure Sockets Layer (SSL) を使用してデータ抽出エージェントに送信します。AWS SCTは、データ移行中にラージオブジェクト (LOB) を暗号化しません。

  6. ラージオブジェクトを抽出するには、[Extract LOBs] (LOBを抽出) を選択します。ラージオブジェクトを抽出する必要がない場合は、このチェックボックスをオフにします。オフにすると、抽出するデータの量が減ります。

  7. タスクの詳細情報を表示するには、[] を選択します。タスクログ作成の有効化。タスクログを使用して問題をデバッグできます。

    タスクのログ記録を有効にする場合は、表示する詳細レベルを選択します。レベルは次のとおりです。各レベルには、前のレベルのすべてのメッセージが含まれます。

    • ERROR - 最小量の詳細。

    • WARNING

    • INFO

    • DEBUG

    • TRACE - 最大量の詳細。

  8. データ抽出エージェントが使用する IAM ユーザーのロールを引き受けるには、Amazon S3 設定。を使用する場合IAM ロールで、使用するロールの名前を入力します。を使用する場合リージョンで、AWS リージョンこの役割のために。

  9. 選択タスクをテストするを使用して、作業フォルダ、Amazon S3 バケット、および Amazon Redshift データウェアハウスに接続できることを確認します。検証は、選択した移行モードによって異なります。

  10. 作成を選択して、タスクを作成します。

  11. 前述の手順を繰り返して、移行するすべてのデータに対してタスクを作成します。

タスクを実行およびモニタリングするには

  1. を使用する場合表示で、[データ移行] ビュー。[Agents] (エージェント) タブが表示されます。

  2. [Tasks] (タスク) タブを選択します。タスクは、次に示すように上部にあるグリッドに表示されます。タスクのステータスは上部グリッドで確認できます。サブタスクのステータスは下部グリッドで確認できます。

    
                        タスクのグリッド
  3. 上部グリッドのタスクを選択して展開します。選択した移行モードに応じて、タスクは [Extract] (抽出)、[Upload] (アップロード)、および [Copy] (コピー) に分類されます。

  4. タスクの [Start] (開始) を選択してタスクを開始します。作業中に、タスクのステータスをモニタリングできます。サブタスクは並行して実行されます。抽出、アップロード、およびコピーも並行して実行されます。

  5. タスクの設定時にログ記録を有効にした場合は、ログを表示できます。

    1. 選択ログをダウンロードする。ログファイルを含むフォルダ名を示すメッセージが表示されます。メッセージを閉じます。

    2. [Task details] (タスクの詳細) タブにリンクが表示されます。リンクを選択すると、ログファイルが含まれたフォルダが開きます。

AWS SCT を閉じることができます。エージェントとタスクは継続して実行されます。後で AWS SCT を再度開き、タスクのステータスを確認したり、タスクのログを表示したりできます。

エクスポートとインポートを使用して、データ抽出タスクをローカルディスクに保存し、同じプロジェクトまたは別のプロジェクトに復元することができます。タスクをエクスポートするには、プロジェクト内に抽出タスクが少なくとも 1 つ作成されていることを確認します。1 つの抽出タスク、またはプロジェクトで作成されたすべてのタスクを読み込むことができます。

抽出タスクをエクスポートすると、AWS SCT でそのタスクのための別の .xml ファイルが作成されます。.xml ファイルには、タスクのプロパティ、説明、サブタスクなど、そのタスクのメタデータ情報が保存されます。.xml ファイルには、抽出タスクの処理に関する情報は含まれていません。タスクがインポートされると、次のような情報が再作成されます。

  • タスクの進行状況

  • サブタスクとステージの状態

  • サブタスクとステージによる抽出エージェントの分布

  • タスク ID とサブタスク ID

  • タスク名

AWS SCT データ抽出タスクをエクスポートおよびインポートする

AWS SCT エクスポートとインポートを使用すると、プロジェクトの既存のタスクをすばやく保存し、別のプロジェクト(または同じプロジェクト)に復元することができます。次の手順に従って、データ抽出タスクをエクスポートおよびインポートします。

データ抽出タスクをエクスポートおよびインポートするには

  1. を使用する場合表示で、[データ移行] ビュー。[Agents] (エージェント) タブが表示されます。

  2. [Tasks] (タスク) タブを選択します。タスクは表示されるグリッドに一覧表示されます。

  3. タスクのリストの右下隅にある 3 つの縦に整列したドット (省略記号アイコン) を選択します。

  4. ポップアップメニューから [Export task] (タスクのエクスポート) を選択します。

  5. AWS SCT でタスクエクスポート .xml ファイルを配置したい場所のフォルダを選択します。

    AWS SCT で TASK-DESCRIPTION_TASK-ID.xml ファイル名形式でタスクエクスポートファイルが作成されます。

  6. タスクのリストの右下にある 3 つの縦に整列したドット (省略記号アイコン) を選択します。

  7. ポップアップメニューから [Import task] (タスクのインポート) を選択します。

    抽出タスクをソースデータベースに接続されているプロジェクトにインポートでき、プロジェクトには少なくとも 1 つのアクティブな登録済みの抽出エージェントがあります。

  8. エクスポートした抽出タスクの .xml ファイルを選択します。

    AWS SCT がファイルから抽出タスクのパラメータを取得し、タスクを作成し、抽出エージェントにタスクを追加します。

  9. この手順を繰り返して、追加のデータ抽出タスクをエクスポートおよびインポートします。

このプロセスが終了するとエクスポートとインポートが完了し、データ抽出タスクを使用する準備が整います。

AWS Snowball エッジデバイスを使用してデータを抽出する

AWS SCT と AWS Snowball エッジを使用するプロセスにはいくつかのステップがあります。移行には、AWS SCT がデータ抽出エージェントを使用して AWS Snowball エッジデバイスにデータを移行するローカルタスク、次に AWS によって AWS Snowball エッジデバイスから Amazon S3 バケットにデータがコピーされる中間アクションが関連します。AWS SCT によって Amazon S3 バケットから Amazon Redshift にデータがロードされることでプロセスが完了します。

この概要に続くセクションでは、 step-by-step これらの各タスクのガイドを参照してください。手順は、AWS SCT がインストールされており、データ抽出エージェントが専用マシンで設定され登録されていることを前提としています。

AWS Snowball エッジを使用してローカルデータストアから AWS データストアにデータを移行するには、次のステップが発生する必要があります。

  1. AWS Snowball コンソールを使用した AWS Snowball エッジジョブを作成します。詳細については、次を参照してください。の作成AWS SnowballEdge のJobAWS SnowballEdge 開発者ガイド

  2. ローカルの専用 Linux マシンを使用して、AWS Snowball エッジデバイスのロックを解除します。

  3. 登録されたデータ抽出エージェントを使用して、AWS SCT で新しいプロジェクトを作成します。

  4. ソースデータベース用のデータベースドライバーを、データエクストラクタをインストールした専用マシンにインストールします。

  5. Amazon S3 バケットが使用するアクセス許可を作成および設定します。

  6. AWS SCT で [Local & DMS Task] (ローカルタスクと DMS タスク) を作成します。

  7. AWS SCT で [Local & DMS Task] (ローカルタスクと DMS タスク) を実行してモニタリングします。

  8. AWS SCT で AWS SCT タスクを実行し、進捗状況をモニタリングします。

AWS Snowball エッジで AWS SCT を使用してデータを移行するためのステップバイステップ手順

以下のセクションでは、移行ステップに関する詳細情報を提供します。

ステップ 1: を作成するAWS SnowballEdge のジョブ

を作成するAWS Snowball「」セクションで説明されている手順に従ってジョブを実行します。の作成AWS SnowballEdge のJobAWS SnowballEdge 開発者ガイド

ステップ 2: 解除するAWS Snowballエッジデバイス

AWS DMS エージェントをインストールしたマシンから、Snowball エッジデバイスをロック解除して認証情報を提供するコマンドを実行します。このようにして、AWS DMS エージェントの呼び出しが AWS Snowball エッジデバイスに接続できることを確認できます。のロックを解除する方法については、「」を参照してください。AWS SnowballEdge デバイス、を参照してください。Snowball Edge のロック解除

例えば、次のコマンドでは、デバイスで使用されている Amazon S3 バケットが一覧表示されます。

aws s3 ls s3://<bucket-name> --profile <Snowball Edge profile> --endpoint http://<Snowball IP>:8080 --recursive

ステップ 3: AWS SCT の新規プロジェクトの作成

次に、新しいを作成します。AWS SCTプロジェクト。

AWS SCT で新しいプロジェクトを作成するには

  1. AWS Schema Conversion Tool を開始します。リポジトリの []ファイルメニューで、[] を選択します。新しいプロジェクト。-新しいプロジェクト[] ダイアログボックスが表示されます。

  2. コンピュータに保存されているプロジェクトの名前を入力します。

  3. ローカルプロジェクトファイルの場所を入力します。

  4. OK を選択して、AWS SCT プロジェクトを作成します。

  5. [Add source] (ソースの追加) を選択して、新しいソースデータベースをAWS SCT プロジェクトに追加します。

  6. [Add target] (ターゲットの追加) を選択して、新しいターゲットプラットフォームを AWS SCT プロジェクトに追加します。

  7. 左側のパネルでソースデータベーススキーマを選択します。

  8. 右側のパネルでは、選択したソーススキーマのターゲットデータベースプラットフォームを指定します。

  9. [Create mapping] (マッピングの作成) を選択します。このボタンは、ソースデータベーススキーマとターゲットデータベースプラットフォームを選択するとアクティブになります。

ステップ 4: のソースデータベースドライバーをインストールします。AWS DMSLinux コンピュータ上のエージェント

移行を成功させるために、AWS DMS エージェントはソースデータベースに接続できる必要があります。これを可能にするには、ソースデータベース用のデータベースドライバーをインストールします。必要なドライバーは、データベースによって異なります。

データベースドライバーのインストール後に AWS DMS エージェントを再起動するには、作業ディレクトリを <product_dir>/bin に変更し、以下に示すステップを各ソースデータベースに対して使用します。

cd <product_dir>/bin ./arep.ctl stop ./arep.ctl start
Oracle にインストールするには

Oracle Instant Client for Linux (x86-64) バージョン 11.2.0.3.0 以降をインストールします。

さらに、まだシステムに含まれていない場合は、$ORACLE_HOME\lib ディレクトリにシンボリックリンクを作成する必要があります。このリンクは libclntsh.so という名前で、このファイルの特定のバージョンを指す必要があります。例えば、Oracle 12c クライアントでは次を使用します。

lrwxrwxrwx 1 oracle oracle 63 Oct 2 14:16 libclntsh.so -> /u01/app/oracle/home/lib/libclntsh.so.12.1

さらに、LD_LIBRARY_PATH 環境変数には Oracle lib ディレクトリを付加し、インストールの lib フォルダの site_arep_login.sh スクリプトに追加する必要があります。このスクリプトが存在しない場合は追加します。

vi cat <product dir>/bin/site_arep_login.sh
export ORACLE_HOME=/usr/lib/oracle/12.2/client64; export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
Microsoft SQL Server にインストールするには

Microsoft ODBC ドライバーをインストールします。

site_arep_login.sh を次のコードで更新します。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/microsoft/msodbcsql/lib64/

Simba ODBC ドライバー

Microsoft ODBC ドライバーをインストールします。

simba.sqlserverodbc.ini ファイルを次のように編集します

DriverManagerEncoding=UTF-16 ODBCInstLib=libodbcinst.so
SAP Sybase にインストールするには

SAP Sybase ASE ODBC 64 ビットクライアントがインストールされている必要があります。

インストールディレクトリが /opt/sap の場合は、site_arep_login.sh を次のとおり更新します

export SYBASE_HOME=/opt/sap export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SYBASE_HOME/ DataAccess64/ODBC/lib:$SYBASE_HOME/DataAccess/ODBC/ lib:$SYBASE_HOME/OCS-16_0/lib:$SYBASE_HOME/OCS-16_0/ lib3p64:$SYBASE_HOME/OCS-16_0/lib3p

/etc/odbcinst.ini には次のエントリが含まれている必要があります。

[Sybase] Driver=/opt/sap/DataAccess64/ODBC/lib/libsybdrvodb.so Description=Sybase ODBC driver
MySQL にインストールするには

MySQL Connector/ODBC for Linux バージョン 5.2.6 以降をインストールします。

次の例のように、/etc/odbcinst.ini ファイルに MySQL 用のエントリが含まれていることを確認します。

[MySQL ODBC 5.2.6 Unicode Driver] Driver = /usr/lib64/libmyodbc5w.so UsageCount = 1
PostgreSQL にインストールするには

postgresql94-9.4.4-1PGDG.<OS Version>.x86_64.rpm をインストールします。これは、psql 実行可能ファイルを含むパッケージです。

例えば、Red Hat 7 に必要なのは、postgresql94-9.4.4-1PGDG.rhel7.x86_64.rpm パッケージです。

Linux 用の ODBC ドライバー postgresql94-odbc-09.03.0400-1PGDG.<OS version>.x86_64 以降をインストールします。<OS version> は、エージェントマシーンの OS です。

例えば、Red Hat 7 に必要なのは、postgresql94-odbc-09.03.0400-1PGDG.rhel7.x86_64 クライアントです。

次の例のように、/etc/odbcinst.ini ファイルに PostgreSQL 用のエントリが含まれていることを確認します。

[PostgreSQL] Description = PostgreSQL ODBC driver Driver = /usr/pgsql-9.4/lib/psqlodbc.so Setup = /usr/pgsql-9.4/lib/psqlodbcw.so Debug = 0 CommLog = 1 UsageCount = 2

ステップ 5: 設定AWS SCTAmazon S3 バケットにアクセスするには

Amazon S3 バケットの設定の詳細については、Amazon S3 のドキュメントの「Amazon S3 バケットの使用」を参照してください。

ステップ 6: ローカルを作成する &AWS DMS仕事

次に、タスクを作成します。 end-to-end 移行タスク。このタスクには 2 つのサブタスクが含まれます。1 つのサブタスクで、ソースデータベースから AWS Snowball エッジアプライアンスにデータを移行します。もう 1 つのサブタスクはアプライアンスが Amazon S3 バケットにロードするデータを受け取り、ターゲットデータベースに移行します。

を作成するには end-to-end 移行タスク

  1. AWS SCTをスタートし、表示データベース移行表示 (ローカル& DMS)と選択します。

  2. ソースデータベースのスキーマを表示する左のパネルで、移行するスキーマオブジェクトを選択します。オブジェクトのコンテキスト (右クリック) メニューを開き、[Create Local & DMS Task] (ローカルの DMS タスクを作成) を選択します。

    を使用して、個別のテーブルを移行することはできません。AWS DMSSnowball Edge。

  3. タスク情報を追加します。

    このパラメータについて この操作をします

    タスク名

    タスクの名前を入力します。
    エージェント DMS エージェントを選択します。
    レプリケーション インスタンス 使用する AWS DMS レプリケーション インスタンスを選択します。
    移行タイプ

    目的の移行のタイプを選択します。

    既存データの移行を選択して、選択したスキーマの内容を移行します。このプロセスは AWS DMS では全ロードと呼ばれます。

    既存データを移行して継続的な変更をレプリケートする を選択し、選択されたスキーマのコンテンツを移行して、データベースへの継続的な変更をすべてキャプチャします。このプロセスを 全ロードおよび CDC と AWS DMS では呼んでいます。

    ターゲットテーブル作成モード

    使用する準備モードを選択します。

    切り捨て – テーブルは、テーブルのメタデータに影響を与えないで切り捨てられます。

    ターゲット上のテーブルを削除 – テーブルは削除され、代わりに新しいテーブルが作成されます。

    何もしない - ターゲットテーブルのデータとメタデータは変更されません。

    [IAM role] (IAM ロール) 事前定義されたものを選択します。AWS Identity and Access ManagementAmazon S3 バケットおよびターゲットデータベースにアクセスする権限がある (IAM) ロール。Amazon S3 バケットにアクセスするために必要なアクセス権限の詳細については、「」を参照してください。のソースとして Amazon S3 を使用する場合の前提条件AWS DMS
    圧縮形式

    アップロードしたファイルが圧縮されるかどうかを選択します。

    GZIP - ファイルはロード前に圧縮されます。これがデフォルトです。

    [No Compression] (圧縮なし) – 抽出はより高速になりますが、より大きなスペースを占めます。

    ログ記録 [Enable] (有効) を選択して、Amazon CloudWatch で移行のログを作成させます。このサービスについては料金が発生します。CloudWatch の詳細については、「」を参照してください。Amazonはどうですか CloudWatch 働くアマゾン CloudWatch ユーザーガイド
    説明 タスクの説明を入力します。
    S3 バケット これに設定された Amazon S3 バケットの名前を入力します。AWS Snowball Edgeの仕事AWS Snowball Edgeコンソール
    使用AWS Snowball Edge AWS Snowball Edge を使用するには、このチェックボックスをオンにします。このボックスがチェックされていない場合、データは Amazon S3 バケットに直接アップロードされます。
    ジョブ名 [AWS Snowball Edge作成したのジョブ名。
    AWS Snowball Edge IP AWS Snowball Edge アプライアンスの IP アドレスを入力します。
    Port (ポート) AWS Snowball Edge アプライアンスのポートの値を入力します。
    ローカル Amazon S3 アクセスキー ローカルを入力するAWS Snowball Edgeデバイスから取得したアクセスキー。
    ローカル Amazon S3 シークレットキー ローカルを入力するAWS Snowball Edgeデバイスから取得したシークレットキー。
  4. 作成を選択して、タスクを作成します。

ステップ 7: の実行とモニタリングAWS SCT仕事

エンドポイントへのすべての接続に成功したら、ローカルの DMS タスクを開始できます。つまり、AWS DMS エージェントからソースデータベース、ステージング Amazon S3 バケット、AWS Snowball デバイスへの接続を含む、ローカルタスクへのすべての接続や、ステージング Amazon S3 バケットから AWS のターゲットデータベースへの接続を含む DMS タスクへの接続です。

をモニタリングできます。AWS DMS[] を選択してエージェントログShow Log。ログの詳細には、エージェントサーバ(エージェントログ) とローカル実行タスク (タスクログ) ログ。エンドポイント接続はサーバによって行われる(ローカルタスクは実行されず、タスクログがない)ため、接続の問題はエージェントログタブ。


                     ローカルタスクが完了し、2 番目のタスクを待機します

データ抽出タスクの出力

移行タスクが完了すると、データは準備ができています。次の情報を使用して、選択した移行モードと、データの場所に応じて処理方法を決定します。

移行モード データの場所

抽出、アップロード、コピー

データはすでに Amazon Redshift データウェアハウスに存在しています。データがそこにあることを確認し、使用を開始できます。詳細については、「クライアントツールおよびコードからクラスターに接続する」を参照してください。

抽出およびアップロード

抽出エージェントにより、データはファイルとして Amazon S3 バケットに保存されました。Amazon Redshift の COPY コマンドを使用して Amazon Redshift にデータをロードできます。詳細については、Amazon Redshift のドキュメントの「Amazon S3 からデータをロードする」を参照してください。

設定した抽出タスクに対応する複数のフォルダが Amazon S3 バケットにあります。データを Amazon Redshift にロードするときに、各タスクによって作成されたマニフェストファイルの名前を指定します。マニフェストファイルは、次に示すように、Amazon S3 バケットのタスクフォルダに表示されます。


                                    Amazon S3 バケットのファイルリスト

抽出のみ

抽出エージェントにより、データはファイルとして作業フォルダに保存されました。手動で Amazon S3 バケットにデータをコピーし、の手順に従います。抽出およびアップロード

AWS Schema Conversion Tool で仮想パーティション分割を使用する

通常、パーティション分割されていない大きなテーブルを管理する最適な方法は、サブタスクを作成することです。これにより、フィルタリング規則を使用してテーブルデータの仮想パーティションを作成します。AWS SCT では、移行済みデータの仮想パーティションを作成できます。データ型に対応した 3 つのパーティションタイプがあります。

  • RANGE パーティションタイプは、数値データ型、日付/時刻データ型に対応します。

  • LIST パーティションタイプは、数値データ型、文字データ型、日付/時刻データ型に対応します。

  • DATE AUTO SPLIT パーティションタイプは、数値、日付、および時刻データ型に対応します。

AWS SCT は、パーティションの作成で指定した値を検証します。例えば、NUMERIC データ型を使用して列のパーティション分割をしようとして、別のデータ型の値を指定すると、AWS SCT はエラーをスローします。

また、Netezza から Amazon Redshift にデータを変換するのに AWS SCT を使用している場合、ネイティブ Netezza パーティショニングを使用して、大きなテーブルの移行を管理できます。詳細については、「ネイティブ Netezza パーティショニングを使用する」を参照してください。

仮想パーティション分割の作成時の制限

仮想パーティションの作成に伴う制限は以下のとおりです。

  • 仮想パーティション分割を使用できるのは、パーティション分割されていないテーブルに対してのみです。

  • 仮想パーティション分割は、データ移行ビューでのみ使用できます。

  • 仮想パーティション分割では、UNION ALL VIEW オプションを使用できません。

RANGE パーティションタイプ

RANGE パーティションタイプは、数値データ型と日付/時刻データ型の列値の範囲に基づいてデータをパーティション分割します。このパーティションタイプによって WHERE 句が作成されます。ユーザーはパーティションごとに値の範囲を指定します。パーティション分割した列の値のリストを指定するには、 [Values] (値) ボックスを使用します。値の情報は .csv ファイルを使用してロードできます。

RANGE パーティションタイプは、パーティション値の両端にデフォルトのパーティションを作成します。これらのデフォルトパーティションは、指定されたパーティション値より小さい、または大きいすべてのデータをキャッチします。

例えば、指定した値の範囲に基づいて複数のパーティションを作成できます。次の例では、LO_TAX のパーティション分割値を指定して複数のパーティションを作成しています。

Partition1: WHERE LO_TAX <= 10000.9 Partition2: WHERE LO_TAX > 10000.9 AND LO_TAX <= 15005.5 Partition3: WHERE LO_TAX > 15005.5 AND LO_TAX <= 25005.95

RANGE 仮想パーティションを作成するには

  1. AWS SCT を開きます。

  2. 選択データ移行ビュー (その他)モード。

  3. 仮想パーティション分割を設定するテーブルを選択します。テーブルのコンテキスト (右クリック) メニューを開き、[] を選択します。仮想パーティション分割の追加

  4. 仮想パーティション分割の追加[] ダイアログボックスで、次のように情報を入力します。

    オプション Action

    パーティションタイプ

    [RANGE] を選択します。選択したタイプに応じてダイアログボックスの UI が変わります。

    Column name (列名)

    パーティション分割する列を選択します。

    Column Type

    列の値のデータ型を選択します。

    []

    新しい値を追加するために、[New Value] (新しい値) ボックスに各値を入力し、プラス記号を選択して値を追加します。

    Load From F

    (オプション) パーティション値を含める .csv ファイルの名前を入力します。

  5. OK を選択します。

LIST パーティションタイプ

LIST パーティションタイプは、数値データ型、文字データ型、日付/時刻データ型の列値に基づいてデータをパーティション分割します。このパーティションタイプによって WHERE 句が作成されます。ユーザーはパーティションごとに値を指定します。パーティション分割した列の値のリストを指定するには、 [Values] (値) ボックスを使用します。値の情報は .csv ファイルを使用してロードできます。

例えば、指定した値に基づいて複数のパーティションを作成できます。次の例では、LO_ORDERKEY のパーティション分割値を指定して複数のパーティションを作成しています。

Partition1: WHERE LO_ORDERKEY = 1 Partition2: WHERE LO_ORDERKEY = 2 Partition3: WHERE LO_ORDERKEY = 3 … PartitionN: WHERE LO_ORDERKEY = USER_VALUE_N

指定した値の範囲に含まれない値のデフォルトパーティションを作成することもできます。

移行から特定の値を除外する場合は、LIST パーティションタイプを使用してソースデータをフィルター処理できます。例えば、LO_ORDERKEY = 4 で行を省略するとします。この場合は、値を含めないでください。4[] をパーティション値リストに表示し、他の値を含める選ばれていません。

LIST 仮想パーティションを作成するには

  1. AWS SCT を開きます。

  2. 選択データ移行ビュー (その他)モード。

  3. 仮想パーティション分割を設定するテーブルを選択します。テーブルのコンテキスト (右クリック) メニューを開き、[] を選択します。仮想パーティション分割の追加

  4. 仮想パーティション分割の追加[] ダイアログボックスで、次のように情報を入力します。

    オプション Action

    パーティションタイプ

    [LIST] を選択します。選択したタイプに応じてダイアログボックスの UI が変わります。

    Column name (列名)

    パーティション分割する列を選択します。

    新しい値

    パーティション分割値のセットに追加する値をここに入力します。

    他の値を含める

    パーティション分割条件に適合しないすべての値を保存するデフォルトパーティションを作成する場合は、このオプションを選択します。

    Load From F

    (オプション) パーティション値を含める .csv ファイルの名前を入力します。

  5. OK を選択します。

DATE AUTO SPLIT パーティションタイプ

DATE AUTO SPLIT パーティションタイプは、RANGE パーティションを自動的に生成する方法です。DATA AUTO SPLIT を使用して、AWS SCT にパーティショニング属性、開始位置と終了位置、および値の間の範囲のサイズを伝えます。その後 AWS SCT で、パーティション値が自動的に計算されます。

DATA AUTO SPLIT は、範囲パーティションの作成に関連する多くの作業を自動化します。この手法と範囲パーティショニングのトレードオフは、パーティションの境界に対してどれだけの制御が必要になるかということです。自動分割プロセスでは、常に同じサイズ (均一) の範囲が作成されます。範囲パーティショニングでは、特定のデータ分散に必要な範囲のサイズを変化させることができます。例えば、毎日、毎週、隔週、毎月などを使用できます。

Partition1: WHERE LO_ORDERDATE >= ‘1954-10-10’ AND LO_ORDERDATE < ‘1954-10-24’ Partition2: WHERE LO_ORDERDATE >= ‘1954-10-24’ AND LO_ORDERDATE < ‘1954-11-06’ Partition3: WHERE LO_ORDERDATE >= ‘1954-11-06’ AND LO_ORDERDATE < ‘1954-11-20’ … PartitionN: WHERE LO_ORDERDATE >= USER_VALUE_N AND LO_ORDERDATE <= ‘2017-08-13’

DATE AUTO SPLIT 仮想パーティションを作成するには

  1. AWS SCT を開きます。

  2. 選択データ移行ビュー (その他)モード。

  3. 仮想パーティション分割を設定するテーブルを選択します。テーブルのコンテキスト (右クリック) メニューを開き、[] を選択します。仮想パーティション分割の追加

  4. 仮想パーティション分割の追加[] ダイアログボックスで、以下のように情報を入力します。

    オプション Action

    パーティションタイプ

    [DATE AUTO SPLIT] を選択します。選択したタイプに応じてダイアログボックスの UI が変わります。

    Column name (列名)

    パーティション分割する列を選択します。

    開始日

    開始日を入力します。

    終了日

    終了日を入力します。

    Interval

    間隔の単位を入力し、その単位の値を選択します。

  5. OK を選択します。

ネイティブ Netezza パーティショニングを使用する

データ移行を高速化するために、抽出エージェントで Netezza サーバ上のテーブルの物理分散を有効化することができます。

例えば、プロジェクトを作成した後、スキーマの統計を収集し、移行対象として選択したテーブルのサイズを分析することができます。指定したサイズを超えるテーブルの場合、AWS SCT でネイティブ Netezza パーティショニングメカニズムがトリガーされます。

ネイティブ Netezza パーティショニングを使用するには

  1. オープンAWS SCTを選択し、新しいプロジェクトにとってファイル。-新しいプロジェクト[] ダイアログボックスが表示されます。

  2. 新しいプロジェクトを作成し、ソースとターゲットサーバーに接続します。

  3. 選択表示[] を選択してから、メインビュー

  4. ソースデータベースのスキーマを表示する左のパネルで、スキーマを選択します。オブジェクトのコンテキスト (右クリック) メニューを開き、[Collect Statistics] (統計の収集) を選択します。

  5. 移行する各テーブルを選択し、サイズと行数を分析します。

  6. [Current project settings] (現在のプロジェクト設定) から、[Data migration] (データ移行) タブを選択します。[Use table partitioning … if table is more than] (テーブルが次の値を超える場合は、テーブルパーティション分割を使用する) を選択し、テーブルサイズの制限を MB 単位で入力します (100 など) 。

  7. 必要な数のエージェントを登録します。詳細については、「AWS Schema Conversion Tool に抽出エージェントを登録する」を参照してください。

  8. 選択したテーブルのデータ抽出タスクを作成します。詳細については、「AWS SCT データ抽出タスクを作成、実行、モニタリングする」を参照してください。

    大きなテーブルがサブタスクに分割されていること、および各サブタスクが、1 つの Netezza スライスにあるテーブルの一部を示すデータセットと一致していることを確認します。

  9. 移行プロセスを開始して、選択したテーブルの移行が完了するまでモニタリングします。

LOB を Amazon Redshift に移行する

Amazon Redshift は、ラージバイナリオブジェクト (LOB) の保存をサポートしていません。ただし、LOB を Amazon Redshift に移行する必要がある場合は、AWS SCT で移行を実行できます。そのためには、次の操作を行います。AWS SCTは Amazon S3 バケットを使用して LOB を保存し、Amazon S3 バケットの URL を Amazon S3 バケットの URL を Amazon Redshift に保存された移行済みデータに書き込みます。

LOB を Amazon Redshift に移行するには

  1. AWS SCT プロジェクトを開きます。

  2. ソースおよびターゲットデータベースに接続します。ターゲットデータベースのメタデータを更新し、変換されたテーブルがそこに存在することを確認します。

  3. を使用する場合アクションで、ローカルタスクの作成

  4. を使用する場合移行モード[] で、以下のいずれかのオプションを選択します。

    • 抽出およびアップロード[] をクリックして、データを抽出し、Amazon S3 にアップロードします。

    • 抽出、アップロード、コピーデータを抽出し、Amazon S3 にアップロードして、Amazon Redshift データウェアハウスにコピーします。

  5. 選択Amazon S3 設定

  6. を使用する場合Amazon S3 バケット LOB フォルダで、LOB の保存先となる Amazon S3 バケット内のフォルダの名前を入力します。

    AWS サービスプロファイルを使用する場合、このフィールドはオプションです。AWS SCTは、プロフィールのデフォルト設定を使用できます。別の Amazon S3 バケットを使用するには、ここにパスを入力します。

  7. [] をオンにします。プロキシを使用するプロキシサーバーを使用して Amazon S3 にデータをアップロードするためのオプション。次に、データ転送プロトコルを選択し、ホスト名、ポート、ユーザー名、およびパスワードを入力します。

  8. を使用する場合エンドポイントタイプで、FIPSを使用して、連邦情報処理規格 (FIPS) エンドポイントを使用します。選択VPCE[] をクリックして、Virtual Private Cloud (VPC) エンドポイントを使用します。それならのためにVPC エンドポイント[] で、VPC エンドポイントのドメインネームシステム (DNS) を入力します。

  9. [] をオンにします。Amazon Redshift にコピーした後、Amazon S3 にファイルを保持するこれらのファイルを Amazon Redshift にコピーした後、抽出したファイルを Amazon S3 に保持するオプション。

  10. 作成を選択して、タスクを作成します。

データ抽出エージェントのベストプラクティスとトラブルシューティング

以下は、抽出エージェントを使用するためのベストプラクティスの提案およびトラブルシューティングの解決策です。

問題 トラブルシューティングの推奨事項

パフォーマンスが低い

パフォーマンスを向上させるには、以下のことをお勧めします。

  • 複数のエージェントをインストールします。

  • データウェアハウスに近いコンピュータにエージェントをインストールします。

  • 1 つのエージェントタスクですべてのテーブルを実行しないでください。

競合による遅延

データウェアハウスに同時に多数のエージェントがアクセスすることを避けます。

エージェントが一時的にダウンする

エージェントがダウンする場合、各タスクのステータスは AWS SCT に失敗として表示されます。待機していると、場合によってエージェントは復旧できます。この場合、タスクのステータスは AWS SCT で更新します。

エージェントが完全にダウンする

エージェントを実行しているコンピュータが完全にダウンし、そのエージェントがタスクを実行している場合、新しいエージェントを代用してタスクを継続できます。元のエージェントの作業フォルダが、元のエージェントと同じコンピュータにない場合にのみ、新しいエージェントを代用できます。新しいエージェントを代用するには、以下の操作を実行します。

  • 新しいコンピュータにエージェントをインストールします。

  • ポート番号や作業フォルダを含め元のエージェントと同じ設定を使用して新しいエージェントを設定します。

  • エージェントを開始します。エージェントが起動すると、タスクによって使用可能な新しいエージェントが検出され、新しいエージェントで引き続き実行されます。