Rails&Heroku:自动保存来自heroku的数据副本

时间:2018-08-03 22:53:59

标签: ruby-on-rails heroku etl

所有人

我有一个在heroku的免费层上运行的小型网站。它经常从各种来源获取/更新数据,我想每月将数据库的副本(约10000条记录)保存到其他地方,这样我就可以了解数据随时间的变化,并进行一些更详细的分析。该网站是使用Ruby on Rails开发的。

我想知道

  • 从heroku中导出数据的最佳实践是什么,尤其是。 Ruby on Rails应用程序? (约10000条记录)
  • 在哪里可以与他人共享此数据? (即Kaggle数据集,Github存储库)

谢谢!

1 个答案:

答案 0 :(得分:1)

TL; DR最好构建自己的导出脚本以连接到实例和using SQL dump。业余爱好计划非常有限。


有多种备份策略。例如,如果您需要每月导出一次,则可以每30天设置一次cron作业,以导出所需的数据。

由于您使用的是Heroku,因此它们可以管理备份。为此,请导航至:

https://dashboard.heroku.com/apps/{your-app}/resources
Select your database add-on
Navigate to Durability

您将在此处看到Heroku的默认备份策略。这是heroku的每日策略,以修改此heroku toolbelt provides the following

heroku pg:backups:schedule DATABASE_URL --at '02:00 America/Los_Angeles' --app sushi

但这将是每日备份。

注意以下约束:

  

每月备份意味着一个月内仅保存一次备份。例如,根据当前的限制,Premium-0将每月进行12次备份,最近12个月中的每个月进行一次备份。

此外,如果您决定采用Heroku的内置方法,请注意以下几点:

  

可以保留的手动备份数量有限制。该数字基于您的数据库计划。

Plan        Backups Retained
Hobby-Dev            2

关于共享,有一些需要考虑的事情;例如,如果信息是明智的(默认情况下),我们想要一种控制谁可以访问资源的方法。有多种方法可以使用私有Github存储库甚至是带有ACL(访问控制列表)的Amazon S3存储桶来实现此目的。也可以使用Heroku's dataclips,但不确定是否要这样做。