1

我已经安装了 StreamInsight 2.1。我已经能够打开它并使用 Server.Create(),公开一个 WCF 端点,并使用事件流调试器连接到它。我发现了很多创建假事件源的例子。

我想知道如何创建我认为可能的:针对 SQL 2012 数据库的常规查询。我还没有找到任何连接到 RDB 的示例代码 - 只是声明“这只是为了展示,实际上你可能会连接到 RDB”。

它只能使用 LINQ-to-SQL 吗?实体框架 4?更简单的 ADO.NET?一些特定于 MS SQL 的协议?

我想真正让我困惑的部分是这些常设查询应该如何工作。这些天来,微软在 SQL Server 中拥有一个只能由某个独立 SKU (StreamInsight) 访问的公开功能,这对我来说似乎很奇怪。因此,它必须是以下两者之一:

SQL 是否知道查询的持久性,或者 StreamInsight 是否只是修改 LINQ 语句以有效地轮询(例如通过添加AND @LastExecution <= InsertedOn和适当的索引)。

如果 SQL 将其视为一种特殊的查询,那么 StreamInsight 使用什么机制来创建这种常设查询?程序员可以在没有 StreamInsight Services 的情况下使用它吗?

4

4 回答 4

1

您提到的常设查询是使用 LINQ 编写的在 StreamInsight 引擎内部运行的查询,而不是 SQL Server 本身。使用 StreamInsight,我们开发人员可以编写适配器/源/接收器代码来获取数据。

它只能使用 LINQ-to-SQL 吗?实体框架 4?更简单的 ADO.NET?一些特定于 MS SQL 的协议?

是的。我以前写过这段代码,而且我很幸运只用了普通的 ADO.NET。对于我们的需求,它比 LINQ-to-SQL 和实体框架更灵活。

您是否可以控制要查询的表的架构?如果你这样做,我建议添加某种 LastUpdated 日期时间列,当你的表中的数据发生变化时它会更新。这样,您可以以仅撤回更改而不返回整个表本身的方式编写查询。您的适配器/源将需要某种计时器来定期执行您的 SQL 语句。您还需要维护上次执行的日期时间,以便将其插入 SQL 语句。

于 2012-12-30T16:19:18.960 回答
1

您可以为 SSSB 创建一个 StreamInsight 输入适配器,以根据来自服务器代理队列的消息生成事件。

于 2013-09-06T07:14:03.770 回答
0

我还没有完成这个解决方案,但在我看来,可以在 SQL Server 中实现 Service Broker 或 SQL 查询通知来向应用程序发送有关数据更改的消息,然后使用 Streaminsight 来处理和响应这个改变的状态.

我认为这会产生“常设查询”的效果,并避免轮询的(可能是浪费的)开销。

于 2013-06-25T00:17:16.717 回答
-3

我想知道如何创建我认为可能的:针对 SQL 2012 数据库的常设查询

现在我们开始。不可能。时期。为什么你认为这是可能的?需要轮询,最好是永远等待消息队列的轮询,但不,常设查询不可能。太糟糕了。

你从哪里得到这个可能的有趣想法?

于 2012-12-30T14:35:34.727 回答