最佳实践:如何通过更改“schema”/“columns”来处理数据记录

时间:2015-04-28 09:31:12

标签: csv hadoop bigdata avro parquet

这是一个最佳实践问题。

我们的设置是一个hadoop集群,在hdfs中存储(日志)数据。我们以csv格式获取数据,每天一个文件。只要文件的“模式”(尤其是列数)不会更改,就可以在hadoop中对这些文件运行MR作业。

但是,我们面临的问题是,我们要分析的日志记录最终会发生变化,因为可能会添加或删除列。我想知道你们中的一些人是否愿意分享你们在这些情况下的最佳实践。我们现在想到的最好的方法是将数据存储为csv,而不是json格式。但是,这将增加(至少加倍)所需的存储空间。我们也遇到了Apache Avro和Apache Parquet,刚开始研究这个问题。

对此问题的任何想法和评论都非常受欢迎。

1 个答案:

答案 0 :(得分:1)

使用Thrift并使用elephant bird(twitter lib)来使用相关的文件输入/输出格式。