Amazon S3 から Amazon RDS for Db2 への Db2 データの移行 - Amazon Relational Database Service

Amazon S3 から Amazon RDS for Db2 への Db2 データの移行

この移行アプローチでは、まず 1 つのテーブルから Amazon S3 バケットに配置するデータファイルにデータを保存します。次に、LOAD コマンドを使用して、そのデータファイルから Amazon RDS for Db2 データベースのテーブルにデータをロードします。Amazon S3 の使用の詳細については、「Amazon RDS for Db2 DB インスタンスと Amazon S3 の統合」を参照してください。

Amazon S3 にデータを保存する

単一のテーブルから Amazon S3 にデータを保存するには、データベースユーティリティを使用して、データベース管理システム (DBMS) から CSV ファイルにデータを抽出します。次に、各ファイルを Amazon S3 にアップロードします。

Amazon S3 にデータファイルを保存するには、次の AWS コンポーネントが必要です。

RDS for Db2 テーブルへのデータのロード

データファイルを Amazon S3 に保存した後、これらのファイルから RDS for Db2 DB インスタンスの個々のテーブルにデータをロードできます。

Db2 テーブルデータを RDS for Db2 DB データベーステーブルにロードするには
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、rdsadmin データベースに接続します。次の例で、master_usernamemaster_password を自分の情報に置き換えます。

    db2 connect to rdsadmin user master_username using master_password
  2. 保存したファイルが保存されている Amazon S3 バケットを指すストレージアクセスエイリアスをカタログ化します。次のステップで使用するこのエイリアスの名前を書き留めます。同じ Amazon S3 バケットに保存されているデータファイルから複数のテーブルをロードする予定の場合、このステップを 1 回だけ実行する必要があります。

    次の例では、jorge_souza という名前のユーザーに amzn-s3-demo-bucket という名前のバケットへのアクセスを許可する my_s3_alias という名前のエイリアスをカタログ化します。

    db2 "call rdsadmin.catalog_storage_access(?, 'my_s3_alias', 'amzn-s3-demo-bucket', 'USER', 'jorge_souza')"

    このストアドプロシージャの詳細については、「rdsadmin.catalog_storage_access」を参照してください。

  3. Amazon S3 バケットを指すストレージアクセスエイリアスを使用して、LOAD コマンドを実行します。

    注記

    LOAD コマンドがエラーを返す場合は、Amazon S3 の VPC ゲートウェイエンドポイントを作成し、セキュリティグループにアウトバウンドルールを追加する必要がある場合があります。詳細については、「ファイル I/O エラー」を参照してください。

    次の例では、my_s3_datafile.csv という名前のデータファイルから my_db2_table という名前のテーブルにデータをロードします。この例では、データファイルが my_s3_alias という名前のエイリアスが指す Amazon S3 バケットにあることを前提としています。

    db2 "load from db2remote://my_s3_alias//my_s3_datafile.csv of DEL insert into my_db2_table";

    次の例では、my_table1_export.ixf という名前のデータファイルから my_db2_table という名前のテーブルに LOB をロードします。この例では、データファイルが my_s3_alias という名前のエイリアスが指す Amazon S3 バケットにあることを前提としています。

    db2 "call sysproc.admin_cmd('load from "db2remote://my_s3_alias//my_table1_export.ixf" of ixf lobs from "db2remote://my_s3_alias//" xml from "db2remote://my_s3_alias//" modified by lobsinfile implicitlyhiddeninclude identityoverride generatedoverride periodoverride transactionidoverride messages on server replace into "my_schema"."my_db2_table" nonrecoverable indexing mode incremental allow no access')"

    RDS for Db2 DB インスタンスのテーブルにロードする Amazon S3 バケット内のデータファイルごとに、このステップを繰り返します。

    LOAD コマンドの詳細については、「LOAD コマンド」を参照してください。