我们正在尝试对数据库(27,000条记录)运行一些查询,以提出诸如以下问题:
我们只通过Webservices对数据进行XML访问。 Web服务提供了一些过滤功能,但它们非常基础,并且围绕着一种分面搜索。
我可以想到实现这一目标的三种主要方式(当然还有更多 - 只是我正在考虑的那些):
我认为3.已经出局 - 网络服务只是没有提供足够的功能。
是否有任何自动化的强大工具可以将XML转换为SQL,其形式具有模糊的可用性和可搜索性?你会如何解决这个问题?
首选Linux /开源环境解决方案,理想情况下可以通过某种方式实现快速免费,而不是使用昂贵的工具。
答案 0 :(得分:1)
27k行实际上并不是一个大型数据库IMO - 所以除非行过大(例如,除非每行都是深层实体图),否则将Web服务中的所有行拉入内存并缓存它们似乎非常好方法 - 您可能还会考虑在SQL中重新存储数据(例如作为XML字段)或在MongoDb之类的NoSQL数据库中重新存储(尽管您应该将数据重新序列化为JSON / BSON以充分利用蒙戈)。
您需要实现一种机制来检测实时底层数据的更改,以便刷新缓存数据。
当从源Web服务批量提取数据时,由于xml是一种冗长的冗余协议,因此您可能需要将Web服务中的数据分解为块以避免超时或其他问题。
Re:查询Xml的工具 xQuery将允许您对xml数据执行任意搜索,而在.Net中,您可以使用Linq2Xml等工具。此外,如果您可以将所有数据加载到单个Xml流/文档中,您将能够使用Xpath进行查询。