使用Spark将Cassandra数据持久化到S3的最简单方法

时间:2015-07-17 23:03:18

标签: amazon-s3 cassandra apache-spark datastax-enterprise apache-spark-sql

我试图找出如何最好地存储和检索数据,从S3到Cassandra,使用Spark:我有我存储在Cassandra中的日志数据。我使用DSE运行Spark来执行数据分析,它运行得很漂亮。日志数据每天都在增长,我在任何时候都只需要两周的Cassandra价值。我仍然需要将旧日志存储在某个地方至少6个月,经过研究,S3与Glaciar看起来是最有希望的解决方案。我想使用Spark来运行从第15天开始查找日志的日常工作,将它们从Cassandra中删除,然后将它们发送到S3。我的问题是这样的:我似乎无法确定正确的格式以将Cassandra行保存到文件中,这样我有一天可能会将文件加载回Spark,并运行分析,如果我必须。我只想在Spark中运行分析,而不是将数据保存回Cassandra。 JSON似乎是一个明显的解决方案,但有没有其他格式我不考虑?我应该使用Spark SQL吗?在我提交一种或另一种格式之前,任何建议都值得赞赏

1 个答案:

答案 0 :(得分:0)

Apache Spark专为此类用例而设计。它是柱状数据库的存储格式。它提供了列压缩和一些索引。

它正在成为事实上的标准。许多大数据平台正在采用它或者至少为它提供一些支持。 您可以使用SparkSQL,Impala或Apache Drill直接在S3中有效地查询它。您也可以针对它运行EMR作业。

要使用Spark将数据写入Parquet,请使用DataFrame.saveAsParquetFile

根据您的具体要求,您甚至可能最终不需要单独的Cassandra实例。

您可能还会发现this post有趣的

相关问题