存储稀疏数据使用ORC

2020年11月29日 119点热度 0条评论 来源: learningTheRopes

我试图将一些数据从Hbase移植到ORC以改善写入性能。在Hbase中,我的数据总共存储在10个列中,而不是一个rowkey。现在,当我们使用Hbase时,我们不必担心这些列的稀疏性。即使在大多数行只有两列非零值的情况下,也是可以的,因为Hbase只能存储2列。存储稀疏数据使用ORC

我移植数据时的第一个直觉就是将上述列限定符转换为与地图的值关系。但是,这对于检索来说效率不高。我试图理解ORC是如何解释空值的 - 如果我将值存储为10个单独的列而不是地图会更好吗?在最坏的情况下,这个矩阵非常稀疏。

===========解决方案如下:

ORC的写入性能可能比Hbase差,ORC用于读取大量使用情况,并针对存储大量排序数据进行了优化。这是它闪耀的时候。大多数功能是围绕加快读取查询进行组织的,比如谓词下推。我认为,在不了解您的数据的情况下,Hbase可能是编写繁重操作的更好解决方案。回答你的问题:由于ORC是一种列状导向格式,因此几乎必须将数据分割为不同的列。它确实处理稀疏数据。

    原文作者:learningTheRopes
    原文地址: https://stackoverflow.com/q/35767699
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。