我有时间序列每日数据,我在这些数据上运行模型。模型在Spark中运行。
我只想每天运行模型,并将结果附加到历史结果中。为了让模型成功运行,拥有一个包含历史数据的“合并的单一数据源”是很重要的。
我必须使用AWS服务来存储结果。如果我存储在S3中,我将最终每天存储1个回填文件(太多文件)。如果我存储在Redshift中,它不会合并+ upsert,因此变得复杂。面向客户的数据在Redshift中,因此不能每天删除表并重新加载。
我不确定如何巧妙地(定义为最小成本和后续处理)存储增量数据,而不是每天重新处理所有内容以获得单个文件。
发布于 2018-09-25 22:34:13
S3仍然是你最好的选择。由于您的作业似乎不需要实时访问,因此它更像是一个滚动数据集。
如果你担心它生成的文件量,你至少可以做两件事:
尽可能使用S3作为您的数据库。它非常便宜,而且是AWS的支柱。
发布于 2018-09-26 18:32:29
您也可以切换到ETL。Pentaho Data Integrator是一个非常有效的工具,它是专门用于BigData的OpenSource,完全自动化且易于使用。
它配备了现成的S3,Redshift (和其他)插件,只需一步就可以与以前的值进行比较。根据我的经验,它运行得相当快。此外,它在晚上对你有效,并在早上给你发送邮件,告诉你一切都好(或不好)。
主持人请注意:这是一个不可知论的观点,我可以推荐许多其他观点,但这个观点看起来最适合OP的需要。
https://stackoverflow.com/questions/52500318
复制相似问题