S3バケットにAuroraのデータを出力するINTO OUTFILEの設定方法

S3バケットにAuroraのデータを出力するSELECT INTO OUTFILEの設定方法

Auroraからselect文で取得した結果をS3にファイルで出力することができます。

S3バケットのcsvファイルとかからAuroraにデータをインポートするLOAD DATA FROM S3

↑の逆パターンです。

IAMポリシーとロールを作成

IAMポリシーを作成します。

作成したIAMポリシーをRDSのロールにアタッチします。

DBクラスターパラメータの設定1

SELECT INTO OUTFILEを実行するにはDBクラスターのaurora_select_into_s3_roleというパラメータにIAMロールを指定してあげる必要があります。

パラメーターグループを作成します。

S3バケットにAuroraのデータを出力する INTO OUTFILEの設定方法

aurora_select_into_s3_roleにIAMロールARNを設定します。

S3バケットにAuroraのデータを出力するINTO OUTFILEの設定方法

RDSにロールを追加

先ほど作成したIAMロールをRDSに追加する必要があります。この設定をしないと「cannot instantiate s3 client」というエラーが発生しますので注意してください。

これで以下のようなSQLが発行できるようになります。

みたいな感じで実行すると、「aaa.part_00000」というファイルが作成されているはずです。

既にaaa.part_00000というファイルがバケットに存在する場合はエラーとなりますので、その場合に上書きしたい場合は、以下のように指定します。

manifestをonにするとロードする際に便利です。

MANIFESTをONにすると、以下のファイルが作成されます。

  • aaa.manifest
  • aaa.part_00000

ファイルはデフォルト6GBを超えると分割されていくようです。(part_00000,part_00001,part_00002,…)よほど巨大なデータをSELECTしない限りpart_00000の1ファイルなんじゃないかと思われます。

変数を使用する

@xxxで変数が使用できます。以下は、@numという変数を使用したオートナンバリングの例です。

スポンサーリンク
  • このエントリーをはてなブックマークに追加
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA