如何将AWS RDS表直接转储到S3而不是本地

问题描述 投票:0回答:2

我每天都会创建一个新的 RDS 表,有时当天会达到约 10 GB。我的目标是更有效地将该表转储到 S3。

我目前的方法是:

  1. 从表中选择*;

  2. 将这些行转储到 CSV

  3. 将该 CSV 上传到 S3

  4. 删除 CSV 文件

有没有办法可以将 RDS 表直接转储到 S3,而不是在本地生成 CSV,然后将其转储到 S3?

amazon-web-services csv amazon-s3 amazon-rds dump
2个回答
4
投票

查看亚马逊的数据库迁移服务。

https://aws.amazon.com/dms/

我发现在控制台中创建将 RDS 转储到 S3 的任务相当简单,本指南应该适用于您,即使它讨论了 Aurora: https://aws.amazon.com/blogs/database/replicate-data-from-amazon-aurora-to-amazon-s3-with-aws-database-migration-service/

我有一个计划定期运行的 lambda,它启动 DMS 任务来转储数据库的一些表。

lambda 的代码(或者只是一个手动工作)非常简单(Python 3.6):

import boto3
import os

DMS_TASK_ARN = os.environ.get("DMS_TASK_ARN")
MAX_RETRY = int(os.environ.get("MAX_RETRY", 600))
WAIT_TIME = int(os.environ.get("WAIT_TIME", 10))

dms = boto3.client('dms')

def lambda_handler(event, context):
    # Start the replication task
    print(f"Starting replication task {DMS_TASK_ARN}")
    dms.start_replication_task(
        ReplicationTaskArn=DMS_TASK_ARN,
        StartReplicationTaskType='reload-target'
    )

© www.soinside.com 2019 - 2024. All rights reserved.