我是大数据的新手,我正在尝试了解持久化和检索数据的各种方法。我知道Parquet和HBase都是面向列的存储格式,但Parquet是一个文件……
正如您已经提到的那样,镶木地板是一个存储空间,而HBase是存储空间(HDFS)+查询引擎(API / shell)因此,应该在镶木地板+ Impala / Hive / Spark和HBase之间进行有效的比较。以下是主要差异 -
1) 的 磁盘空间 强> - 与HBase相比,Parquet占用的磁盘空间更少。在HBase中,Parquet编码比块压缩节省更多空间。
2) 的 数据摄取 强> - 镶木地板中的数据摄取比HBase更有效。一个简单的原因可能是第1点。在镶木地板的情况下,需要在磁盘上写入更少的数据。
3) 的 记录密钥查找 强> - HBase更快,因为这是一个键值存储,而实木复合地板不是。未来版本将支持镶木地板索引。
4) 的 过滤和其他扫描查询 强> - 由于镶木地板存储有关存储在行组中的记录的更多信息,因此它可以在扫描数据时跳过大量记录。这就是原因,它比HBase更快。
5) 的 更新记录 强> - HBase提供记录更新,而在镶木地板中可能会出现问题,因为需要重新编写镶木地板文件。仔细设计架构和分区可能会改进更新,但它与HBase无法比较。
通过比较上述特性,HBase似乎更适合需要更新的情况,查询主要涉及键值查找。涉及键范围扫描的查询在HBase中也将具有更好的性能。
Parquet适用于更新非常少且查询涉及过滤器,连接和聚合的用例。