私たちは受け取ったものと同じ速さで書かれなければならない非常に大量のデータを消費しており、HDFSを使用しています。データはほとんど構造化されておらず、基本的なクエリはまれにしか実行されません。データは一部のフィールドでフラットで、各行は別のデータを表します。HDFS上の構造化されていないデータ行のデータ格納形式
key1=str key2=30.3 key3=longtexthere
別のデータ行:
key1=3 key5=abc
SequenceFileは最も自然なものを見えたが、私は、単一のSequenceFileで複数の行を格納する方法を見つけることができませんでした。
現在、私たちの一時的な解決策では、複数のテキストファイルに書き込む複数のライターがあります。したがって、照会が必要な場合は、照会を並行して行います。しかし、現在のテキストファイルには1000個の行が含まれており、各行のSequenceFileを1つ作成することは実現可能ではないと考えています。クエリを実行するときにメタデータを格納したり、
HBaseやCassandraという柱状データベースを使用することで問題は解決できると思いますが、HDFSをほとんど使用する必要があります。私はSequenceFilesで何かを見逃しているのですか、実際には列データベースを使用する必要がありますか?
固定数のキー/列はありますか? – oae
@oaeいいえ、それらは修正されていませんが、拡張されることはめったにありません。古い列には新しい列が追加されることがあります。 – Mustafa