0

我有一个大型数据库,其中包含来自大型企业的大量数据。

我们希望能够将这些数据分派到不同的外部应用程序(外部,意味着不是我们开发的,但只能在我们的本地网络中访问)。

消费者可以是非常不同的类型:会计、报告、技术(商业)、网站,......

具有多种格式:CSV、webservice、RSS、Excel、...

这些导出的执行可以有两种不同的类型:计划的(如每小时)或按需。

主要有两种导出:几乎实时数据(意味着我们想要拥有当前数据),或统计数据(意味着我们正在考虑一段时间)。

我还没有找到允许这些访问的好方法。

想到了Biztalk,但是我对这个产品不是很了解,不确定它是否可以进行定时通话,是否有业务逻辑。有没有人对 Biztalk 有足够的了解,可以告诉我它是否能满足我的需求?

如果 Biztalk 不是一个好方法,是否有任何库可以简化定制服务的开发?

4

4 回答 4

2

Biztalk 可以做你想做的事情,即从数据库中提取数据,将其转换为各种格式,并按计划或在需要时通过将其公开为 web 服务/WCF 服务将其发送到各种系统(不完全开箱即用,但您可能需要购买额外的适配器、管道等)。

但是,这里的问题是,这项任务的数据库密集程度如何?如果它的数据量很大,显然 Biztalk 不是最受青睐的候选者,因为 Biztalk 难以处理大数据。但是,即使它的数据文件很大,它也适合路由(无需转换/检查)。

另一方面,SSIS 适用于数据密集型任务。如果您现有的数据库位于 SQL Server 上,那么它更适合您的数据密集型导出/导入和转换。但是当涉及到连接到外部系统(协议)所需的各种方式时,它就不足了。

因此,您正在寻找一个好的 ETL 工具(如 SSIS)和擅长路由的工具(如 Biztalk)的组合。在可扩展性、容量、连接性、数据格式等方面,它们都不能完全满足您的需求。

于 2012-11-22T12:09:51.580 回答
0

我认为您可以使用 ASP.NET MVC API。http://www.asp.net/web-api 我发现它是导出不同类型信息和文件格式的最简单方法。

它不会生成预定的报告或文件,您将需要客户端应用程序或 Windows 服务来调用该应用程序。类似于 web 服务,但它可以返回不同的格式和文件。

并创建 excel 文件等,您必须手动创建它们。这有点让人失望,但我喜欢这种方法,因为它可以很容易地托管在 IIS 上,并且您的客户端要调用的所有函数都可以在同一个地方,甚至可以从 javascript 调用,所以我认为它有点为您做更多的工作,但它创建了非常容易使用的服务。

于 2012-11-26T19:42:32.723 回答
0

通过调度,我假设您正在寻找 pub/sub 模型。仔细看看 NServiceBus (NSB) 的 pub/sub 功能,http ://nservicebus.com/docs/Samples/PublishSubscribe.aspx 。在幕后 NSB 大量使用 MSMQ,随着时间的推移,它变得更加稳定。

如果您想在 .NET 舒适区之外冒险,请查看Apache Camel或 Fuse 的Enterprise Service Bus。这些工具中的任何一个都将支持您的需求。我在一些极高吞吐量的领域使用了 Camel,没有任何重大问题。

于 2012-11-27T20:13:26.753 回答
0

您的问题可能会导致相当广泛的实施。您可以考虑使用服务总线(pub/sub)以及某种形式的 CQRS(如果适用)。

我的 FOSS Shuttle ESB 项目在这里:http ://shuttle.codeplex.com/

它内置了一个通用调度程序。当然,您可以使用任何其他服务总线,例如 MassTransit 或 NServiceBus。

于 2012-11-21T14:05:11.680 回答