跨多个目录的元数据文件数据库

时间:2014-07-09 15:14:29

标签: database metadata document-oriented-db nosql

考虑与多个目录中的一个元数据文件关联的多个二进制文件:

directory1: file1.bin file1.txt
directory2: file2.bin file2.txt

元数据文件包含XML或JSON格式的结构化数据。 是否有一个数据库可以使用这些元数据文件来操作和运行查询? 根据我对面向文档的数据库的理解,他们的数据文件存储在一个目录中。

我的问题与this stackexchange question有关。不幸的是,没有关于基于XML的解决方案的良好描述。

2 个答案:

答案 0 :(得分:0)

如果您想直接在XML或JSON文件中查询结构化数据,可以使用这些工具,例如:

如果元数据文本文件与解释二进制文件有关,我不知道任何通用解析器。可能存在一种情况,但除非您使用明确定义的格式,否则它似乎是一种延伸。

如果您需要重复查询,直接使用这些文件的一般方法效率很低,因为任何非数据库解决方案都将涉及解析文件以解决您的查询。 document-oriented database指的是存储结构化内容的能力,但磁盘格式比文本文件和必须解析的XML / JSON元数据更有效(也更复杂)。

如果您确实想使用数据库并在结构化内容上构建适当的索引,则应将原始数据导入其中。

答案 1 :(得分:0)

为了在基于元数据的查询上获得良好的查询性能,几乎任何系统都必须从单个元数据文件中提取元数据并以更优化的形式存储:一些或多个索引形式或其他。如果相关数据仅存储在文件中,而不存储在索引中(如.bin文件),则索引条目需要将路径存储到文件中,以便关联数据可以在需要时检索。路径通常可以存储目录名称,机器名称等。在现代系统中,路径可以是URL。

面向文档的数据库可能是存储元数据索引的绝佳位置,但不一定是最佳选择。如果您需要查询的元数据是高度规则的(总是具有相同的字段,那么其他形式的索引存储可以具有更好的性能,但如果您不提前知道元数据的结构,则面向文档数据库可能更灵活。如果您尝试匹配元数据中的单词和短语,则另一种方法可能是使用全文搜索引擎。

是的,存在这样的数据库。不幸的是,有太多因素没有具体提出具体建议。这个问题不太适合通用答案,文档集合的大小,预期的事务率,所需的存储和检索延迟目标以及一致性要求都可以考虑到建议,就像任何平台偏好一样(窗口vs * nix,on-premise vs cloud等)