在avro序列化数据上构建搜索层索引

时间:2014-09-17 12:59:39

标签: hadoop serialization solr avro

我在hdfs上有我的avro序列化数据。现在我正在尝试构建一个搜索界面,我可以在其中查询avro数据并获取结果。我可以使用以下方法,但它有一些不利之处:

反序列化avro数据并将其添加到hive存储中,并使用一些solr / lucene构建索引层并运行查询。 如果avro架构有多个层,例如

,该怎么办?
   {
        name: "xyz",
        height: "180cm",
        Cities_residing: ["X", "Y", "Z"]
        Hotels_checkedin : ["X", "Y", "Z"],
        itemX : {
            itemY : {
                itemZ : "546"
                    }
                }
    }

现在,存储上述分层数据记录将很困难。此外,我不想复制数据,如反序列化avro记录和存储在某些文档存储中。它介绍了很多复制。 因此,我正在寻找一个avro序列化数据(具有多个层次结构)的搜索工具。 如果现有工具已经解决了这个问题。请指出那些。

2 个答案:

答案 0 :(得分:0)

大型云提供商现在拥有用于搜索avro文件的解决方案。 AWS AthenaBigQuery是可以解决您问题的两个服务示例。特别是如果您愿意从hdfs切换到S3或类似服务。

答案 1 :(得分:0)

如果您使用Java,SortedKeyValueFile可能是值得探索的替代方法。目前,我不知道在python或C / C ++中有类似的实现。这显然不如BigQuery通用;但是,它可以解决一些用例,您只需要按文件内的键进行查询即可。