Implementing Model Management in SQL Server

June 27, 2019

Report Abuse
The goal of this tutorial is to demonstrate the ability to implement a model management solution in SQL Server.
The goal of this tutorial is to demonstrate the ability to implement a model management solution in SQL Server. This is done by building out a simplified system, which manages the models used in a marketing automation system, such as a campaign management or CRM solution. The overarching business criteria for this simplified system includes the ability to: - Store Models - Keep track of model versions, dates and descriptions - Record when a model is used - Track model performance each time it is used in a marketing campaign - Automatically rebuild a model if its performance falls since the last time it was used - Track if models are built automatically or by a data scientist, for auditing purposes - Report on models, versions, dates used, and performance The system functions required to satisfy these business requirements include: 1. Build & store models. As models are built and tested, insert the model and detailed information into the DB (Model and Model Details table). 2. Track when a model is used. A simulated feed from a CRM system inserts a row into the Model Usage table, indicating that the model is being used for targeted marketing in a specific marketing campaign. 3. Track model performance. In this example, the CRM system inserts a row into the Model Performance table, indicating how well the model (campaign) performed in terms of the response rate. 4. Rebuild model as needed. If the current model (campaign) performance is lower than the prior campaign, the model is automatically rebuilt using a stored procedure. As part of this process, the model version number is automatically incremented. 5. Visualize results. Use a Power BI dashboard to report on model metrics such as model build and use date, campaigns that use the models, versions, performance, etc. 6. (Not part of this tutorial). Code repositories and DevOps tools can be used to further automate and govern system updates and delivery.