与数据存储相比,HDF5在数据检索方面的效率如何?

时间:2016-07-09 12:54:09

标签: hadoop apache-spark hdfs hdf5 bigdata

我想将一个带密钥的500GB表转储到HDF5中,然后检索与特定密钥匹配的行。

对于HDF5文件,所有数据访问等项都使用整数" row"数字,所以似乎我必须实现行号码映射"键。在HDF5之外。

使用像Hadoop或Spark这样使用HDFS的分布式系统,是否能更有效地检索?我应该使用分布式系统来实现map / hashfunction吗?

2 个答案:

答案 0 :(得分:2)

是的,使用HDFS可以更高效 但是为了使其更有效,最好的情况可以是使用Hive而不是HDFS,因为Map reduce不提供按密钥分隔数据的任何默认方式。如果要按键分隔数据,则需要对其进行编码。

但是在Hive的情况下,您可以更有效地查询数据,因为hive为您提供了许多内置查询命令,例如ex - >按键,按值等分开 由于Hive使用的是Sql查询,因此也更容易使用。

有关查询HDFS的不同方式的更多详细信息,请参阅https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

希望这会回答你的问题。

答案 1 :(得分:1)

HDFS将数据保存在块中,然后,根据数据格式,查询将一次读取块并解析记录。 HDFS本身不会提供按键查找。

看看HBase。它会将数据存储在HDFS中并为您提供密钥 - >值界面查找行:https://hbase.apache.org/