我在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序列化数据(具有多个层次结构)的搜索工具。 如果现有工具已经解决了这个问题。请指出那些。
答案 0 :(得分:0)
大型云提供商现在拥有用于搜索avro文件的解决方案。 AWS Athena和BigQuery是可以解决您问题的两个服务示例。特别是如果您愿意从hdfs切换到S3或类似服务。
答案 1 :(得分:0)
如果您使用Java,SortedKeyValueFile可能是值得探索的替代方法。目前,我不知道在python或C / C ++中有类似的实现。这显然不如BigQuery
通用;但是,它可以解决一些用例,您只需要按文件内的键进行查询即可。