我在 redshift 中有一张大表,我需要自动化归档每月数据的过程。
目前的做法如下(手动):
- 将redshift查询结果卸载到s3
- 创建新的备份表
- 将文件从 s3 复制到红移表
- 从原始表中删除数据
我需要自动化这种方法,
使用 aws 数据管道是一种好方法吗?
请提出任何其他有效的方法,示例表示赞赏。
谢谢您的帮助!
我在 redshift 中有一张大表,我需要自动化归档每月数据的过程。
目前的做法如下(手动):
我需要自动化这种方法,
使用 aws 数据管道是一种好方法吗?
请提出任何其他有效的方法,示例表示赞赏。
谢谢您的帮助!
我建议的方法是在一个小实例中设置气流来运行调度。或者如果工作量太大,请设置一个 crontab。
我建议使用 gzip 格式并将每个文件的大小限制在 20-100mb 左右
这样,数据就在红移之外,但可以在需要时从红移访问。
我不知道这是否是亚马逊认为“常见”足以建议实践的情况,但这里有几个选项(注意:普遍的共识似乎是数据管道有利于简单的数据加载,但它并不打算作为存档方法。)
每个月创建一个快照,然后从该表中删除数据。您可以使用可以自动化的快照 API 操作或控制台调度,并且您的快照将带有日期戳。
将数据复制到 S3 中的外部表,然后从 Redshift 表中删除。我认为您可以为此使用 Spectrum。
使用第三方备份解决方案,例如 N2WS、Panopoly。
使用 AWS Glue(或者可能是 Data Pipelines,我没有使用过)提取表结构/数据,然后截断原始表。
使用外部 ETL 产品来执行与 Glue 相同的操作。有些是免费的,或者您的公司可能已经在使用其中一个。
关于这种类型的数据副本,我没有遇到任何最佳实践。