查询数据库 - 仅限Web Service访问

时间:2013-05-20 07:09:42

标签: sql xml web-services

我们正在尝试对数据库(27,000条记录)运行一些查询,以提出诸如以下问题:

  • 显示正在使用的特定表/部分的示例
  • 显示符合此条件的所有示例
  • 某个特定字段的所有示例

我们只通过Webservices对数据进行XML访问。 Web服务提供了一些过滤功能,但它们非常基础,并且围绕着一种分面搜索。

我可以想到实现这一目标的三种主要方式(当然还有更多 - 只是我正在考虑的那些):

  1. 编写一个perl / python脚本来提取所有数据并将其粘贴到某个地方
  2. 使用某种ETL工具导入所有数据并将其映射到数据库
  3. 编写某种可以使用可用的网络服务“实时”搜索数据的脚本
  4. 我认为3.已经出局 - 网络服务只是没有提供足够的功能。

    是否有任何自动化的强大工具可以将XML转换为SQL,其形式具有模糊的可用性和可搜索性?你会如何解决这个问题?

    首选Linux /开源环境解决方案,理想情况下可以通过某种方式实现快速免费,而不是使用昂贵的工具。

1 个答案:

答案 0 :(得分:1)

27k行实际上并不是一个大型数据库IMO - 所以除非行过大(例如,除非每行都是深层实体图),否则将Web服务中的所有行拉入内存并缓存它们似乎非常好方法 - 您可能还会考虑在SQL中重新存储数据(例如作为XML字段)或在MongoDb之类的NoSQL数据库中重新存储(尽管您应该将数据重新序列化为JSON / BSON以充分利用蒙戈)。

您需要实现一种机制来检测实时底层数据的更改,以便刷新缓存数据。

当从源Web服务批量提取数据时,由于xml是一种冗长的冗余协议,因此您可能需要将Web服务中的数据分解为块以避免超时或其他问题。

Re:查询Xml的工具 xQuery将允许您对xml数据执行任意搜索,而在.Net中,您可以使用Linq2Xml等工具。此外,如果您可以将所有数据加载到单个Xml流/文档中,您将能够使用Xpath进行查询。