1

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

  • 显示正在使用的特定表/部分的示例
  • 显示符合此条件的所有示例
  • 特定领域的一些所有示例

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

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

  1. 编写一个 perl/python 脚本来提取所有数据并将其粘贴到某个地方
  2. 使用某种 ETL 工具导入所有数据并将其映射到数据库
  3. 编写某种脚本,可以使用可用的网络服务“实时”搜索数据

我认为 3. 已经过时了——网络服务只是没有提供足够的功能。

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

更喜欢 Linux/开源环境解决方案,最好是通过某种方式快速、免费地实现这一目标,而不是使用昂贵的工具。

4

1 回答 1

1

27k 行并不是真正的大型数据库 IMO - 因此,除非行过大(例如,除非每一行都是深度实体图),否则将所有行从 Web 服务拉到内存中并将它们缓存在那里似乎是一个非常好的方法 - 你还可以考虑将数据重新存储在 SQL(例如,作为 XML 字段)或 NoSQL 数据库(如MongoDb )中(尽管您应该将数据重新序列化回 JSON/BSON 以充分利用 Mongo)。

You will need to implement a mechanism to detect changes on the live underlying data in order to refresh your cached data.

When bulk-pulling data from the source webservices, because xml is such a verbose protocol over the wire, so you may need to break up the data from the web services into chunks to avoid timeouts or other issues.

Re : Tools for querying Xml xQuery will allow you to perform arbitrary searches on xml data, and in .Net you have tools like Linq2Xml. Also, if you can load all the data into a single Xml stream / document, you will be able to use Xpath to query it.

于 2013-05-20T07:25:32.480 回答