利用 SQL Server 实现异步预测模型训练与实时预测
1. 异步重新计算预测模型
在某些情况下,按固定时间间隔重新计算模型并非最佳选择,因为数据的到来时间和数量是随机的。我们可以在数据量发生显著变化时重新计算模型,具体做法是跟踪模型上次训练时的记录数量,并与新数据到来时的记录数量进行比较。当两者差异达到一定比例(如 10%)时,执行模型训练。
由于模型训练通常是一个耗时的任务,不能让预测等待训练完成。SQL Server 提供了 Service Broker 功能,它是数据库内置的,无需安装或配置额外软件,可用于多种异步场景。在我们的场景中,推荐模型的训练执行将从存储过程发起以进行预测,但预测本身会立即返回结果,无需等待新的推荐模型版本。
要使用 Service Broker,需要开发以下对象:
1. 消息类型(Message type) :定义从一个服务发送到另一个服务的消息格式,可以是任何有效的 XML、特定 XML 模式的 XML 或空消息。
2. 契约(Contract) :定义发起服务可以发送到目标服务的消息类型,反之亦然。
3. 队列(Queue) :用于存储发送的消息,后续由服务程序处理。
4. 服务(Service) :规定哪个契约与哪个队列关联。
5. 服务程序(Service program) :通常是一个存储过程,用于接收和处理发送到队列的消息。
1.1 创建消息类型
消息
超级会员免费看
订阅专栏 解锁全文
1706

被折叠的 条评论
为什么被折叠?



