【问题标题】:How efficient is HDF5 for data retrieval as opposed to data storage?与数据存储相比,HDF5 用于数据检索的效率如何?
【发布时间】:2016-11-11 22:18:25
【问题描述】:

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

对于 HDF5 文件,像所有数据访问这样的项目都使用整数“行”号,所以似乎我必须在 HDF5 之外实现“行号映射键”。

使用 HDFS 的分布式系统(如 Hadoop 或 Spark)不是更高效吗?我应该使用分布式系统来实现地图/哈希函数吗?

【问题讨论】:

    标签: hadoop apache-spark hdfs hdf5 bigdata


    【解决方案1】:

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

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

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

    希望这能回答您的问题。

    【讨论】:

    • 在什么意义上我们使用 mapreduce 而不仅仅是访问键值对?为什么 HIVE 会比 HDF5 更高效?
    【解决方案2】:

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

    看看 HBase。它将数据存储在 HDFS 中,并为您提供一个 key -> value 接口来查找行:https://hbase.apache.org/

    【讨论】:

    • 谢谢。你能告诉我在这种情况下 HDF5 的表现有多差吗?如果有不错的索引,这只是一本巨大的字典,对吧?
    猜你喜欢
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    相关资源
    最近更新 更多