自动归档aws-redshift表的最佳方法

时间:2018-03-22 18:41:32

标签: amazon-web-services amazon-s3 amazon-redshift amazon-data-pipeline data-pipeline

我在红移中有一个大表我需要自动化存档月度数据的过程。

目前的方法如下(手册):

  1. 将红色移位查询结果卸载到s3
  2. 创建新的备份表
  3. 将文件从s3复制到redshift表
  4. 从原始表中删除数据
  5. 我需要自动化这种方法,
    使用aws数据管道是一个好方法吗? 请建议任何其他有效的方法,例如赞赏。

    感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

我建议的方法是在一个小实例中设置气流来运行调度。或者,如果工作太多,请设置一个crontab。

  1. 使用redshift unload命令,将要存档的数据复制到s3,使用子文件夹 每个档案(例如每月 - 使用年份和月份作为文件夹 名)
  2. 从红移表中删除数据。
  3. 为该数据设置红移频谱外部表定义 在s3中,您可以将其设置为包括所有子文件夹(如果您) 愿望。
  4. 我建议使用gzip格式并将大小限制为每个文件大约20-100mb

    这样数据就在红移之外,但是只要你需要就可以从redshift访问。

答案 1 :(得分:1)

我不知道亚马逊认为这种情况是否足以建议实践,但这里有几种选择(注意:流行的共识似乎是数据管道对于简单的数据加载很有用,但它不是'用作归档方法。)

  1. 每月创建一个快照,然后从该表中删除数据。您可以使用可以自动执行的快照API操作或控制台调度,并且您的快照将具有日期戳。

  2. 将数据复制到S3中的外部表,然后从Redshift表中删除。我认为你可以使用Spectrum。

  3. 使用第三方backup solution,例如N2WS,Panopoly。

  4. 使用AWS Glue(或者数据管道,我还没有使用它)来提取表结构/数据,然后截断原始表。

  5. 使用外部ETL产品与胶水相同。有些是免费的,或者您的公司可能已经使用过。

  6. 我没有遇到有关此类数据副本的任何最佳做法。

相关问题