{"id":109725,"date":"2026-05-08T12:00:00","date_gmt":"2026-05-08T12:00:00","guid":{"rendered":"https:\/\/www.red-gate.com\/simple-talk\/?p=109725"},"modified":"2026-05-05T14:25:26","modified_gmt":"2026-05-05T14:25:26","slug":"how-dataops-helps-reduce-gen-ai-risk-improve-data-quality","status":"publish","type":"post","link":"https:\/\/www.red-gate.com\/simple-talk\/ai\/how-dataops-helps-reduce-gen-ai-risk-improve-data-quality\/","title":{"rendered":"How DataOps principles help to reduce GenAI risk and improve data quality"},"content":{"rendered":"\n<p><strong>John Kerski explains how DataOps principles improve trust, quality, and governance when using GenAI in data solutions. Includes John&#8217;s advice on how to apply these principles &#8211; plus tips for Git, testing, Microsoft Fabric, and more.<\/strong><\/p>\n\n\n\n<p>Over the past three years, the presence of <a href=\"https:\/\/www.ibm.com\/think\/topics\/generative-ai\" target=\"_blank\" rel=\"noreferrer noopener\">Generative Artificial Intelligence (GenAI)<\/a> in the world of data has <a href=\"https:\/\/www.red-gate.com\/solutions\/state-of-database-landscape\/2026\/#ai:~:text=WITHOUT%20STRONG%20FOUNDATIONS-,How%20to%20adopt%20AI%20safely%20and%20with%20confidence,-AI%20is%20scaling\" target=\"_blank\" rel=\"noreferrer noopener\">profoundly changed<\/a> how we build solutions. I&#8217;ve seen teams incorporate GenAI into their development processes as vendors continue introducing AI tools such as <a href=\"https:\/\/github.com\/features\/copilot\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub Copilot<\/a> and <a href=\"https:\/\/learn.microsoft.com\/en-us\/fabric\/fundamentals\/copilot-fabric-overview\" target=\"_blank\" rel=\"noreferrer noopener\">Copilot for Fabric<\/a>. The dependence on these tools to accelerate work is not much different from what <a href=\"https:\/\/code.visualstudio.com\/docs\/editing\/intellisense\" target=\"_blank\" rel=\"noreferrer noopener\">IntelliSense<\/a> and <a href=\"https:\/\/www.ibm.com\/think\/topics\/integrated-development-environment\" target=\"_blank\" rel=\"noreferrer noopener\">integrated development environments (IDEs)<\/a> did years ago as the industry moved away from <a href=\"https:\/\/www.bcs.org\/articles-opinion-and-research\/what-were-punch-cards-and-how-did-they-change-business\/\" target=\"_blank\" rel=\"noreferrer noopener\">punch cards<\/a> and assembly.<\/p>\n\n\n\n<p>Yet, from what I have seen, AI only exacerbates existing problems with data and the processes we use to build solutions. AI is another tool we have, but productivity and trust in what our solutions produce can quickly be doused when it&#8217;s used incorrectly. Here are some of the issues I&#8217;ve seen with AI in data solutions in the past two years alone.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-ai-updates-code-with-no-audit-trail\">AI updates code with no audit trail<\/h3>\n\n\n\n<p>I&#8217;ve seen teams use AI to update the likes of <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/\" target=\"_blank\" rel=\"noreferrer noopener\">SQL<\/a>, <a href=\"https:\/\/www.red-gate.com\/simple-talk\/business-intelligence\/13-things-i-wish-i-knew-about-power-query\/\" target=\"_blank\" rel=\"noreferrer noopener\">Power Query<\/a> and <a href=\"https:\/\/www.python.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Python<\/a> <em>without<\/em> considering how they&#8217;d <a href=\"https:\/\/www.red-gate.com\/simple-talk\/podcasts\/rollback-vs-roll-forward-in-databases\/\" target=\"_blank\" rel=\"noreferrer noopener\">roll back those changes<\/a> if AI introduced a mistake. Whether it&#8217;s the model, poor constraints in <a href=\"https:\/\/www.sectionai.com\/blog\/what-is-prompting\" target=\"_blank\" rel=\"noreferrer noopener\">prompting<\/a>, or <a href=\"https:\/\/redis.io\/blog\/context-rot\/\" target=\"_blank\" rel=\"noreferrer noopener\">context rot<\/a>, where the model no longer \u201csees\u201d prior information that would make it more effective, AI can make updates to code that introduce errors. How do you identify what changed and then roll those changes back?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-ai-updates-code-with-no-safety-net\">AI updates code with no safety net<\/h3>\n\n\n\n<p>Let\u2019s be clear &#8211; GenAI is built and trained by humans, and humans are fallible. So, when you ask AI to build a new set of <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/t-sql-programming-sql-server\/a-data-transformation-problem-in-sql-and-scala-dovetailing-declarative-solutions\/\" target=\"_blank\" rel=\"noreferrer noopener\">data transformations<\/a> from an API source, should you trust it implicitly? How do you know the code it builds handles 400 errors gracefully, or backs off appropriately when it receives a 429 error? If I replaced the word AI with \u201cjunior data engineer,\u201d would you answer those questions differently? From my experience, the answers should <em>not<\/em> be different.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-ai-answers-your-client-s-questions-with-little-oversight\">AI answers your client\u2019s questions with little oversight<\/h3>\n\n\n\n<p>I&#8217;ve encountered situations where agents in <a href=\"https:\/\/copilot.microsoft.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Copilot<\/a> or Data Agents in <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/bi-sql-server\/what-is-microsoft-fabric-all-about\/\" target=\"_blank\" rel=\"noreferrer noopener\">Microsoft Fabric<\/a> answer questions inconsistently. They may even answer questions they shouldn&#8217;t. Asking a Financial Data Agent for a good brownie recipe is not the desired outcome!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-dataops-principles-help-with-ai-usage\">How DataOps principles help with AI usage<\/h2>\n\n\n\n<p>These issues are exactly why <a href=\"https:\/\/www.ibm.com\/think\/topics\/dataops\" target=\"_blank\" rel=\"noreferrer noopener\">DataOps<\/a> is more important than ever for your project teams. DataOps is a set of principles for reducing production errors while increasing the delivery of data solutions. The wonderful thing about principles is that they apply regardless of the tools or technologies involved. <\/p>\n\n\n\n<p>So, I&#8217;d like to offer a few principles you should make inherent to your teams\u2019 work. I&#8217;ll also include some tips for Fabric and <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/bi-sql-server\/power-bi-part-1-introduction\/\" target=\"_blank\" rel=\"noreferrer noopener\">Power BI<\/a> that you should be applying with GenAI today. I put them in order so you can focus on one principle at a time, each over a 1-2 month period.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-principle-1-make-it-reproducible\">Principle #1: Make it reproducible<\/h3>\n\n\n\n<p>Reproducible results are required and therefore <strong>we version<\/strong> everything. That means data, low-level hardware and software configurations, and the code and configuration specific to each tool in the toolchain.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-tip-1-embrace-git\">Tip #1: Embrace Git<\/h4>\n\n\n\n<p>Notice that I bolded the words &#8216;we version&#8217; above. In our industry, that means using <a href=\"https:\/\/gitforwindows.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Git<\/a>. Git is fundamental to giving your teams peace of mind that, whether AI updates a notebook or a Power BI report, you know exactly <em>what<\/em> changed (and when.)<\/p>\n\n\n\n<p>There <em>is<\/em> a learning curve to Git, yet features like <a href=\"https:\/\/learn.microsoft.com\/en-us\/fabric\/cicd\/git-integration\/intro-to-git-integration?tabs=azure-devops\" target=\"_blank\" rel=\"noreferrer noopener\">Fabric Git Integration<\/a> make it easier than ever to save versions of your work. Fabric also provides support for <a href=\"https:\/\/www.red-gate.com\/simple-talk\/devops\/database-devops\/database-version-control\/\" target=\"_blank\" rel=\"noreferrer noopener\">version control<\/a> with both <a href=\"https:\/\/learn.microsoft.com\/en-us\/fabric\/cicd\/git-integration\/intro-to-git-integration?tabs=azure-devops#supported-git-providers\" target=\"_blank\" rel=\"noreferrer noopener\">Azure DevOps and GitHub<\/a>.<\/p>\n\n\n\n<p>For many teams, Git represents the steepest part of the learning curve. However, once your team builds the habit of cloning, committing, syncing, and merging their changes &#8211; and treats the repository as the single source of truth rather than the workspace &#8211; you&#8217;ll have a solid foundation for the DataOps principles that follow.<\/p>\n\n\n\n<section id=\"my-first-block-block_6b4e5ecc767d60e6e612eced05ed693f\" class=\"my-first-block alignwide\">\n    <div class=\"bg-brand-600 text-base-white py-5xl px-4xl rounded-sm bg-gradient-to-r from-brand-600 to-brand-500 red\">\n        <div class=\"gap-4xl items-start md:items-center flex flex-col md:flex-row justify-between\">\n            <div class=\"flex-1 col-span-10 lg:col-span-7\">\n                <h3 class=\"mt-0 font-display mb-2 text-display-sm\">Enjoying this article? Subscribe to the Simple Talk newsletter<\/h3>\n                <div class=\"child:last-of-type:mb-0\">\n                                            Get selected articles, event information, podcasts and other industry content delivered straight to your inbox.                                    <\/div>\n            <\/div>\n                                            <a href=\"https:\/\/www.red-gate.com\/simple-talk\/subscribe\/\" class=\"btn btn--secondary btn--lg\" aria-label=\"Subscribe now: Enjoying this article? Subscribe to the Simple Talk newsletter\">Subscribe now<\/a>\n                    <\/div>\n    <\/div>\n<\/section>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-principle-2-improve-cycle-times\">Principle #2: Improve cycle times<\/h3>\n\n\n\n<p>We should strive to minimize the time and effort required to turn a customer need into an analytic idea. We should create it in development, release it as a repeatable production process and, lastly, <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/5-strategies-to-refactor-sql-code\/\" target=\"_blank\" rel=\"noreferrer noopener\">refactor<\/a> and reuse that product.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-tip-2-identify-how-you-use-ai-to-update-your-code\">Tip #2 &#8211; Identify how you use AI to update your code<\/h4>\n\n\n\n<p>The companies providing these GenAI tools are of course interested in growing their customer base. That&#8217;s why they offer personal productivity plans. However, are you aware of the terms of service attached to these plans? They&#8217;re likely less strict on <a href=\"https:\/\/www.red-gate.com\/solutions\/use-cases\/security-and-compliance\/\" target=\"_blank\" rel=\"noreferrer noopener\">data residency and privacy<\/a>, especially the free ones (because free is not really <em>free<\/em>.) Do you know how many people on your teams are using their own personal plans? Many of these GenAI tools have access to the data and code you&#8217;re working on, and then send that data to centers and logs around the world.<\/p>\n\n\n\n<p>I don&#8217;t intend to scare you away from using GenAI but you should consider these security aspects carefully. Fortunately, many <a href=\"https:\/\/ttpsc.com\/en\/blog\/what-does-enterprise-grade-software-really-mean\/\" target=\"_blank\" rel=\"noreferrer noopener\">enterprise-grade<\/a> tools have different terms of service that are more favorable to company data privacy. Tools like GitHub Copilot Enterprise, for example, lets you isolate GenAI models to ones deployed in your <a href=\"https:\/\/www.red-gate.com\/simple-talk\/blogs\/evaluation-policies-in-a-tenant-wide-level-and-more-azure-tricks\/\" target=\"_blank\" rel=\"noreferrer noopener\">Azure tenant <\/a>with <a href=\"https:\/\/ai.azure.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Foundry<\/a>. <\/p>\n\n\n\n<p>This isn&#8217;t a new concept that makes GenAI a security pariah, though. Many in our industry remember the security concerns around <a href=\"https:\/\/www.babble.cloud\/resources\/blog\/the-biggest-problems-with-byod-bring-your-own-device-in-business\" target=\"_blank\" rel=\"noreferrer noopener\">&#8216;Bring Your Own Device&#8217;<\/a> when mobile device usage dramatically increased. That was another tool that accelerated productivity and rankled IT security personnel.<\/p>\n\n\n\n<p>Ultimately, as they did with &#8216;BYOD&#8217;, teams just need to consider the security concerns and implement practices to mitigate the risks. Remember, also &#8211; the tools to manage these risks <em>will<\/em> get better, so reassess the situation often.<\/p>\n\n\n\n<section id=\"my-first-block-block_41f1d85ac2c5898315f14c86379f093e\" class=\"my-first-block alignwide\">\n    <div class=\"bg-brand-600 text-base-white py-5xl px-4xl rounded-sm bg-gradient-to-r from-brand-600 to-brand-500 red\">\n        <div class=\"gap-4xl items-start md:items-center flex flex-col md:flex-row justify-between\">\n            <div class=\"flex-1 col-span-10 lg:col-span-7\">\n                <h3 class=\"mt-0 font-display mb-2 text-display-sm\">Protect your data. Demonstrate compliance.<\/h3>\n                <div class=\"child:last-of-type:mb-0\">\n                                            With Redgate, stay ahead of threats with real-time monitoring and alerts, protect sensitive data with automated discovery &#038; masking, and demonstrate compliance with traceability across every environment.                                    <\/div>\n            <\/div>\n                                            <a href=\"https:\/\/www.red-gate.com\/solutions\/use-cases\/security-and-compliance\/\" class=\"btn btn--secondary btn--lg\" aria-label=\"Learn more: Protect your data. Demonstrate compliance.\">Learn more<\/a>\n                    <\/div>\n    <\/div>\n<\/section>\n\n\n<h4 class=\"wp-block-heading\" id=\"h-tip-3-use-visual-studio-code-to-aid-development-with-fabric\">Tip #3 &#8211; Use Visual Studio Code to aid development with Fabric<\/h4>\n\n\n\n<p><a href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Visual Studio Code<\/a> makes saving work to <a href=\"https:\/\/www.red-gate.com\/simple-talk\/devops\/tools\/getting-started-with-azure-devops\/\" target=\"_blank\" rel=\"noreferrer noopener\">Azure DevOps<\/a> and GitHub much easier. There are also a cadre of extensions that make working with Fabric easier, including <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=SynapseVSCode.synapse\" target=\"_blank\" rel=\"noreferrer noopener\">Fabric Data Engineering<\/a> and <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=fabric.vscode-fabric-mcp-server\" target=\"_blank\" rel=\"noreferrer noopener\">Microsoft Fabric MCP<\/a>.<\/p>\n\n\n\n<p>Plus, for <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/bi-sql-server\/power-bi-introduction-working-with-power-bi-desktop-part-2\/\" target=\"_blank\" rel=\"noreferrer noopener\">Power BI Desktop<\/a> development, VS Code is becoming a complementary tool that lets AI make changes to your models and reports through the <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=analysis-services.powerbi-modeling-mcp\" target=\"_blank\" rel=\"noreferrer noopener\">Power BI Modeling MCP<\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-tip-4-implement-workspace-governance\">Tip #4 &#8211; Implement workspace governance<\/h4>\n\n\n\n<p>With Git in place, you can ensure your development work is separate from what your customers see. At a minimum, you should keep two workspaces: one for development and one for production. If you can afford it, you should also have separate Fabric capacities for production and development. That way, production won&#8217;t be impacted if you make a mistake, such as a notebook mistakenly running a merge of large tables that consumes a lot of capacity. <\/p>\n\n\n\n<p>It also means you should have a capacity (albeit a smaller one like an F4) for Copilot for Fabric. AI assisting with building code or answering questions should <em>not<\/em> come at the detriment of processing data. Analytics work is a volatile aspect of Fabric consumption &#8211; it&#8217;s hard to predict because it&#8217;s an exploratory endeavor, and asking AI to help explore is just as unpredictable. Keep your data engineering Fabric consumption separate from your analytics consumption.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-principle-3-quality-is-paramount\">Principle #3: Quality is paramount<\/h3>\n\n\n\n<p>Analytic pipelines should be built with a foundation capable of automated detection of abnormalities (<a href=\"https:\/\/businessmap.io\/continuous-flow\/jidoka\" target=\"_blank\" rel=\"noreferrer noopener\">jidoka<\/a>), security issues in code, configuration, and data. It should also provide continuous feedback to operators for error avoidance (<a href=\"https:\/\/businessmap.io\/lean-management\/improvement\/what-is-poka-yoke\" target=\"_blank\" rel=\"noreferrer noopener\">poka- yoke<\/a>).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-tip-5-see-an-error-build-a-test\">Tip #5 &#8211; See an error? Build a test<\/h4>\n\n\n\n<p>Testing is of utmost importance when AI is used in code generation. Without testing, how do we prove that AI didn&#8217;t introduce a mistake or fail to handle our requirements? <\/p>\n\n\n\n<p>Whether AI accidentally changed a data type that broke a relationship, or didn&#8217;t use the <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/bi-sql-server\/using-the-dax-calculate-and-values-functions\/\" target=\"_blank\" rel=\"noreferrer noopener\">DAX<\/a> function <code>TREATAS<\/code> on the right column for a DAX measure, the solution is the same: build a test. And it&#8217;s no different if one of your team makes a mistake. Generating a test is the <em>first <\/em>thing you should do to help prevent it from happening again. Over time, you&#8217;ll build up a &#8216;safety net&#8217; of tests to help prevent future mishaps.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-tip-6-use-pytest-wheel-files-and-environments-for-notebook-development\">Tip #6 &#8211; Use Pytest, wheel files, and environments for notebook development<\/h4>\n\n\n\n<p>Python has long had the ability to test transformations. When you have AI build Python transformations, you should have defined tests in <a href=\"https:\/\/docs.pytest.org\/en\/stable\/\" target=\"_blank\" rel=\"noreferrer noopener\">pytest<\/a> to validate those transformations. When those tests pass, the Python code should be compiled into <a href=\"https:\/\/realpython.com\/python-wheels\/\" target=\"_blank\" rel=\"noreferrer noopener\">wheel files<\/a> and then added to an environment. This encapsulates your code with sound testing practices, reduces AI-driven regression errors, and protects the version of that code in environments.<\/p>\n\n\n\n<p>Note: I have a <a href=\"https:\/\/github.com\/kerski\/python-wheel-file-template\" target=\"_blank\" rel=\"noreferrer noopener\">sample project<\/a> you can use as an example to help you get started.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-tip-7-test-your-semantic-models\">Tip #7 &#8211; Test your semantic models<\/h4>\n\n\n\n<p>With the advent of the <a href=\"https:\/\/learn.microsoft.com\/en-us\/power-bi\/developer\/projects\/projects-overview\" target=\"_blank\" rel=\"noreferrer noopener\">Power BI project file format<\/a> and the introduction of the Power BI Modeling MCP server (which gives GenAI tools the ability to directly update your model), I&#8217;ve seen teams let AI update DAX and Power Query without testing. But how do you know what AI updated is correct? <\/p>\n\n\n\n<p>Well, you can use the <a href=\"https:\/\/github.com\/kerski\/fabric-dataops-patterns\/blob\/main\/DAX%20Query%20View%20Testing%20Pattern\/dax-query-view-testing-pattern.md\" target=\"_blank\" rel=\"noreferrer noopener\">DAX Query View Testing Pattern<\/a> and <a href=\"https:\/\/learn.microsoft.com\/en-us\/power-bi\/transform-model\/desktop-user-defined-functions-overview\" target=\"_blank\" rel=\"noreferrer noopener\">User Defined Functions<\/a> such as <a href=\"https:\/\/daxlib.org\/package\/PQL.Assert\" target=\"_blank\" rel=\"noreferrer noopener\">PQL.Assert<\/a> to build tests against your model. You can validate that the content has the correct distinct columns, that DAX measures output consistent results under certain filters, and that the relationships in a model are preserved, all within the semantic model. This lays the foundation for automated testing.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-tip-8-test-your-data-agents\">Tip #8 &#8211; Test your data agents<\/h4>\n\n\n\n<p>The <a href=\"https:\/\/learn.microsoft.com\/en-us\/fabric\/data-science\/fabric-data-agent-sdk\" target=\"_blank\" rel=\"noreferrer noopener\">Fabric Data Agent SDK<\/a>, built to be <a href=\"https:\/\/github.com\/MicrosoftDocs\/fabric-docs\/blob\/main\/docs\/data-science\/evaluate-data-agent.md\" target=\"_blank\" rel=\"noreferrer noopener\">run in a notebook<\/a>, can be used to impersonate a customer asking questions so you can inspect the results and ensure they are consistent and appropriate. You should also be testing with inappropriate questions.<\/p>\n\n\n\n<p>Regarding this, your leadership should understand that the questions stored in the notebook may be unsuitable in pleasant conversation, but are necessary to make sure the agent responds appropriately. For example, by asking an agent to give the definition of a curse word, you can validate that the agent does <em>not<\/em> return the word. It should instead simply say it cannot answer the question.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"875\" height=\"509\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/04\/image-8.png\" alt=\"\" class=\"wp-image-109731\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/04\/image-8.png 875w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/04\/image-8-300x175.png 300w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2026\/04\/image-8-768x447.png 768w\" sizes=\"auto, (max-width: 875px) 100vw, 875px\" \/><figcaption class=\"wp-element-caption\"><em>Testing a Data Agent with various questions<\/em><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-principle-4-monitor-for-quality-and-performance\">Principle #4: Monitor for quality and performance<\/h3>\n\n\n\n<p>Our goal is to have performance, security, and quality measures that are monitored continuously to detect unexpected variation and generate operational statistics.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-tip-9-testing-does-not-stop-once-the-solution-has-shipped\">Tip #9 &#8211; Testing does not stop once the solution has shipped!<\/h4>\n\n\n\n<p>To find issues before your customers do, it&#8217;s crucial to test and track your data&#8217;s journey to the customer during every step of the process. <a href=\"https:\/\/learn.microsoft.com\/en-us\/fabric\/real-time-intelligence\/monitor-eventhouse\" target=\"_blank\" rel=\"noreferrer noopener\">Eventhouse Monitoring<\/a> allows workspace admins to start getting real-time insights into refreshes, and I have a <a href=\"https:\/\/github.com\/kerski\/pbi-dataops-monitoring\" target=\"_blank\" rel=\"noreferrer noopener\">template<\/a> that can help.<\/p>\n\n\n\n<p>This best practice also includes <a href=\"https:\/\/learn.microsoft.com\/en-us\/fabric\/data-science\/concept-data-agent\" target=\"_blank\" rel=\"noreferrer noopener\">Data Agents<\/a>, Fabric\u2019s AI implementation for chatting with data. Both the data the agent queries <em>and<\/em> the model used to infer answers can, and will, change (including <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/foundry\/openai\/concepts\/model-retirements?tabs=text\" target=\"_blank\" rel=\"noreferrer noopener\">model deprecation<\/a>.) The <a href=\"https:\/\/github.com\/MicrosoftDocs\/fabric-docs\/blob\/main\/docs\/data-science\/evaluate-data-agent.md\" target=\"_blank\" rel=\"noreferrer noopener\">notebook I referenced earlier<\/a> can also be used to test the agent and log results. Furthermore, these results can be logged to an eventhouse &#8211; giving you near real-time insights into the behavior of the Data Agent.<\/p>\n\n\n\n<p>As of March 2026, seeing the prompts and conversations used by users with Data Agents is <em>not<\/em> built into the Fabric product. I&#8217;d instead suggest using <a href=\"https:\/\/learn.microsoft.com\/en-us\/microsoft-copilot-studio\/fundamentals-what-is-copilot-studio\" target=\"_blank\" rel=\"noreferrer noopener\">Copilot Studio<\/a>. While there is an additional cost, it does have more <a href=\"https:\/\/learn.microsoft.com\/en-us\/microsoft-copilot-studio\/authoring-review-activity\" target=\"_blank\" rel=\"noreferrer noopener\">robust options<\/a>. My hope is that we start seeing user activity sent to Eventhouse Monitoring in the near future.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-in-summary-why-you-should-use-dataops-principles-with-genai\">In summary: why you should use DataOps principles with GenAI<\/h2>\n\n\n\n<p>GenAI has the capability to accelerate the delivery of solutions, and DataOps provides the principles to keep teams from crashing (both technically and personally). GenAI will continue to improve, introducing new capabilities that disrupt the industry. At the same time, DataOps principles are still as useful as ever. I hope, as a result of this article, you consider how they can make your teams better in these early days of GenAI.<\/p>\n\n\n\n<section id=\"faq\" class=\"faq-block my-5xl\">\n    <h2>FAQs: How DataOps principles help to reduce GenAI risk and improve data quality<\/h2>\n\n                        <h3 class=\"mt-4xl\">1. How does Generative AI (GenAI) impact data engineering workflows?<\/h3>\n            <div class=\"faq-answer\">\n                <p>Generative AI accelerates development but can introduce errors, inconsistent outputs, and governance challenges if not properly managed.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">2. Why is DataOps important when using AI in data solutions?<\/h3>\n            <div class=\"faq-answer\">\n                <p>DataOps ensures reproducibility, quality, and monitoring, helping teams reduce errors and maintain trust in AI-assisted workflows.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">3. What are the risks of using AI-generated code in data projects?<\/h3>\n            <div class=\"faq-answer\">\n                <p>Risks include lack of audit trails, missing error handling, security concerns, and untested code changes that may break pipelines.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">4. How can teams safely use AI tools like GitHub Copilot?<\/h3>\n            <div class=\"faq-answer\">\n                <p>Teams should implement version control (Git), enforce testing, review AI-generated code, and use enterprise-grade tools with proper data governance.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">5. What role does testing play in AI-driven data development?<\/h3>\n            <div class=\"faq-answer\">\n                <p>Testing validates AI-generated code, prevents regressions, and builds a safety net to ensure consistent and accurate data outputs.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">6. How can Microsoft Fabric and Power BI teams manage AI risks?<\/h3>\n            <div class=\"faq-answer\">\n                <p>By using Git integration, workspace separation, automated testing, and monitoring tools to maintain performance and data quality.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">7. What is the best way to track AI-generated code changes?<\/h3>\n            <div class=\"faq-answer\">\n                <p>Using version control systems like Git to maintain a clear audit trail and enable rollback of AI-generated updates.<\/p>\n            <\/div>\n            <\/section>\n","protected":false},"excerpt":{"rendered":"<p>Learn how DataOps principles improve trust, quality, and governance when using GenAI in data solutions. Tips for for Git, testing, and Microsoft Fabric.&hellip;<\/p>\n","protected":false},"author":344919,"featured_media":109899,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[159169,47,143526,147005],"tags":[159075,4483,158997],"coauthors":[159224],"class_list":["post-109725","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","category-data-science","category-development","category-web","tag-ai","tag-data","tag-microsoft-fabric"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/109725","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/users\/344919"}],"replies":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/comments?post=109725"}],"version-history":[{"count":6,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/109725\/revisions"}],"predecessor-version":[{"id":109983,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/109725\/revisions\/109983"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media\/109899"}],"wp:attachment":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media?parent=109725"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/categories?post=109725"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/tags?post=109725"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/coauthors?post=109725"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}