与数据存储相比,HDF5 在数据检索方面的效率如何?
How efficient is HDF5 for data retrieval as opposed to data storage?
我想将 500GB 键控 table 转储到 HDF5 中,然后检索与特定键匹配的行。
对于 HDF5 文件,所有数据访问之类的项目都使用一个整数 "row" 数字,所以我似乎必须在 HDF5 之外实现一个“键到行号映射”。
使用 HDFS 的分布式系统(如 Hadoop 或 Spark)的检索效率不是更高吗?我应该使用分布式系统来实现 map/hashfunction 吗?
HDFS 会将数据保存在块中,然后,根据数据格式,查询将一次读取块并解析记录。 HDFS 本身不会提供按键查找。
看看HBase。它会将数据存储在 HDFS 中,并为您提供一个键 -> 值接口来查找行:https://hbase.apache.org/
是的,使用 HDFS 会更高效
但要使其更高效,最好的情况是使用 Hive 而不是 HDFS,因为 Map reduce 不提供任何默认的方式来按键分离数据。如果你想按键分离数据,你需要为它编码。
但在 Hive 的情况下,您可以更有效地查询数据,因为 Hive 为您提供了许多内置查询命令,例如 ex--> 按键、按值等分隔。
由于 Hive 使用 Sql 查询,因此它也更易于使用。
有关查询 HDFS 的不同方式的更多详细信息,请参阅 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
希望这能回答您的问题。
我想将 500GB 键控 table 转储到 HDF5 中,然后检索与特定键匹配的行。
对于 HDF5 文件,所有数据访问之类的项目都使用一个整数 "row" 数字,所以我似乎必须在 HDF5 之外实现一个“键到行号映射”。
使用 HDFS 的分布式系统(如 Hadoop 或 Spark)的检索效率不是更高吗?我应该使用分布式系统来实现 map/hashfunction 吗?
HDFS 会将数据保存在块中,然后,根据数据格式,查询将一次读取块并解析记录。 HDFS 本身不会提供按键查找。
看看HBase。它会将数据存储在 HDFS 中,并为您提供一个键 -> 值接口来查找行:https://hbase.apache.org/
是的,使用 HDFS 会更高效
但要使其更高效,最好的情况是使用 Hive 而不是 HDFS,因为 Map reduce 不提供任何默认的方式来按键分离数据。如果你想按键分离数据,你需要为它编码。
但在 Hive 的情况下,您可以更有效地查询数据,因为 Hive 为您提供了许多内置查询命令,例如 ex--> 按键、按值等分隔。 由于 Hive 使用 Sql 查询,因此它也更易于使用。
有关查询 HDFS 的不同方式的更多详细信息,请参阅 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
希望这能回答您的问题。