2016-07-09 6 views
2

キー付きの500GBテーブルをHDF5にダンプし、特定のキーに一致する行を取得したいとします。 HDF5ファイルの場合データストレージではなく、データを取得するためにHDF5が効率的ですか?

、すべてのデータアクセスは、整数「行」番号を使用してのような項目は、私はHDF5の外で数マップ」の行に」キーを実装する必要がありますように思える。

ないですHDFSを使用するHadoopやSparkなどの分散システムでより効率的に検索することができますか?マップ/ハッシュ関数を実装する分散システムを使用する必要がありますか?

答えて

2

はい、より効率的な
することができますが、最良の場合は、HDFS上のハイブを使用してすることができ、それがより効率的にするためにMap reduceはキーでデータを区切るためのデフォルトの方法を提供しないためです。キーでデータを区切りたい場合は、そのデータをコード化する必要があります。

ハイブは、キー、値などでex - >別のようなinbuiltクエリコマンドをたくさん提供するので、データをより効率的にクエリできます。 HiveはSqlクエリを使用しているので使いやすいですまた、あなたはHDFSはこれがあなたの質問にお答えしますhttps://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

希望を参照してください問い合わせることが可能な様々な方法の詳細については

+0

どのような意味で、キーと値のペアにアクセスするのではなく、mapreduceを使用していますか?なぜHIVEはHDF5より効率的でしょうか? – ShanZhengYang

1

HDFSはデータをブロックで保持し、クエリはブロックを一度に読み込み、レコードを解析します。HDFS自体はキーバイル検索を行いません。

HBaseを見てください。これは、HDFSにデータを格納し、あなたにキーを与える - 行を検索する>値インターフェースを:HDFSを使用してhttps://hbase.apache.org/

+0

ありがとうございました。あなたは、この状況でHDF5がどれほどうまく動作しないのか、私には何らかの感覚を与えることができますか?まともなインデックスがある場合、これは単なる巨大な辞書ですよね? – ShanZhengYang

関連する問題