0
0

More than 1 year has passed since last update.

Lambdaでaws_s3.query_export_to_s3 関数を使用したクエリデータのエクスポート

Posted at

はじめに

Aurora PostgreSQL DB クラスター からデータをクエリし、Amazon S3 バケットに保存されているファイルに直接エクスポートできます。そのために、Aurora PostgreSQL によって提供される aws_s3 PostgreSQL 拡張機能を使用します。

参考

ソースコードのみの紹介となりますが、実行するためには以下の設定が必要です
・postgresにアクセスするためにLambdaをpostgresと同じサブネットに配置するか、通信できるサブネット(SG、ACLの設定)には配置が必要
・VPC内でLambdaを実行するためのロール設定
・postgresからS3へアップロードするためのIAMポリシーの設定

コード

import psycopg2

def lambda_handler(event.context):
   URL = (host='',DB='',username='',password='')
   query = 'select * from remindtable'

   s3_uri = SELECT aws_commons.create_s3_uri('sample-bucket','sample-filepath','ap-northeast-1') 
   query = SELECT * FROM aws_s3.query_export_to_s3('SELECT * FROM sample_table', s3_uri, options :='format text');

   with psycopg2.connect(URL) as conn:
        with conn.cursor() as cur:
            cur.execute(query)
            cur.fetchall()

(参考)
psycopg2をLambdaで使用する方法は、こちら

postgresにログインして投げるクエリをLambdaから実行しているだけです。
また、s3_uriでアップロード先のバケットとフォルダ、ファイル名を指定しています。
(既存のものは上書かれ、ない場合は新規に作成されます)

最後に

aws_s3 PostgreSQL 拡張機能をLambdaから実行する方法をまとめてみました。
かなり省略してまとめましたが、ご不明あればご指摘ください。
どなたかのご参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0