存储和索引1M + XML文档的最佳实践?

时间:2016-07-03 18:06:31

标签: mysql xml elasticsearch bigdata database

我有几年的档案'值得的XML文档。有1M +个独特的文档主题,每个主题可以有任何给定年份的一个或多个文档。每个文档包含数百个节点和参数。总XML缓存大小约为50GB。

我需要构建一个存储和索引这些文档的系统,允许对各种参数进行搜索过滤(并且可以随着时间的推移在范围内扩展)。

要实现这一点,我当然必须使用某种索引DBMS。我考虑构建一个工具来将XML文件导入到像MySQL这样的关系数据库中,但这似乎是一个脆弱且过于复杂的解决方案。

我听说ElasticSearch和MongoDB提到了可能的解决方案,但我对他们的功能集不够熟悉,无法确定其中一个是否是最佳解决方案。

在此范围内存储,索引和搜索XML数据集的最佳实践,最佳解决方案是什么?

2 个答案:

答案 0 :(得分:0)

elasticsearch和MongoDb都可以被认为是NoSQL(不仅是SQL)数据库,它允许有效地处理大量数据。

根据CAP theorem,MongoDB优先考虑一致性和分区容错,而elasticsearch为可用性和分区容差提供了空间。你必须最好地决定最适合你的需求。

如果您正在寻找二级存储来查询elsticsearch是一个不错的选择。它很快,每个请求都会得到响应。 Elaticsearch成为eventually consistent。如果你需要响应是准确的,你会喜欢MongoDb。它优先考虑一致性。

答案 1 :(得分:0)

1)我将xml存储在文件系统中。 2)我将编写一个xml解析器,并使用适当的索引将每个属性存储在mongodb中。 3)我将使用适当的标记化器在elasticsearch中使用mongodb和index required属性。

请记住,Mongodb用于存储数据,您可以实现搜索但性能不佳。 Elasticsearch与名称不同。

希望这能回答你的问题。