我们正在消耗非常大的数据,需要尽快写入,因为我们使用HDFS,因此我们更愿意使用它。数据几乎没有结构化,我们很少会对它们进行基本查询。数据与一些字段保持一致,每行代表另一个数据。HDFS上非结构化数据行的数据存储格式
key1=str key2=30.3 key3=longtexthere
另一个数据行:
key1=3 key5=abc
SequenceFile似乎是最自然的,但我无法找到如何多行存储在一个单一的SequenceFile。
目前,在我们的临时解决方案中,我们有多个写入多个文本文件的写入器。所以当需要查询时,我们会同时读取它们。但是,当前的文本文件包含1000行,我不认为为每行创建单个SequenceFile都是可行的,因此在查询时,它会一次性存储元数据并读取许多太多文件。
我认为这个问题可以通过使用HBase或Cassandra这样的columunar数据库来解决,但我们几乎需要使用HDFS。我是否遗漏了SequenceFiles或我们应该使用columunar数据库?
你有固定数量的按键/列吗? – oae
@oae不,虽然它们不是固定的,但它们很少被扩展,这意味着有时我们添加新的列,但旧数据没有它们。 – Mustafa