<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Raj Mohan Achanta, Author at Datagaps | Gen AI-Powered Automated Cloud Data Testing</title>
	<atom:link href="https://www.datagaps.com/blog/author/rajmohan/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description></description>
	<lastBuildDate>Fri, 30 Oct 2026 11:57:10 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://www.datagaps.com/wp-content/uploads/favicon.svg</url>
	<title>Raj Mohan Achanta, Author at Datagaps | Gen AI-Powered Automated Cloud Data Testing</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Beyond the Data Catalog: What Makes Enterprise Data Truly AI-Ready?</title>
		<link>https://www.datagaps.com/blog/ai-ready-data-beyond-data-catalog/</link>
		
		<dc:creator><![CDATA[Raj Mohan Achanta]]></dc:creator>
		<pubDate>Fri, 30 Oct 2026 08:10:36 +0000</pubDate>
				<category><![CDATA[Data Quality]]></category>
		<category><![CDATA[Data Validation]]></category>
		<category><![CDATA[DataOps]]></category>
		<category><![CDATA[AI Rule Generation]]></category>
		<category><![CDATA[dataops]]></category>
		<category><![CDATA[Microsoft Fabric]]></category>
		<guid isPermaLink="false">https://www.datagaps.com/?p=64068</guid>

					<description><![CDATA[<p>Generate data quality rules for Microsoft Fabric using AI. Learn how AI simplifies rule creation, improves data accuracy, and strengthens data governance.</p>
<p>The post <a href="https://www.datagaps.com/blog/ai-ready-data-beyond-data-catalog/">Beyond the Data Catalog: What Makes Enterprise Data Truly AI-Ready?</a> appeared first on <a href="https://www.datagaps.com">Datagaps | Gen AI-Powered Automated Cloud Data Testing</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="64068" class="elementor elementor-64068" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-a3771bc e-flex e-con-boxed e-con e-parent" data-id="a3771bc" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-1fd7e36 elementor-widget elementor-widget-text-editor" data-id="1fd7e36" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW254417991 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW254417991 BCX8">AI-ready data is enterprise data that has been profiled, </span><span class="NormalTextRun SCXW254417991 BCX8">validated</span><span class="NormalTextRun SCXW254417991 BCX8">, described, and continuously </span><span class="NormalTextRun SCXW254417991 BCX8">monitored</span><span class="NormalTextRun SCXW254417991 BCX8"> — so AI systems can consume it with confidence. A data </span><span class="NormalTextRun SpellingErrorV2Themed SCXW254417991 BCX8">catalog</span><span class="NormalTextRun SCXW254417991 BCX8"> alone tells you what exists. AI-ready data ensures what exists is </span><span class="NormalTextRun SCXW254417991 BCX8">accurate</span><span class="NormalTextRun SCXW254417991 BCX8">, meaningful, and trustworthy enough to power production AI at scale.</span></span><span class="EOP Selected SCXW254417991 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335557856&quot;:15792112,&quot;335559685&quot;:300,&quot;335559737&quot;:300,&quot;335559738&quot;:100,&quot;335559739&quot;:100,&quot;335559740&quot;:340,&quot;335572083&quot;:6,&quot;335572084&quot;:10,&quot;335572085&quot;:3308846,&quot;469789810&quot;:&quot;single&quot;}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-27eeb44 datagaps-tldr elementor-widget elementor-widget-text-editor" data-id="27eeb44" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Key Takeaways</strong></p><ul><li><span data-contrast="none">A data catalog documents metadata but can&#8217;t verify whether the underlying data is correct.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559685&quot;:500,&quot;335559738&quot;:40,&quot;335559739&quot;:40,&quot;335559740&quot;:340,&quot;335559991&quot;:250}"> </span></li><li><span data-contrast="none">AI-ready data requires continuous quality validation layered on top of cataloging.</span></li><li><span data-contrast="none">AI-generated column descriptions are now critical inputs for Text-to-SQL, RAG, and copilot systems.</span></li><li><span data-contrast="none">The top-ranked BIRD Benchmark solution proves that data profiling and enriched metadata outperform better models.</span></li><li><span data-contrast="none">Datagaps DataOps Suite handles catalog, profiling, quality scoring, and AI-generated descriptions in one platform.</span></li></ul>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-ddcad15 e-flex e-con-boxed e-con e-parent" data-id="ddcad15" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-49f1598 elementor-widget elementor-widget-image" data-id="49f1598" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img fetchpriority="high" decoding="async" width="1120" height="753" src="https://www.datagaps.com/wp-content/uploads/Data-catalog-ready-vs-AI-Ready-Data.png" class="attachment-full size-full wp-image-64438" alt="Data catalog ready vs AI Ready Data" srcset="https://www.datagaps.com/wp-content/uploads/Data-catalog-ready-vs-AI-Ready-Data.png 1120w, https://www.datagaps.com/wp-content/uploads/Data-catalog-ready-vs-AI-Ready-Data-300x202.png 300w, https://www.datagaps.com/wp-content/uploads/Data-catalog-ready-vs-AI-Ready-Data-1024x688.png 1024w, https://www.datagaps.com/wp-content/uploads/Data-catalog-ready-vs-AI-Ready-Data-768x516.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-909654c elementor-widget elementor-widget-heading" data-id="909654c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">The AI Readiness Problem in 2026 </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f269997 elementor-widget elementor-widget-text-editor" data-id="f269997" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="none">Enterprises aren&#8217;t debating whether AI matters anymore. They&#8217;ve moved well beyond that. Over the last couple of years, organizations have aggressively shifted toward implementation — building AI solutions both internally and for their enterprise clients.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p><p><span data-contrast="none">But there&#8217;s a meaningful gap between wanting to deploy AI and actually being ready for it. The critical question facing data leaders today isn&#8217;t which model to choose. It&#8217;s whether the data feeding those models is prepared for AI consumption.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-d15438e elementor-widget elementor-widget-text-editor" data-id="d15438e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="none">The numbers make this clear. According to Forrester (2026), </span><b><span data-contrast="none">73% of B2B buyers now use AI tools during vendor research and technical evaluation.</span></b><span data-contrast="none"> The models themselves are mature enough. The bottleneck has shifted entirely to data quality and context.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p><p><span data-contrast="none">Being AI-ready means your organization can confidently expose its data to AI systems at scale — knowing that data is accurate, governed, and described well enough to generate reliable outputs. That&#8217;s a much higher bar than most enterprises realize.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-604e192 e-flex e-con-boxed e-con e-parent" data-id="604e192" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3445573 elementor-widget elementor-widget-heading" data-id="3445573" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Two Types of Enterprise Data, Two Different Challenges </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-7058977 elementor-widget elementor-widget-text-editor" data-id="7058977" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW128787954 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW128787954 BCX8">When we talk about making enterprise data AI-ready, it helps to separate the problem into two parts — because each type of data needs a fundamentally different approach.</span></span><span class="EOP Selected SCXW128787954 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-f760d4f elementor-widget elementor-widget-text-editor" data-id="f760d4f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW128611760 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW128611760 BCX8">The first is </span></span><strong><span class="TextRun SCXW128611760 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW128611760 BCX8">unstructured data</span></span></strong><span class="TextRun SCXW128611760 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW128611760 BCX8"> — implementation documents, product documentation, API docs, knowledge bases, and similar textual information. AI is already quite good at understanding well-written text. If this information is documented properly and managed well, you can start building AI use cases on top of it.</span></span><span class="EOP Selected SCXW128611760 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-2ea1668 elementor-widget elementor-widget-text-editor" data-id="2ea1668" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW11087568 BCX8">The industry is actively working on this side of the problem. Google, for example, proposed its Open Knowledge Format (OKF) in June 2026 — a structured markdown-based approach for organizing internal knowledge so that AI agents can consume it effectively. </span><span class="NormalTextRun SCXW11087568 BCX8">It&#8217;s</span><span class="NormalTextRun SCXW11087568 BCX8"> not a product </span><span class="NormalTextRun SCXW11087568 BCX8">they&#8217;re</span><span class="NormalTextRun SCXW11087568 BCX8"> selling. </span><span class="NormalTextRun SCXW11087568 BCX8">It&#8217;s</span><span class="NormalTextRun SCXW11087568 BCX8"> a recommended format for structuring your internal knowledge base in a way that works for both humans and AI systems.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-73dcf02 elementor-widget elementor-widget-image" data-id="73dcf02" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img decoding="async" width="896" height="429" src="https://www.datagaps.com/wp-content/uploads/Image-3-3.png" class="attachment-full size-full wp-image-64439" alt="Sales" srcset="https://www.datagaps.com/wp-content/uploads/Image-3-3.png 896w, https://www.datagaps.com/wp-content/uploads/Image-3-3-300x144.png 300w, https://www.datagaps.com/wp-content/uploads/Image-3-3-768x368.png 768w" sizes="(max-width: 896px) 100vw, 896px" />															</div>
				</div>
				<div class="elementor-element elementor-element-748de4c elementor-widget elementor-widget-text-editor" data-id="748de4c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW246640051 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW246640051 BCX8">But OKF only addresses the unstructured side of the problem. It helps document databases, business logic, and definitions in a structured way — but it </span><span class="NormalTextRun SCXW246640051 BCX8">doesn&#8217;t</span><span class="NormalTextRun SCXW246640051 BCX8"> solve the challenge of structured data at scale.</span></span><span class="EOP Selected SCXW246640051 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-774aaf0 elementor-widget elementor-widget-text-editor" data-id="774aaf0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="none">The second — and harder — part is </span><b><span data-contrast="none">structured data.</span></b><span data-contrast="none"> The tables, columns, and rows sitting in your databases. You obviously can&#8217;t pass millions of database rows to an LLM as part of a prompt. So how do you help AI understand your structured data well enough to generate accurate SQL, power dashboards, or drive automated decisions?</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p><p><span data-contrast="none">The most common answer is a data catalog. But that answer is incomplete.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559738&quot;:200,&quot;335559739&quot;:200,&quot;335572079&quot;:1,&quot;335572080&quot;:0,&quot;335572081&quot;:14540253,&quot;469789806&quot;:&quot;single&quot;}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-b16fb31 elementor-widget elementor-widget-heading" data-id="b16fb31" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What a Data Catalog Does Well </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-22dfc45 elementor-widget elementor-widget-text-editor" data-id="22dfc45" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW255316963 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW255316963 BCX8">A data </span><span class="NormalTextRun SpellingErrorV2Themed SCXW255316963 BCX8">catalog</span><span class="NormalTextRun SCXW255316963 BCX8"> combines and aggregates all the metadata — the &#8220;data about data&#8221; — so users can easily discover, understand, evaluate, and trust various resources like databases, tables, reports, and dashboards across scattered systems.</span></span><span class="EOP Selected SCXW255316963 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-c798e39 elementor-widget elementor-widget-image" data-id="c798e39" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img decoding="async" width="1120" height="227" src="https://www.datagaps.com/wp-content/uploads/datagaps-catalog-summary.png" class="attachment-full size-full wp-image-64440" alt="" srcset="https://www.datagaps.com/wp-content/uploads/datagaps-catalog-summary.png 1120w, https://www.datagaps.com/wp-content/uploads/datagaps-catalog-summary-300x61.png 300w, https://www.datagaps.com/wp-content/uploads/datagaps-catalog-summary-1024x208.png 1024w, https://www.datagaps.com/wp-content/uploads/datagaps-catalog-summary-768x156.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">Datagaps Catalog overview for AdvWorks_Transaction database: 6 schemas, 74 tables, 20 views, 91 relationships. Metadata changes timeline visible at the bottom with date filters. </figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-269c004 elementor-widget elementor-widget-text-editor" data-id="269c004" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW80258110 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW80258110 BCX8">You should also be able to get a table-level and column-level view of the database. This helps in finding and tracking any changes to the schema over time. Tools like </span><span class="NormalTextRun SpellingErrorV2Themed SCXW80258110 BCX8">Datagaps</span> <span class="NormalTextRun SCXW80258110 BCX8">offer this — you can automatically see what a table is about, its columns, relationships, and how they exist within the current database through its </span><span class="NormalTextRun SpellingErrorV2Themed SCXW80258110 BCX8">Catalog</span><span class="NormalTextRun SCXW80258110 BCX8">.</span></span><span class="EOP Selected SCXW80258110 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-741b1ee elementor-widget elementor-widget-image" data-id="741b1ee" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="227" src="https://www.datagaps.com/wp-content/uploads/datagaps-catalog-summary-1.png" class="attachment-full size-full wp-image-64445" alt="" srcset="https://www.datagaps.com/wp-content/uploads/datagaps-catalog-summary-1.png 1120w, https://www.datagaps.com/wp-content/uploads/datagaps-catalog-summary-1-300x61.png 300w, https://www.datagaps.com/wp-content/uploads/datagaps-catalog-summary-1-1024x208.png 1024w, https://www.datagaps.com/wp-content/uploads/datagaps-catalog-summary-1-768x156.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">Datagaps Catalog drill-down: Person &gt; Address table showing columns (AddressID, AddressLine1, AddressLine2, City, StateProvinceID, PostalCode, SpatialLocation, rowguid, ModifiedDate) with data types, lengths, nullable flags, default values, and reference links. </figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-7bb1bf0 elementor-widget elementor-widget-image" data-id="7bb1bf0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="533" src="https://www.datagaps.com/wp-content/uploads/datagaps-relationships-view.png" class="attachment-full size-full wp-image-64446" alt="" srcset="https://www.datagaps.com/wp-content/uploads/datagaps-relationships-view.png 1120w, https://www.datagaps.com/wp-content/uploads/datagaps-relationships-view-300x143.png 300w, https://www.datagaps.com/wp-content/uploads/datagaps-relationships-view-1024x487.png 1024w, https://www.datagaps.com/wp-content/uploads/datagaps-relationships-view-768x365.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">Relationships panel: Foreign key mappings between Person.BusinessEntityAddress, Sales.SalesOrderHeader, and Person.Address tables — showing parent/child column links (AddressID → AddressID, BillToAddressID → AddressID, ShipToAddressID → AddressID, StateProvinceID → StateProvinceID). </figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-7c60f18 elementor-widget elementor-widget-heading" data-id="7c60f18" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Where the Catalog Falls Short </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-3062066 elementor-widget elementor-widget-text-editor" data-id="3062066" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="none">The catalog definition above is almost complete. Notice that it talks about discovering, understanding, and evaluating data. But it deserves a closer look where it mentions &#8220;trust.&#8221;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p><p><span data-contrast="none">You cannot build trust solely based on metadata. Trust is built on the data itself.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-bc42cd2 elementor-widget elementor-widget-text-editor" data-id="bc42cd2" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="none">Metadata tells you what the data is supposed to represent. It does not tell you whether the underlying data is actually correct. A beautifully documented table can still contain duplicate records, missing values, broken calculations, or stale data.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-2924056 elementor-widget elementor-widget-text-editor" data-id="2924056" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="none">If you have accurate data flowing through your pipelines at every stage, that&#8217;s when you can actually trust your system — and any AI application, report, dashboard, or BI tool that consumes data from that database.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p><p><span data-contrast="none">So a data catalog alone is not sufficient. What else is needed?</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p><p><b><span data-contrast="none">Validated data</span></b><span data-contrast="none"> — and a system that continuously validates it whenever new data arrives.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-b5672e4 elementor-widget elementor-widget-heading" data-id="b5672e4" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What AI Actually Needs: Quality Validation at Scale </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-ba1a932 elementor-widget elementor-widget-text-editor" data-id="ba1a932" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="none">You need quality checks that ensure whatever exists in your systems matches business expectations and is reliable enough for data-driven decisions.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p><p><span data-contrast="none">That means a Data Quality dashboard showing how every table contributes to an overall quality score. You should have dedicated rules evaluating data across different quality dimensions — accuracy, completeness, conformity, consistency, timeliness — and your overall score should clearly reflect how each dataset contributes to the health of your data ecosystem.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-ef1a0af elementor-widget elementor-widget-image" data-id="ef1a0af" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="527" src="https://www.datagaps.com/wp-content/uploads/Dashboard.png" class="attachment-full size-full wp-image-64486" alt="Dashboard" srcset="https://www.datagaps.com/wp-content/uploads/Dashboard.png 1120w, https://www.datagaps.com/wp-content/uploads/Dashboard-300x141.png 300w, https://www.datagaps.com/wp-content/uploads/Dashboard-1024x482.png 1024w, https://www.datagaps.com/wp-content/uploads/Dashboard-768x361.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-9e0fe7a elementor-widget elementor-widget-text-editor" data-id="9e0fe7a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW196266824 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW196266824 BCX8">It </span><span class="NormalTextRun SCXW196266824 BCX8">shouldn&#8217;t</span><span class="NormalTextRun SCXW196266824 BCX8"> stop at the table level. You should also be able to drill down to individual columns and understand exactly which columns are </span><span class="NormalTextRun SCXW196266824 BCX8">impacting</span><span class="NormalTextRun SCXW196266824 BCX8"> the overall Data Quality score.</span></span><span class="EOP Selected SCXW196266824 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-d09f085 elementor-widget elementor-widget-image" data-id="d09f085" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="942" height="375" src="https://www.datagaps.com/wp-content/uploads/Data-Score-by-Column.png" class="attachment-full size-full wp-image-64490" alt="Data Score by Column" srcset="https://www.datagaps.com/wp-content/uploads/Data-Score-by-Column.png 942w, https://www.datagaps.com/wp-content/uploads/Data-Score-by-Column-300x119.png 300w, https://www.datagaps.com/wp-content/uploads/Data-Score-by-Column-768x306.png 768w" sizes="(max-width: 942px) 100vw, 942px" />															</div>
				</div>
				<div class="elementor-element elementor-element-fcb2e06 elementor-widget elementor-widget-text-editor" data-id="fcb2e06" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW253317035 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW253317035 BCX8">For example, while setting up governance and data </span><span class="NormalTextRun SpellingErrorV2Themed SCXW253317035 BCX8">cataloging</span><span class="NormalTextRun SCXW253317035 BCX8">, you may discover that certain columns must never </span><span class="NormalTextRun SCXW253317035 BCX8">contain</span><span class="NormalTextRun SCXW253317035 BCX8"> duplicate or NULL values. </span><span class="NormalTextRun SCXW253317035 BCX8">Maybe another</span><span class="NormalTextRun SCXW253317035 BCX8"> column should only </span><span class="NormalTextRun SCXW253317035 BCX8">contain</span><span class="NormalTextRun SCXW253317035 BCX8"> values from a predefined set of categories. Or </span><span class="NormalTextRun SCXW253317035 BCX8">perhaps you</span><span class="NormalTextRun SCXW253317035 BCX8"> have domain-specific business rules that must always hold true. These are business expectations — the rules </span><span class="NormalTextRun SCXW253317035 BCX8">you&#8217;ve</span><span class="NormalTextRun SCXW253317035 BCX8"> defined.</span></span><span class="EOP Selected SCXW253317035 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-aa24450 elementor-widget elementor-widget-text-editor" data-id="aa24450" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW117797114 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW117797114 BCX8">But how do you execute those rules consistently? This is exactly where </span></span><span style="text-decoration: underline; color: #1967d2;"><a class="Hyperlink SCXW117797114 BCX8" style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/dataops-suite/" target="_blank" rel="noreferrer noopener"><span class="TextRun Underlined SCXW117797114 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW117797114 BCX8" data-ccp-charstyle="Hyperlink">Datagaps DataOps Suite</span></span></a></span><span class="TextRun SCXW117797114 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW117797114 BCX8"> comes in. You need automated quality checks and detailed reports showing exactly how much of your data violates each rule. More importantly, you need to ensure that only validated data flows into your </span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW117797114 BCX8">Gold</span><span class="NormalTextRun SCXW117797114 BCX8"> layer or </span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW117797114 BCX8">BI layer</span><span class="NormalTextRun SCXW117797114 BCX8">.</span></span><span class="EOP Selected SCXW117797114 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-7abf542 elementor-widget elementor-widget-image" data-id="7abf542" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="570" src="https://www.datagaps.com/wp-content/uploads/Structured-flow-chart-of-Dataops-Suite.png" class="attachment-full size-full wp-image-64504" alt="" srcset="https://www.datagaps.com/wp-content/uploads/Structured-flow-chart-of-Dataops-Suite.png 1120w, https://www.datagaps.com/wp-content/uploads/Structured-flow-chart-of-Dataops-Suite-300x153.png 300w, https://www.datagaps.com/wp-content/uploads/Structured-flow-chart-of-Dataops-Suite-1024x521.png 1024w, https://www.datagaps.com/wp-content/uploads/Structured-flow-chart-of-Dataops-Suite-768x391.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-6a12892 elementor-widget elementor-widget-text-editor" data-id="6a12892" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW93881144 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW93881144 BCX8">And </span><span class="NormalTextRun SCXW93881144 BCX8">we&#8217;re</span><span class="NormalTextRun SCXW93881144 BCX8"> not talking about small datasets here. </span><span class="NormalTextRun SCXW93881144 BCX8">We&#8217;re</span><span class="NormalTextRun SCXW93881144 BCX8"> talking about enterprise-scale environments where manually </span><span class="NormalTextRun SCXW93881144 BCX8">validating</span><span class="NormalTextRun SCXW93881144 BCX8"> data is </span><span class="NormalTextRun SCXW93881144 BCX8">practically impossible</span><span class="NormalTextRun SCXW93881144 BCX8">. Imagine a table with 300+ columns. You cannot manually </span><span class="NormalTextRun SCXW93881144 BCX8">validate</span><span class="NormalTextRun SCXW93881144 BCX8"> data at that scale. You need automation. And even defining quality rules across hundreds of tables manually </span><span class="NormalTextRun SCXW93881144 BCX8">isn&#8217;t</span><span class="NormalTextRun SCXW93881144 BCX8"> practical anymore. You need AI there as well.</span></span><span class="EOP SCXW93881144 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-3187b40 elementor-widget elementor-widget-image" data-id="3187b40" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="365" height="753" src="https://www.datagaps.com/wp-content/uploads/Table-dashboard-column-name.png" class="attachment-large size-large wp-image-64505" alt="" srcset="https://www.datagaps.com/wp-content/uploads/Table-dashboard-column-name.png 365w, https://www.datagaps.com/wp-content/uploads/Table-dashboard-column-name-145x300.png 145w" sizes="(max-width: 365px) 100vw, 365px" />															</div>
				</div>
				<div class="elementor-element elementor-element-8e0034c elementor-widget elementor-widget-heading" data-id="8e0034c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">So Does This Make the Data AI-Ready? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-7a49a3f elementor-widget elementor-widget-text-editor" data-id="7a49a3f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="none">The answer is </span><b><span data-contrast="none">yes and no.</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p><p data-ccp-border-bottom="0px none " data-ccp-padding-bottom="0px">Yes — because now we know that the data, or the context, we provide to AI is correct, validated, and reliable enough to support data-driven decisions. We can finally trust that data. That&#8217;s exactly what Datagaps helps with. Governance, Metadata Scanning, Data Profiling, and most importantly, Data Quality — all of these capabilities can be managed from a single platform. </p><p data-ccp-border-top="0px none " data-ccp-padding-top="0px">No — because AI still needs more information to truly understand your database. AI is exceptionally good at interpreting language. You can certainly provide column names as context while asking it to generate SQL queries. But if we provide richer context that explains what each column actually represents and what kind of data it contains, that&#8217;s when we can truly call it an AI-ready data catalog. </p>								</div>
				</div>
				<div class="elementor-element elementor-element-334b83c elementor-widget elementor-widget-text-editor" data-id="334b83c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW67105269 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW67105269 BCX8">That&#8217;s</span><span class="NormalTextRun SCXW67105269 BCX8"> where column descriptions come into the picture. Descriptions </span><span class="NormalTextRun SCXW67105269 BCX8">aren&#8217;t</span><span class="NormalTextRun SCXW67105269 BCX8"> just documentation anymore. They have become one of the primary inputs to enterprise AI systems. Metadata is no longer written for humans. </span><span class="NormalTextRun SCXW67105269 BCX8">It&#8217;s</span><span class="NormalTextRun SCXW67105269 BCX8"> increasingly written for AI.</span></span><span class="EOP Selected SCXW67105269 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-b00efff elementor-widget elementor-widget-text-editor" data-id="b00efff" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW87089980 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW87089980 BCX8">Whether </span><span class="NormalTextRun SCXW87089980 BCX8">you&#8217;re</span><span class="NormalTextRun SCXW87089980 BCX8"> building a Text-to-SQL system, an enterprise search solution, a RAG application, or an AI copilot, these descriptions help the model understand business meaning that column names alone can never communicate.</span></span><span class="EOP Selected SCXW87089980 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-2a5fde7 elementor-widget elementor-widget-text-editor" data-id="2a5fde7" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW242886650 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW242886650 BCX8">This </span><span class="NormalTextRun SCXW242886650 BCX8">isn&#8217;t</span><span class="NormalTextRun SCXW242886650 BCX8"> useful only for AI, either. </span><span class="NormalTextRun SCXW242886650 BCX8">It&#8217;s</span><span class="NormalTextRun SCXW242886650 BCX8"> equally valuable for any new team member joining your organization. They usually spend days understanding the database, learning business terminology, and figuring out what every column </span><span class="NormalTextRun AdvancedProofingIssueV2Themed SCXW242886650 BCX8">actually represents</span><span class="NormalTextRun SCXW242886650 BCX8">. In the age of AI, it would be inefficient if we </span><span class="NormalTextRun SCXW242886650 BCX8">didn&#8217;t</span><span class="NormalTextRun SCXW242886650 BCX8"> make this process significantly easier.</span></span><span class="EOP Selected SCXW242886650 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-e72b5d9 elementor-widget elementor-widget-text-editor" data-id="e72b5d9" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW137909627 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SpellingErrorV2Themed SCXW137909627 BCX8">Datagaps</span><span class="NormalTextRun SCXW137909627 BCX8"> helps here through </span></span><span class="TextRun SCXW137909627 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW137909627 BCX8">AI-generated descriptions</span></span><span class="TextRun SCXW137909627 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW137909627 BCX8"> for tables and columns. These descriptions are then used while generating SQL queries within </span><span class="NormalTextRun SpellingErrorV2Themed SCXW137909627 BCX8">DataOps</span><span class="NormalTextRun SCXW137909627 BCX8">, creating data quality rules, and building domain-specific validations involving multiple columns and complex SQL statements.</span></span><span class="EOP Selected SCXW137909627 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-303a3cf elementor-widget elementor-widget-image" data-id="303a3cf" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="283" src="https://www.datagaps.com/wp-content/uploads/AI-Generated-Descriptions.png" class="attachment-full size-full wp-image-64506" alt="" srcset="https://www.datagaps.com/wp-content/uploads/AI-Generated-Descriptions.png 1120w, https://www.datagaps.com/wp-content/uploads/AI-Generated-Descriptions-300x76.png 300w, https://www.datagaps.com/wp-content/uploads/AI-Generated-Descriptions-1024x259.png 1024w, https://www.datagaps.com/wp-content/uploads/AI-Generated-Descriptions-768x194.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-3ce00d9 elementor-widget elementor-widget-heading" data-id="3ce00d9" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Does Research Back This Up? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-98cc803 elementor-widget elementor-widget-text-editor" data-id="98cc803" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW210548310 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW210548310 BCX8">One of the most common AI use cases for structured data has been generating SQL queries. Models today are powerful enough to write SQL of almost any complexity. What they still lack is context.</span></span><span class="EOP Selected SCXW210548310 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-220562c elementor-widget elementor-widget-text-editor" data-id="220562c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW77581417 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW77581417 BCX8">Every enterprise has its own abbreviations, business terminology, table names, and domain-specific concepts that are unique to them. The BIRD Benchmark — one of the leading benchmarks for Text-to-SQL systems — evaluates exactly this problem. It compares different AI solutions to </span><span class="NormalTextRun SCXW77581417 BCX8">determine</span><span class="NormalTextRun SCXW77581417 BCX8"> whether they can generate enterprise-grade SQL queries for real-world databases.</span></span><span class="EOP Selected SCXW77581417 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-34af34f elementor-widget elementor-widget-text-editor" data-id="34af34f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW14628128 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW14628128 BCX8">Here&#8217;s</span> <span class="NormalTextRun SCXW14628128 BCX8">what&#8217;s</span><span class="NormalTextRun SCXW14628128 BCX8"> surprising: the top-ranked solution on this benchmark </span><span class="NormalTextRun SCXW14628128 BCX8">doesn&#8217;t</span><span class="NormalTextRun SCXW14628128 BCX8"> even use the best language model. Many research papers from 2026 have still failed to outperform its approach. The issue </span><span class="NormalTextRun SCXW14628128 BCX8">isn&#8217;t</span><span class="NormalTextRun SCXW14628128 BCX8"> really the model. </span><span class="NormalTextRun SCXW14628128 BCX8">It&#8217;s</span><span class="NormalTextRun SCXW14628128 BCX8"> how we link our schema and provide the right context to the model.</span></span><span class="EOP Selected SCXW14628128 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-0a786f1 elementor-widget elementor-widget-image" data-id="0a786f1" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="842" height="822" src="https://www.datagaps.com/wp-content/uploads/leaderboard-Execution-Accuracy.png" class="attachment-full size-full wp-image-64507" alt="" srcset="https://www.datagaps.com/wp-content/uploads/leaderboard-Execution-Accuracy.png 842w, https://www.datagaps.com/wp-content/uploads/leaderboard-Execution-Accuracy-300x293.png 300w, https://www.datagaps.com/wp-content/uploads/leaderboard-Execution-Accuracy-768x750.png 768w" sizes="(max-width: 842px) 100vw, 842px" />															</div>
				</div>
				<div class="elementor-element elementor-element-32e5553 elementor-widget elementor-widget-heading" data-id="32e5553" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">The paper — Automatic Metadata Extraction for Text-to-SQL — follows three steps: </h3>				</div>
				</div>
				<div class="elementor-element elementor-element-585095f elementor-widget elementor-widget-text-editor" data-id="585095f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong><span class="TextRun SCXW100282439 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW100282439 BCX8">First, Perform Data Profiling</span></span></strong><span class="TextRun SCXW100282439 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW100282439 BCX8"> — profile everything related to the data: NULL values, data types, minimum and maximum values, value lengths, distributions, and more. If your underlying data is incorrect, </span><span class="NormalTextRun SCXW100282439 BCX8">you&#8217;re</span><span class="NormalTextRun SCXW100282439 BCX8"> already starting with the wrong foundation.</span></span><span class="EOP Selected SCXW100282439 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-c394844 elementor-widget elementor-widget-text-editor" data-id="c394844" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong><span class="TextRun SCXW249405892 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW249405892 BCX8">Second, Generate Descriptions</span></span></strong><span class="TextRun SCXW249405892 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW249405892 BCX8"> — generate both short and detailed descriptions using the data profile created in the first step. If your data is </span><span class="NormalTextRun SCXW249405892 BCX8">accurate</span><span class="NormalTextRun SCXW249405892 BCX8">, the generated descriptions are naturally much more </span><span class="NormalTextRun SCXW249405892 BCX8">accurate</span><span class="NormalTextRun SCXW249405892 BCX8">. These descriptions are then converted into embeddings, enabling semantic search over your enterprise metadata.</span></span><span class="EOP Selected SCXW249405892 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-710c084 elementor-widget elementor-widget-text-editor" data-id="710c084" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong><span class="TextRun SCXW80347656 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW80347656 BCX8">Third, Create an LSH Index</span></span></strong><span class="TextRun SCXW80347656 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW80347656 BCX8"> — build a locality-sensitive hashing index over the most important distinct values so the system can efficiently retrieve literals based on the user&#8217;s query.</span></span><span class="EOP Selected SCXW80347656 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-c4e43ec elementor-widget elementor-widget-text-editor" data-id="c4e43ec" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="none">This approach has remained one of the top-performing solutions for over a year. It pushes one very simple idea:</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p><p>The better your data is, the better the metadata you can generate. The better your metadata is, the better context you can provide to AI. And the better the context, the better your AI solutions will perform. Both your metadata and your data need to be accurate and continuously validated<i><span data-contrast="none">.</span></i><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335557856&quot;:15792112,&quot;335559685&quot;:300,&quot;335559737&quot;:300,&quot;335559738&quot;:100,&quot;335559739&quot;:100,&quot;335559740&quot;:340,&quot;335572083&quot;:6,&quot;335572084&quot;:10,&quot;335572085&quot;:3308846,&quot;469789810&quot;:&quot;single&quot;}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-78d0a3f elementor-widget elementor-widget-text-editor" data-id="78d0a3f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW27452691 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW27452691 BCX8">The paper </span><span class="NormalTextRun SCXW27452691 BCX8">doesn&#8217;t</span><span class="NormalTextRun SCXW27452691 BCX8"> start by generating descriptions. It first profiles the data. </span><span class="NormalTextRun SCXW27452691 BCX8">That&#8217;s</span><span class="NormalTextRun SCXW27452691 BCX8"> exactly why tools like </span><span class="NormalTextRun SpellingErrorV2Themed SCXW27452691 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW27452691 BCX8">DataOps</span><span class="NormalTextRun SCXW27452691 BCX8"> Suite execute continuous Data Quality checks. They help ensure that the context reaching AI systems is not only descriptive but also trustworthy, making your enterprise significantly more AI-ready.</span></span><span class="EOP Selected SCXW27452691 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:100,&quot;335559740&quot;:340}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-929f4e9 elementor-widget elementor-widget-image" data-id="929f4e9" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="640" height="251" src="https://www.datagaps.com/wp-content/uploads/flow-chart-1024x401.png" class="attachment-large size-large wp-image-64508" alt="" srcset="https://www.datagaps.com/wp-content/uploads/flow-chart-1024x401.png 1024w, https://www.datagaps.com/wp-content/uploads/flow-chart-300x118.png 300w, https://www.datagaps.com/wp-content/uploads/flow-chart-768x301.png 768w, https://www.datagaps.com/wp-content/uploads/flow-chart.png 1120w" sizes="(max-width: 640px) 100vw, 640px" />															</div>
				</div>
				<div class="elementor-element elementor-element-bf2f76e elementor-widget elementor-widget-text-editor" data-id="bf2f76e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="color: #1967d2;"><a style="color: #1967d2;" href="https://www.datagaps.com/request-a-demo/" target="_blank" rel="noopener"><span style="text-decoration: underline;"><span class="TextRun SCXW128260341 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW128260341 BCX8"><span class="TextRun SCXW265958618 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW265958618 BCX8"><span class="TextRun SCXW28705792 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW28705792 BCX8">See how </span><span class="NormalTextRun SpellingErrorV2Themed SCXW28705792 BCX8">Datagaps</span><span class="NormalTextRun SCXW28705792 BCX8"> validates data across your Purview-governed pipeline</span></span><span class="EOP Selected SCXW28705792 BCX8" data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559738&quot;:360,&quot;335559739&quot;:120}"> </span>→</span></span></span></span></span></a></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-32908ef elementor-widget elementor-widget-heading" data-id="32908ef" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Frequently Asked Questions </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-923e752 elementor-widget elementor-widget-eael-adv-accordion" data-id="923e752" data-element_type="widget" data-e-type="widget" data-widget_type="eael-adv-accordion.default">
				<div class="elementor-widget-container">
					            <div class="eael-adv-accordion" id="eael-adv-accordion-923e752" data-scroll-on-click="no" data-scroll-speed="300" data-accordion-id="923e752" data-accordion-type="accordion" data-toogle-speed="300">
            <div class="eael-accordion-list">
					<div id="faq-1" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="1" aria-controls="elementor-tab-content-1531"><h3 class="eael-accordion-tab-title">What's the difference between a data catalog and AI-ready data? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1531" class="eael-accordion-content clearfix" data-tab="1" aria-labelledby="faq-1"><p><span class="TextRun SCXW70898593 BCX8"><span class="NormalTextRun SCXW70898593 BCX8">A data </span><span class="NormalTextRun SpellingErrorV2Themed SCXW70898593 BCX8">catalog</span><span class="NormalTextRun SCXW70898593 BCX8"> documents metadata — table structures, column types, and relationships. AI-ready data goes further by </span><span class="NormalTextRun SCXW70898593 BCX8">validating</span><span class="NormalTextRun SCXW70898593 BCX8"> that the underlying data is </span><span class="NormalTextRun SCXW70898593 BCX8">accurate</span><span class="NormalTextRun SCXW70898593 BCX8">, enriching it with AI-generated descriptions, and continuously </span><span class="NormalTextRun SCXW70898593 BCX8">monitoring</span><span class="NormalTextRun SCXW70898593 BCX8"> quality. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW70898593 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW70898593 BCX8">DataOps</span><span class="NormalTextRun SCXW70898593 BCX8"> Suite provides </span><span class="NormalTextRun AdvancedProofingIssueV2Themed SCXW70898593 BCX8">all of</span><span class="NormalTextRun SCXW70898593 BCX8"> these capabilities in a single platform.</span></span><span class="EOP Selected SCXW70898593 BCX8"> </span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-2" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="2" aria-controls="elementor-tab-content-1532"><h3 class="eael-accordion-tab-title">Why does data quality matter for enterprise AI? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1532" class="eael-accordion-content clearfix" data-tab="2" aria-labelledby="faq-2"><p><span class="TextRun SCXW11074766 BCX8"><span class="NormalTextRun SCXW11074766 BCX8">AI outputs are only as good as the context they receive. If your data </span><span class="NormalTextRun SCXW11074766 BCX8">contains</span><span class="NormalTextRun SCXW11074766 BCX8"> duplicates, NULL values, or broken business rules, the AI outputs — whether SQL queries, reports, or automated decisions — will be unreliable. Continuous data quality validation ensures only trusted data reaches your AI systems.</span></span><span class="EOP Selected SCXW11074766 BCX8"> </span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-3" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="3" aria-controls="elementor-tab-content-1533"><h3 class="eael-accordion-tab-title">How does Datagaps help enterprises become AI-ready? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1533" class="eael-accordion-content clearfix" data-tab="3" aria-labelledby="faq-3"><p><span class="TextRun SCXW211761210 BCX8"><span class="NormalTextRun SpellingErrorV2Themed SCXW211761210 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211761210 BCX8">DataOps</span><span class="NormalTextRun SCXW211761210 BCX8"> Suite combines data </span><span class="NormalTextRun SpellingErrorV2Themed SCXW211761210 BCX8">cataloging</span><span class="NormalTextRun SCXW211761210 BCX8">, automated data profiling, quality rule execution, scoring dashboards, and AI-generated column descriptions. This end-to-end approach ensures structured data is not just documented but </span><span class="NormalTextRun SCXW211761210 BCX8">validated</span><span class="NormalTextRun SCXW211761210 BCX8"> and enriched for AI consumption.</span></span><span class="EOP Selected SCXW211761210 BCX8"> </span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-4" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="4" aria-controls="elementor-tab-content-1534"><h3 class="eael-accordion-tab-title">What is the BIRD Benchmark and why does it matter? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1534" class="eael-accordion-content clearfix" data-tab="4" aria-labelledby="faq-4"><p><span class="TextRun SCXW205187633 BCX8"><span class="NormalTextRun SCXW205187633 BCX8">BIRD is the leading benchmark for evaluating Text-to-SQL systems on real-world enterprise databases. The top-ranked solution </span><span class="NormalTextRun SCXW205187633 BCX8">demonstrates</span><span class="NormalTextRun SCXW205187633 BCX8"> that data profiling and enriched metadata — not just a more powerful model — drive accuracy. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW205187633 BCX8">Datagaps</span><span class="NormalTextRun SCXW205187633 BCX8"> provides exactly these profiling and description capabilities.</span></span><span class="EOP Selected SCXW205187633 BCX8"> </span></p></div>
					</div><div class="eael-accordion-list">
					<div id="can-datagaps-generate-column-descriptions-automatically-" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="5" aria-controls="elementor-tab-content-1535"><h3 class="eael-accordion-tab-title">Can Datagaps generate column descriptions automatically? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1535" class="eael-accordion-content clearfix" data-tab="5" aria-labelledby="can-datagaps-generate-column-descriptions-automatically-"><p><span class="TextRun SCXW213215234 BCX8"><span class="NormalTextRun SCXW213215234 BCX8">Yes. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW213215234 BCX8">Datagaps</span><span class="NormalTextRun SCXW213215234 BCX8"> uses AI to automatically generate business-context descriptions for tables and columns. These descriptions serve as primary inputs to Text-to-SQL engines, RAG applications, and AI copilots — helping models understand what each column represents beyond just its name.</span></span><span class="EOP Selected SCXW213215234 BCX8"> </span></p></div>
					</div><div class="eael-accordion-list">
					<div id="how-long-does-it-take-to-set-up-data-quality-monitoring-with-datagaps-" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="6" aria-controls="elementor-tab-content-1536"><h3 class="eael-accordion-tab-title">How long does it take to set up data quality monitoring with Datagaps? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1536" class="eael-accordion-content clearfix" data-tab="6" aria-labelledby="how-long-does-it-take-to-set-up-data-quality-monitoring-with-datagaps-"><p><span class="TextRun SCXW96522016 BCX8"><span class="NormalTextRun SpellingErrorV2Themed SCXW96522016 BCX8">Datagaps</span><span class="NormalTextRun SCXW96522016 BCX8"> offers a no-code interface for defining and executing data quality rules. Setup typically takes hours, not weeks. Automated profiling scans your database structure, and AI-assisted rule generation helps define quality checks across hundreds of tables without manual configuration.</span></span><span class="EOP Selected SCXW96522016 BCX8"> </span></p></div>
					</div></div>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-62980c3 e-flex e-con-boxed e-con e-parent" data-id="62980c3" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-1ac3fec e-con-full e-flex e-con e-child" data-id="1ac3fec" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-f5d35f8 e-con-full e-flex e-con e-child" data-id="f5d35f8" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-184c126 elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading" data-id="184c126" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<span class="elementor-heading-title elementor-size-default">Get Started Today</span>				</div>
				</div>
				<div class="elementor-element elementor-element-4a9257d elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading" data-id="4a9257d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Talk to a datagaps expert</h2>				</div>
				</div>
		<div class="elementor-element elementor-element-e2d718a e-con-full e-flex e-con e-child" data-id="e2d718a" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-0b52229 elementor-widget__width-auto home-btn-new elementor-widget elementor-widget-button" data-id="0b52229" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.datagaps.com/request-a-demo/" target="_blank">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Get a Demo</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-7b1b3d1 elementor-widget__width-auto home-btn-new elementor-widget elementor-widget-button" data-id="7b1b3d1" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.datagaps.com/contact-us/" target="_blank">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Contact Us</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f8574ba e-flex e-con-boxed e-con e-parent" data-id="f8574ba" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-6b8079b e-con-full e-flex e-con e-child" data-id="6b8079b" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-86810af e-con-full e-flex e-con e-child" data-id="86810af" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-f437041 e-con-full e-flex e-con e-child" data-id="f437041" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-eaeece0 elementor-widget-laptop__width-initial elementor-widget elementor-widget-image" data-id="eaeece0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="150" height="150" src="https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png" class="attachment-thumbnail size-thumbnail wp-image-53799" alt="Raj Mohan Achanta" srcset="https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png 150w, https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-300x300.png 300w, https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta.png 504w" sizes="(max-width: 150px) 100vw, 150px" />															</div>
				</div>
		<div class="elementor-element elementor-element-ff250c2 e-con-full e-flex e-con e-child" data-id="ff250c2" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-f8a8b4d elementor-position-inline-end elementor-mobile-position-inline-start elementor-widget-laptop__width-initial elementor-view-default elementor-widget elementor-widget-icon-box" data-id="f8a8b4d" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/" class="elementor-icon" tabindex="-1" aria-label="RajMohan Achanta">
				<i aria-hidden="true" class="fab fa-linkedin-in"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h5 class="elementor-icon-box-title">
						<a href="https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/" >
							RajMohan Achanta						</a>
					</h5>
				
									<p class="elementor-icon-box-description">
						Associate Product Manager, Datagaps					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-d390cfb elementor-widget elementor-widget-text-editor" data-id="d390cfb" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Associate Product Manager at Datagaps. Shapes the product experience across ETL Validator, BI Validator, and Data Quality Monitor.</p>								</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-a7960cb e-con-full e-flex e-con e-child" data-id="a7960cb" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-66b97d0 elementor-widget-laptop__width-initial elementor-widget elementor-widget-image" data-id="66b97d0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="150" height="150" src="https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png" class="attachment-thumbnail size-thumbnail wp-image-54463" alt="Avinash&apos;s picture" srcset="https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png 150w, https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-300x300.png 300w, https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2.png 504w" sizes="(max-width: 150px) 100vw, 150px" />															</div>
				</div>
		<div class="elementor-element elementor-element-5e8a351 e-con-full e-flex e-con e-child" data-id="5e8a351" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-6e0b636 elementor-position-inline-end elementor-mobile-position-inline-start elementor-view-default elementor-widget elementor-widget-icon-box" data-id="6e0b636" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://www.linkedin.com/in/avinashkeshri-iimb/" class="elementor-icon" tabindex="-1" aria-label="Avinash Keshri">
				<i aria-hidden="true" class="fab fa-linkedin-in"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h5 class="elementor-icon-box-title">
						<a href="https://www.linkedin.com/in/avinashkeshri-iimb/" >
							Avinash Keshri						</a>
					</h5>
				
									<p class="elementor-icon-box-description">
						Head, Product Marketing					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-1e2303c elementor-widget elementor-widget-text-editor" data-id="1e2303c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Head of Product Marketing at Datagaps and IIM Bangalore alumnus. 13+ years of experience in commercializing AI and data platforms across global markets.</p>								</div>
				</div>
				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://www.datagaps.com/blog/ai-ready-data-beyond-data-catalog/">Beyond the Data Catalog: What Makes Enterprise Data Truly AI-Ready?</a> appeared first on <a href="https://www.datagaps.com">Datagaps | Gen AI-Powered Automated Cloud Data Testing</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Datagaps vs Wiiisdom: Choosing an AnalyticsOps Platform for Agentic Analytics</title>
		<link>https://www.datagaps.com/blog/datagaps-vs-wiiisdom/</link>
		
		<dc:creator><![CDATA[Raj Mohan Achanta]]></dc:creator>
		<pubDate>Thu, 29 Oct 2026 09:16:56 +0000</pubDate>
				<category><![CDATA[BI Testing]]></category>
		<category><![CDATA[Data Validation]]></category>
		<category><![CDATA[AnalyticsOps platform]]></category>
		<category><![CDATA[Power BI testing tool]]></category>
		<category><![CDATA[Tableau testing tool]]></category>
		<category><![CDATA[Tableau to Power BI migration validation]]></category>
		<category><![CDATA[Wiiisdom alternative]]></category>
		<guid isPermaLink="false">https://www.datagaps.com/?p=64305</guid>

					<description><![CDATA[<p>Datagaps vs Wiiisdom for AnalyticsOps and agentic analytics: BI numbers proven against the source, filter coverage, governance and AI agents compared.</p>
<p>The post <a href="https://www.datagaps.com/blog/datagaps-vs-wiiisdom/">Datagaps vs Wiiisdom: Choosing an AnalyticsOps Platform for Agentic Analytics</a> appeared first on <a href="https://www.datagaps.com">Datagaps | Gen AI-Powered Automated Cloud Data Testing</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="64305" class="elementor elementor-64305" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-c290c20 e-flex e-con-boxed e-con e-parent" data-id="c290c20" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-473dde9 e-con-full e-flex e-con e-child" data-id="473dde9" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-1bf3878 elementor-widget elementor-widget-heading" data-id="1bf3878" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default"><h2 style="margin:0" data-elementor-setting-key="title" data-pen-placeholder="Type Here...">
    
    <span style="color: #ffffff;font-family: Manrope, sans-serif;font-size: 44px;font-weight: 700">
        Datagaps vs Wiiisdom: An Overview
    </span>

</h2></h2>				</div>
				</div>
				<div class="elementor-element elementor-element-ec02196 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="ec02196" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p style="margin: 0 0 18px;"><span style="color: #5ee59a;"><strong>Datagaps vs Wiiisdom: </strong></span>Both are AnalyticsOps platforms for Power BI and Tableau. Wiiisdom is built around governance: certification, lifecycle management and monitoring. Datagaps governs and monitors the BI estate too, and adds what agentic analytics depends on: proof that each number matches the source data, across the filter states users and AI agents will query.</p>								</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-951a764 e-flex e-con-boxed e-con e-parent" data-id="951a764" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-568db56 e-con-full e-flex e-con e-child" data-id="568db56" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;gradient&quot;}">
				<div class="elementor-element elementor-element-edbe164 elementor-widget-mobile__width-initial elementor-widget elementor-widget-heading" data-id="edbe164" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">The Verdict at a Glance </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-3cb0d4e bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="3cb0d4e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Datagaps is the stronger choice when the question is whether the numbers are right. Wiiisdom suits teams whose priority is certifying and promoting BI content. Where as Datagaps:</p><ul><li><span data-contrast="auto">Checks each Power BI and Tableau figure against the source data, not only against an earlier version of the report.</span><span data-ccp-props="{&quot;335559739&quot;:90}"> </span></li><li><span data-contrast="auto">Generates every combination of the filter values you select and runs the same check on each one.</span><span data-ccp-props="{&quot;335559739&quot;:90}"> </span></li><li><span data-contrast="auto">Validates Tableau to Power BI migrations three ways: old report, new report and source.</span><span data-ccp-props="{&quot;335559739&quot;:90}"> </span></li><li><span data-contrast="auto">Monitors the BI estate with the BI Governance Hub and lets AI agents build tests under admin control.</span></li></ul>								</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-afeffc9 e-flex e-con-boxed e-con e-parent" data-id="afeffc9" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-5acea55 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="5acea55" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="color: #1967d2; text-decoration: underline;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/request-a-demo/" target="_blank" rel="noopener">See BI Validator check your own dashboards →</a></span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-7b4ba06 e-flex e-con-boxed e-con e-parent" data-id="7b4ba06" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-8822a00 elementor-widget elementor-widget-heading" data-id="8822a00" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Why Does AnalyticsOps Matter More With Agentic Analytics?</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-9db9b4e e-flex e-con-boxed e-con e-parent" data-id="9db9b4e" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-b6d7948 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="b6d7948" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>AnalyticsOps applies DevOps habits to BI: automated testing, monitoring and release control. Three changes make it harder to keep BI numbers right by hand.</p><ul><li><strong>AI now answers from BI models.</strong> Copilot and agentic analytics tools query the same semantic models and measures as dashboards. Gartner predicts that by 2028, 60% of self-service analytics users will use general-purpose LLMs for ad hoc and exploratory analysis. A wrong measure now reaches people through chat as well as charts.</li><li><strong>Filters multiply the work.</strong> Three filters with three values each give 27 states on a single report page. Manual testing reaches a few of them.</li><li><strong>Migrations put every number in question.</strong> A Tableau to Power BI move can cover thousands of dashboards, and each one has to show the same figures afterwards.</li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-14f7460 elementor-widget elementor-widget-image" data-id="14f7460" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1600" height="579" src="https://www.datagaps.com/wp-content/uploads/bi-filter-matrix-27-combinations.webp" class="attachment-full size-full wp-image-64297" alt="BI filter matrix: three filters with three selected values each produce 27 combinations, each validated against the source" srcset="https://www.datagaps.com/wp-content/uploads/bi-filter-matrix-27-combinations.webp 1600w, https://www.datagaps.com/wp-content/uploads/bi-filter-matrix-27-combinations-300x109.webp 300w, https://www.datagaps.com/wp-content/uploads/bi-filter-matrix-27-combinations-1024x371.webp 1024w, https://www.datagaps.com/wp-content/uploads/bi-filter-matrix-27-combinations-768x278.webp 768w, https://www.datagaps.com/wp-content/uploads/bi-filter-matrix-27-combinations-1536x556.webp 1536w" sizes="(max-width: 1600px) 100vw, 1600px" />											<figcaption class="widget-image-caption wp-caption-text">Figure 1. The BI filter matrix. One validation, run once for each combination of the selected filter values.</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-6e9bfa3 e-flex e-con-boxed e-con e-parent" data-id="6e9bfa3" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-2838804 elementor-widget elementor-widget-heading" data-id="2838804" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">The AnalyticsOps Trust Model</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-9f80188 e-flex e-con-boxed e-con e-parent" data-id="9f80188" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-d99c6e5 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="d99c6e5" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>We compare the two platforms on five questions. The first is about the BI estate, the middle three decide whether a number can be trusted, and the last is about doing it at scale.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-520ee5c elementor-widget elementor-widget-image" data-id="520ee5c" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1600" height="600" src="https://www.datagaps.com/wp-content/uploads/analyticsops-trust-model-1.webp" class="attachment-full size-full wp-image-64430" alt="" srcset="https://www.datagaps.com/wp-content/uploads/analyticsops-trust-model-1.webp 1600w, https://www.datagaps.com/wp-content/uploads/analyticsops-trust-model-1-300x113.webp 300w, https://www.datagaps.com/wp-content/uploads/analyticsops-trust-model-1-1024x384.webp 1024w, https://www.datagaps.com/wp-content/uploads/analyticsops-trust-model-1-768x288.webp 768w, https://www.datagaps.com/wp-content/uploads/analyticsops-trust-model-1-1536x576.webp 1536w" sizes="(max-width: 1600px) 100vw, 1600px" />											<figcaption class="widget-image-caption wp-caption-text">Figure 2. The AnalyticsOps Trust Model.</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-2a85286 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="2a85286" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Prove, Cover and Protect carry the most weight. A well-governed report that shows a wrong number is still wrong, and an AI agent will repeat it.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-1cf8846 e-flex e-con-boxed e-con e-parent" data-id="1cf8846" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-07d8da8 elementor-widget elementor-widget-heading" data-id="07d8da8" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">How Do Datagaps and Wiiisdom Approach AnalyticsOps?</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-b044c0b e-flex e-con-boxed e-con e-parent" data-id="b044c0b" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-fcc010d e-con-full e-flex e-con e-child" data-id="fcc010d" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-1c83bff e-con-full e-flex e-con e-child" data-id="1c83bff" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-34a7f09 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="34a7f09" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">&nbsp;</p>				</div>
				</div>
				<div class="elementor-element elementor-element-c46ff6e elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="c46ff6e" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Wiiisdom</p>				</div>
				</div>
				<div class="elementor-element elementor-element-c6ee2fe elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="c6ee2fe" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Datagaps</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-7ae983c e-con-full e-flex e-con e-child" data-id="7ae983c" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-c76df78 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="c76df78" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Starting point</p>				</div>
				</div>
				<div class="elementor-element elementor-element-6823ac6 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="6823ac6" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Analytics governance; tests feed certification</p>				</div>
				</div>
				<div class="elementor-element elementor-element-5c25ab0 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="5c25ab0" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">BI testing; every figure proven against its source</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-494c867 e-con-full e-flex e-con e-child" data-id="494c867" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-68c7ae7 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="68c7ae7" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Governance</p>				</div>
				</div>
				<div class="elementor-element elementor-element-d854fbd elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="d854fbd" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Certification, lifecycle management, predictive monitoring</p>				</div>
				</div>
				<div class="elementor-element elementor-element-3110b44 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="3110b44" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">BI Governance Hub, BI Analyzer and BI Catalog</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-07743f5 e-con-full e-flex e-con e-child" data-id="07743f5" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-9e4e5e9 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="9e4e5e9" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">BI platforms</p>				</div>
				</div>
				<div class="elementor-element elementor-element-30eec69 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="30eec69" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Tableau, Power BI, SAP BusinessObjects</p>				</div>
				</div>
				<div class="elementor-element elementor-element-e5974cc elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="e5974cc" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Tableau, Power BI, Oracle Analytics and other BI platforms</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-eb0f3ee e-con-full e-flex e-con e-child" data-id="eb0f3ee" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-6c05c78 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="6c05c78" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Beyond BI</p>				</div>
				</div>
				<div class="elementor-element elementor-element-f3e349d elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="f3e349d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Not covered</p>				</div>
				</div>
				<div class="elementor-element elementor-element-4d2c2dd elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="4d2c2dd" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">ETL, data quality and test data on the same suite</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-698e459 e-con-full e-flex e-con e-child" data-id="698e459" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-2e0b4df elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="2e0b4df" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Deployment</p>				</div>
				</div>
				<div class="elementor-element elementor-element-9ebd35b elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="9ebd35b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">SaaS</p>				</div>
				</div>
				<div class="elementor-element elementor-element-78eb6c1 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="78eb6c1" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">On-premises or your own cloud</p>				</div>
				</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-cb8f00d bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="cb8f00d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h3>Status versus proof</h3>
<p>Wiiisdom&#8217;s certification puts a &#8220;certified&#8221; badge on a dashboard when it passes its tests and removes it when a later test fails. That is more than Tableau and Power BI do natively, where an administrator sets the label by hand.</p>
<p>The badge records that tests passed; it does not compare the figure with the warehouse. If a broken measure drops €0.4M, the model refreshes, the figure meets its rules and the badge stays. BI Validator queries the warehouse under the same filters, gets €4.6M instead of €4.2M and fails the test.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-d7bdd45 elementor-widget elementor-widget-image" data-id="d7bdd45" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1600" height="614" src="https://www.datagaps.com/wp-content/uploads/Datagaps-Status-versus-proof.png" class="attachment-full size-full wp-image-64441" alt="Datagaps Status versus proof" srcset="https://www.datagaps.com/wp-content/uploads/Datagaps-Status-versus-proof.png 1600w, https://www.datagaps.com/wp-content/uploads/Datagaps-Status-versus-proof-300x115.png 300w, https://www.datagaps.com/wp-content/uploads/Datagaps-Status-versus-proof-1024x393.png 1024w, https://www.datagaps.com/wp-content/uploads/Datagaps-Status-versus-proof-768x295.png 768w, https://www.datagaps.com/wp-content/uploads/Datagaps-Status-versus-proof-1536x589.png 1536w" sizes="(max-width: 1600px) 100vw, 1600px" />											<figcaption class="widget-image-caption wp-caption-text">Figure 3. A certified report can still show the wrong number. A source check catches it.</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-741d193 e-flex e-con-boxed e-con e-parent" data-id="741d193" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-deaec31 elementor-widget elementor-widget-heading" data-id="deaec31" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">How Do They Compare, Layer by Layer?</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-30bf016 e-flex e-con-boxed e-con e-parent" data-id="30bf016" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-0f15b47 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="0f15b47" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Wiiisdom entries come from its public product pages and release notes as of October 2026.</p>								</div>
				</div>
		<div class="elementor-element elementor-element-4c38ab3 e-con-full e-flex e-con e-child" data-id="4c38ab3" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-137fb6b e-con-full e-flex e-con e-child" data-id="137fb6b" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-4cfc15c elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="4cfc15c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Layer</p>				</div>
				</div>
				<div class="elementor-element elementor-element-92de577 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="92de577" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Capability</p>				</div>
				</div>
				<div class="elementor-element elementor-element-5e338d9 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="5e338d9" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Datagaps</p>				</div>
				</div>
				<div class="elementor-element elementor-element-8c771d1 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="8c771d1" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Wiiisdom</p>				</div>
				</div>
				<div class="elementor-element elementor-element-844d54d elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="844d54d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Edge</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-5feab28 e-con-full e-flex e-con e-child" data-id="5feab28" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-b37ef7b elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="b37ef7b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Prove</p>				</div>
				</div>
				<div class="elementor-element elementor-element-9233653 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="9233653" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Power BI vs source</p>				</div>
				</div>
				<div class="elementor-element elementor-element-a864410 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="a864410" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Each visual's DAX converted to SQL and compared with the warehouse</p>				</div>
				</div>
				<div class="elementor-element elementor-element-f6497d3 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="f6497d3" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Checks inside the model; no source comparison described</p>				</div>
				</div>
				<div class="elementor-element elementor-element-ce5d3ff elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="ce5d3ff" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default"><span style="font-weight:700">Datagaps</span></p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-2288cc9 e-con-full e-flex e-con e-child" data-id="2288cc9" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-59a0582 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="59a0582" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Cover</p>				</div>
				</div>
				<div class="elementor-element elementor-element-fb4e601 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="fb4e601" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Filter combinations</p>				</div>
				</div>
				<div class="elementor-element elementor-element-9598206 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="9598206" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Every combination of selected report, page, visual and slicer values</p>				</div>
				</div>
				<div class="elementor-element elementor-element-a000f3b elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="a000f3b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">One filter change per Power BI user journey; Tableau filter checks coming to its cloud platform</p>				</div>
				</div>
				<div class="elementor-element elementor-element-14d63ba elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="14d63ba" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default"><span style="color:#4E4E4E;font-weight:700">Datagaps</span></p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-aa42667 e-con-full e-flex e-con e-child" data-id="aa42667" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-5b33e2e elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="5b33e2e" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Govern</p>				</div>
				</div>
				<div class="elementor-element elementor-element-70a494f elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="70a494f" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Certification</p>				</div>
				</div>
				<div class="elementor-element elementor-element-80e91c2 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="80e91c2" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Flags heavily used content nobody has certified</p>				</div>
				</div>
				<div class="elementor-element elementor-element-938cbd6 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="938cbd6" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Badge applied and removed automatically from test results</p>				</div>
				</div>
				<div class="elementor-element elementor-element-c32bdad elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="c32bdad" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default"><span style="color:#4E4E4E;font-weight:700">Wiiisdom</span></p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-e02461a e-con-full e-flex e-con e-child" data-id="e02461a" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-f36712c elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="f36712c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Govern</p>				</div>
				</div>
				<div class="elementor-element elementor-element-55acba3 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="55acba3" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Content lifecycle</p>				</div>
				</div>
				<div class="elementor-element elementor-element-cefdc33 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="cefdc33" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Tests run in your CI/CD pipeline; deployment stays with Tableau and Power BI tools</p>				</div>
				</div>
				<div class="elementor-element elementor-element-beaa58f elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="beaa58f" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Promotes Tableau content from development to production with approval gates and version history</p>				</div>
				</div>
				<div class="elementor-element elementor-element-d5bdaf5 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="d5bdaf5" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default"><span style="color:#4E4E4E;font-weight:700">Wiiisdom</span></p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-96648fd e-con-full e-flex e-con e-child" data-id="96648fd" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-4382561 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="4382561" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Monitor</p>				</div>
				</div>
				<div class="elementor-element elementor-element-92b88d6 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="92b88d6" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Estate monitoring</p>				</div>
				</div>
				<div class="elementor-element elementor-element-3898863 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="3898863" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Governance Hub: refresh, capacity, usage and compliance monitors; 12-week capacity runway; owner alerts</p>				</div>
				</div>
				<div class="elementor-element elementor-element-6a3da0b elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="6a3da0b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Predictive monitoring, capacity planning, governance agents</p>				</div>
				</div>
				<div class="elementor-element elementor-element-391652c elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="391652c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default"><span style="color:#555555;font-weight:700">Level</span></p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-03028e2 e-con-full e-flex e-con e-child" data-id="03028e2" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-658a738 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="658a738" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Govern</p>				</div>
				</div>
				<div class="elementor-element elementor-element-7c6223d elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="7c6223d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Metadata and clean-up</p>				</div>
				</div>
				<div class="elementor-element elementor-element-517f7bc elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="517f7bc" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">BI Analyzer, BI Catalog, metadata compare; unused, duplicate and orphaned content</p>				</div>
				</div>
				<div class="elementor-element elementor-element-49dffa6 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="49dffa6" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Duplicate content agent for Power BI</p>				</div>
				</div>
				<div class="elementor-element elementor-element-94b83b4 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="94b83b4" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default"><span style="color:#4E4E4E;font-weight:700">Datagaps</span></p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-049bb81 e-con-full e-flex e-con e-child" data-id="049bb81" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-d5331de elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="d5331de" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Prove</p>				</div>
				</div>
				<div class="elementor-element elementor-element-dd401e9 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="dd401e9" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Tableau vs source</p>				</div>
				</div>
				<div class="elementor-element elementor-element-d78785d elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="d78785d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Worksheet data compared with SQL, with a non-AI option</p>				</div>
				</div>
				<div class="elementor-element elementor-element-424ef39 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="424ef39" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Accuracy checks against the source</p>				</div>
				</div>
				<div class="elementor-element elementor-element-79852e7 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="79852e7" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default"><span style="color:#555555;font-weight:700">Level</span></p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-8b11203 e-con-full e-flex e-con e-child" data-id="8b11203" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-d45cbf5 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="d45cbf5" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Protect</p>				</div>
				</div>
				<div class="elementor-element elementor-element-6cf63fa elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="6cf63fa" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Regression testing</p>				</div>
				</div>
				<div class="elementor-element elementor-element-073a1d9 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="073a1d9" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Data, visual and functional comparison across versions and environments</p>				</div>
				</div>
				<div class="elementor-element elementor-element-cee9453 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="cee9453" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Regression and cross-environment tests</p>				</div>
				</div>
				<div class="elementor-element elementor-element-7536df2 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="7536df2" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default"><span style="color:#555555;font-weight:700">Level</span></p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-05c0350 e-con-full e-flex e-con e-child" data-id="05c0350" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-a8a3ba0 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="a8a3ba0" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Protect</p>				</div>
				</div>
				<div class="elementor-element elementor-element-2633eff elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="2633eff" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Tableau to Power BI</p>				</div>
				</div>
				<div class="elementor-element elementor-element-7cbc2d4 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="7cbc2d4" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Old report vs new report vs source</p>				</div>
				</div>
				<div class="elementor-element elementor-element-4bce512 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="4bce512" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Field-by-field reconciliation claimed; method not published</p>				</div>
				</div>
				<div class="elementor-element elementor-element-33f292c elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="33f292c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default"><span style="color:#4E4E4E;font-weight:700">Datagaps</span></p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-5107ec8 e-con-full e-flex e-con e-child" data-id="5107ec8" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-975e0e4 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="975e0e4" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Protect</p>				</div>
				</div>
				<div class="elementor-element elementor-element-931b738 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="931b738" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Load testing</p>				</div>
				</div>
				<div class="elementor-element elementor-element-2e53bfb elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="2e53bfb" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Power BI, Tableau and Oracle Analytics</p>				</div>
				</div>
				<div class="elementor-element elementor-element-3496fdf elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="3496fdf" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Tableau</p>				</div>
				</div>
				<div class="elementor-element elementor-element-9e92151 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="9e92151" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default"><span style="color:#4E4E4E;font-weight:700">Datagaps</span></p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-65c5b20 e-con-full e-flex e-con e-child" data-id="65c5b20" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-d55e2de elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="d55e2de" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Automate</p>				</div>
				</div>
				<div class="elementor-element elementor-element-1514fe8 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="1514fe8" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">AI and agents</p>				</div>
				</div>
				<div class="elementor-element elementor-element-379cd90 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="379cd90" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">AI Workflows, plain-English tests, MCP server, admin-approved tools</p>				</div>
				</div>
				<div class="elementor-element elementor-element-5fbf995 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="5fbf995" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Governance agents, AI-assisted Tableau testing, MCP access</p>				</div>
				</div>
				<div class="elementor-element elementor-element-a84a816 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="a84a816" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default"><span style="color:#555555;font-weight:700">Level</span></p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-cf2748f e-con-full e-flex e-con e-child" data-id="cf2748f" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-d2e9651 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="d2e9651" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Beyond BI</p>				</div>
				</div>
				<div class="elementor-element elementor-element-5e91316 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="5e91316" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Data underneath</p>				</div>
				</div>
				<div class="elementor-element elementor-element-fdf0b64 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="fdf0b64" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">ETL Validator, Data Quality Monitor, Test Data Manager</p>				</div>
				</div>
				<div class="elementor-element elementor-element-ec7455d elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="ec7455d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Not covered</p>				</div>
				</div>
				<div class="elementor-element elementor-element-0d630f8 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="0d630f8" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default"><span style="color:#4E4E4E;font-weight:700">Datagaps</span></p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-4b762cc e-con-full e-flex e-con e-child" data-id="4b762cc" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-1593a46 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="1593a46" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Other</p>				</div>
				</div>
				<div class="elementor-element elementor-element-708feed elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="708feed" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">SAP BusinessObjects</p>				</div>
				</div>
				<div class="elementor-element elementor-element-856ff8b elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="856ff8b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Not a focus</p>				</div>
				</div>
				<div class="elementor-element elementor-element-c5b52dd elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="c5b52dd" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">360Suite, a dedicated product</p>				</div>
				</div>
				<div class="elementor-element elementor-element-e301b4c elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="e301b4c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default"><span style="color:#4E4E4E;font-weight:700">Wiiisdom</span></p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-2a3ca0b e-con-full e-flex e-con e-child" data-id="2a3ca0b" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-cf99f2b elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="cf99f2b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Other</p>				</div>
				</div>
				<div class="elementor-element elementor-element-46a7809 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="46a7809" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Deployment</p>				</div>
				</div>
				<div class="elementor-element elementor-element-15cd294 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="15cd294" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">On-premises or your own cloud</p>				</div>
				</div>
				<div class="elementor-element elementor-element-397d4d2 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="397d4d2" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">SaaS platform; nothing to deploy on-premises</p>				</div>
				</div>
				<div class="elementor-element elementor-element-02f663c elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="02f663c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default"><span style="color:#555555;font-weight:700">Depends</span></p>				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-a548e7c e-flex e-con-boxed e-con e-parent" data-id="a548e7c" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-cfc66b3 e-con-full e-flex e-con e-child" data-id="cfc66b3" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-248eb9a bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="248eb9a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>What the scorecard shows: </strong>Datagaps leads on proving numbers against the source, covering filter states and validating migrations. Wiiisdom leads on certification, content promotion and SAP BusinessObjects. Monitoring, regression testing and AI automation are close.</p>								</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f6eb34f e-flex e-con-boxed e-con e-parent" data-id="f6eb34f" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a4220e2 elementor-widget elementor-widget-heading" data-id="a4220e2" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Where Does Datagaps Go Further?</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-00e9419 e-flex e-con-boxed e-con e-parent" data-id="00e9419" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-38fa8c8 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="38fa8c8" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h3>Prove: every visual checked against the source</h3><p>Visual-to-SQL pulls the query behind each visual, DAX for Power BI and worksheet logic for Tableau, converts it to SQL for the connected database and shows the two side by side for review. Report Data Compare then lists rows only in the report, rows only in the database and mismatched values. QA teams can test a dashboard without knowing DAX.</p><p>A global hospitality company runs 96 automated validation pipelines this way against <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/power-bi-automation-testing-tools/" target="_blank" rel="noopener">Power BI</a></span> and cut QA effort by 70%.</p><h3>Cover: the BI filter matrix</h3><p><span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/bi-testing-tools/" target="_blank" rel="noopener">BI Validator</a></span> captures filter values at report, page, visual and slicer level, including hierarchies such as year, quarter and month. It multiplies the selected values into a filter dataset and runs the same validation once per combination. The dataset can be regenerated when values change and reused in another environment.</p><p>A global consulting firm using BI Validator saved about 70% of its report validation time and cut turnaround by 80%.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-a878cc0 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="a878cc0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="color: #1967d2; text-decoration: underline;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/request-a-demo/" target="_blank" rel="noopener">See BI Validator build the filter matrix for your report →</a></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-bb21323 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="bb21323" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h3>Protect: three-way migration checks</h3><p>Datagaps validates migrations rather than performing them, so the check stays independent of the partner doing the work. Each new Power BI report is compared with the old Tableau report and with the source, under the same filters. KPIs, visuals and metadata are compared as well, and DAX is converted to SQL so measure logic can be checked. After cutover, the same tests run as regression.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-19e97cc elementor-widget elementor-widget-image" data-id="19e97cc" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1600" height="1012" src="https://www.datagaps.com/wp-content/uploads/three-way-migration-check-tableau-power-bi.webp" class="attachment-full size-full wp-image-64300" alt="Three-way migration check between the old Tableau report, the new Power BI report and the source data" srcset="https://www.datagaps.com/wp-content/uploads/three-way-migration-check-tableau-power-bi.webp 1600w, https://www.datagaps.com/wp-content/uploads/three-way-migration-check-tableau-power-bi-300x190.webp 300w, https://www.datagaps.com/wp-content/uploads/three-way-migration-check-tableau-power-bi-1024x648.webp 1024w, https://www.datagaps.com/wp-content/uploads/three-way-migration-check-tableau-power-bi-768x486.webp 768w, https://www.datagaps.com/wp-content/uploads/three-way-migration-check-tableau-power-bi-1536x972.webp 1536w" sizes="(max-width: 1600px) 100vw, 1600px" />											<figcaption class="widget-image-caption wp-caption-text">Figure 4. Three-way migration check: all three must agree.</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-7973968 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="7973968" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h3>Automate: AI builds the tests, people approve them</h3><ul><li>One request to the Global AI Assistant creates a report&#8217;s test, runs it and returns the result.</li><li>A mismatch analyser agent explains failures in plain English and posts them to email, Teams or Slack.</li><li>The DAX AI Assistant writes DAX from a plain-English question for testers who don&#8217;t know DAX.</li><li>Agents call only the tools an administrator approves, with each user&#8217;s own permissions. Teams choose their AI provider and can run on-premises.</li></ul><h3>Beyond BI: the data underneath</h3><p>Many report errors start upstream. <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-validation-etl-testing-tools/" target="_blank" rel="noopener">ETL Validator</a></span>, <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-quality-monitoring-tools/" target="_blank" rel="noopener">Data Quality Monitor</a></span> and <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/test-data-manager/" target="_blank" rel="noopener">Test Data Manager</a></span> cover pipelines, data quality and test data on the same suite, so a check can start at a source table and end at a dashboard visual. Wiiisdom&#8217;s own 2026 market landscape lists BI Validator with coverage from ETL processes and data reconciliation through to the BI report layer.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-c1edc40 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="c1edc40" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="color: #1967d2; text-decoration: underline;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/request-a-demo/" target="_blank" rel="noopener">See the five layers on your own reports →</a></span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-17ccb39 e-flex e-con-boxed e-con e-parent" data-id="17ccb39" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a7b703a elementor-widget elementor-widget-heading" data-id="a7b703a" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What Wiiisdom Claims, and What Holds Up</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-2096dec e-flex e-con-boxed e-con e-parent" data-id="2096dec" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-d88b60f e-con-full e-flex e-con e-child" data-id="d88b60f" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-d721754 e-con-full e-flex e-con e-child" data-id="d721754" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-7f0c7da elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="7f0c7da" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">#</p>				</div>
				</div>
				<div class="elementor-element elementor-element-019d699 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="019d699" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Wiiisdom claim</p>				</div>
				</div>
				<div class="elementor-element elementor-element-99030c3 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="99030c3" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">What we found</p>				</div>
				</div>
				<div class="elementor-element elementor-element-811b5ac elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="811b5ac" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Verdict</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-c44662c e-con-full e-flex e-con e-child" data-id="c44662c" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-5fba34f elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="5fba34f" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">1</p>				</div>
				</div>
				<div class="elementor-element elementor-element-745e207 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="745e207" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Clean data alone does not make a decision correct</p>				</div>
				</div>
				<div class="elementor-element elementor-element-9503b7c elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="9503b7c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Agreed. Errors also enter in the BI layer, which is why BI testing matters.</p>				</div>
				</div>
				<div class="elementor-element elementor-element-d83b524 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="d83b524" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Holds up</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-1c96225 e-con-full e-flex e-con e-child" data-id="1c96225" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-5bbff46 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="5bbff46" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">2</p>				</div>
				</div>
				<div class="elementor-element elementor-element-4f89516 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="4f89516" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Accuracy tests reconcile reports with the source</p>				</div>
				</div>
				<div class="elementor-element elementor-element-203466c elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="203466c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Described for Tableau. Its Power BI tests run inside the model, with no source comparison described.</p>				</div>
				</div>
				<div class="elementor-element elementor-element-5aeb873 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="5aeb873" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Tableau yes; Power BI not shown</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-a5d78f2 e-con-full e-flex e-con e-child" data-id="a5d78f2" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-e987a58 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="e987a58" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">3</p>				</div>
				</div>
				<div class="elementor-element elementor-element-b3eb3b4 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="b3eb3b4" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">The first Agentic Analytics Governance platform</p>				</div>
				</div>
				<div class="elementor-element elementor-element-8f8f9b3 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="8f8f9b3" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">A positioning claim. Its governance agents started with the October 2026 release, beginning with duplicate detection for Power BI.</p>				</div>
				</div>
				<div class="elementor-element elementor-element-7a010a3 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="7a010a3" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Unverified</p>				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-7a0fad0 e-flex e-con-boxed e-con e-parent" data-id="7a0fad0" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-9377bc4 elementor-widget elementor-widget-heading" data-id="9377bc4" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What Do Teams Moving Off Wiiisdom Report?</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-53c0276 e-flex e-con-boxed e-con e-parent" data-id="53c0276" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-60c1f05 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="60c1f05" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Teams that have moved on from Wiiisdom, or its earlier Kinesis-CI product, describe similar frustrations, and support comes up first. One BI lead said: &#8220;They would take ages to reply&#8230; they never really had a solution for anything.&#8221;</p>								</div>
				</div>
		<div class="elementor-element elementor-element-d3146ea e-con-full e-flex e-con e-child" data-id="d3146ea" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-9735ea3 e-con-full e-flex e-con e-child" data-id="9735ea3" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-701108b elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="701108b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">What teams report</p>				</div>
				</div>
				<div class="elementor-element elementor-element-b4e18c6 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="b4e18c6" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">What Datagaps provides</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-d751425 e-con-full e-flex e-con e-child" data-id="d751425" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-2ae9bae elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="2ae9bae" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Support cases left open for months without a fix</p>				</div>
				</div>
				<div class="elementor-element elementor-element-af9e412 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="af9e412" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Responsive support; switching teams say most issues are "quickly resolved"</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-ed33555 e-con-full e-flex e-con e-child" data-id="ed33555" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-90d03a6 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="90d03a6" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">After moving to Power BI, back to running SQL and checking charts by hand</p>				</div>
				</div>
				<div class="elementor-element elementor-element-3d264a3 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="3d264a3" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Power BI reports tested against the source automatically</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-7db5930 e-con-full e-flex e-con e-child" data-id="7db5930" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-1d6d7ad elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="1d6d7ad" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Filter states tested one at a time</p>				</div>
				</div>
				<div class="elementor-element elementor-element-133e192 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="133e192" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Every combination of the selected filter values, run automatically</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-4764c94 e-con-full e-flex e-con e-child" data-id="4764c94" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-bf50601 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="bf50601" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">A BI-only tool means another tool beside data testing</p>				</div>
				</div>
				<div class="elementor-element elementor-element-d55224b elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="d55224b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">BI and data testing on one platform</p>				</div>
				</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-714ff54 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="714ff54" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>The same BI lead called Wiiisdom &#8220;quite far behind&#8221; and would give Datagaps five out of five for both support and product.</p><h3>What Do Independent Reviews Say?</h3><p>Wiiisdom&#8217;s reviews sit almost entirely with 360Suite, its SAP BusinessObjects product. Its Tableau and Power BI platform has no G2 reviews, and we found no Gartner Peer Insights, Capterra or TrustRadius listing. Datagaps holds 4.5 from 11 G2 reviews and 4.6 from eight Gartner Peer Insights reviewers, the newest from June 2026.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-480d2cc e-flex e-con-boxed e-con e-parent" data-id="480d2cc" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-55f23cf elementor-widget elementor-widget-heading" data-id="55f23cf" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Which Platform Fits Your Team?</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-c062ec8 e-flex e-con-boxed e-con e-parent" data-id="c062ec8" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-f1421e8 e-con-full e-flex e-con e-child" data-id="f1421e8" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-d0ff30a e-con-full e-flex e-con e-child" data-id="d0ff30a" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-163ecab elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="163ecab" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Wiiisdom fits if...</p>				</div>
				</div>
				<div class="elementor-element elementor-element-00b63a9 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="00b63a9" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Datagaps fits if...</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-8a4d8db e-con-full e-flex e-con e-child" data-id="8a4d8db" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-352a8df elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="352a8df" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Certification badges are your main signal of trust</p>				</div>
				</div>
				<div class="elementor-element elementor-element-945d8ce elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="945d8ce" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">You must show that report numbers match the source</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-67647a1 e-con-full e-flex e-con e-child" data-id="67647a1" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-4c8fc5e elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="4c8fc5e" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">You want Tableau content promoted with approval gates and version history</p>				</div>
				</div>
				<div class="elementor-element elementor-element-f458494 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="f458494" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">You need many filter states tested, not a handful</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-bf8c284 e-con-full e-flex e-con e-child" data-id="bf8c284" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-2745c41 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="2745c41" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">You run SAP BusinessObjects</p>				</div>
				</div>
				<div class="elementor-element elementor-element-88b62ec elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="88b62ec" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">You are validating a Tableau to Power BI migration</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-53d1c7d e-con-full e-flex e-con e-child" data-id="53d1c7d" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-3e561a7 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="3e561a7" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">You want a SaaS platform with nothing to deploy on-premises</p>				</div>
				</div>
				<div class="elementor-element elementor-element-fae9a38 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="fae9a38" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">You need on-premises or your own cloud, with data testing on the same platform</p>				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4c6a6c4 e-flex e-con-boxed e-con e-parent" data-id="4c6a6c4" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-977c02b elementor-widget elementor-widget-heading" data-id="977c02b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What Should You Ask in Your Evaluation?</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f84b4a2 e-flex e-con-boxed e-con e-parent" data-id="f84b4a2" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-c6df0f4 e-con-full e-flex e-con e-child" data-id="c6df0f4" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-746c79c e-con-full e-flex e-con e-child" data-id="746c79c" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-0b04964 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="0b04964" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Layer</p>				</div>
				</div>
				<div class="elementor-element elementor-element-b7664c1 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="b7664c1" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Question to ask</p>				</div>
				</div>
				<div class="elementor-element elementor-element-47d240b elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="47d240b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">How Datagaps answers it</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-94330af e-con-full e-flex e-con e-child" data-id="94330af" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-ae8b44b elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="ae8b44b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Govern and monitor</p>				</div>
				</div>
				<div class="elementor-element elementor-element-939ee19 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="939ee19" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Do we know what is in our BI estate, and is it healthy?</p>				</div>
				</div>
				<div class="elementor-element elementor-element-418c880 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="418c880" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Governance Hub monitors, BI Analyzer and BI Catalog</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-bb25ef1 e-con-full e-flex e-con e-child" data-id="bb25ef1" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-782f97b elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="782f97b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Prove</p>				</div>
				</div>
				<div class="elementor-element elementor-element-3f9070c elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="3f9070c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Is every number right against the source?</p>				</div>
				</div>
				<div class="elementor-element elementor-element-eb43c7f elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="eb43c7f" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Visual-to-SQL and Report Data Compare</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-22f57ce e-con-full e-flex e-con e-child" data-id="22f57ce" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-30c1440 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="30c1440" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Cover</p>				</div>
				</div>
				<div class="elementor-element elementor-element-b95e58e elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="b95e58e" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Were the filter states users rely on tested?</p>				</div>
				</div>
				<div class="elementor-element elementor-element-845f0fc elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="845f0fc" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">The BI filter matrix, run automatically</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-42a0e54 e-con-full e-flex e-con e-child" data-id="42a0e54" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-e2afae1 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="e2afae1" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Protect</p>				</div>
				</div>
				<div class="elementor-element elementor-element-46f80de elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="46f80de" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Will it stay right through releases and migrations?</p>				</div>
				</div>
				<div class="elementor-element elementor-element-6793e8c elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="6793e8c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Regression and three-way migration checks</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-8dd5b95 e-con-full e-flex e-con e-child" data-id="8dd5b95" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-c8ebbfa elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="c8ebbfa" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Automate</p>				</div>
				</div>
				<div class="elementor-element elementor-element-05ea337 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="05ea337" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Can AI build and run the checks safely?</p>				</div>
				</div>
				<div class="elementor-element elementor-element-6bf9837 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="6bf9837" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">AI Workflows with admin-approved tools</p>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-26bbc7f e-con-full e-flex e-con e-child" data-id="26bbc7f" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-f46298c elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="f46298c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Support</p>				</div>
				</div>
				<div class="elementor-element elementor-element-c75b925 elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="c75b925" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">How fast does the vendor fix problems?</p>				</div>
				</div>
				<div class="elementor-element elementor-element-ad9e24c elementor-widget__width-initial elementor-widget elementor-widget-heading" data-id="ad9e24c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">Ask each vendor for response times and a recent reference customer</p>				</div>
				</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-a37e6f5 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="a37e6f5" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Teams using Wiiisdom can run BI Validator on the same reports during a 14-day trial and compare the results side by side.</p><p><span style="color: #1967d2; text-decoration: underline;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/bi-testing-tools/" target="_blank" rel="noopener">Explore BI Validator →</a></span> | <span style="color: #1967d2; text-decoration: underline;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/bi-validator-trial-request/" target="_blank" rel="noopener">Start a 14-day trial →</a></span> | <span style="color: #1967d2; text-decoration: underline;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/blog/datagaps-vs-icedq/" target="_blank" rel="noopener">Read: Datagaps vs iCEDQ →</a></span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4415145 e-flex e-con-boxed e-con e-parent" data-id="4415145" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element- elementor-widget elementor-widget-heading" data-id="" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Conclusion</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-14a1bf7 e-flex e-con-boxed e-con e-parent" data-id="14a1bf7" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element- bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Wiiisdom and Datagaps both test and govern Power BI and Tableau content. The difference is where each one starts.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-ab4551e bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="ab4551e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Wiiisdom is governance-first. It tests BI content, certifies what passes and manages its promotion to production. Choose it if certification badges, Tableau content promotion or SAP BusinessObjects matter most to your team.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-d64c8f1 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="d64c8f1" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Datagaps is proof-first. It checks report numbers against the source data, across the filter combinations users rely on and through migrations, and tests the data underneath on the same platform. Choose it if you need to show the numbers are right before people or AI agents act on them.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-5cc40f8 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="5cc40f8" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-teams="true">Compared side by side, Datagaps covers more ground: it proves the numbers and also governs the BI estate with BI Analyzer, so teams get both from one platform.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-0d69453 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="0d69453" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Teams using Wiiisdom can run BI Validator on the same reports during a 14-day trial and compare the results side by side.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-44137d5 e-flex e-con-boxed e-con e-parent" data-id="44137d5" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-ca4f1ef e-con-full e-flex e-con e-child" data-id="ca4f1ef" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-309217a elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading" data-id="309217a" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<span class="elementor-heading-title elementor-size-default">Get Started Today</span>				</div>
				</div>
				<div class="elementor-element elementor-element-fe7de9f elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading" data-id="fe7de9f" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">See BI Validator prove your Power BI and Tableau numbers against the source</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f56ed12 elementor-widget-widescreen__width-initial experience-br elementor-widget elementor-widget-text-editor" data-id="f56ed12" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Our team will run a live demo on your own reports — your BI platform, your filters, your source data.</p>								</div>
				</div>
		<div class="elementor-element elementor-element-f4b4798 e-con-full e-flex e-con e-child" data-id="f4b4798" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-932cb3e elementor-widget__width-auto home-btn-new elementor-widget elementor-widget-button" data-id="932cb3e" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.datagaps.com/bi-testing-tools/" target="_blank">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Explore BI Validator</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-e51c528 elementor-widget__width-auto home-btn-new elementor-widget elementor-widget-button" data-id="e51c528" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.datagaps.com/bi-validator-trial-request/" target="_blank">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Start Free 14-Day Trial</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-5f60b09 elementor-widget-widescreen__width-initial elementor-widget elementor-widget-text-editor" data-id="5f60b09" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p style="font-size:15px;line-height:1.6;color:#E2E8F0;">SOC 2 Type II certified | ISO 27001 certified | No credit card required for trial | Your data never leaves your environment</p>								</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-b71f16d e-flex e-con-boxed e-con e-parent" data-id="b71f16d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-9fe317e elementor-widget elementor-widget-heading" data-id="9fe317e" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Frequently Asked Questions: Datagaps vs Wiiisdom</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-789796c e-flex e-con-boxed e-con e-parent" data-id="789796c" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-d1da2f3 elementor-widget elementor-widget-eael-adv-accordion" data-id="d1da2f3" data-element_type="widget" data-e-type="widget" data-widget_type="eael-adv-accordion.default">
				<div class="elementor-widget-container">
					            <div class="eael-adv-accordion" id="eael-adv-accordion-d1da2f3" data-scroll-on-click="no" data-scroll-speed="300" data-accordion-id="d1da2f3" data-accordion-type="accordion" data-toogle-speed="300">
            <div class="eael-accordion-list">
					<div id="faq-1" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="1" aria-controls="elementor-tab-content-2201"><h3 class="eael-accordion-tab-title">Is Datagaps an alternative to Wiiisdom?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-2201" class="eael-accordion-content clearfix" data-tab="1" aria-labelledby="faq-1"><p>Yes. Both test and govern <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/automate-tableau-testing/" target="_blank" rel="noopener">Tableau</a></span> and <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/power-bi-automation-testing-tools/" target="_blank" rel="noopener">Power BI</a></span> content. Datagaps adds checks against the source data, filter combination testing, three-way migration validation, more BI platforms and data testing on the same platform.</p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-2" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="2" aria-controls="elementor-tab-content-2202"><h3 class="eael-accordion-tab-title">What is AnalyticsOps?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-2202" class="eael-accordion-content clearfix" data-tab="2" aria-labelledby="faq-2"><p><span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/analytics-ops/" target="_blank" rel="noopener">AnalyticsOps</a></span> applies DevOps practices such as automated testing, monitoring and release control to <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/bi-testing-complete-guide/" target="_blank" rel="noopener">BI and analytics content</a></span>. Wiiisdom and Datagaps both offer it; Datagaps also proves report numbers against the source data.</p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-3" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="3" aria-controls="elementor-tab-content-2203"><h3 class="eael-accordion-tab-title">Why does agentic analytics need BI testing?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-2203" class="eael-accordion-content clearfix" data-tab="3" aria-labelledby="faq-3"><p>AI assistants and agents answer from the same <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2" href="https://www.datagaps.com/bi-testing-complete-guide/" target="_blank" rel="noopener">semantic models and measures as <span style="text-decoration: underline">dashboards</span></a><span style="text-decoration: underline">.</span></span> If a measure is wrong, the AI answer is wrong too. Testing measures against the source before release keeps both correct.</p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-4" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="4" aria-controls="elementor-tab-content-2204"><h3 class="eael-accordion-tab-title">How does Datagaps test filter combinations compared with Wiiisdom?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-2204" class="eael-accordion-content clearfix" data-tab="4" aria-labelledby="faq-4"><p><span><span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/bi-testing-tools/" target="_blank" rel="noopener">Datagaps BI Validator</a></span> captures filter values at report, page, visual and slicer level, multiplies the selected values into a filter dataset and runs the same validation once per combination. Wiiisdom&#8217;s published Power BI examples change one filter per user journey.</span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-5" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="5" aria-controls="elementor-tab-content-2205"><h3 class="eael-accordion-tab-title">How does Datagaps check Power BI reports against the source compared with Wiiisdom?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-2205" class="eael-accordion-content clearfix" data-tab="5" aria-labelledby="faq-5"><p><span>Datagaps <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/power-bi-automation-testing-tools/" target="_blank" rel="noopener">Visual-to-SQL</a></span> converts each visual&#8217;s DAX to SQL for the connected database, and Report Data Compare lists rows only in the report, rows only in the database and mismatched values. Wiiisdom&#8217;s Power BI tests check refreshes, rules and DAX results inside Power BI; its public pages do not describe a source comparison.</span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-6" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="6" aria-controls="elementor-tab-content-2206"><h3 class="eael-accordion-tab-title">Which tool validates a Tableau to Power BI migration?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-2206" class="eael-accordion-content clearfix" data-tab="6" aria-labelledby="faq-6"><p><span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/bi-testing-tools/" target="_blank" rel="noopener">Datagaps BI Validator</a></span> compares each new Power BI report with the original Tableau report and the source data, then keeps running the tests as regression after cutover, whoever performs the migration.</p></div>
					</div></div>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-91babda e-flex e-con-boxed e-con e-parent" data-id="91babda" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-8079456 e-con-full e-flex e-con e-child" data-id="8079456" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-205853d e-con-full e-flex e-con e-child" data-id="205853d" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-2a90882 e-con-full e-flex e-con e-child" data-id="2a90882" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-ac7dd9a elementor-widget-laptop__width-initial elementor-widget elementor-widget-image" data-id="ac7dd9a" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="150" height="150" src="https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png" class="attachment-thumbnail size-thumbnail wp-image-53799" alt="Raj Mohan Achanta" srcset="https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png 150w, https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-300x300.png 300w, https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta.png 504w" sizes="(max-width: 150px) 100vw, 150px" />															</div>
				</div>
		<div class="elementor-element elementor-element-58091a4 e-con-full e-flex e-con e-child" data-id="58091a4" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-f88de80 elementor-position-inline-end elementor-mobile-position-inline-start elementor-widget-laptop__width-initial elementor-view-default elementor-widget elementor-widget-icon-box" data-id="f88de80" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/" class="elementor-icon" tabindex="-1" aria-label="RajMohan Achanta">
				<i aria-hidden="true" class="fab fa-linkedin-in"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h5 class="elementor-icon-box-title">
						<a href="https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/" >
							RajMohan Achanta						</a>
					</h5>
				
									<p class="elementor-icon-box-description">
						Associate Product Manager, Datagaps					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-7c68393 elementor-widget elementor-widget-text-editor" data-id="7c68393" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Associate Product Manager at Datagaps. Shapes the product experience across ETL Validator, BI Validator, and Data Quality Monitor.</p>								</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-8626ce3 e-con-full e-flex e-con e-child" data-id="8626ce3" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-5cf69f7 elementor-widget-laptop__width-initial elementor-widget elementor-widget-image" data-id="5cf69f7" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="150" height="150" src="https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png" class="attachment-thumbnail size-thumbnail wp-image-54463" alt="Avinash&apos;s picture" srcset="https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png 150w, https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-300x300.png 300w, https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2.png 504w" sizes="(max-width: 150px) 100vw, 150px" />															</div>
				</div>
		<div class="elementor-element elementor-element-fed5000 e-con-full e-flex e-con e-child" data-id="fed5000" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-e5e43c5 elementor-position-inline-end elementor-mobile-position-inline-start elementor-view-default elementor-widget elementor-widget-icon-box" data-id="e5e43c5" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://www.linkedin.com/in/avinashkeshri-iimb/" class="elementor-icon" tabindex="-1" aria-label="Avinash Keshri">
				<i aria-hidden="true" class="fab fa-linkedin-in"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h5 class="elementor-icon-box-title">
						<a href="https://www.linkedin.com/in/avinashkeshri-iimb/" >
							Avinash Keshri						</a>
					</h5>
				
									<p class="elementor-icon-box-description">
						Head, Product Marketing					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-de04f21 elementor-widget elementor-widget-text-editor" data-id="de04f21" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Head of Product Marketing at Datagaps and IIM Bangalore alumnus. 13+ years of experience in commercializing AI and data platforms across global markets.</p>								</div>
				</div>
				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f707a62 e-flex e-con-boxed e-con e-parent" data-id="f707a62" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-9246dbc e-con-full e-flex e-con e-child" data-id="9246dbc" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-9b100dd elementor-widget elementor-widget-html" data-id="9b100dd" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<script type="application/ld+json">{
 "@context": "https://schema.org",
 "@graph": [
  {
   "@type": "Article",
   "@id": "https://www.datagaps.com/blog/datagaps-vs-wiiisdom/#article",
   "headline": "Datagaps vs Wiiisdom: Choosing an AnalyticsOps Platform for Agentic Analytics",
   "description": "Datagaps vs Wiiisdom for AnalyticsOps and agentic analytics: BI numbers proven against the source, filter coverage, governance and AI agents compared.",
   "mainEntityOfPage": "https://www.datagaps.com/blog/datagaps-vs-wiiisdom/",
   "inLanguage": "en-US",
   "author": {
    "@type": "Organization",
    "name": "Datagaps Editorial"
   },
   "publisher": {
    "@id": "https://www.datagaps.com/#organization"
   },
   "image": [
    "https://www.datagaps.com/wp-content/uploads/bi-filter-matrix-27-combinations.webp",
    "https://www.datagaps.com/wp-content/uploads/analyticsops-trust-model.webp",
    "https://www.datagaps.com/wp-content/uploads/status-versus-proof-certified-dashboard.webp",
    "https://www.datagaps.com/wp-content/uploads/three-way-migration-check-tableau-power-bi.webp"
   ]
  },
  {
   "@type": "Organization",
   "@id": "https://www.datagaps.com/#organization",
   "name": "Datagaps",
   "url": "https://www.datagaps.com/"
  },
  {
   "@type": "FAQPage",
   "mainEntity": [
    {
     "@type": "Question",
     "name": "Is Datagaps an alternative to Wiiisdom?",
     "acceptedAnswer": {
      "@type": "Answer",
      "text": "Yes. Both test and govern Tableau and Power BI content. Datagaps adds checks against the source data, filter combination testing, three-way migration validation, more BI platforms and data testing on the same platform."
     }
    },
    {
     "@type": "Question",
     "name": "What is AnalyticsOps?",
     "acceptedAnswer": {
      "@type": "Answer",
      "text": "AnalyticsOps applies DevOps practices such as automated testing, monitoring and release control to BI and analytics content. Wiiisdom and Datagaps both offer it; Datagaps also proves report numbers against the source data."
     }
    },
    {
     "@type": "Question",
     "name": "Why does agentic analytics need BI testing?",
     "acceptedAnswer": {
      "@type": "Answer",
      "text": "AI assistants and agents answer from the same semantic models and measures as dashboards. If a measure is wrong, the AI answer is wrong too. Testing measures against the source before release keeps both correct."
     }
    },
    {
     "@type": "Question",
     "name": "Can Wiiisdom test filter combinations automatically?",
     "acceptedAnswer": {
      "@type": "Answer",
      "text": "Its published Power BI examples change one filter per user journey, and Tableau filter checks are still coming to its cloud platform. Datagaps BI Validator generates every combination of the selected filter values and runs each one."
     }
    },
    {
     "@type": "Question",
     "name": "Does Wiiisdom compare Power BI reports with the source database?",
     "acceptedAnswer": {
      "@type": "Answer",
      "text": "Its public pages do not describe it. Wiiisdom's Power BI tests check refreshes, rules and DAX results inside Power BI. Datagaps converts each visual's DAX to SQL and compares the report with the warehouse."
     }
    },
    {
     "@type": "Question",
     "name": "Which tool validates a Tableau to Power BI migration?",
     "acceptedAnswer": {
      "@type": "Answer",
      "text": "Datagaps BI Validator compares each new Power BI report with the original Tableau report and the source data, then keeps running the tests as regression after cutover, whoever performs the migration."
     }
    },
    {
     "@type": "Question",
     "name": "Is Wiiisdom Ops the same as Kinesis-CI?",
     "acceptedAnswer": {
      "@type": "Answer",
      "text": "Yes. Wiiisdom acquired Kinesis-CI, a Tableau testing tool, in 2020 and renamed it Wiiisdom Ops for Tableau in 2021. It is now sold as Wiiisdom for Tableau and Wiiisdom for Power BI."
     }
    }
   ]
  }
 ]
}</script>				</div>
				</div>
				<div class="elementor-element elementor-element-c2c5105 elementor-widget elementor-widget-html" data-id="c2c5105" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<!-- wz-a11y --><style>
.elementor-64305 .elementor-widget-text-editor p,.elementor-64305 .elementor-widget-text-editor li{line-height:1.7!important}
.elementor-64305 .elementor-widget-text-editor p{margin-bottom:16px}
.elementor-64305 .elementor-widget-text-editor ul{margin:8px 0 20px;padding-left:22px}
.elementor-64305 .elementor-widget-text-editor li{margin-bottom:10px}
.elementor-64305 .elementor-widget-text-editor h3{font-size:18px!important;font-weight:600!important;line-height:1.3!important;margin:36px 0 12px!important}
.elementor-64305 .elementor-widget-text-editor h3:first-child{margin-top:8px!important}
.elementor-64305 .elementor-widget-image figcaption{font-size:16px!important;line-height:1.6!important;color:#4B5563!important;margin-top:12px}
.elementor-64305 .eael-accordion-tab-title{line-height:1.45!important}
.elementor-64305 .eael-accordion-content,.elementor-64305 .eael-accordion-content p{font-size:17px!important;line-height:1.7!important;color:#374151!important}
.elementor-64305 a:focus-visible,.elementor-64305 .elementor-button:focus-visible,.elementor-64305 .eael-accordion-header:focus-visible{outline:3px solid #2563EB!important;outline-offset:3px}
@media (max-width:767px){.elementor-64305 .elementor-widget-text-editor h3{font-size:18px!important}.elementor-64305 .wz-table thead th,.elementor-64305 .wz-table tbody td{padding:14px 16px}}
</style>				</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-b2bbb7a elementor-widget elementor-widget-html" data-id="b2bbb7a" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://www.datagaps.com/#organization",
      "name": "Datagaps",
      "url": "https://www.datagaps.com/",
      "logo": {
        "@type": "ImageObject",
        "@id": "https://www.datagaps.com/#logo",
        "url": "https://www.datagaps.com/wp-content/uploads/datagaps-logo-2.svg",
        "contentUrl": "https://www.datagaps.com/wp-content/uploads/datagaps-logo-2.svg"
      },
      "sameAs": [
        "https://www.linkedin.com/company/datagaps/",
        "https://twitter.com/datagapsteam",
        "https://www.youtube.com/user/datagaps",
        "https://www.instagram.com/datagapsinc/",
        "https://www.facebook.com/datagapsinc"
      ]
    },
    {
      "@type": "Person",
      "@id": "https://www.datagaps.com/#/person/rajmohan-achanta",
      "name": "RajMohan Achanta",
      "jobTitle": "Associate Product Manager",
      "description": "Associate Product Manager at Datagaps. Shapes the product experience across ETL Validator, BI Validator, and Data Quality Monitor.",
      "worksFor": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "url": "https://www.datagaps.com/blog/author/rajmohan/",
      "sameAs": [
        "https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/"
      ],
      "alternateName": "Raj Mohan Achanta",
      "image": "https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png"
    },
    {
      "@type": "Person",
      "@id": "https://www.datagaps.com/#/person/avinash-keshri",
      "name": "Avinash Keshri",
      "jobTitle": "Head, Product Marketing",
      "description": "Head of Product Marketing at Datagaps and IIM Bangalore alumnus. 13+ years of experience in commercializing AI and data platforms across global markets.",
      "worksFor": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "alumniOf": {
        "@type": "CollegeOrUniversity",
        "name": "Indian Institute of Management Bangalore"
      },
      "url": "https://www.linkedin.com/in/avinashkeshri-iimb/",
      "sameAs": [
        "https://www.linkedin.com/in/avinashkeshri-iimb/"
      ],
      "image": "https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png"
    }
  ]
}
</script>				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://www.datagaps.com/blog/datagaps-vs-wiiisdom/">Datagaps vs Wiiisdom: Choosing an AnalyticsOps Platform for Agentic Analytics</a> appeared first on <a href="https://www.datagaps.com">Datagaps | Gen AI-Powered Automated Cloud Data Testing</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How Text-to-SQL Speeds Up Data Validation Query Writing</title>
		<link>https://www.datagaps.com/blog/text-to-sql-data-validation/</link>
		
		<dc:creator><![CDATA[Raj Mohan Achanta]]></dc:creator>
		<pubDate>Wed, 28 Oct 2026 06:58:05 +0000</pubDate>
				<category><![CDATA[Data Quality]]></category>
		<category><![CDATA[Data Validation]]></category>
		<category><![CDATA[DataOps]]></category>
		<category><![CDATA[Data Agents]]></category>
		<category><![CDATA[Data Testing]]></category>
		<category><![CDATA[Datagaps DataOps Suite]]></category>
		<category><![CDATA[Text To SQL]]></category>
		<guid isPermaLink="false">https://www.datagaps.com/?p=64207</guid>

					<description><![CDATA[<p>See how Text-to-SQL speeds up data validation query writing. Describe what you need in plain language and get SQL for your own data model.</p>
<p>The post <a href="https://www.datagaps.com/blog/text-to-sql-data-validation/">How Text-to-SQL Speeds Up Data Validation Query Writing</a> appeared first on <a href="https://www.datagaps.com">Datagaps | Gen AI-Powered Automated Cloud Data Testing</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="64207" class="elementor elementor-64207" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-a3771bc e-flex e-con-boxed e-con e-parent" data-id="a3771bc" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-1fd7e36 elementor-widget elementor-widget-text-editor" data-id="1fd7e36" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW121968583 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW121968583 BCX8">Text-to-SQL in the </span><span class="NormalTextRun SpellingErrorV2Themed SCXW121968583 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW121968583 BCX8">DataOps</span><span class="NormalTextRun SCXW121968583 BCX8"> Suite is a built-in AI assistant that converts natural language prompts into SQL for data testing, grounded in a RAG index of connected data source metadata and operating entirely within the customer&#8217;s environment, so nothing leaves the secure boundary.</span></span><span class="EOP Selected SCXW121968583 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-27eeb44 datagaps-tldr elementor-widget elementor-widget-text-editor" data-id="27eeb44" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Key Takeaways</strong></p><ul><li><span data-contrast="auto">Manual schema discovery and join-path building slow testing cycles and create dependency on a few SMEs.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">From the home page, the AI Assistant generates, executes and displays results with a confidence score.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Inside dataflows, the assistant writes SQL against connected data sources once the initial RAG setup is complete.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">It generated multi-CTE queries resolving join paths across four tables without being given schema relationships.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Avoid SQL reserved keywords as table names and run a Full RAG for new data models</span></li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-2bb8934 elementor-widget elementor-widget-text-editor" data-id="2bb8934" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="text-decoration: underline;"><span style="color: #1967d2; text-decoration: underline;"><a class="Hyperlink SCXW58858339 BCX8" style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/request-a-demo/" target="_blank" rel="noreferrer noopener"><span class="TextRun Underlined SCXW58858339 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW58858339 BCX8" data-ccp-charstyle="Hyperlink">See how </span><span class="NormalTextRun SpellingErrorV2Themed SCXW58858339 BCX8" data-ccp-charstyle="Hyperlink">DataOps</span><span class="NormalTextRun SCXW58858339 BCX8" data-ccp-charstyle="Hyperlink"> Suite Text-to-SQL writes validation queries for your schema</span></span></a><span class="TextRun SCXW58858339 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW58858339 BCX8"> →</span></span></span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-9e11135 elementor-widget elementor-widget-text-editor" data-id="9e11135" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="text-decoration: underline; color: #1967d2;"><a class="Hyperlink SCXW36981189 BCX8" style="color: #1967d2;" href="https://www.datagaps.com/dataops-suite/" target="_blank" rel="noreferrer noopener"><span class="TextRun Underlined SCXW36981189 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SpellingErrorV2Themed SCXW36981189 BCX8" data-ccp-charstyle="Hyperlink">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW36981189 BCX8" data-ccp-charstyle="Hyperlink">DataOps</span><span class="NormalTextRun SCXW36981189 BCX8" data-ccp-charstyle="Hyperlink"> Suite Text-to-SQL</span></span></a></span><span class="TextRun SCXW36981189 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"> <span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW36981189 BCX8">lets</span><span class="NormalTextRun SCXW36981189 BCX8"> testers describe what they need in plain language and get SQL generated against their connected data model — from simple one-table</span><span class="NormalTextRun SCXW36981189 BCX8"> look</span><span class="NormalTextRun SCXW36981189 BCX8">ups to multi-CTE queries with complex joins. It removes the manual </span><span class="NormalTextRun SpellingErrorV2Themed SCXW36981189 BCX8">work of </span><span class="NormalTextRun SCXW36981189 BCX8">u</span><span class="NormalTextRun SpellingErrorV2Themed SCXW36981189 BCX8">ndersta</span><span class="NormalTextRun SCXW36981189 BCX8">nding schema and building join paths, so testers can </span><span class="NormalTextRun SCXW36981189 BCX8">accomplish</span><span class="NormalTextRun SCXW36981189 BCX8"> in minutes what previously took hours.</span></span><span class="EOP Selected SCXW36981189 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-e7653fd elementor-widget elementor-widget-text-editor" data-id="e7653fd" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW150123283 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW150123283 BCX8">Writing SQL is one of the most time-consuming parts of </span></span><span style="text-decoration: underline; color: #1967d2;"><a class="Hyperlink SCXW150123283 BCX8" style="color: #1967d2;" href="https://www.datagaps.com/data-testing-concepts/data-testing/" target="_blank" rel="noreferrer noopener"><span class="TextRun Underlined SCXW150123283 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW150123283 BCX8" data-ccp-charstyle="Hyperlink">data testing</span></span></a></span><span class="TextRun SCXW150123283 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW150123283 BCX8">, especially when </span><span class="NormalTextRun SCXW150123283 BCX8">you’re</span><span class="NormalTextRun SCXW150123283 BCX8"> onboarding onto an unfamiliar dataset, working through hundreds of tables, or </span><span class="NormalTextRun SCXW150123283 BCX8">validating</span><span class="NormalTextRun SCXW150123283 BCX8"> complex transformation logic. Understanding the schema, building join paths, and writing precise queries by hand slows testing cycles and leaves teams depending on a small group of subject-matter experts. This article covers how the feature works, where it fits in a data testing workflow, and how to get </span><span class="NormalTextRun SCXW150123283 BCX8">good results</span><span class="NormalTextRun SCXW150123283 BCX8"> from it.</span></span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-ddcad15 e-flex e-con-boxed e-con e-parent" data-id="ddcad15" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-909654c elementor-widget elementor-widget-heading" data-id="909654c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Why does AI-assisted SQL generation matter for data testing? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f269997 elementor-widget elementor-widget-text-editor" data-id="f269997" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW21134348 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW21134348 BCX8">AI-assisted SQL generation matters because it addresses several testing bottlenecks at once. These are the ones teams run into most often:</span></span></p><ul><li><span data-contrast="auto">Onboarding new testers onto an unfamiliar data model</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Understanding undocumented schemas with no SME available</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Writing validation queries faster during BI migration or </span><span style="text-decoration: underline;"><span style="color: #1967d2; text-decoration: underline;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-reconciliation/" target="_blank" rel="noopener">source-target reconciliation</a></span></span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Covering transformation </span><span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-validation-etl-testing-tools/" target="_blank" rel="noopener">testing across complex pipelines</a></span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Reducing overall dependency on senior engineers for every query</span><span data-ccp-props="{}"> </span></li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-d15438e elementor-widget elementor-widget-text-editor" data-id="d15438e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW194276770 BCX8">Any one of these can be fixed with a targeted tool. Fixing all of them together takes platform-native AI that understands the data model, the environment, and the testing context, something a generic external tool </span><span class="NormalTextRun SCXW194276770 BCX8">can’t</span><span class="NormalTextRun SCXW194276770 BCX8"> offer. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW194276770 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW194276770 BCX8">DataOps</span><span class="NormalTextRun SCXW194276770 BCX8"> Suite is built with that in mind.</span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-604e192 e-flex e-con-boxed e-con e-parent" data-id="604e192" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3445573 elementor-widget elementor-widget-heading" data-id="3445573" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Where can you use the AI assistant in Datagaps DataOps Suite?</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f760d4f elementor-widget elementor-widget-text-editor" data-id="f760d4f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW10710900 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW10710900 BCX8">There are two core scenarios where the AI assistant within </span><span class="NormalTextRun SpellingErrorV2Themed SCXW10710900 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW10710900 BCX8">DataOps</span><span class="NormalTextRun SCXW10710900 BCX8"> Suite delivers immediate value: querying the platform&#8217;s own state from the home </span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW10710900 BCX8">page and</span><span class="NormalTextRun SCXW10710900 BCX8"> writing SQL against connected data sources while building dataflows.</span></span><span class="EOP Selected SCXW10710900 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-b16fb31 elementor-widget elementor-widget-heading" data-id="b16fb31" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Use case 1: Understanding the current state of the platform</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-269c004 elementor-widget elementor-widget-text-editor" data-id="269c004" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW225056816 BCX8">This is for when you need to know what services have been created, how pipelines are running, and what work has already been done. The AI Assistant is available directly from the </span><span class="NormalTextRun SpellingErrorV2Themed SCXW225056816 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW225056816 BCX8">DataOps</span><span class="NormalTextRun SCXW225056816 BCX8"> Suite home page.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-6b2b2ad elementor-widget elementor-widget-image" data-id="6b2b2ad" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="510" src="https://www.datagaps.com/wp-content/uploads/Chatbot-DataOps-Suite.png" class="attachment-full size-full wp-image-64210" alt="DataOps Suite home page" srcset="https://www.datagaps.com/wp-content/uploads/Chatbot-DataOps-Suite.png 1120w, https://www.datagaps.com/wp-content/uploads/Chatbot-DataOps-Suite-300x137.png 300w, https://www.datagaps.com/wp-content/uploads/Chatbot-DataOps-Suite-1024x466.png 1024w, https://www.datagaps.com/wp-content/uploads/Chatbot-DataOps-Suite-768x350.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-ba1a932 elementor-widget elementor-widget-text-editor" data-id="ba1a932" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW55700616 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW55700616 BCX8">From the home page, the AI Assistant generates the SQL query, runs it automatically, and displays the results along with a confidence score for the response, so </span><span class="NormalTextRun SCXW55700616 BCX8">there’s</span><span class="NormalTextRun SCXW55700616 BCX8"> no query to copy and run manually.</span></span><span class="EOP Selected SCXW55700616 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-8f7eb51 elementor-widget elementor-widget-image" data-id="8f7eb51" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="593" height="667" src="https://www.datagaps.com/wp-content/uploads/no.-of-dataflows-created.2.png" class="attachment-large size-large wp-image-64211" alt="" srcset="https://www.datagaps.com/wp-content/uploads/no.-of-dataflows-created.2.png 593w, https://www.datagaps.com/wp-content/uploads/no.-of-dataflows-created.2-267x300.png 267w" sizes="(max-width: 593px) 100vw, 593px" />															</div>
				</div>
				<div class="elementor-element elementor-element-b5672e4 elementor-widget elementor-widget-heading" data-id="b5672e4" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Use case 2: Writing SQL while building dataflows, pipelines and data models </h3>				</div>
				</div>
				<div class="elementor-element elementor-element-84f8ab2 elementor-widget elementor-widget-text-editor" data-id="84f8ab2" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="auto">The second use case is when users are actively building within the platform, creating dataflows, pipelines, or data models, and need to write SQL queries against their own connected data sources. This is where the AI assistant becomes a force multiplier for testing teams.</span><span data-ccp-props="{}"> </span></p><p><span data-contrast="auto">In Datagaps DataOps Suite, dataflows are used to set up data testing and observability logic. Users connect data sources, add components, write queries to define what data should be ingested or prepared for testing, and publish. The challenge has always been the query-writing step, particularly for teams who are new to the dataset or working across a large and complex schema.</span><span data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-ace4430 elementor-widget elementor-widget-text-editor" data-id="ace4430" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW132312348 BCX8">The AI assistant within </span><span class="NormalTextRun SpellingErrorV2Themed SCXW132312348 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132312348 BCX8">DataOps</span><span class="NormalTextRun SCXW132312348 BCX8"> Suite </span><span class="NormalTextRun SCXW132312348 BCX8">eliminates</span><span class="NormalTextRun SCXW132312348 BCX8"> the hours typically spent understanding metadata and data models. Regardless of where the data originates within the platform, testers can now </span><span class="NormalTextRun SCXW132312348 BCX8">accomplish</span><span class="NormalTextRun SCXW132312348 BCX8"> in minutes what previously took hours.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-677e99f elementor-widget elementor-widget-heading" data-id="677e99f" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">How does Datagaps Text-to-SQL perform on real data testing scenarios? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-029f9aa elementor-widget elementor-widget-heading" data-id="029f9aa" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">What setup is required before using Text-to-SQL? </h3>				</div>
				</div>
				<div class="elementor-element elementor-element-c727210 elementor-widget elementor-widget-text-editor" data-id="c727210" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW193228118 BCX8">Before you can use the Text-to-SQL assistant, you need to complete the </span><span class="NormalTextRun SCXW193228118 BCX8">initial</span><span class="NormalTextRun SCXW193228118 BCX8"> RAG (Retrieval-Augmented Generation) setup. It lets the AI read the metadata of all connected data sources: table definitions, column types, relationships, and relevant schema context.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-9a6db22 elementor-widget elementor-widget-image" data-id="9a6db22" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="326" src="https://www.datagaps.com/wp-content/uploads/Microsoft-SQL-Server.png" class="attachment-full size-full wp-image-64216" alt="" srcset="https://www.datagaps.com/wp-content/uploads/Microsoft-SQL-Server.png 1120w, https://www.datagaps.com/wp-content/uploads/Microsoft-SQL-Server-300x87.png 300w, https://www.datagaps.com/wp-content/uploads/Microsoft-SQL-Server-1024x298.png 1024w, https://www.datagaps.com/wp-content/uploads/Microsoft-SQL-Server-768x224.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-4a85bf7 elementor-widget elementor-widget-text-editor" data-id="4a85bf7" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW266376385 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW266376385 BCX8">Once the RAG setup is complete, the AI assistant is ready to generate queries against the connected data model.</span></span><span class="EOP Selected SCXW266376385 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-99cef52 elementor-widget elementor-widget-heading" data-id="99cef52" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">How does it handle simple queries involving 1-2 tables? </h3>				</div>
				</div>
				<div class="elementor-element elementor-element-ac40778 elementor-widget elementor-widget-text-editor" data-id="ac40778" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW143084884 BCX8">This is the baseline any Text-to-SQL tool </span><span class="NormalTextRun SCXW143084884 BCX8">must</span><span class="NormalTextRun SCXW143084884 BCX8"> meet. Even with hundreds of tables in a schema, a clearly defined prompt for a straightforward request should return </span><span class="NormalTextRun SCXW143084884 BCX8">an accurate</span><span class="NormalTextRun SCXW143084884 BCX8"> query right away. Against a sales dataset with multiple dimension and fact tables, the assistant handles these without trouble.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-8dc12b2 elementor-widget elementor-widget-image" data-id="8dc12b2" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="640" height="261" src="https://www.datagaps.com/wp-content/uploads/SQL-Query.png" class="attachment-large size-large wp-image-64217" alt="SQL Query" srcset="https://www.datagaps.com/wp-content/uploads/SQL-Query.png 710w, https://www.datagaps.com/wp-content/uploads/SQL-Query-300x123.png 300w" sizes="(max-width: 640px) 100vw, 640px" />															</div>
				</div>
				<div class="elementor-element elementor-element-1094f69 elementor-widget elementor-widget-heading" data-id="1094f69" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Can it generate CTEs and queries with multiple joins and complex relationships? </h3>				</div>
				</div>
				<div class="elementor-element elementor-element-e20cb0e elementor-widget elementor-widget-text-editor" data-id="e20cb0e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW246482731 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW246482731 BCX8">This is the more rigorous test, one that distinguishes a production-ready enterprise tool from a basic prototype. When posed with a more complex analytical question, the </span><span class="NormalTextRun SpellingErrorV2Themed SCXW246482731 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW246482731 BCX8">DataOps</span><span class="NormalTextRun SCXW246482731 BCX8"> Suite AI assistant generates multi-CTE queries, </span></span><span style="text-decoration: underline; color: #1967d2;"><a class="Hyperlink SCXW246482731 BCX8" style="color: #1967d2;" href="https://www.datagaps.com/blog/generate-complex-sql-queries-using-dataops-suite-query-builder/" target="_blank" rel="noreferrer noopener"><span class="TextRun Underlined SCXW246482731 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW246482731 BCX8" data-ccp-charstyle="Hyperlink">resolves join paths across four tables</span></span></a></span><span class="TextRun SCXW246482731 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW246482731 BCX8">, </span><span class="NormalTextRun SCXW246482731 BCX8">identifies</span><span class="NormalTextRun SCXW246482731 BCX8"> the relevant columns, and constructs the complete SELECT query, all without being explicitly provided schema relationships.</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-900e9f0 elementor-widget elementor-widget-image" data-id="900e9f0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="640" height="669" src="https://www.datagaps.com/wp-content/uploads/Query.png" class="attachment-medium_large size-medium_large wp-image-64218" alt="" srcset="https://www.datagaps.com/wp-content/uploads/Query.png 756w, https://www.datagaps.com/wp-content/uploads/Query-287x300.png 287w" sizes="(max-width: 640px) 100vw, 640px" />															</div>
				</div>
				<div class="elementor-element elementor-element-8efbf92 elementor-widget elementor-widget-text-editor" data-id="8efbf92" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW248250532 BCX8">This result came from connecting a data source and going straight to the AI Assistant, with no </span><span class="NormalTextRun SCXW248250532 BCX8">additional</span><span class="NormalTextRun SCXW248250532 BCX8"> configuration, no manual schema documentation, and no SME consultation.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-1e75903 elementor-widget elementor-widget-heading" data-id="1e75903" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">How does this differ from using ChatGPT or Claude?</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-9f5ddc5 elementor-widget elementor-widget-text-editor" data-id="9f5ddc5" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW95103964 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW95103964 BCX8">The distinction comes down to data privacy and accuracy. With a public AI tool, a team would need to share schema details, table structures, and dataset context across multiple back-and-forth exchanges, and even then, the output would be a generic template, not a query ready to run against the actual data. More importantly, enterprise data cannot and should not be shared with external tools.<br /></span></span></p><p><span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/dataops-suite/" target="_blank" rel="noopener"><span class="NormalTextRun SpellingErrorV2Themed SCXW100386215 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW100386215 BCX8">DataOps</span><span class="NormalTextRun SCXW100386215 BCX8"> Suite </span></a></span><span class="NormalTextRun SCXW100386215 BCX8">operates</span><span class="NormalTextRun SCXW100386215 BCX8"> entirely within the customer&#8217;s environment. Nothing leaves the secure boundary. The AI has access to the metadata it needs without any sensitive data being exposed externally.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-c242ff9 elementor-widget elementor-widget-heading" data-id="c242ff9" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Does the assistant keep conversational context across queries? </h3>				</div>
				</div>
				<div class="elementor-element elementor-element-5420b70 elementor-widget elementor-widget-text-editor" data-id="5420b70" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW121004513 BCX8">Yes. The AI assistant </span><span class="NormalTextRun SCXW121004513 BCX8">maintains</span><span class="NormalTextRun SCXW121004513 BCX8"> context from </span><span class="NormalTextRun SCXW121004513 BCX8">previous</span><span class="NormalTextRun SCXW121004513 BCX8"> interactions within a session. When table names change or a user wants to refine an earlier query, the assistant picks up from where the conversation left off.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-851d69b elementor-widget elementor-widget-image" data-id="851d69b" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="640" height="334" src="https://www.datagaps.com/wp-content/uploads/generating-the-query.png" class="attachment-large size-large wp-image-64219" alt="generating the query" srcset="https://www.datagaps.com/wp-content/uploads/generating-the-query.png 737w, https://www.datagaps.com/wp-content/uploads/generating-the-query-300x157.png 300w" sizes="(max-width: 640px) 100vw, 640px" />															</div>
				</div>
				<div class="elementor-element elementor-element-6699392 elementor-widget elementor-widget-text-editor" data-id="6699392" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW215005079 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW215005079 BCX8">This conversational continuity is particularly useful during iterative development, where requirements evolve and queries need to be updated without </span><span class="NormalTextRun SCXW215005079 BCX8">starting from scratch</span><span class="NormalTextRun SCXW215005079 BCX8">.</span></span><span class="EOP Selected SCXW215005079 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-64a8830 elementor-widget elementor-widget-heading" data-id="64a8830" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Can it support analytics validation and BI report testing? </h3>				</div>
				</div>
				<div class="elementor-element elementor-element-76efe33 elementor-widget elementor-widget-text-editor" data-id="76efe33" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW132664429 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW132664429 BCX8">Beyond standard data ingestion testing, the AI assistant can also help with analytics validation. When </span><span class="NormalTextRun SCXW132664429 BCX8">you’re</span></span><span style="text-decoration: underline; color: #1967d2;"><a class="Hyperlink SCXW132664429 BCX8" style="color: #1967d2;" href="https://www.datagaps.com/bi-testing-tools/" target="_blank" rel="noreferrer noopener"><span class="TextRun Underlined SCXW132664429 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"> <span class="NormalTextRun SCXW132664429 BCX8" data-ccp-charstyle="Hyperlink">validating</span><span class="NormalTextRun SCXW132664429 BCX8" data-ccp-charstyle="Hyperlink"> BI reports</span></span></a></span><span class="TextRun SCXW132664429 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW132664429 BCX8"> during a migration or comparing source-to-target analytical outputs, you can describe the insights you need and let the assistant find the relevant queries across the dataset.</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-83fb622 elementor-widget elementor-widget-image" data-id="83fb622" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="640" height="296" src="https://www.datagaps.com/wp-content/uploads/unique-insights.png" class="attachment-large size-large wp-image-64220" alt="" srcset="https://www.datagaps.com/wp-content/uploads/unique-insights.png 727w, https://www.datagaps.com/wp-content/uploads/unique-insights-300x139.png 300w" sizes="(max-width: 640px) 100vw, 640px" />															</div>
				</div>
				<div class="elementor-element elementor-element-6fd599e elementor-widget elementor-widget-heading" data-id="6fd599e" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Generated Complex Query</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-aa68b1c elementor-widget elementor-widget-html" data-id="aa68b1c" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<pre style="background-color:#f2f2f2; border:1px solid #cccccc; padding:12px 14px; margin:16px 0; font-family:'Courier New', Courier, monospace; font-size:14px; line-height:1.4; color:#000000; white-space:pre; overflow-x:auto; border-radius:0;"><code style="font-family:'Courier New', Courier, monospace; background:transparent; padding:0; color:#000000;">WITH detail AS (
  SELECT DISTINCT
    c."Customer Key",
    c."Customer",
    pm."Payment Method",
    city."City"
  FROM Fact.Transactions_Table AS t
  JOIN Dimension.Customer AS c
    ON t."Customer Key" = c."Customer Key"
  JOIN Dimension."Payment Method" AS pm
    ON t."Payment Method Key" = pm."Payment Method Key"
  JOIN Fact.Sale AS s
    ON t."WWI Invoice ID" = s."WWI Invoice ID"
  JOIN Dimension.City AS city
    ON s."City Key" = city."City Key"
),
city_totals AS (
  SELECT
    d."City",
    COUNT(DISTINCT d."Customer Key") AS city_total_customers
  FROM detail d
  GROUP BY d."City"
),
city_method AS (
  SELECT
    d."City",
    d."Payment Method",
    COUNT(DISTINCT d."Customer Key") AS customer_count
  FROM detail d
  GROUP BY
    d."City",
    d."Payment Method"
),
city_method_rank AS (
  SELECT
    cm."City",
    cm."Payment Method",
    cm.customer_count,
    ct.city_total_customers,
    1.0 * cm.customer_count / NULLIF(ct.city_total_customers, 0) AS method_share_in_city,
    RANK() OVER (PARTITION BY cm."City" ORDER BY cm.customer_count DESC) AS method_rank_in_city
  FROM city_method cm
  JOIN city_totals ct
    ON cm."City" = ct."City"
)
SELECT
  "City",
  "Payment Method",
  customer_count,
  city_total_customers,
  method_share_in_city,
  method_rank_in_city
FROM city_method_rank;</code></pre>				</div>
				</div>
				<div class="elementor-element elementor-element-3ec716c elementor-widget elementor-widget-text-editor" data-id="3ec716c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW199136079 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW199136079 BCX8">This </span><span class="NormalTextRun SCXW199136079 BCX8">one-shot</span><span class="NormalTextRun SCXW199136079 BCX8"> capability, generating complex production-quality queries with </span><span class="NormalTextRun SCXW199136079 BCX8">accurate</span><span class="NormalTextRun SCXW199136079 BCX8"> window functions, correct column references, and multi-level CTEs, </span><span class="NormalTextRun SCXW199136079 BCX8">demonstrates</span><span class="NormalTextRun SCXW199136079 BCX8"> the enterprise readiness of the feature. Everything is handled automatically at the backend. Users define the intent; the platform handles the rest.</span></span><span class="EOP Selected SCXW199136079 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-73bc907 elementor-widget elementor-widget-icon-box" data-id="73bc907" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h2 class="elementor-icon-box-title">
						<span  >
							What best practices improve Text-to-SQL generation results?						</span>
					</h2>
				
									<p class="elementor-icon-box-description">
						Three guidelines help ensure consistently accurate output from the Text-to-SQL assistant.					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-91cbbca elementor-widget elementor-widget-heading" data-id="91cbbca" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">1. Avoid naming tables using SQL reserved keywords </h3>				</div>
				</div>
				<div class="elementor-element elementor-element-be84a62 elementor-widget elementor-widget-text-editor" data-id="be84a62" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW200402984 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW200402984 BCX8">If a table is named using a word like Order, Transaction, or Group, the generated SQL may trigger a syntax error because the query engine interprets it as a keyword rather than a table name.</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-c38af0b elementor-widget elementor-widget-image" data-id="c38af0b" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="640" height="382" src="https://www.datagaps.com/wp-content/uploads/Incorrect-syntax.png" class="attachment-large size-large wp-image-64221" alt="Incorrect syntax" srcset="https://www.datagaps.com/wp-content/uploads/Incorrect-syntax.png 775w, https://www.datagaps.com/wp-content/uploads/Incorrect-syntax-300x179.png 300w, https://www.datagaps.com/wp-content/uploads/Incorrect-syntax-768x458.png 768w" sizes="(max-width: 640px) 100vw, 640px" />											<figcaption class="widget-image-caption wp-caption-text"></figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-53820a5 elementor-widget elementor-widget-text-editor" data-id="53820a5" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW240718373 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW240718373 BCX8">The fix is straightforward: rename the affected tables in the data model to non-keyword names, then update the RAG to reflect the changes.</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-7a67d90 elementor-widget elementor-widget-image" data-id="7a67d90" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1766" height="891" src="https://www.datagaps.com/wp-content/uploads/Data-Quality-Dashboard-with-RAG-Highlights.png" class="attachment-full size-full wp-image-64222" alt="" srcset="https://www.datagaps.com/wp-content/uploads/Data-Quality-Dashboard-with-RAG-Highlights.png 1766w, https://www.datagaps.com/wp-content/uploads/Data-Quality-Dashboard-with-RAG-Highlights-300x151.png 300w, https://www.datagaps.com/wp-content/uploads/Data-Quality-Dashboard-with-RAG-Highlights-1024x517.png 1024w, https://www.datagaps.com/wp-content/uploads/Data-Quality-Dashboard-with-RAG-Highlights-768x387.png 768w, https://www.datagaps.com/wp-content/uploads/Data-Quality-Dashboard-with-RAG-Highlights-1536x775.png 1536w" sizes="(max-width: 1766px) 100vw, 1766px" />											<figcaption class="widget-image-caption wp-caption-text"></figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-e2e8f0c elementor-widget elementor-widget-text-editor" data-id="e2e8f0c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW205615051 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW205615051 BCX8">After renaming and regenerating the RAG, the assistant produces queries with the corrected table names.</span></span><span class="EOP Selected SCXW205615051 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-92981c6 elementor-widget elementor-widget-image" data-id="92981c6" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="640" height="336" src="https://www.datagaps.com/wp-content/uploads/Generating-query-again.png" class="attachment-large size-large wp-image-64223" alt="Generating query again" srcset="https://www.datagaps.com/wp-content/uploads/Generating-query-again.png 687w, https://www.datagaps.com/wp-content/uploads/Generating-query-again-300x158.png 300w" sizes="(max-width: 640px) 100vw, 640px" />											<figcaption class="widget-image-caption wp-caption-text"></figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-35781c9 elementor-widget elementor-widget-icon-box" data-id="35781c9" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							2. Perform a Full RAG for new data models 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						Simple metadata extraction handles basic scenarios well, but for a new data model or one with complex relationships, running a Full RAG gives the AI significantly richer context. The Full RAG process syncs metadata, retrieves sample data, generates column and table descriptions, and then builds the complete retrieval index.					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-69899f1 elementor-widget elementor-widget-image" data-id="69899f1" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="369" src="https://www.datagaps.com/wp-content/uploads/RAG-in-progress.png" class="attachment-full size-full wp-image-64224" alt="RAG in progress" srcset="https://www.datagaps.com/wp-content/uploads/RAG-in-progress.png 1120w, https://www.datagaps.com/wp-content/uploads/RAG-in-progress-300x99.png 300w, https://www.datagaps.com/wp-content/uploads/RAG-in-progress-1024x337.png 1024w, https://www.datagaps.com/wp-content/uploads/RAG-in-progress-768x253.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text"></figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-fcb2e06 elementor-widget elementor-widget-text-editor" data-id="fcb2e06" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW95147752 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW95147752 BCX8">This richer context also </span><span class="NormalTextRun SCXW95147752 BCX8">benefits</span><span class="NormalTextRun SCXW95147752 BCX8"> other AI-driven features within the platform, such as </span></span><span style="text-decoration: underline; color: #1967d2;"><a class="Hyperlink SCXW95147752 BCX8" style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-quality-monitoring-tools/" target="_blank" rel="noreferrer noopener"><span class="TextRun Underlined SCXW95147752 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW95147752 BCX8" data-ccp-charstyle="Hyperlink">AI-assisted rule generation.</span></span></a></span><span class="EOP Selected SCXW95147752 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-b36eca2 elementor-widget elementor-widget-icon-box" data-id="b36eca2" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							3. Use the AI assistant to inspect table schema before writing custom logic 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						For teams who need to write or validate queries themselves, the AI assistant can generate schema inspection queries on demand, providing a quick view of all <a href="https://www.datagaps.com/blog/data-profiling-in-etl-types-and-best-practices/" style="color: #1967d2;text-decoration: underline">columns, data types, and nullability</a> for any table in the model.					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-8df5de6 elementor-widget elementor-widget-image" data-id="8df5de6" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="342" src="https://www.datagaps.com/wp-content/uploads/Preview-of-schema.png" class="attachment-full size-full wp-image-64225" alt="" srcset="https://www.datagaps.com/wp-content/uploads/Preview-of-schema.png 1120w, https://www.datagaps.com/wp-content/uploads/Preview-of-schema-300x92.png 300w, https://www.datagaps.com/wp-content/uploads/Preview-of-schema-1024x313.png 1024w, https://www.datagaps.com/wp-content/uploads/Preview-of-schema-768x235.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-4077be2 elementor-widget elementor-widget-text-editor" data-id="4077be2" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW175925190 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW175925190 BCX8">Human validation </span><span class="NormalTextRun SCXW175925190 BCX8">remains</span><span class="NormalTextRun SCXW175925190 BCX8"> important, particularly before moving a query-based setup to production. The AI assistant accelerates the process of getting to a working query, but teams should always verify logic against known-good data before relying on it in a production pipeline.</span></span><span class="EOP Selected SCXW175925190 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-a367d05 elementor-widget elementor-widget-heading" data-id="a367d05" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Conclusion </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-e542658 elementor-widget elementor-widget-text-editor" data-id="e542658" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW32415468 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW32415468 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW32415468 BCX8">DataOps</span><span class="NormalTextRun SCXW32415468 BCX8"> Suite Text-to-SQL delivers consistent results across a wide range of scenarios, from simple lookups to multi-CTE analytical queries involving complex join paths. For teams in the testing phase of their data layer, whether that’s <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-reconciliation/" target="_blank" rel="noopener">source-to-target reconciliation</a></span>, <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/bi-testing-tools/" target="_blank" rel="noopener">BI migration validation</a></span>, or transformation testing, it removes one of the most persistent friction points in the process. Platform-native AI, RAG-powered schema understanding, and enterprise data privacy together make it suited to real-world data testing environments.</span></span><span class="EOP Selected SCXW32415468 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-bf2f76e elementor-widget elementor-widget-text-editor" data-id="bf2f76e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="color: #1967d2;"><a style="color: #1967d2;" href="https://www.datagaps.com/request-a-demo/" target="_blank" rel="noopener"><span style="text-decoration: underline;"><span class="NormalTextRun SCXW211184476 BCX8">See how Text-to-SQL builds source-to-target</span><span class="NormalTextRun SCXW211184476 BCX8"> validation Queries on your data →</span></span></a><br /></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-32908ef elementor-widget elementor-widget-heading" data-id="32908ef" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Frequently Asked Questions </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-923e752 elementor-widget elementor-widget-eael-adv-accordion" data-id="923e752" data-element_type="widget" data-e-type="widget" data-widget_type="eael-adv-accordion.default">
				<div class="elementor-widget-container">
					            <div class="eael-adv-accordion" id="eael-adv-accordion-923e752" data-scroll-on-click="no" data-scroll-speed="300" data-accordion-id="923e752" data-accordion-type="accordion" data-toogle-speed="300">
            <div class="eael-accordion-list">
					<div id="faq-1" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="1" aria-controls="elementor-tab-content-1531"><h3 class="eael-accordion-tab-title">How does Datagaps Text-to-SQL generate queries for data testing? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1531" class="eael-accordion-content clearfix" data-tab="1" aria-labelledby="faq-1"><p><span class="TextRun SCXW251286268 BCX8"><span class="NormalTextRun SCXW251286268 BCX8">After </span><span class="NormalTextRun SCXW251286268 BCX8">an<a href="https://www.datagaps.com/getting-started-with-dataops-suite-sandbox/" target="_blank" rel="noopener"><span style="text-decoration: underline;color: #1967d2"> initial</span></a></span><span class="NormalTextRun SCXW251286268 BCX8"><a href="https://www.datagaps.com/getting-started-with-dataops-suite-sandbox/" target="_blank" rel="noopener"><span style="text-decoration: underline;color: #1967d2"> RAG (Retrieval-Augmented Generation) setup</span>,</a> the AI assistant understands the metadata of all connected data sources, including table definitions, column </span><span class="NormalTextRun SCXW251286268 BCX8">types</span><span class="NormalTextRun SCXW251286268 BCX8"> and relationships. Users describe what they need in natural language, and the assistant generates SQL against the connected data model, from simple lookups to multi-CTE analytical queries.</span></span><span class="EOP Selected SCXW251286268 BCX8"> </span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-2" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="2" aria-controls="elementor-tab-content-1532"><h3 class="eael-accordion-tab-title">Why not use ChatGPT or Claude to write data validation SQL? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1532" class="eael-accordion-content clearfix" data-tab="2" aria-labelledby="faq-2"><p><span class="TextRun SCXW116483228 BCX8"><span class="NormalTextRun SCXW116483228 BCX8">With a public AI tool, teams must share schema details and dataset context across multiple exchanges, and the output is a generic template rather than a query ready to run against actual data. <span style="text-decoration: underline"><a href="https://www.datagaps.com/compliance-solutions/" target="_blank" rel="noopener"><span style="color: #1967d2;text-decoration: underline">Enterprise data should not be shared externally.</span> </a></span></span><span class="NormalTextRun SpellingErrorV2Themed SCXW116483228 BCX8">Datagaps</span> <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/dataops-suite/" target="_blank" rel="noopener"><span class="NormalTextRun SpellingErrorV2Themed SCXW116483228 BCX8">DataOps</span><span class="NormalTextRun SCXW116483228 BCX8"> Suite </span></a></span><span class="NormalTextRun SCXW116483228 BCX8">operates</span><span class="NormalTextRun SCXW116483228 BCX8"> entirely within the customer&#8217;s environment, and nothing leaves the secure boundary.</span></span><span class="EOP Selected SCXW116483228 BCX8"> </span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-3" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="3" aria-controls="elementor-tab-content-1533"><h3 class="eael-accordion-tab-title">What is the difference between simple RAG and Full RAG in Datagaps?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1533" class="eael-accordion-content clearfix" data-tab="3" aria-labelledby="faq-3"><p><span class="TextRun SCXW199829195 BCX8"><span class="NormalTextRun SCXW199829195 BCX8">Simple metadata extraction handles basic scenarios well. For a new data model or one with complex relationships, Full RAG gives the AI richer context: it syncs metadata, retrieves sample data, generates column and table descriptions, and builds the complete retrieval index. This richer context also benefits features such as <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2" href="https://www.datagaps.com/data-quality-observability-guide/" target="_blank" rel="noopener">AI-assisted rule generation.</a></span></span></span><a href="_wp_link_placeholder"><span class="EOP Selected SCXW199829195 BCX8"> </span></a></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-4" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="4" aria-controls="elementor-tab-content-1534"><h3 class="eael-accordion-tab-title">Why does generated SQL fail when a table is named Order or Group?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1534" class="eael-accordion-content clearfix" data-tab="4" aria-labelledby="faq-4"><p><span class="TextRun SCXW124872689 BCX8"><span class="NormalTextRun SCXW124872689 BCX8">Tables named with SQL reserved keywords such as Order, Transaction or Group can trigger syntax errors because the query engine interprets the name as a keyword rather than a table. The fix is to <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/data-testing-concepts/database-testing/" target="_blank" rel="noopener">rename the affected tables</a></span> in the data model to non-keyword names, then update the RAG so the assistant uses the corrected names.</span></span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-5" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="5" aria-controls="elementor-tab-content-1535"><h3 class="eael-accordion-tab-title">Do AI-generated SQL queries still need human validation? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1535" class="eael-accordion-content clearfix" data-tab="5" aria-labelledby="faq-5"><p><span class="NormalTextRun SCXW265552873 BCX8">Yes. Human validation </span><span class="NormalTextRun SCXW265552873 BCX8">remains</span><span class="NormalTextRun SCXW265552873 BCX8"> important, particularly before moving a query-based setup to production. The AI assistant accelerates getting to a working query, but teams should <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/blog/data-reconciliation-best-practices/" target="_blank" rel="noopener">verify logic against known-good data</a></span> before relying on it in a production pipeline. The assistant can also generate schema inspection queries to support that review.</span></p></div>
					</div></div>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-62980c3 e-flex e-con-boxed e-con e-parent" data-id="62980c3" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-1ac3fec e-con-full e-flex e-con e-child" data-id="1ac3fec" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-f5d35f8 e-con-full e-flex e-con e-child" data-id="f5d35f8" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-184c126 elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading" data-id="184c126" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<span class="elementor-heading-title elementor-size-default">Get Started Today</span>				</div>
				</div>
				<div class="elementor-element elementor-element-4a9257d elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading" data-id="4a9257d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Talk to a datagaps expert</h2>				</div>
				</div>
		<div class="elementor-element elementor-element-e2d718a e-con-full e-flex e-con e-child" data-id="e2d718a" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-0b52229 elementor-widget__width-auto home-btn-new elementor-widget elementor-widget-button" data-id="0b52229" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.datagaps.com/request-a-demo/" target="_blank">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Get a Demo</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-7b1b3d1 elementor-widget__width-auto home-btn-new elementor-widget elementor-widget-button" data-id="7b1b3d1" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.datagaps.com/contact-us/" target="_blank">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Contact Us</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-5da6591 e-flex e-con-boxed e-con e-parent" data-id="5da6591" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a6d9f5b elementor-widget elementor-widget-html" data-id="a6d9f5b" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://www.datagaps.com/#organization",
      "name": "Datagaps",
      "url": "https://www.datagaps.com/",
      "logo": {
        "@type": "ImageObject",
        "@id": "https://www.datagaps.com/#logo",
        "url": "https://www.datagaps.com/wp-content/uploads/datagaps-logo-2.svg",
        "contentUrl": "https://www.datagaps.com/wp-content/uploads/datagaps-logo-2.svg"
      },
      "sameAs": [
        "https://www.linkedin.com/company/datagaps/",
        "https://twitter.com/datagapsteam",
        "https://www.youtube.com/user/datagaps",
        "https://www.instagram.com/datagapsinc/",
        "https://www.facebook.com/datagapsinc"
      ]
    },
    {
      "@type": "Person",
      "@id": "https://www.datagaps.com/#/person/rajmohan-achanta",
      "name": "RajMohan Achanta",
      "jobTitle": "Associate Product Manager",
      "description": "Associate Product Manager at Datagaps. Shapes the product experience across ETL Validator, BI Validator, and Data Quality Monitor.",
      "worksFor": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "url": "https://www.datagaps.com/blog/author/rajmohan/",
      "sameAs": [
        "https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/"
      ],
      "alternateName": "Raj Mohan Achanta",
      "image": "https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png"
    },
    {
      "@type": "Person",
      "@id": "https://www.datagaps.com/#/person/avinash-keshri",
      "name": "Avinash Keshri",
      "jobTitle": "Head, Product Marketing",
      "description": "Head of Product Marketing at Datagaps and IIM Bangalore alumnus. 13+ years of experience in commercializing AI and data platforms across global markets.",
      "worksFor": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "alumniOf": {
        "@type": "CollegeOrUniversity",
        "name": "Indian Institute of Management Bangalore"
      },
      "url": "https://www.linkedin.com/in/avinashkeshri-iimb/",
      "sameAs": [
        "https://www.linkedin.com/in/avinashkeshri-iimb/"
      ],
      "image": "https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png"
    },
    {
      "@type": "BlogPosting",
      "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#blogposting",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/"
      },
      "url": "https://www.datagaps.com/blog/text-to-sql-data-validation/",
      "headline": "How Text-to-SQL Speeds Up Data Validation Query Writing",
      "description": "Datagaps DataOps Suite Text-to-SQL converts plain-language prompts into validation SQL grounded in your schema, inside your secure environment.",
      "inLanguage": "en",
      "datePublished": "2026-10-28T06:58:05+00:00",
      "dateModified": "2026-10-28T08:14:18+00:00",
      "author": [
        {
          "@id": "https://www.datagaps.com/#/person/rajmohan-achanta"
        },
        {
          "@id": "https://www.datagaps.com/#/person/avinash-keshri"
        }
      ],
      "publisher": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "articleSection": [
        "Data Quality",
        "Data Validation",
        "DataOps"
      ],
      "keywords": "Text-to-SQL, Data Validation, DataOps Suite, AI Assistant, Data Testing, RAG, Retrieval-Augmented Generation",
      "about": [
        {
          "@type": "Thing",
          "name": "Text-to-SQL"
        },
        {
          "@type": "Thing",
          "name": "Data validation"
        },
        {
          "@type": "Thing",
          "name": "Retrieval-augmented generation"
        }
      ],
      "mentions": [
        {
          "@type": "Thing",
          "name": "Datagaps DataOps Suite",
          "url": "https://www.datagaps.com/dataops-suite/"
        }
      ],
      "associatedMedia": [
        {
          "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-ai-assistant-home"
        },
        {
          "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-dataflows-created-result"
        },
        {
          "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-sql-server"
        },
        {
          "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-sql-query"
        },
        {
          "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-query"
        },
        {
          "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-generating-query"
        },
        {
          "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-unique-insights"
        },
        {
          "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-incorrect-syntax"
        },
        {
          "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-dq-dashboard-rag"
        },
        {
          "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-generating-query-again"
        },
        {
          "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-rag-in-progress"
        },
        {
          "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-schema-preview"
        }
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-ai-assistant-home",
      "url": "https://www.datagaps.com/wp-content/uploads/Chatbot-DataOps-Suite.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Chatbot-DataOps-Suite.png",
      "name": "DataOps Suite home page",
      "caption": "AI Assistant available from the Datagaps DataOps Suite home page",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-dataflows-created-result",
      "url": "https://www.datagaps.com/wp-content/uploads/no.-of-dataflows-created.2.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/no.-of-dataflows-created.2.png",
      "name": "AI Assistant result for number of dataflows created",
      "caption": "AI Assistant generating and running SQL from the home page and showing the result with a confidence score",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-sql-server",
      "url": "https://www.datagaps.com/wp-content/uploads/Microsoft-SQL-Server.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Microsoft-SQL-Server.png",
      "name": "Microsoft SQL Server",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-sql-query",
      "url": "https://www.datagaps.com/wp-content/uploads/SQL-Query.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/SQL-Query.png",
      "name": "SQL query",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-query",
      "url": "https://www.datagaps.com/wp-content/uploads/Query.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Query.png",
      "name": "Query",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-generating-query",
      "url": "https://www.datagaps.com/wp-content/uploads/generating-the-query.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/generating-the-query.png",
      "name": "Generating the query",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-unique-insights",
      "url": "https://www.datagaps.com/wp-content/uploads/unique-insights.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/unique-insights.png",
      "name": "Unique insights",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-incorrect-syntax",
      "url": "https://www.datagaps.com/wp-content/uploads/Incorrect-syntax.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Incorrect-syntax.png",
      "name": "Incorrect syntax error",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-dq-dashboard-rag",
      "url": "https://www.datagaps.com/wp-content/uploads/Data-Quality-Dashboard-with-RAG-Highlights.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Data-Quality-Dashboard-with-RAG-Highlights.png",
      "name": "Data Quality Dashboard with RAG Highlights",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-generating-query-again",
      "url": "https://www.datagaps.com/wp-content/uploads/Generating-query-again.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Generating-query-again.png",
      "name": "Generating the query again",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-rag-in-progress",
      "url": "https://www.datagaps.com/wp-content/uploads/RAG-in-progress.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/RAG-in-progress.png",
      "name": "RAG in progress",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#img-schema-preview",
      "url": "https://www.datagaps.com/wp-content/uploads/Preview-of-schema.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Preview-of-schema.png",
      "name": "Preview of schema",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "FAQPage",
      "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/#faq",
      "isPartOf": {
        "@id": "https://www.datagaps.com/blog/text-to-sql-data-validation/"
      },
      "mainEntity": [
        {
          "@type": "Question",
          "name": "How does Datagaps Text-to-SQL generate queries for data testing?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "After an initial RAG (Retrieval-Augmented Generation) setup, the AI assistant understands the metadata of all connected data sources, including table definitions, column types and relationships. Users describe what they need in natural language, and the assistant generates SQL against the connected data model, from simple lookups to multi-CTE analytical queries."
          }
        },
        {
          "@type": "Question",
          "name": "Why not use ChatGPT or Claude to write data validation SQL?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "With a public AI tool, teams must share schema details and dataset context across multiple exchanges, and the output is a generic template rather than a query ready to run against actual data. Enterprise data should not be shared externally. Datagaps DataOps Suite operates entirely within the customer’s environment, and nothing leaves the secure boundary."
          }
        },
        {
          "@type": "Question",
          "name": "What is the difference between simple RAG and Full RAG in Datagaps?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Simple metadata extraction handles basic scenarios well. For a new data model or one with complex relationships, Full RAG gives the AI richer context: it syncs metadata, retrieves sample data, generates column and table descriptions, and builds the complete retrieval index. This richer context also benefits features such as AI-assisted rule generation."
          }
        },
        {
          "@type": "Question",
          "name": "Why does generated SQL fail when a table is named Order or Group?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Tables named with SQL reserved keywords such as Order, Transaction or Group can trigger syntax errors because the query engine interprets the name as a keyword rather than a table. The fix is to rename the affected tables in the data model to non-keyword names, then update the RAG so the assistant uses the corrected names."
          }
        },
        {
          "@type": "Question",
          "name": "Do AI-generated SQL queries still need human validation?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. Human validation remains important, particularly before moving a query-based setup to production. The AI assistant accelerates getting to a working query, but teams should verify logic against known-good data before relying on it in a production pipeline. The assistant can also generate schema inspection queries to support that review."
          }
        }
      ]
    }
  ]
}
</script>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f8574ba e-flex e-con-boxed e-con e-parent" data-id="f8574ba" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-6b8079b e-con-full e-flex e-con e-child" data-id="6b8079b" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-86810af e-con-full e-flex e-con e-child" data-id="86810af" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-f437041 e-con-full e-flex e-con e-child" data-id="f437041" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-eaeece0 elementor-widget-laptop__width-initial elementor-widget elementor-widget-image" data-id="eaeece0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="150" height="150" src="https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png" class="attachment-thumbnail size-thumbnail wp-image-53799" alt="Raj Mohan Achanta" srcset="https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png 150w, https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-300x300.png 300w, https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta.png 504w" sizes="(max-width: 150px) 100vw, 150px" />															</div>
				</div>
		<div class="elementor-element elementor-element-ff250c2 e-con-full e-flex e-con e-child" data-id="ff250c2" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-f8a8b4d elementor-position-inline-end elementor-mobile-position-inline-start elementor-widget-laptop__width-initial elementor-view-default elementor-widget elementor-widget-icon-box" data-id="f8a8b4d" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/" class="elementor-icon" tabindex="-1" aria-label="RajMohan Achanta">
				<i aria-hidden="true" class="fab fa-linkedin-in"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h5 class="elementor-icon-box-title">
						<a href="https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/" >
							RajMohan Achanta						</a>
					</h5>
				
									<p class="elementor-icon-box-description">
						Associate Product Manager, Datagaps					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-d390cfb elementor-widget elementor-widget-text-editor" data-id="d390cfb" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Associate Product Manager at Datagaps. Shapes the product experience across ETL Validator, BI Validator, and Data Quality Monitor.</p>								</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-a7960cb e-con-full e-flex e-con e-child" data-id="a7960cb" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-66b97d0 elementor-widget-laptop__width-initial elementor-widget elementor-widget-image" data-id="66b97d0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="150" height="150" src="https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png" class="attachment-thumbnail size-thumbnail wp-image-54463" alt="Avinash&apos;s picture" srcset="https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png 150w, https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-300x300.png 300w, https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2.png 504w" sizes="(max-width: 150px) 100vw, 150px" />															</div>
				</div>
		<div class="elementor-element elementor-element-5e8a351 e-con-full e-flex e-con e-child" data-id="5e8a351" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-6e0b636 elementor-position-inline-end elementor-mobile-position-inline-start elementor-view-default elementor-widget elementor-widget-icon-box" data-id="6e0b636" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://www.linkedin.com/in/avinashkeshri-iimb/" class="elementor-icon" tabindex="-1" aria-label="Avinash Keshri">
				<i aria-hidden="true" class="fab fa-linkedin-in"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h5 class="elementor-icon-box-title">
						<a href="https://www.linkedin.com/in/avinashkeshri-iimb/" >
							Avinash Keshri						</a>
					</h5>
				
									<p class="elementor-icon-box-description">
						Head, Product Marketing					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-1e2303c elementor-widget elementor-widget-text-editor" data-id="1e2303c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Head of Product Marketing at Datagaps and IIM Bangalore alumnus. 13+ years of experience in commercializing AI and data platforms across global markets.</p>								</div>
				</div>
				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://www.datagaps.com/blog/text-to-sql-data-validation/">How Text-to-SQL Speeds Up Data Validation Query Writing</a> appeared first on <a href="https://www.datagaps.com">Datagaps | Gen AI-Powered Automated Cloud Data Testing</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Microsoft Purview and Datagaps: Why Data Trust Needs Both Governance and Execution</title>
		<link>https://www.datagaps.com/blog/microsoft-purview-and-datagaps-why-data-trust-needs-both-governance-and-execution/</link>
		
		<dc:creator><![CDATA[Raj Mohan Achanta]]></dc:creator>
		<pubDate>Mon, 26 Oct 2026 08:53:19 +0000</pubDate>
				<category><![CDATA[Data Quality]]></category>
		<category><![CDATA[Data Validation]]></category>
		<category><![CDATA[DataOps]]></category>
		<category><![CDATA[AI Rule Generation]]></category>
		<category><![CDATA[dataops]]></category>
		<category><![CDATA[Microsoft Fabric]]></category>
		<guid isPermaLink="false">https://www.datagaps.com/?p=63760</guid>

					<description><![CDATA[<p>Generate data quality rules for Microsoft Fabric using AI. Learn how AI simplifies rule creation, improves data accuracy, and strengthens data governance.</p>
<p>The post <a href="https://www.datagaps.com/blog/microsoft-purview-and-datagaps-why-data-trust-needs-both-governance-and-execution/">Microsoft Purview and Datagaps: Why Data Trust Needs Both Governance and Execution</a> appeared first on <a href="https://www.datagaps.com">Datagaps | Gen AI-Powered Automated Cloud Data Testing</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="63760" class="elementor elementor-63760" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-a3771bc e-flex e-con-boxed e-con e-parent" data-id="a3771bc" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-1fd7e36 elementor-widget elementor-widget-text-editor" data-id="1fd7e36" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW24282872 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW24282872 BCX8">Enterprise data trust is a measurable state in which organizations can verify that their data is </span><span class="NormalTextRun SCXW24282872 BCX8">accurate</span><span class="NormalTextRun SCXW24282872 BCX8">, governed, and continuously </span><span class="NormalTextRun SCXW24282872 BCX8">validated</span><span class="NormalTextRun SCXW24282872 BCX8"> across every stage of the pipeline. Achieving it requires two complementary layers: a metadata governance layer (such as Microsoft Purview) for visibility and policy, and an operational execution layer (such as </span><span class="NormalTextRun SpellingErrorV2Themed SCXW24282872 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW24282872 BCX8">DataOps</span><span class="NormalTextRun SCXW24282872 BCX8"> Suite) for automated testing, quality scoring, and validation. Neither layer alone is sufficient.</span></span><span class="EOP Selected SCXW24282872 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335557856&quot;:16512491,&quot;335559685&quot;:360,&quot;335559737&quot;:360,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:312,&quot;335572083&quot;:12,&quot;335572084&quot;:0,&quot;335572085&quot;:12682798,&quot;469789810&quot;:&quot;single&quot;}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-27eeb44 datagaps-tldr elementor-widget elementor-widget-text-editor" data-id="27eeb44" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Key Takeaways</strong></p><ul><li><span data-contrast="none">Metadata governance shows what your data is and where it lives. Operational execution proves whether that data is actually correct today.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559685&quot;:720,&quot;335559738&quot;:60,&quot;335559739&quot;:60,&quot;335559740&quot;:312}"> </span></li><li><span data-contrast="none">Microsoft Purview handles cataloging, classification, lineage, and compliance policies across your data estate.</span></li><li><span data-contrast="none">Datagaps DataOps Suite handles automated ETL validation, transformation testing, data quality scoring, schema drift detection, and continuous monitoring.</span></li><li><span data-contrast="none">Combining both layers creates a complete trust architecture: Purview governs, Datagaps validates.</span></li><li><span data-contrast="none">According to Gartner (2025), 60% of data management tasks will be automated by 2027, making this dual-layer approach essential for enterprises scaling AI and analytics.</span></li></ul>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-ddcad15 e-flex e-con-boxed e-con e-parent" data-id="ddcad15" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-909654c elementor-widget elementor-widget-heading" data-id="909654c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Why Does Data Governance Alone Not Build Trust? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f269997 elementor-widget elementor-widget-text-editor" data-id="f269997" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW218133633 BCX8">Enterprises today manage hundreds of data and AI products for both internal operations and external clients. From industry observations over the past three years, projects in their </span><span class="NormalTextRun SCXW218133633 BCX8">initial</span><span class="NormalTextRun SCXW218133633 BCX8"> stages rarely have a governance layer. In many cases, even mature projects lack one entirely.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-d15438e elementor-widget elementor-widget-text-editor" data-id="d15438e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="none">Even when governance programs exist, they focus almost entirely on metadata. Assets get cataloged. Sensitive columns are classified. Business glossaries are created. Lineage diagrams begin to show how data moves across pipelines. These are all critical investments.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-9498265 elementor-widget elementor-widget-text-editor" data-id="9498265" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>But here is the core problem: governance gives you visibility, not proof.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-460cd8d elementor-widget elementor-widget-image" data-id="460cd8d" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="429" src="https://www.datagaps.com/wp-content/uploads/Purview-Data-Health-Controls-Table-.png" class="attachment-full size-full wp-image-64013" alt="Alt: Microsoft Purview data health controls showing governance metrics for access, discoverability, estate curation, value creation, and trusted data" srcset="https://www.datagaps.com/wp-content/uploads/Purview-Data-Health-Controls-Table-.png 1120w, https://www.datagaps.com/wp-content/uploads/Purview-Data-Health-Controls-Table--300x115.png 300w, https://www.datagaps.com/wp-content/uploads/Purview-Data-Health-Controls-Table--1024x392.png 1024w, https://www.datagaps.com/wp-content/uploads/Purview-Data-Health-Controls-Table--768x294.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">Microsoft Purview's Data Health Controls provide visibility into governance maturity across six control groupings. </figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-7058977 elementor-widget elementor-widget-text-editor" data-id="7058977" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW50379313 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW50379313 BCX8">You can </span><span class="NormalTextRun SpellingErrorV2Themed SCXW50379313 BCX8">catalog</span><span class="NormalTextRun SCXW50379313 BCX8"> every table, classify every column, and trace every lineage path. Yet a random unexpected value can still break your pipeline on any given day. Enterprises simply cannot afford that kind of risk.</span></span><span class="EOP Selected SCXW50379313 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-604e192 e-flex e-con-boxed e-con e-parent" data-id="604e192" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3445573 elementor-widget elementor-widget-heading" data-id="3445573" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What Is the Difference Between Metadata and Operational Governance?</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f760d4f elementor-widget elementor-widget-text-editor" data-id="f760d4f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW222770681 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW222770681 BCX8">There is a well-known principle in the data world: metadata tells the story, but data tells the truth.</span></span><span class="EOP Selected SCXW222770681 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-748de4c elementor-widget elementor-widget-text-editor" data-id="748de4c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW51321890 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW51321890 BCX8"><b>Metadata governance</b> </span></span><span class="TextRun SCXW51321890 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW51321890 BCX8">answers</span><span class="NormalTextRun SCXW51321890 BCX8"> identity and context questions. Where did this dataset originate? Who owns it? Does this table </span><span class="NormalTextRun SCXW51321890 BCX8">contain</span><span class="NormalTextRun SCXW51321890 BCX8"> PII? What is the lineage of this report? Which glossary term maps to this column? Which compliance policy applies?</span></span><span class="EOP Selected SCXW51321890 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-774aaf0 elementor-widget elementor-widget-text-editor" data-id="774aaf0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong><span class="TextRun SCXW31187652 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW31187652 BCX8">Operational governance </span></span></strong><span class="TextRun SCXW31187652 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW31187652 BCX8">answers health and execution questions. Did today&#8217;s pipeline load successfully? Did all expected records arrive? Are there unexpected nulls or duplicates? Did any transformation corrupt the data? Are business rules still passing? Can Finance trust today&#8217;s dashboard?</span></span><span class="EOP Selected SCXW31187652 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-22dfc45 elementor-widget elementor-widget-text-editor" data-id="22dfc45" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW109362073 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW109362073 BCX8">The distinction matters because you can have perfect metadata governance and still have broken data reaching your dashboards. Governance without execution is visibility without verification.</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-3e1795c elementor-widget elementor-widget-image" data-id="3e1795c" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1168" height="1390" src="https://www.datagaps.com/wp-content/uploads/Metadata-vs-Operational-Governance-Comparison-Diagram-.png" class="attachment-full size-full wp-image-64014" alt="Comparison diagram showing metadata governance questions on the left mapped to operational governance questions on the right" srcset="https://www.datagaps.com/wp-content/uploads/Metadata-vs-Operational-Governance-Comparison-Diagram-.png 1168w, https://www.datagaps.com/wp-content/uploads/Metadata-vs-Operational-Governance-Comparison-Diagram--252x300.png 252w, https://www.datagaps.com/wp-content/uploads/Metadata-vs-Operational-Governance-Comparison-Diagram--860x1024.png 860w, https://www.datagaps.com/wp-content/uploads/Metadata-vs-Operational-Governance-Comparison-Diagram--768x914.png 768w" sizes="(max-width: 1168px) 100vw, 1168px" />											<figcaption class="widget-image-caption wp-caption-text">Metadata governance provides the identity layer. Operational governance provides the health and execution layer. Both are required for data trust.</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-b16fb31 elementor-widget elementor-widget-heading" data-id="b16fb31" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">How Does Microsoft Purview Handle the Governance Layer? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-269c004 elementor-widget elementor-widget-text-editor" data-id="269c004" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW88928104 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW88928104 BCX8">Microsoft Purview provides unified data governance across the entire data estate. It acts as the metadata and policy backbone for enterprises running Microsoft Fabric, Azure Synapse, SQL Server, Power BI, and hybrid cloud environments.</span></span><span class="EOP Selected SCXW88928104 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-cf185c4 elementor-widget elementor-widget-text-editor" data-id="cf185c4" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW172484454 BCX8">Purview&#8217;s governance capabilities include a Data </span><span class="NormalTextRun SpellingErrorV2Themed SCXW172484454 BCX8">Catalog</span><span class="NormalTextRun SCXW172484454 BCX8"> with business glossary and asset discovery, a Data Map for lineage and relationship tracking, Data Classification with sensitivity labels and PII detection, Access Governance for permissions and policy enforcement, Compliance and Audit for regulatory reporting, and Data Estate Insights for governance maturity analytics.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-3062066 elementor-widget elementor-widget-text-editor" data-id="3062066" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW165174799 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW165174799 BCX8">Recently, Purview introduced its new portal with advanced capabilities around governance, compliance, and data security. These updates make it a stronger governance backbone than ever, particularly for organizations invested in the Microsoft ecosystem.</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-bc42cd2 elementor-widget elementor-widget-text-editor" data-id="bc42cd2" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="none">However, Purview&#8217;s scope is metadata and policy. It tells you what data exists, where it came from, and who should have access. What it does not do is validate whether that data is correct at the record level, test transformations, or catch quality regressions before they reach production dashboards.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p><p><span data-contrast="none">That execution gap is where Datagaps steps in.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-b5672e4 elementor-widget elementor-widget-heading" data-id="b5672e4" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">How Does Datagaps DataOps Suite Build the Execution Layer? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-ba1a932 elementor-widget elementor-widget-text-editor" data-id="ba1a932" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW30407300 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SpellingErrorV2Themed SCXW30407300 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW30407300 BCX8">DataOps</span><span class="NormalTextRun SCXW30407300 BCX8"> Suite is an enterprise data testing and validation platform that automates quality assurance across the full data lifecycle. Listed in both Gartner&#8217;s Market Guide for </span><span class="NormalTextRun SpellingErrorV2Themed SCXW30407300 BCX8">DataOps</span><span class="NormalTextRun SCXW30407300 BCX8"> Tools (October 2025) and Market Guide for Data Observability Tools (February 2026), it provides the operational execution layer that governance platforms like Purview cannot deliver alone.</span></span><span class="EOP Selected SCXW30407300 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-9e0fe7a elementor-widget elementor-widget-text-editor" data-id="9e0fe7a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW41872744 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW41872744 BCX8">Where Purview governs metadata, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW41872744 BCX8">Datagaps</span><span class="NormalTextRun SCXW41872744 BCX8"> validates data. Here is what the </span><span class="NormalTextRun SpellingErrorV2Themed SCXW41872744 BCX8">DataOps</span><span class="NormalTextRun SCXW41872744 BCX8"> Suite delivers:</span></span><span class="EOP Selected SCXW41872744 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p><p><strong><span class="TextRun SCXW79181437 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW79181437 BCX8">ETL Validation: </span></span></strong><span class="TextRun SCXW79181437 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW79181437 BCX8">Automated source-to-target data validation powered by AI. Validates 100% of records across 200+ data sources, not just a statistical sample. Catches row-level discrepancies, schema mismatches, and transformation errors before they propagate downstream.</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-fcb2e06 elementor-widget elementor-widget-text-editor" data-id="fcb2e06" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW60542423 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW60542423 BCX8"><strong>Data Quality Scoring:</strong> </span></span><span class="TextRun SCXW60542423 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW60542423 BCX8">A continuously updated Data Quality Score that quantifies the health of your data estate at any point in time. Tracks completeness, consistency, validity, and timeliness across datasets.</span></span><span class="EOP Selected SCXW60542423 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-aa24450 elementor-widget elementor-widget-text-editor" data-id="aa24450" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong><span class="TextRun SCXW234338522 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW234338522 BCX8">Transformation Testing: </span></span></strong><span class="TextRun SCXW234338522 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW234338522 BCX8">Validates</span><span class="NormalTextRun SCXW234338522 BCX8"> complex transformations across multiple columns and tables while moving data to dashboards or gold layers. This stage </span><span class="NormalTextRun SCXW234338522 BCX8">determines</span><span class="NormalTextRun SCXW234338522 BCX8"> what eventually becomes visible on reports or gets exposed through APIs. If anything goes wrong here, you end up with incorrect numbers.</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-6a12892 elementor-widget elementor-widget-text-editor" data-id="6a12892" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong><span class="TextRun SCXW245147437 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW245147437 BCX8">Schema Drift Detection: </span></span></strong><span class="TextRun SCXW245147437 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW245147437 BCX8">Tracks structural changes across your data sources, whether columns are added, removed, or renamed. Performs impact analysis showing affected tables and columns across data flows.</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-006a35c elementor-widget elementor-widget-image" data-id="006a35c" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="520" src="https://www.datagaps.com/wp-content/uploads/Datagaps-Schema-Drift-Detection-Dashboard-.png" class="attachment-full size-full wp-image-64015" alt="Datagaps DataOps Suite schema drift detection dashboard showing tables, columns tracked with detailed change history" srcset="https://www.datagaps.com/wp-content/uploads/Datagaps-Schema-Drift-Detection-Dashboard-.png 1120w, https://www.datagaps.com/wp-content/uploads/Datagaps-Schema-Drift-Detection-Dashboard--300x139.png 300w, https://www.datagaps.com/wp-content/uploads/Datagaps-Schema-Drift-Detection-Dashboard--1024x475.png 1024w, https://www.datagaps.com/wp-content/uploads/Datagaps-Schema-Drift-Detection-Dashboard--768x357.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">Datagaps DataOps Suite tracks schema drift across all connected data sources with full impact analysis for every structural change. </figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-c43d92e elementor-widget elementor-widget-text-editor" data-id="c43d92e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Data Contracts:</strong> Reusable validation rules that standardize quality checks across similar datasets. Instead of recreating checks for every new pipeline, Data Contracts enforce consistency at scale.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-249501d elementor-widget elementor-widget-text-editor" data-id="249501d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong><span class="TextRun SCXW213271826 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW213271826 BCX8">BI Validation: </span></span></strong><span class="TextRun SCXW213271826 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW213271826 BCX8">Automated testing of Power BI, Tableau, Oracle Analytics, and other BI platforms. Catches report errors and performance issues before business users see incorrect dashboards. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW213271826 BCX8">Datagaps</span><span class="NormalTextRun SCXW213271826 BCX8"> reduces BI validation time by 70% and accelerates turnaround by 80%.</span></span><span class="EOP Selected SCXW213271826 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-f98ac9a elementor-widget elementor-widget-text-editor" data-id="f98ac9a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong><span class="TextRun SCXW186361231 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW186361231 BCX8">Synthetic Test Data: </span></span></strong><span class="TextRun SCXW186361231 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW186361231 BCX8">Using the </span><span class="NormalTextRun SpellingErrorV2Themed SCXW186361231 BCX8">Datagaps</span><span class="NormalTextRun SCXW186361231 BCX8"> Test Data Manager (TDM) module, teams can generate compliant synthetic test data to </span><span class="NormalTextRun SCXW186361231 BCX8">validate</span><span class="NormalTextRun SCXW186361231 BCX8"> transformations before moving anything into production.</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-0040f1a elementor-widget elementor-widget-image" data-id="0040f1a" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="997" height="853" src="https://www.datagaps.com/wp-content/uploads/Datagaps-Data-Quality-Dashboard.png" class="attachment-full size-full wp-image-64016" alt="Datagaps DataOps Suite data quality dashboard showing Data Quality Score, Data Models, Data Lineage, and Data Quality Issues" srcset="https://www.datagaps.com/wp-content/uploads/Datagaps-Data-Quality-Dashboard.png 997w, https://www.datagaps.com/wp-content/uploads/Datagaps-Data-Quality-Dashboard-300x257.png 300w, https://www.datagaps.com/wp-content/uploads/Datagaps-Data-Quality-Dashboard-768x657.png 768w" sizes="(max-width: 997px) 100vw, 997px" />											<figcaption class="widget-image-caption wp-caption-text">The Datagaps DataOps Suite Data Quality dashboard provides a single view of quality scores, data models, lineage, and active quality issues. </figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-7a49a3f elementor-widget elementor-widget-text-editor" data-id="7a49a3f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW188684399 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW188684399 BCX8">Instead of discovering data issues after a stakeholder reports incorrect values, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188684399 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188684399 BCX8">DataOps</span><span class="NormalTextRun SCXW188684399 BCX8"> Suite continuously </span><span class="NormalTextRun SCXW188684399 BCX8">validates</span><span class="NormalTextRun SCXW188684399 BCX8"> data throughout its lifecycle and sends alerts before incorrect data reaches business users. That is the real </span><span class="NormalTextRun SCXW188684399 BCX8">objective</span><span class="NormalTextRun SCXW188684399 BCX8"> of operational governance.</span></span><span class="EOP Selected SCXW188684399 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-8e0034c elementor-widget elementor-widget-heading" data-id="8e0034c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">How Do Microsoft Purview and Datagaps Work Together? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-98cc803 elementor-widget elementor-widget-text-editor" data-id="98cc803" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW237141887 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW237141887 BCX8">The strongest data architectures use both platforms for their native strengths. Purview handles the governance and metadata layer. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW237141887 BCX8">Datagaps</span><span class="NormalTextRun SCXW237141887 BCX8"> handles the testing and validation layer. Together, they cover the entire data governance and quality lifecycle.</span></span><span class="EOP Selected SCXW237141887 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-b684b30 elementor-widget elementor-widget-image" data-id="b684b30" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="986" height="842" src="https://www.datagaps.com/wp-content/uploads/Combined-Architecture-Microsoft-Purview-Datagaps-DataOps-Suite.png" class="attachment-full size-full wp-image-64018" alt="Architecture diagram combining Microsoft Purview for governance with Datagaps DataOps Suite for validation across the full data lifecycle" srcset="https://www.datagaps.com/wp-content/uploads/Combined-Architecture-Microsoft-Purview-Datagaps-DataOps-Suite.png 986w, https://www.datagaps.com/wp-content/uploads/Combined-Architecture-Microsoft-Purview-Datagaps-DataOps-Suite-300x256.png 300w, https://www.datagaps.com/wp-content/uploads/Combined-Architecture-Microsoft-Purview-Datagaps-DataOps-Suite-768x656.png 768w" sizes="(max-width: 986px) 100vw, 986px" />											<figcaption class="widget-image-caption wp-caption-text">Reference architecture combining Microsoft Purview for governance and Datagaps DataOps Suite for execution across the entire data lifecycle.</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-224bcf2 elementor-widget elementor-widget-heading" data-id="224bcf2" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">At the Data Source Layer </h3>				</div>
				</div>
				<div class="elementor-element elementor-element-c4e43ec elementor-widget elementor-widget-text-editor" data-id="c4e43ec" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW224086464 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW224086464 BCX8">Purview tracks end-to-end lineage from source to report. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW224086464 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW224086464 BCX8">DataOps</span><span class="NormalTextRun SCXW224086464 BCX8"> Suite runs ETL Validation across every record, </span><span class="NormalTextRun SCXW224086464 BCX8">validating</span><span class="NormalTextRun SCXW224086464 BCX8"> transformations using AI and LLM integration capabilities.</span></span><span class="EOP Selected SCXW224086464 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-05e8223 elementor-widget elementor-widget-text-editor" data-id="05e8223" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW196805744 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW196805744 BCX8" data-ccp-parastyle="heading 3">At the Warehouse and Data Mart Layers</span></span><span class="EOP Selected SCXW196805744 BCX8" data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:120}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-78d0a3f elementor-widget elementor-widget-text-editor" data-id="78d0a3f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW84723454 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW84723454 BCX8">Purview applies business glossary terms, classifies sensitive data, and enforces access policies. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW84723454 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW84723454 BCX8">DataOps</span><span class="NormalTextRun SCXW84723454 BCX8"> Suite continues validation through Data Quality Monitoring and automated testing to ensure the data reaching production data marts is verified.</span></span><span class="EOP Selected SCXW84723454 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-72d5e03 elementor-widget elementor-widget-text-editor" data-id="72d5e03" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW66948887 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW66948887 BCX8" data-ccp-parastyle="heading 3">At the Reporting and Dashboards Layer</span></span><span class="EOP Selected SCXW66948887 BCX8" data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:120}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-53f2465 elementor-widget elementor-widget-text-editor" data-id="53f2465" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW133534118 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW133534118 BCX8">Purview provides compliance audit trails and data estate analytics. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW133534118 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW133534118 BCX8">DataOps</span><span class="NormalTextRun SCXW133534118 BCX8"> Suite runs BI Validation to verify that the final reports and dashboards reflect </span><span class="NormalTextRun SCXW133534118 BCX8">accurate</span><span class="NormalTextRun SCXW133534118 BCX8">, trustworthy data.</span></span><span class="EOP Selected SCXW133534118 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-db332aa elementor-widget elementor-widget-heading" data-id="db332aa" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What Additional Capabilities Does the DataOps Suite Offer? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-37b736a elementor-widget elementor-widget-text-editor" data-id="37b736a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW112288288 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW112288288 BCX8">Beyond core data testing, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW112288288 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW112288288 BCX8">DataOps</span><span class="NormalTextRun SCXW112288288 BCX8"> Suite includes several components that extend the execution layer of governance.</span></span><span class="EOP Selected SCXW112288288 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-3136734 elementor-widget elementor-widget-image" data-id="3136734" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="753" src="https://www.datagaps.com/wp-content/uploads/Datagaps-DataOps-Suite-Full-Navigation-and-Modules-.png" class="attachment-full size-full wp-image-64019" alt="Datagaps DataOps Suite navigation showing Data Quality, Data Models, Dataflows, Pipelines, BI DevOps, TDM, and additional modules" srcset="https://www.datagaps.com/wp-content/uploads/Datagaps-DataOps-Suite-Full-Navigation-and-Modules-.png 1120w, https://www.datagaps.com/wp-content/uploads/Datagaps-DataOps-Suite-Full-Navigation-and-Modules--300x202.png 300w, https://www.datagaps.com/wp-content/uploads/Datagaps-DataOps-Suite-Full-Navigation-and-Modules--1024x688.png 1024w, https://www.datagaps.com/wp-content/uploads/Datagaps-DataOps-Suite-Full-Navigation-and-Modules--768x516.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">Datagaps DataOps Suite includes over 15 integrated modules covering data quality, DevOps, test data, scheduling, and monitoring. </figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-d71116b elementor-widget elementor-widget-text-editor" data-id="d71116b" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW159739676 BCX8">Data Models provide an abstract model that organizes data elements and standardizes how they relate to one another and to the properties of real-world entities. Data Lineage tracks data as it moves through systems and processes, helping users understand where data originated and how it has changed. Data Quality Issues actively </span><span class="NormalTextRun SCXW159739676 BCX8">monitors</span><span class="NormalTextRun SCXW159739676 BCX8"> and </span><span class="NormalTextRun SCXW159739676 BCX8">identifies</span><span class="NormalTextRun SCXW159739676 BCX8"> data points that are inaccurate, incomplete, or failing predefined quality standards.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-872c6af elementor-widget elementor-widget-text-editor" data-id="872c6af" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW120187522 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW120187522 BCX8">Data Contracts define reusable validation rules for data files, ensuring all incoming data conforms to expected structure and quality standards. Common Data Models provide high-level organization of data </span><span class="NormalTextRun SCXW120187522 BCX8">across functional areas. And the Analysis module delivers structured reporting on data quality patterns, enabling teams to </span><span class="NormalTextRun SCXW120187522 BCX8">identify</span><span class="NormalTextRun SCXW120187522 BCX8"> systemic issues rather than reacting to individual incidents.</span></span><span class="EOP SCXW120187522 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-7b90e7b elementor-widget elementor-widget-image" data-id="7b90e7b" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="592" height="712" src="https://www.datagaps.com/wp-content/uploads/Datagaps-Data-Quality-Detail-View.png" class="attachment-full size-full wp-image-64020" alt="" srcset="https://www.datagaps.com/wp-content/uploads/Datagaps-Data-Quality-Detail-View.png 592w, https://www.datagaps.com/wp-content/uploads/Datagaps-Data-Quality-Detail-View-249x300.png 249w" sizes="(max-width: 592px) 100vw, 592px" />											<figcaption class="widget-image-caption wp-caption-text">Datagaps DataOps Suite provides Data Contracts, Common Data Models, and structured Analysis for repeatable governance execution.</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-a367d05 elementor-widget elementor-widget-heading" data-id="a367d05" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Where Is Enterprise Data Trust Headed? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-e542658 elementor-widget elementor-widget-text-editor" data-id="e542658" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW181035878 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW181035878 BCX8">Microsoft Fabric enables fast analytics and AI experiences, but reliable outcomes depend on trustworthy data. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW181035878 BCX8">Datagaps</span><span class="NormalTextRun SCXW181035878 BCX8"> supports Fabric data quality workflows by helping teams generate rules faster, execute validations consistently, and interpret results with actionable detail. This reduces risk, improves reliability, and helps scale data quality practices across teams and environments.</span></span><span class="EOP Selected SCXW181035878 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-e0b837c elementor-widget elementor-widget-text-editor" data-id="e0b837c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW220791632 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW220791632 BCX8">The future of enterprise data trust will be built on two complementary layers. The first layer focuses on visibility through tools like Microsoft Purview. The second focuses on continuous validation through platforms like </span><span class="NormalTextRun SpellingErrorV2Themed SCXW220791632 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW220791632 BCX8">DataOps</span><span class="NormalTextRun SCXW220791632 BCX8"> Suite.</span></span><span class="EOP Selected SCXW220791632 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-d440ac3 elementor-widget elementor-widget-text-editor" data-id="d440ac3" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW198799002 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW198799002 BCX8">According to Gartner (2025), the data observability market is growing at 20.8% annually, reaching $346.4 million. And 53% of data and AI leaders have already implemented data observability tools, with 43% more planning to do so within 18 months (Gartner, 2025). Organizations that invest in both governance and execution will build the data trust foundation required for reliable AI, accurate analytics, and confident business decisions.</span></span><span class="EOP Selected SCXW198799002 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:80,&quot;335559739&quot;:120,&quot;335559740&quot;:312}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-bf2f76e elementor-widget elementor-widget-text-editor" data-id="bf2f76e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="color: #1967d2;"><a style="color: #1967d2;" href="https://www.datagaps.com/request-a-demo/" target="_blank" rel="noopener"><span style="text-decoration: underline;"><span class="TextRun SCXW128260341 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW128260341 BCX8"><span class="TextRun SCXW265958618 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW265958618 BCX8"><span class="TextRun SCXW28705792 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW28705792 BCX8">See how </span><span class="NormalTextRun SpellingErrorV2Themed SCXW28705792 BCX8">Datagaps</span><span class="NormalTextRun SCXW28705792 BCX8"> validates data across your Purview-governed pipeline</span></span><span class="EOP Selected SCXW28705792 BCX8" data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559738&quot;:360,&quot;335559739&quot;:120}"> </span>→</span></span></span></span></span></a></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-32908ef elementor-widget elementor-widget-heading" data-id="32908ef" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Frequently Asked Questions </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-923e752 elementor-widget elementor-widget-eael-adv-accordion" data-id="923e752" data-element_type="widget" data-e-type="widget" data-widget_type="eael-adv-accordion.default">
				<div class="elementor-widget-container">
					            <div class="eael-adv-accordion" id="eael-adv-accordion-923e752" data-scroll-on-click="no" data-scroll-speed="300" data-accordion-id="923e752" data-accordion-type="accordion" data-toogle-speed="300">
            <div class="eael-accordion-list">
					<div id="faq-1" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="1" aria-controls="elementor-tab-content-1531"><h3 class="eael-accordion-tab-title">How does Microsoft Purview differ from Datagaps DataOps Suite? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1531" class="eael-accordion-content clearfix" data-tab="1" aria-labelledby="faq-1"><p><span class="TextRun SCXW207559465 BCX8"><span class="NormalTextRun SCXW207559465 BCX8">Microsoft Purview is a unified data governance platform that handles metadata </span><span class="NormalTextRun SpellingErrorV2Themed SCXW207559465 BCX8">cataloging</span><span class="NormalTextRun SCXW207559465 BCX8">, classification, lineage, access policies, and compliance auditing. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW207559465 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW207559465 BCX8">DataOps</span><span class="NormalTextRun SCXW207559465 BCX8"> Suite is a data testing and validation platform that automates ETL validation, transformation testing, data quality scoring, schema drift detection, and BI report verification. Purview governs what data exists. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW207559465 BCX8">Datagaps</span><span class="NormalTextRun SCXW207559465 BCX8"> validates whether that data is correct.</span></span><span class="EOP Selected SCXW207559465 BCX8"> </span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-2" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="2" aria-controls="elementor-tab-content-1532"><h3 class="eael-accordion-tab-title">Can Datagaps DataOps Suite work alongside Microsoft Purview? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1532" class="eael-accordion-content clearfix" data-tab="2" aria-labelledby="faq-2"><p><span class="TextRun SCXW199315262 BCX8"><span class="NormalTextRun SCXW199315262 BCX8">Yes. The two platforms are complementary by design. Purview </span><span class="NormalTextRun SCXW199315262 BCX8">operates</span><span class="NormalTextRun SCXW199315262 BCX8"> as the metadata and policy layer across your data estate. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW199315262 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW199315262 BCX8">DataOps</span><span class="NormalTextRun SCXW199315262 BCX8"> Suite </span><span class="NormalTextRun SCXW199315262 BCX8">operates</span><span class="NormalTextRun SCXW199315262 BCX8"> as the automated testing </span><span class="NormalTextRun SCXW199315262 BCX8">and validation layer. Together, they cover governance from </span><span class="NormalTextRun SpellingErrorV2Themed SCXW199315262 BCX8">cataloging</span><span class="NormalTextRun SCXW199315262 BCX8"> through to record-level verification, creating a complete trust architecture.</span></span><span class="EOP SCXW199315262 BCX8"> </span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-3" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="3" aria-controls="elementor-tab-content-1533"><h3 class="eael-accordion-tab-title">Does Datagaps DataOps Suite support Microsoft Fabric and Azure? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1533" class="eael-accordion-content clearfix" data-tab="3" aria-labelledby="faq-3"><p><span class="TextRun SCXW58138077 BCX8"><span class="NormalTextRun SpellingErrorV2Themed SCXW58138077 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW58138077 BCX8">DataOps</span><span class="NormalTextRun SCXW58138077 BCX8"> Suite supports Microsoft Fabric, Azure Synapse, Azure SQL, Azure Data Factory, and SQL Server natively. It also supports over 200 </span><span class="NormalTextRun SCXW58138077 BCX8">additional</span><span class="NormalTextRun SCXW58138077 BCX8"> data sources including Snowflake, Databricks, Oracle, Informatica, and Amazon Redshift.</span></span><span class="EOP Selected SCXW58138077 BCX8"> </span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-4" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="4" aria-controls="elementor-tab-content-1534"><h3 class="eael-accordion-tab-title">How does Datagaps validate data differently from sampling-based tools? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1534" class="eael-accordion-content clearfix" data-tab="4" aria-labelledby="faq-4"><p><span class="TextRun SCXW51617071 BCX8"><span class="NormalTextRun SpellingErrorV2Themed SCXW51617071 BCX8">Datagaps</span><span class="NormalTextRun SCXW51617071 BCX8"> validates 100% of records at the row level, not a statistical sample. Every row, column, and transformation is verified against expected outcomes. Full-coverage validation is especially important for financial data, regulatory reporting, and migration projects where even small anomalies carry outsized business impact.</span></span><span class="EOP Selected SCXW51617071 BCX8"> </span></p></div>
					</div></div>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-62980c3 e-flex e-con-boxed e-con e-parent" data-id="62980c3" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-1ac3fec e-con-full e-flex e-con e-child" data-id="1ac3fec" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-f5d35f8 e-con-full e-flex e-con e-child" data-id="f5d35f8" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-184c126 elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading" data-id="184c126" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<span class="elementor-heading-title elementor-size-default">Get Started Today</span>				</div>
				</div>
				<div class="elementor-element elementor-element-4a9257d elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading" data-id="4a9257d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Talk to a datagaps expert</h2>				</div>
				</div>
		<div class="elementor-element elementor-element-e2d718a e-con-full e-flex e-con e-child" data-id="e2d718a" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-0b52229 elementor-widget__width-auto home-btn-new elementor-widget elementor-widget-button" data-id="0b52229" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.datagaps.com/request-a-demo/" target="_blank">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Get a Demo</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-7b1b3d1 elementor-widget__width-auto home-btn-new elementor-widget elementor-widget-button" data-id="7b1b3d1" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.datagaps.com/contact-us/" target="_blank">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Contact Us</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-5da6591 e-flex e-con-boxed e-con e-parent" data-id="5da6591" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a6d9f5b elementor-widget elementor-widget-html" data-id="a6d9f5b" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://www.datagaps.com/#organization",
      "name": "Datagaps",
      "url": "https://www.datagaps.com/",
      "logo": {
        "@type": "ImageObject",
        "@id": "https://www.datagaps.com/#logo",
        "url": "https://www.datagaps.com/wp-content/uploads/datagaps-logo-2.svg",
        "contentUrl": "https://www.datagaps.com/wp-content/uploads/datagaps-logo-2.svg"
      },
      "sameAs": [
        "https://www.linkedin.com/company/datagaps/",
        "https://twitter.com/datagapsteam",
        "https://www.youtube.com/user/datagaps",
        "https://www.instagram.com/datagapsinc/",
        "https://www.facebook.com/datagapsinc"
      ]
    },
    {
      "@type": "Person",
      "@id": "https://www.datagaps.com/#/person/rajmohan-achanta",
      "name": "RajMohan Achanta",
      "jobTitle": "Associate Product Manager",
      "description": "Associate Product Manager at Datagaps. Shapes the product experience across ETL Validator, BI Validator, and Data Quality Monitor.",
      "worksFor": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "url": "https://www.datagaps.com/blog/author/rajmohan/",
      "sameAs": [
        "https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/"
      ],
      "alternateName": "Raj Mohan Achanta",
      "image": "https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png"
    },
    {
      "@type": "Person",
      "@id": "https://www.datagaps.com/#/person/avinash-keshri",
      "name": "Avinash Keshri",
      "jobTitle": "Head, Product Marketing",
      "description": "Head of Product Marketing at Datagaps and IIM Bangalore alumnus. 13+ years of experience in commercializing AI and data platforms across global markets.",
      "worksFor": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "alumniOf": {
        "@type": "CollegeOrUniversity",
        "name": "Indian Institute of Management Bangalore"
      },
      "url": "https://www.linkedin.com/in/avinashkeshri-iimb/",
      "sameAs": [
        "https://www.linkedin.com/in/avinashkeshri-iimb/"
      ],
      "image": "https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png"
    },
    {
      "@type": "BlogPosting",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#blogposting",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/"
      },
      "url": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/",
      "headline": "How to Generate Data Quality Rules for Microsoft Fabric with AI",
      "alternativeHeadline": "Datagaps strengthens trust in Microsoft Fabric with AI-driven data quality rule generation",
      "description": "Learn how to generate and validate data quality rules for Microsoft Fabric in Datagaps using AI-assisted rule generation: connect Fabric, build a data model, scope prompts, review SQL rules, run validations and interpret DQ scores.",
      "inLanguage": "en",
      "datePublished": "2026-10-21T09:09:26+00:00",
      "dateModified": "2026-10-21T11:52:41+00:00",
      "author": [
        {
          "@id": "https://www.datagaps.com/#/person/rajmohan-achanta"
        },
        {
          "@id": "https://www.datagaps.com/#/person/avinash-keshri"
        }
      ],
      "publisher": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "image": {
        "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#featured-image"
      },
      "articleSection": "Data Quality",
      "keywords": "Microsoft Fabric, Data Quality, Data Validation, DataOps, AI Rule Generation",
      "about": [
        {
          "@type": "Thing",
          "name": "Microsoft Fabric"
        },
        {
          "@type": "Thing",
          "name": "Data quality"
        }
      ],
      "associatedMedia": [
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-01-connect-fabric"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-02-data-quality-section"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-03-data-model"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-04-baseline-dq-score"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-05-data-rules-wizard"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-06-generative-ai-rule"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-07-success-criteria-severity"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-08-select-columns"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-09-prompts"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-10-generating-rules"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-11-review-rules"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-12-rules-in-data-model"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-13-run-configuration"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-14-score-by-column"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-15-passing-rule-report"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-16-failing-rule-report"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-17-run-summary"
        }
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#featured-image",
      "url": "https://www.datagaps.com/wp-content/uploads/Data-Quality-rules-for-MF-data-banner-1024x536.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Data-Quality-rules-for-MF-data-banner-1024x536.webp",
      "width": 1024,
      "height": 536,
      "caption": "How to Generate Data Quality Rules for Microsoft Fabric with AI",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-01-connect-fabric",
      "url": "https://www.datagaps.com/wp-content/uploads/Modern-Data-Sources-Connector-Dashboard.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Modern-Data-Sources-Connector-Dashboard.png",
      "name": "Modern Data Sources Connector Dashboard",
      "caption": "Connect Microsoft Fabric as a data source using available connectors",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/png"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-02-data-quality-section",
      "url": "https://www.datagaps.com/wp-content/uploads/Data-quality-sections-for-DQ-Score.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Data-quality-sections-for-DQ-Score.webp",
      "name": "Data quality sections for DQ Score",
      "caption": "The Data Quality section provides access to DQ Score, Data Lineage, and other quality workflows.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-03-data-model",
      "url": "https://www.datagaps.com/wp-content/uploads/Data-Model-to-organise-tables-for-rules-s3.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Data-Model-to-organise-tables-for-rules-s3.webp",
      "name": "Data Model to organise tables for rules",
      "caption": "Create a data model to organize tables for rule creation and scoring.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-04-baseline-dq-score",
      "url": "https://www.datagaps.com/wp-content/uploads/Generate-and-review-DQ-Score.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Generate-and-review-DQ-Score.webp",
      "name": "Generate and review DQ Score",
      "caption": "Generate and review DQ Score",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-05-data-rules-wizard",
      "url": "https://www.datagaps.com/wp-content/uploads/Data-rules-wizard.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Data-rules-wizard.webp",
      "name": "Data rules wizard",
      "caption": "Data rules wizard",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-06-generative-ai-rule",
      "url": "https://www.datagaps.com/wp-content/uploads/S61-AI-Rules-generation-1.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S61-AI-Rules-generation-1.webp",
      "name": "Select Generative AI Rule to generate rules using a prompt-driven workflow",
      "caption": "Select Generative AI Rule to generate rules using a prompt-driven workflow.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-07-success-criteria-severity",
      "url": "https://www.datagaps.com/wp-content/uploads/S62-defining-success-criteria-and-severity.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S62-defining-success-criteria-and-severity.webp",
      "name": "Define success criteria and severity to standardize rule outcomes",
      "caption": "Define success criteria and severity to standardize rule outcomes.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-08-select-columns",
      "url": "https://www.datagaps.com/wp-content/uploads/S71-Select-the-table-and-columns-to-scope-AI-rule-generation.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S71-Select-the-table-and-columns-to-scope-AI-rule-generation.webp",
      "name": "Select the table and columns to scope AI rule generation",
      "caption": "Select the table and columns to scope AI rule generation",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-09-prompts",
      "url": "https://www.datagaps.com/wp-content/uploads/S72-Provide-prompts-combining-generic-checks-and-domain-logic.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S72-Provide-prompts-combining-generic-checks-and-domain-logic.webp",
      "name": "Provide prompts combining generic checks and domain logic",
      "caption": "Provide prompts combining generic checks and domain logic",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-10-generating-rules",
      "url": "https://www.datagaps.com/wp-content/uploads/S73-Rules-generated-automatically-based-on-selected-scope-and-prompts.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S73-Rules-generated-automatically-based-on-selected-scope-and-prompts.webp",
      "name": "Rules generated automatically based on selected scope and prompts",
      "caption": "Rules generated automatically based on selected scope and prompts",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-11-review-rules",
      "url": "https://www.datagaps.com/wp-content/uploads/S81-Review-generated-rules-including-SQL-logic-and-dimension-mapping-before-execution.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S81-Review-generated-rules-including-SQL-logic-and-dimension-mapping-before-execution.webp",
      "name": "Review generated rules, including SQL logic and dimension mapping, before execution",
      "caption": "Review generated rules, including SQL logic and dimension mapping, before execution",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-12-rules-in-data-model",
      "url": "https://www.datagaps.com/wp-content/uploads/S82-Rules-are-centrally-managed-within-the-data-model-for-review-and-execution.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S82-Rules-are-centrally-managed-within-the-data-model-for-review-and-execution.webp",
      "name": "Rules are centrally managed within the data model for review and execution",
      "caption": "Rules are centrally managed within the data model for review and execution",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-13-run-configuration",
      "url": "https://www.datagaps.com/wp-content/uploads/Configure-execution-settings.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Configure-execution-settings.webp",
      "name": "Configure execution settings",
      "caption": "Configure execution settings and where bad records should be stored.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-14-score-by-column",
      "url": "https://www.datagaps.com/wp-content/uploads/S101-Evaluate-quality-at-the-column-level-based-on-executed-rules.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S101-Evaluate-quality-at-the-column-level-based-on-executed-rules.webp",
      "name": "Evaluate quality at the column level based on executed rules",
      "caption": "Evaluate quality at the column level based on executed rules.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-15-passing-rule-report",
      "url": "https://www.datagaps.com/wp-content/uploads/S102-Rule-reports-provide-pass-status-counts-and-execution-details.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S102-Rule-reports-provide-pass-status-counts-and-execution-details.webp",
      "name": "Rule reports provide pass status, counts, and execution details",
      "caption": "Rule reports provide pass status, counts, and execution details.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-16-failing-rule-report",
      "url": "https://www.datagaps.com/wp-content/uploads/S103-Failures-highlight-bad-records-and-provide-samples-to-accelerate-remediation.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S103-Failures-highlight-bad-records-and-provide-samples-to-accelerate-remediation.webp",
      "name": "Failures highlight bad records and provide samples to accelerate remediation",
      "caption": "Failures highlight bad records and provide samples to accelerate remediation.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-17-run-summary",
      "url": "https://www.datagaps.com/wp-content/uploads/S104-Run-summary-consolidated-results-across-rules-columns-and-dimensions.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S104-Run-summary-consolidated-results-across-rules-columns-and-dimensions.webp",
      "name": "Run summary consolidated results across rules, columns, and dimensions",
      "caption": "Run summary consolidated results across rules, columns, and dimensions.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "FAQPage",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#faq",
      "isPartOf": {
        "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/"
      },
      "mainEntity": [
        {
          "@type": "Question",
          "name": "How does Datagaps generate data quality rules for Microsoft Fabric tables?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Datagaps generates rules through the AI-assisted mode of its Data Rules Wizard. You select the Fabric table and columns, define success criteria and severity, and provide a generic prompt plus a domain prompt. Datagaps then returns rule suggestions with rule names, descriptions, mapped quality dimensions and SQL logic that identifies bad records."
          }
        },
        {
          "@type": "Question",
          "name": "What data quality checks are typical for a Microsoft Fabric gold layer?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Common checks include numeric constraints such as revenue greater than zero, format checks such as valid email patterns, null checks for required attributes, uniqueness checks to prevent duplicate keys, and cross-table consistency checks that reconcile datasets. A gold layer often holds dozens of tables with dozens of columns each, which is why manual implementation becomes hard to manage."
          }
        },
        {
          "@type": "Question",
          "name": "Should AI-generated data quality rules be reviewed before they run?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. AI-generated rules should be reviewed before execution to confirm they align with internal standards and domain expectations. Review covers the rule name, description, mapped dimension and SQL logic. For production adoption, add a formal review workflow, especially for cross-table logic, and keep domain prompts in a shared repository per business domain."
          }
        },
        {
          "@type": "Question",
          "name": "What can you configure before running data quality validations on Fabric data?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Before execution, you configure how the run behaves: where bad records should be stored, parallel execution settings, and sampling limits for the bad data that is captured. These settings are applied to the rules managed centrally within the data model, so validations run consistently each time they are triggered."
          }
        },
        {
          "@type": "Question",
          "name": "How do you interpret Datagaps data quality results for Microsoft Fabric?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Results are reviewed at several levels: a column-wise DQ score based on executed rules, rule-level pass or fail outcomes, sample bad records for investigation, and a summary across rules, columns and dimensions. Start with the high-level scoring view, then examine a passing and a failing rule, and finish with the overall run summary."
          }
        }
      ]
    }
  ]
}
</script>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f8574ba e-flex e-con-boxed e-con e-parent" data-id="f8574ba" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-6b8079b e-con-full e-flex e-con e-child" data-id="6b8079b" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-86810af e-con-full e-flex e-con e-child" data-id="86810af" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-f437041 e-con-full e-flex e-con e-child" data-id="f437041" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-eaeece0 elementor-widget-laptop__width-initial elementor-widget elementor-widget-image" data-id="eaeece0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="150" height="150" src="https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png" class="attachment-thumbnail size-thumbnail wp-image-53799" alt="Raj Mohan Achanta" srcset="https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png 150w, https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-300x300.png 300w, https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta.png 504w" sizes="(max-width: 150px) 100vw, 150px" />															</div>
				</div>
		<div class="elementor-element elementor-element-ff250c2 e-con-full e-flex e-con e-child" data-id="ff250c2" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-f8a8b4d elementor-position-inline-end elementor-mobile-position-inline-start elementor-widget-laptop__width-initial elementor-view-default elementor-widget elementor-widget-icon-box" data-id="f8a8b4d" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/" class="elementor-icon" tabindex="-1" aria-label="RajMohan Achanta">
				<i aria-hidden="true" class="fab fa-linkedin-in"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h5 class="elementor-icon-box-title">
						<a href="https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/" >
							RajMohan Achanta						</a>
					</h5>
				
									<p class="elementor-icon-box-description">
						Associate Product Manager, Datagaps					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-d390cfb elementor-widget elementor-widget-text-editor" data-id="d390cfb" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Associate Product Manager at Datagaps. Shapes the product experience across ETL Validator, BI Validator, and Data Quality Monitor.</p>								</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-a7960cb e-con-full e-flex e-con e-child" data-id="a7960cb" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-66b97d0 elementor-widget-laptop__width-initial elementor-widget elementor-widget-image" data-id="66b97d0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="150" height="150" src="https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png" class="attachment-thumbnail size-thumbnail wp-image-54463" alt="Avinash&apos;s picture" srcset="https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png 150w, https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-300x300.png 300w, https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2.png 504w" sizes="(max-width: 150px) 100vw, 150px" />															</div>
				</div>
		<div class="elementor-element elementor-element-5e8a351 e-con-full e-flex e-con e-child" data-id="5e8a351" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-6e0b636 elementor-position-inline-end elementor-mobile-position-inline-start elementor-view-default elementor-widget elementor-widget-icon-box" data-id="6e0b636" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://www.linkedin.com/in/avinashkeshri-iimb/" class="elementor-icon" tabindex="-1" aria-label="Avinash Keshri">
				<i aria-hidden="true" class="fab fa-linkedin-in"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h5 class="elementor-icon-box-title">
						<a href="https://www.linkedin.com/in/avinashkeshri-iimb/" >
							Avinash Keshri						</a>
					</h5>
				
									<p class="elementor-icon-box-description">
						Head, Product Marketing					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-1e2303c elementor-widget elementor-widget-text-editor" data-id="1e2303c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Head of Product Marketing at Datagaps and IIM Bangalore alumnus. 13+ years of experience in commercializing AI and data platforms across global markets.</p>								</div>
				</div>
				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://www.datagaps.com/blog/microsoft-purview-and-datagaps-why-data-trust-needs-both-governance-and-execution/">Microsoft Purview and Datagaps: Why Data Trust Needs Both Governance and Execution</a> appeared first on <a href="https://www.datagaps.com">Datagaps | Gen AI-Powered Automated Cloud Data Testing</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Test a Data Migration to Microsoft Fabric in 5 Layers</title>
		<link>https://www.datagaps.com/blog/microsoft-fabric-migration-testing/</link>
		
		<dc:creator><![CDATA[Raj Mohan Achanta]]></dc:creator>
		<pubDate>Mon, 26 Oct 2026 08:53:17 +0000</pubDate>
				<category><![CDATA[Cloud Data Migration]]></category>
		<category><![CDATA[Data Validation]]></category>
		<category><![CDATA[Data Migration]]></category>
		<category><![CDATA[Data Testing]]></category>
		<category><![CDATA[Fabric Migration]]></category>
		<category><![CDATA[Microsoft Fabric]]></category>
		<guid isPermaLink="false">https://www.datagaps.com/?p=64017</guid>

					<description><![CDATA[<p>Learn how to test Microsoft Fabric migrations with five layers of data validation, from metadata and data comparison to transformations and BI reports.</p>
<p>The post <a href="https://www.datagaps.com/blog/microsoft-fabric-migration-testing/">How to Test a Data Migration to Microsoft Fabric in 5 Layers</a> appeared first on <a href="https://www.datagaps.com">Datagaps | Gen AI-Powered Automated Cloud Data Testing</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="64017" class="elementor elementor-64017" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-a3771bc e-flex e-con-boxed e-con e-parent" data-id="a3771bc" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-1fd7e36 elementor-widget elementor-widget-text-editor" data-id="1fd7e36" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW166660788 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW166660788 BCX8">Microsoft Fabric migration testing verifies that data moved into Fabric is structurally and factually </span><span class="NormalTextRun SCXW166660788 BCX8">accurate</span><span class="NormalTextRun SCXW166660788 BCX8">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW166660788 BCX8">Datagaps</span><span class="NormalTextRun SCXW166660788 BCX8"> validates migrations through five no-code dataflow layers: metadata comparison, data profile comparison, source-to-target data comparison, transformation </span><span class="NormalTextRun SCXW166660788 BCX8">validation</span><span class="NormalTextRun SCXW166660788 BCX8"> and BI report validation.</span></span><span class="EOP Selected SCXW166660788 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-27eeb44 datagaps-tldr elementor-widget elementor-widget-text-editor" data-id="27eeb44" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Key Takeaways</strong></p><ul><li><span data-contrast="auto">Fabric&#8217;s Migration Assistant helps execute migrations but does not automatically verify that migrated data is accurate.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Start with metadata comparison to catch data type, column length, foreign key and nullability mismatches.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Profile comparison confirms row counts, null percentages, distributions and distinct counts match across both systems.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Data Compare reports matched rows, source-only and target-only rows, duplicates and column-level differences.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">BI Analytics components compare Power BI and Tableau reports visually and at the data level.</span><span data-ccp-props="{}"> </span></li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-2bb8934 elementor-widget elementor-widget-text-editor" data-id="2bb8934" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2;" href="https://www.datagaps.com/request-a-demo/" target="_blank" rel="noopener"><span class="NormalTextRun SCXW117171178 BCX8">See how the </span><span class="NormalTextRun SpellingErrorV2Themed SCXW117171178 BCX8">Datagaps Validates</span><span class="NormalTextRun SCXW117171178 BCX8">  your Fabric Migration Layer by layer →</span></a></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-9e11135 elementor-widget elementor-widget-text-editor" data-id="9e11135" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW234432753 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW234432753 BCX8">To test a <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-migration-testing-complete-guide/" target="_blank" rel="noopener">data migration</a></span> to Microsoft Fabric, </span><span class="NormalTextRun SCXW234432753 BCX8">validate</span><span class="NormalTextRun SCXW234432753 BCX8"> it in layers: compare metadata between source and target, compare data profiles, compare records row by row, validate transformations, and confirm BI reports still return </span><span class="NormalTextRun SCXW234432753 BCX8">accurate</span><span class="NormalTextRun SCXW234432753 BCX8"> data. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW234432753 BCX8">Datagaps</span><span class="NormalTextRun SCXW234432753 BCX8"> runs all five layers in a <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/dataops-suite/" target="_blank" rel="noopener">dataflow-based framework</a></span> without custom code.</span></span><span class="EOP Selected SCXW234432753 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-ddcad15 e-flex e-con-boxed e-con e-parent" data-id="ddcad15" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-909654c elementor-widget elementor-widget-heading" data-id="909654c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Why does a Microsoft Fabric migration need separate validation? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f269997 elementor-widget elementor-widget-text-editor" data-id="f269997" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW254287140 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW254287140 BCX8">Organizations across industries are increasingly moving their data workloads to Microsoft Fabric &#8211; some from SQL Server, others from <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/azure-synapse-testing/" target="_blank" rel="noopener">Synapse</a></span>, and many from a mix of legacy enterprise data warehouses, Azure Data Factory pipelines, or hybrid systems that have grown over time.</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-d15438e elementor-widget elementor-widget-text-editor" data-id="d15438e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW16184191 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW16184191 BCX8">Microsoft Fabric brings together data engineering, warehousing, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW16184191 BCX8">lakehouses</span><span class="NormalTextRun SCXW16184191 BCX8">, Power BI, notebooks, pipelines, AI, and analytics in a unified platform, which explains much of the momentum behind this shift. But moving to a new platform involves more than executing the migration itself. Validating that the outcome is </span><span class="NormalTextRun SCXW16184191 BCX8">accurate</span><span class="NormalTextRun SCXW16184191 BCX8"> matters just as much.</span></span><span class="EOP Selected SCXW16184191 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-9498265 elementor-widget elementor-widget-text-editor" data-id="9498265" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW262146606 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW262146606 BCX8">This guide walks through a practical approach to data migration testing for Microsoft Fabric, including how to use </span><span class="NormalTextRun SpellingErrorV2Themed SCXW262146606 BCX8">Datagaps</span><span class="NormalTextRun SCXW262146606 BCX8"> to </span><span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-testing-concepts/data-migration-testing/" target="_blank" rel="noopener"><span><span class="NormalTextRun SCXW262146606 BCX8">validate</span></span></a> </span></span><span style="text-decoration: underline; color: #1967d2;">migrations</span><span class="TextRun SCXW262146606 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW262146606 BCX8">  in a structured way instead of relying on manual SQL checks alone.</span></span><span class="EOP Selected SCXW262146606 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-604e192 e-flex e-con-boxed e-con e-parent" data-id="604e192" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3445573 elementor-widget elementor-widget-heading" data-id="3445573" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What does Microsoft Fabric already offer for migration? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f760d4f elementor-widget elementor-widget-text-editor" data-id="f760d4f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="auto">Microsoft Fabric includes several built-in capabilities that help simplify the migration process. The Fabric Migration Assistant for Data Warehouse migrations, for example, helps organizations move workloads into Fabric with significantly less manual effort.</span><span data-ccp-props="{}"> </span></p><p><span data-contrast="auto">For teams migrating from SQL Server or Synapse, the Migration Assistant can identify which objects migrate directly and which ones need adjustments &#8211; reducing the overhead of rebuilding schemas from scratch.</span><span data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-6b2b2ad elementor-widget elementor-widget-image" data-id="6b2b2ad" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="803" src="https://www.datagaps.com/wp-content/uploads/Mgration-Assistant.1.png" class="attachment-full size-full wp-image-64051" alt="Mgration Assistant" srcset="https://www.datagaps.com/wp-content/uploads/Mgration-Assistant.1.png 1120w, https://www.datagaps.com/wp-content/uploads/Mgration-Assistant.1-300x215.png 300w, https://www.datagaps.com/wp-content/uploads/Mgration-Assistant.1-1024x734.png 1024w, https://www.datagaps.com/wp-content/uploads/Mgration-Assistant.1-768x551.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-269c004 elementor-widget elementor-widget-text-editor" data-id="269c004" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW202591587 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW202591587 BCX8">While Fabric </span><span class="NormalTextRun SCXW202591587 BCX8">assists</span><span class="NormalTextRun SCXW202591587 BCX8"> with executing the migration, it does not automatically verify that the migrated data is fully </span><span class="NormalTextRun SCXW202591587 BCX8">accurate</span><span class="NormalTextRun SCXW202591587 BCX8"> from a testing standpoint. Migration testing tends to be <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/whitepaper/the-cost-benefit-of-data-migration-to-the-cloud/" target="_blank" rel="noopener">more involved than teams initially expect</a></span>, and the right tooling helps them </span><span class="NormalTextRun SCXW202591587 BCX8">identify</span><span class="NormalTextRun SCXW202591587 BCX8"> and resolve issues more efficiently.</span></span><span class="EOP Selected SCXW202591587 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-ed13d65 elementor-widget elementor-widget-image" data-id="ed13d65" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1094" height="525" src="https://www.datagaps.com/wp-content/uploads/Migration-steps.png" class="attachment-full size-full wp-image-64063" alt="Migration steps" srcset="https://www.datagaps.com/wp-content/uploads/Migration-steps.png 1094w, https://www.datagaps.com/wp-content/uploads/Migration-steps-300x144.png 300w, https://www.datagaps.com/wp-content/uploads/Migration-steps-1024x491.png 1024w, https://www.datagaps.com/wp-content/uploads/Migration-steps-768x369.png 768w" sizes="(max-width: 1094px) 100vw, 1094px" />															</div>
				</div>
				<div class="elementor-element elementor-element-7294251 elementor-widget elementor-widget-heading" data-id="7294251" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What should be tested during a Microsoft Fabric migration? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-ac40778 elementor-widget elementor-widget-text-editor" data-id="ac40778" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW199127089 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-testing-concepts/data-warehouse-testing-checklist/" target="_blank" rel="noopener"><span class="NormalTextRun SCXW199127089 BCX8">Test structure, statistics, records, business </span><span class="NormalTextRun SCXW199127089 BCX8">logic</span></a></span><span class="NormalTextRun SCXW199127089 BCX8"><a href="_wp_link_placeholder"> and reports.</a> The core concepts of migration testing remain consistent regardless of which platform is being migrated to. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW199127089 BCX8">Datagaps</span><span class="NormalTextRun SCXW199127089 BCX8"> approaches this in five layers, each addressing a different aspect of data accuracy and consistency.</span></span><span class="EOP Selected SCXW199127089 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-98c5944 elementor-widget elementor-widget-html" data-id="98c5944" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<style>

.layer-table-wrapper {
    max-width: 100%;
    font-family: Inter, sans-serif;
    margin: auto;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 0px 5px rgba(0,0,0,.10);
}

.layer-table-wrapper .layer-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.layer-table-wrapper .layer-table thead th {
    background: #022769;
    color: #fff;
    padding: 18px 22px;
    font-size: 15px;
    font-weight: 600;
    text-align: left !important;
    font-family: Inter, sans-serif;
    border-bottom: 1px solid rgba(255,255,255,.25) !important;
}

.layer-table-wrapper .layer-table thead th:nth-child(1) { width: 33.33% !important; }
.layer-table-wrapper .layer-table thead th:nth-child(2) { width: 33.33% !important; }
.layer-table-wrapper .layer-table thead th:nth-child(3) { width: 33.33% !important; }

.layer-table-wrapper .layer-table tbody td {
    padding: 16px 22px;
    font-size: 16px;
    line-height: 1.55;
    vertical-align: top;
    text-align: left !important;
    color: #111;
    background: #fff;
    font-weight: 400;
    font-family: Inter, sans-serif;
    transition: .25s;
}

.layer-table-wrapper .layer-table tbody td:nth-child(1) {
    background: #f5f8fb;
    font-weight: 500;
}

.layer-table-wrapper .layer-table tbody tr:hover td {
    background: #fafafa;
}

.layer-table-wrapper .layer-table tbody tr:hover td:nth-child(1) {
    background: #eef3f8;
}

/* Row lines */
.layer-table-wrapper .layer-table tbody td {
    border-bottom: 1px solid #d5dce4 !important;
}

.layer-table-wrapper .layer-table tbody tr:last-child td {
    border-bottom: none !important;
}

/* Column divider lines */
.layer-table-wrapper .layer-table thead th:not(:last-child) {
    border-right: 1px solid rgba(255,255,255,.25) !important;
}

.layer-table-wrapper .layer-table tbody td:not(:last-child) {
    border-right: 1px solid #d5dce4 !important;
}

/* Responsive */
@media (max-width: 1200px) {
    .layer-table-wrapper .layer-table thead th {
        padding: 14px 16px;
        font-size: 13px;
    }
    .layer-table-wrapper .layer-table tbody td {
        padding: 12px 16px;
        font-size: 13px;
    }
}

@media (max-width: 991px) {
    .layer-table-wrapper {
        overflow: auto;
    }
    .layer-table-wrapper .layer-table {
        min-width: 700px;
    }
    .layer-table-wrapper .layer-table tbody td {
        padding: 14px 16px;
        font-size: 12px;
    }
    .layer-table-wrapper .layer-table::after {
        content: "← Swipe to view more →";
        display: block;
        text-align: center;
        color: #777;
        font-size: 12px;
        padding: 10px 0;
    }
}

</style>

<div class="layer-table-wrapper">
    <table class="layer-table">
        <colgroup>
            <col style="width:33.33%">
            <col style="width:33.33%">
            <col style="width:33.33%">
        </colgroup>
        <thead>
            <tr>
                <th style="text-align:left;">Layer</th>
                <th style="text-align:left;">What it validates</th>
                <th style="text-align:left;">Datagaps component</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td style="text-align:left;">1. Metadata comparison</td>
                <td style="text-align:left;">Data types, nullability, primary keys and constraints</td>
                <td style="text-align:left;">Metadata Compare</td>
            </tr>
            <tr>
                <td style="text-align:left;">2. Data profile comparison</td>
                <td style="text-align:left;">Row counts, null %, min/max, distinct counts, standard deviation</td>
                <td style="text-align:left;">Data Profile</td>
            </tr>
            <tr>
                <td style="text-align:left;">3. Source-to-target comparison</td>
                <td style="text-align:left;">Row-by-row record matches and mismatches on mapped columns</td>
                <td style="text-align:left;">Data Compare</td>
            </tr>
            <tr>
                <td style="text-align:left;">4. Transformation validation</td>
                <td style="text-align:left;">Business logic output at source vs target</td>
                <td style="text-align:left;">Transform</td>
            </tr>
            <tr>
                <td style="text-align:left;">5. BI report validation</td>
                <td style="text-align:left;">Power BI and Tableau reports, visually and at data level</td>
                <td style="text-align:left;">BI Analytics components</td>
            </tr>
        </tbody>
    </table>
</div>				</div>
				</div>
				<div class="elementor-element elementor-element-663bbcb elementor-widget elementor-widget-heading" data-id="663bbcb" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Layer 1: How does metadata comparison catch structural differences? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-8efbf92 elementor-widget elementor-widget-text-editor" data-id="8efbf92" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="auto">A practical starting point is comparing the structure of the source and target databases before examining the data itself. Metadata comparison covers data type consistency, nullability rules, and whether <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-testing-concepts/database-testing/" target="_blank" rel="noopener">primary keys and constraints</a></span> are correctly defined.</span><span data-ccp-props="{}"> </span></p><p><span data-contrast="auto">Data type inconsistency is one of the more common issues encountered when moving between platforms. If a DECIMAL(18,4) field is mapped to a slightly different type in the target, downstream calculations may behave differently in ways that are not immediately visible.</span><span data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-6699392 elementor-widget elementor-widget-text-editor" data-id="6699392" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="auto">In Datagaps, this can be done using the <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-validation-etl-testing-tools/" target="_blank" rel="noopener">Metadata Compare component</a></span> within a dataflow. After selecting the source and target databases and the relevant schema, Datagaps automatically maps the tables, with the option to adjust mappings for any renamed or deprecated tables.</span><span data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-c5b6022 elementor-arrows-position-outside elementor-pagination-position-outside elementor-widget elementor-widget-image-carousel" data-id="c5b6022" data-element_type="widget" data-e-type="widget" data-settings="{&quot;slides_to_show&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;both&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;effect&quot;:&quot;slide&quot;,&quot;speed&quot;:500}" data-widget_type="image-carousel.default">
				<div class="elementor-widget-container">
							<div class="elementor-image-carousel-wrapper swiper" role="region" aria-roledescription="carousel" aria-label="Image Carousel" dir="ltr">
			<div class="elementor-image-carousel swiper-wrapper" aria-live="off">
								<div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="1 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/Metadata-Compare.3.png" alt="Metadata Compare" /><figcaption class="elementor-image-carousel-caption">Metadata Compare</figcaption></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="2 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/Source-Object.png" alt="Source Object" /><figcaption class="elementor-image-carousel-caption">Source Object</figcaption></figure></div>			</div>
												<div class="elementor-swiper-button elementor-swiper-button-prev" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-left"></i>					</div>
					<div class="elementor-swiper-button elementor-swiper-button-next" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-right"></i>					</div>
				
									<div class="swiper-pagination"></div>
									</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-d4e6a18 elementor-widget elementor-widget-text-editor" data-id="d4e6a18" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="auto">Running this activity produces a detailed output that covers:</span><span data-ccp-props="{}"> </span></p><ul><li><span data-contrast="auto">Data type mismatches</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Columns that exist only in the source</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Column length mismatches</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Foreign key and nullability inconsistencies</span><span data-ccp-props="{}"> </span></li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-89f39cc elementor-arrows-position-outside elementor-pagination-position-outside elementor-widget elementor-widget-image-carousel" data-id="89f39cc" data-element_type="widget" data-e-type="widget" data-settings="{&quot;slides_to_show&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;both&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;effect&quot;:&quot;slide&quot;,&quot;speed&quot;:500}" data-widget_type="image-carousel.default">
				<div class="elementor-widget-container">
							<div class="elementor-image-carousel-wrapper swiper" role="region" aria-roledescription="carousel" aria-label="Image Carousel" dir="ltr">
			<div class="elementor-image-carousel swiper-wrapper" aria-live="off">
								<div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="1 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/type-of-metadata-checks.png" alt="type of metadata checks" /><figcaption class="elementor-image-carousel-caption">type of metadata checks</figcaption></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="2 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/columns-existing-in-source-only.png" alt="columns existing in source only" /><figcaption class="elementor-image-carousel-caption">columns existing in source only</figcaption></figure></div>			</div>
												<div class="elementor-swiper-button elementor-swiper-button-prev" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-left"></i>					</div>
					<div class="elementor-swiper-button elementor-swiper-button-next" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-right"></i>					</div>
				
									<div class="swiper-pagination"></div>
									</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-fe3850f elementor-widget elementor-widget-text-editor" data-id="fe3850f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW188736474 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW188736474 BCX8">This first layer provides a clear picture of structural differences between the two databases, and resolving these issues before moving to data-level checks helps avoid cascading errors in later validation steps.</span></span><span class="EOP Selected SCXW188736474 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-c38af0b elementor-widget elementor-widget-image" data-id="c38af0b" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="223" src="https://www.datagaps.com/wp-content/uploads/data-type-mismatch.png" class="attachment-full size-full wp-image-64082" alt="data type mismatch" srcset="https://www.datagaps.com/wp-content/uploads/data-type-mismatch.png 1120w, https://www.datagaps.com/wp-content/uploads/data-type-mismatch-300x60.png 300w, https://www.datagaps.com/wp-content/uploads/data-type-mismatch-1024x204.png 1024w, https://www.datagaps.com/wp-content/uploads/data-type-mismatch-768x153.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">data type mismatch</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-73bc907 elementor-widget elementor-widget-icon-box" data-id="73bc907" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Layer 2: How does data profile comparison confirm volume and distribution? 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						Once the structure has been verified, the next step is comparing the statistical profile of the data across both databases. This includes row counts, null percentages, minimum and maximum values, distinct counts, standard deviation, and related metrics. 					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-be84a62 elementor-widget elementor-widget-text-editor" data-id="be84a62" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="auto">The goal is to confirm that the distribution and volume of data is consistent between source and target. Discrepancies at this level can indicate data that was lost, duplicated, or transformed unexpectedly during the migration process.</span><span data-ccp-props="{}"> </span></p><p><span data-contrast="auto">Datagaps&#8217; <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/blog/data-profiling-in-etl-types-and-best-practices/" target="_blank" rel="noopener">Data Profile component</a></span> supports configurable aggregates, sampling options, and <span style="text-decoration: underline;"><span style="color: #1967d2; text-decoration: underline;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-observability-tool/" target="_blank" rel="noopener">observability metrics</a></span></span>. The comparison runs across both systems without requiring custom code, and results are available alongside the broader dataflow output.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-17f16fc elementor-widget elementor-widget-image" data-id="17f16fc" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="635" src="https://www.datagaps.com/wp-content/uploads/data-profile-comparison.png" class="attachment-full size-full wp-image-64091" alt="data profile comparison" srcset="https://www.datagaps.com/wp-content/uploads/data-profile-comparison.png 1120w, https://www.datagaps.com/wp-content/uploads/data-profile-comparison-300x170.png 300w, https://www.datagaps.com/wp-content/uploads/data-profile-comparison-1024x581.png 1024w, https://www.datagaps.com/wp-content/uploads/data-profile-comparison-768x435.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">Data profile comparison</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-35781c9 elementor-widget elementor-widget-icon-box" data-id="35781c9" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Layer 3: How does source-to-target data comparison find row-level mismatches? 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						This layer compares the data records between source and target row by row, based on mapped columns, to identify exact matches and mismatches.					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-fcb2e06 elementor-widget elementor-widget-text-editor" data-id="fcb2e06" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW212174370 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW212174370 BCX8">Implementing this manually in Fabric would typically involve building a separate notebook connecting both source and target systems, writing comparison logic, and handling multiple edge cases around data types and nulls. In </span><span class="NormalTextRun SpellingErrorV2Themed SCXW212174370 BCX8">Datagaps</span><span class="NormalTextRun SCXW212174370 BCX8">, this is handled through the <span style="text-decoration: underline;"><a href="https://www.datagaps.com/data-reconciliation/" target="_blank" rel="noopener"><span style="color: #1967d2; text-decoration: underline;">Data Compare</span> </a></span></span><span class="NormalTextRun SCXW212174370 BCX8">component</span><span class="NormalTextRun SCXW212174370 BCX8">, which can be added to an existing dataflow alongside the other validation steps. The </span><span class="NormalTextRun SCXW212174370 BCX8">component</span><span class="NormalTextRun SCXW212174370 BCX8"> supports options including mismatched row detection, column-wise comparisons, null and empty space handling, automatic data type conversion for comparison purposes, and configurable thresholds.</span></span><span class="EOP Selected SCXW212174370 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-c9b06c6 elementor-arrows-position-outside elementor-pagination-position-outside elementor-widget elementor-widget-image-carousel" data-id="c9b06c6" data-element_type="widget" data-e-type="widget" data-settings="{&quot;slides_to_show&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;both&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;effect&quot;:&quot;slide&quot;,&quot;speed&quot;:500}" data-widget_type="image-carousel.default">
				<div class="elementor-widget-container">
							<div class="elementor-image-carousel-wrapper swiper" role="region" aria-roledescription="carousel" aria-label="Image Carousel" dir="ltr">
			<div class="elementor-image-carousel swiper-wrapper" aria-live="off">
								<div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="1 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/settings-to-enable-for-data-comparison.png" alt="settings to enable for data comparison" /><figcaption class="elementor-image-carousel-caption">settings to enable for data comparison</figcaption></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="2 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/connect-both-Fabric-and-Source-Database.png" alt="Connect both Fabric and Source Database" /><figcaption class="elementor-image-carousel-caption">Connect both Fabric and Source Database</figcaption></figure></div>			</div>
												<div class="elementor-swiper-button elementor-swiper-button-prev" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-left"></i>					</div>
					<div class="elementor-swiper-button elementor-swiper-button-next" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-right"></i>					</div>
				
									<div class="swiper-pagination"></div>
									</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-4077be2 elementor-widget elementor-widget-text-editor" data-id="4077be2" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW96290373 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW96290373 BCX8">One practical consideration: if metadata issues </span><span class="NormalTextRun SCXW96290373 BCX8">identified</span><span class="NormalTextRun SCXW96290373 BCX8"> in Layer 1 are not resolved before running data comparison, they are likely to surface here as errors. For example, if certain columns exist in the target but not the source, the comparison will fail at the mapping validation stage. Working through the layers in order is </span><span class="NormalTextRun SCXW96290373 BCX8">generally the</span><span class="NormalTextRun SCXW96290373 BCX8"> more efficient approach.</span></span><span class="EOP Selected SCXW96290373 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-8df5de6 elementor-widget elementor-widget-image" data-id="8df5de6" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="623" src="https://www.datagaps.com/wp-content/uploads/failure-in-case-metadata-issue-is-not-fixed.png" class="attachment-full size-full wp-image-64114" alt="Failure in case metadata issue is not fixed" srcset="https://www.datagaps.com/wp-content/uploads/failure-in-case-metadata-issue-is-not-fixed.png 1120w, https://www.datagaps.com/wp-content/uploads/failure-in-case-metadata-issue-is-not-fixed-300x167.png 300w, https://www.datagaps.com/wp-content/uploads/failure-in-case-metadata-issue-is-not-fixed-1024x570.png 1024w, https://www.datagaps.com/wp-content/uploads/failure-in-case-metadata-issue-is-not-fixed-768x427.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">Failure in case metadata issue is not fixed</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-44c9b85 elementor-widget elementor-widget-text-editor" data-id="44c9b85" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW135716935 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW135716935 BCX8">Once mapping issues are addressed, the data comparison produces a report covering matched rows, rows only in source, rows only in target, duplicates, and column-level differences &#8211; all available as downloadable datasets for further investigation.</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-61cecbc elementor-arrows-position-outside elementor-pagination-position-outside elementor-widget elementor-widget-image-carousel" data-id="61cecbc" data-element_type="widget" data-e-type="widget" data-settings="{&quot;slides_to_show&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;both&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;effect&quot;:&quot;slide&quot;,&quot;speed&quot;:500}" data-widget_type="image-carousel.default">
				<div class="elementor-widget-container">
							<div class="elementor-image-carousel-wrapper swiper" role="region" aria-roledescription="carousel" aria-label="Image Carousel" dir="ltr">
			<div class="elementor-image-carousel swiper-wrapper" aria-live="off">
								<div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="1 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/data-comparison-report.png" alt="Data comparison report" /><figcaption class="elementor-image-carousel-caption">Data comparison report</figcaption></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="2 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/different-datasets-after-comparison-1.png" alt="different datasets after comparison" /><figcaption class="elementor-image-carousel-caption">Different datasets after comparison</figcaption></figure></div>			</div>
												<div class="elementor-swiper-button elementor-swiper-button-prev" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-left"></i>					</div>
					<div class="elementor-swiper-button elementor-swiper-button-next" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-right"></i>					</div>
				
									<div class="swiper-pagination"></div>
									</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-b36eca2 elementor-widget elementor-widget-icon-box" data-id="b36eca2" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Layer 4: How do you validate transformations and business logic?						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						Three layers of validation are sufficient for many migrations. For organizations that also need to verify business logic, a fourth layer covers transformation correctness. 					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-f7430aa elementor-widget elementor-widget-text-editor" data-id="f7430aa" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW24704174 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW24704174 BCX8">If transformations are applied at the source database as part of the existing data pipeline, this layer checks whether equivalent transformations at the target database produce the same output. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW24704174 BCX8">Datagaps</span><span class="NormalTextRun SCXW24704174 BCX8"> Transform </span><span class="NormalTextRun SCXW24704174 BCX8">component</span><span class="NormalTextRun SCXW24704174 BCX8"> in Dataflow allows teams to define <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/blog/generate-complex-sql-queries-using-dataops-suite-query-builder/" target="_blank" rel="noopener">custom queries</a></span> based on their business logic and compare the resulting datasets directly against the target.</span></span><span class="EOP SCXW24704174 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-872b56d elementor-widget elementor-widget-image" data-id="872b56d" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="368" src="https://www.datagaps.com/wp-content/uploads/dataflow-for-data-transformation-validation.png" class="attachment-full size-full wp-image-64134" alt="dataflow for data transformation validation" srcset="https://www.datagaps.com/wp-content/uploads/dataflow-for-data-transformation-validation.png 1120w, https://www.datagaps.com/wp-content/uploads/dataflow-for-data-transformation-validation-300x99.png 300w, https://www.datagaps.com/wp-content/uploads/dataflow-for-data-transformation-validation-1024x336.png 1024w, https://www.datagaps.com/wp-content/uploads/dataflow-for-data-transformation-validation-768x252.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">Dataflow for data transformation validation</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-36768ad elementor-widget elementor-widget-text-editor" data-id="36768ad" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW102635206 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW102635206 BCX8">This matters most for migrations that go beyond moving data and <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/etl-testing-complete-guide/" target="_blank" rel="noopener">re-implement ETL logic</a></span> in </span><span class="NormalTextRun SCXW102635206 BCX8">a new environment</span><span class="NormalTextRun SCXW102635206 BCX8">. After the dataflow runs, you can review all the comparison datasets: matched results, differences, duplicates, and column-level discrepancies. That helps teams find and fix issues faster.</span></span><span class="EOP Selected SCXW102635206 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-0cfe33f elementor-widget elementor-widget-image" data-id="0cfe33f" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="484" src="https://www.datagaps.com/wp-content/uploads/data-transformation-testing-1.png" class="attachment-full size-full wp-image-64138" alt="" srcset="https://www.datagaps.com/wp-content/uploads/data-transformation-testing-1.png 1120w, https://www.datagaps.com/wp-content/uploads/data-transformation-testing-1-300x130.png 300w, https://www.datagaps.com/wp-content/uploads/data-transformation-testing-1-1024x443.png 1024w, https://www.datagaps.com/wp-content/uploads/data-transformation-testing-1-768x332.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">Data transformation testing</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-6370d5a elementor-widget elementor-widget-icon-box" data-id="6370d5a" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Layer 5: How do you validate BI reports after migrating to Fabric?						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						Migration affects the entire data lifecycle, and dashboards are a significant part of that. Organizations migrating <a href="https://www.datagaps.com/power-bi-automation-testing-tools/" target="_blank" rel="noopener noreferrer" style="color: #1967d2;text-decoration: underline;font-weight: 400">Power BI</a> or <a href="https://www.datagaps.com/automate-tableau-testing/" target="_blank" rel="noopener noreferrer" style="color: #1967d2;text-decoration: underline;font-weight: 400">Tableau reports</a> from SQL Server to Fabric need to verify that those reports continue to render correctly and return accurate data after the migration.					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-53d4bcc elementor-widget elementor-widget-text-editor" data-id="53d4bcc" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SpellingErrorV2Themed SCXW139614263 BCX8">Datagaps</span><span class="NormalTextRun SCXW139614263 BCX8"> supports this through <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/bi-testing-tools/" target="_blank" rel="noopener">dedicated BI Analytics</a></span> components, including Power BI Regression, Power BI Upgrade, Tableau Regression, Tableau Upgrade, and Cross BI comparison. These allow reports from source and target environments to be compared both visually and at the data level, covering everything from summary totals to drill-down behaviour.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-82097fc elementor-arrows-position-outside elementor-pagination-position-outside elementor-widget elementor-widget-image-carousel" data-id="82097fc" data-element_type="widget" data-e-type="widget" data-settings="{&quot;slides_to_show&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;both&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;effect&quot;:&quot;slide&quot;,&quot;speed&quot;:500}" data-widget_type="image-carousel.default">
				<div class="elementor-widget-container">
							<div class="elementor-image-carousel-wrapper swiper" role="region" aria-roledescription="carousel" aria-label="Image Carousel" dir="ltr">
			<div class="elementor-image-carousel swiper-wrapper" aria-live="off">
								<div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="1 of 3"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/powerbi-report-comparison.png" alt="powerbi report comparison" /><figcaption class="elementor-image-carousel-caption">powerbi report comparison</figcaption></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="2 of 3"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/components-offered-by-Datagaps.png" alt="components offered by Datagaps" /><figcaption class="elementor-image-carousel-caption">components offered by Datagaps</figcaption></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="3 of 3"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/comparing-powerbi-reports-during-migration.png" alt="comparing powerbi reports during migration" /><figcaption class="elementor-image-carousel-caption">comparing powerbi reports during migration</figcaption></figure></div>			</div>
												<div class="elementor-swiper-button elementor-swiper-button-prev" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-left"></i>					</div>
					<div class="elementor-swiper-button elementor-swiper-button-next" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-right"></i>					</div>
				
									<div class="swiper-pagination"></div>
									</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-501c459 elementor-widget elementor-widget-icon-box" data-id="501c459" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Closing Thoughts 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						Microsoft Fabric’s Migration Assistant and related tooling make moving data workloads more manageable than it used to be. Validating that the migration produced accurate results is a separate concern, and it benefits from a structured, repeatable approach. 					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-eb74dc7 elementor-widget elementor-widget-text-editor" data-id="eb74dc7" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW158162858 BCX8">Fabric helps with migration execution. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW158162858 BCX8">Datagaps</span><span class="NormalTextRun SCXW158162858 BCX8"> helps with migration validation.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-7b982f3 elementor-widget elementor-widget-text-editor" data-id="7b982f3" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SpellingErrorV2Themed SCXW92331912 BCX8">Datagaps</span><span class="NormalTextRun SCXW92331912 BCX8"> dataflow-based testing framework supports all five layers described above and can be configured without writing custom code, so both engineering and analytics teams can use it. For organizations managing data migration projects of any scale, a layered validation process gives them the confidence to confirm that the migration was completed successfully.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-83a24cf elementor-widget elementor-widget-image" data-id="83a24cf" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="2031" src="https://www.datagaps.com/wp-content/uploads/Flowchart.png" class="attachment-full size-full wp-image-64153" alt="Flowchart" srcset="https://www.datagaps.com/wp-content/uploads/Flowchart.png 1120w, https://www.datagaps.com/wp-content/uploads/Flowchart-165x300.png 165w, https://www.datagaps.com/wp-content/uploads/Flowchart-565x1024.png 565w, https://www.datagaps.com/wp-content/uploads/Flowchart-768x1393.png 768w, https://www.datagaps.com/wp-content/uploads/Flowchart-847x1536.png 847w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-05d1904 elementor-widget elementor-widget-text-editor" data-id="05d1904" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SpellingErrorV2Themed SCXW81889293 BCX8">Datagaps</span><span class="NormalTextRun SCXW81889293 BCX8"> is a data testing and observability platform that helps data teams </span><span class="NormalTextRun SCXW81889293 BCX8">validate</span><span class="NormalTextRun SCXW81889293 BCX8">, monitor, and trust their data pipelines.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-bf2f76e elementor-widget elementor-widget-text-editor" data-id="bf2f76e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="color: #1967d2;"><a style="color: #1967d2;" href="https://www.datagaps.com/request-a-demo/" target="_blank" rel="noopener"><span style="text-decoration: underline;"><span class="NormalTextRun SCXW211184476 BCX8">See how </span><span class="NormalTextRun SpellingErrorV2Themed SCXW211184476 BCX8">Datagaps runs all five migration validation layers on your Fabric project</span><span class="NormalTextRun SCXW211184476 BCX8"> →</span></span></a></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-32908ef elementor-widget elementor-widget-heading" data-id="32908ef" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Frequently Asked Questions </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-923e752 elementor-widget elementor-widget-eael-adv-accordion" data-id="923e752" data-element_type="widget" data-e-type="widget" data-widget_type="eael-adv-accordion.default">
				<div class="elementor-widget-container">
					            <div class="eael-adv-accordion" id="eael-adv-accordion-923e752" data-scroll-on-click="no" data-scroll-speed="300" data-accordion-id="923e752" data-accordion-type="accordion" data-toogle-speed="300">
            <div class="eael-accordion-list">
					<div id="faq-1" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="1" aria-controls="elementor-tab-content-1531"><h3 class="eael-accordion-tab-title">Does the Microsoft Fabric Migration Assistant validate migrated data?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1531" class="eael-accordion-content clearfix" data-tab="1" aria-labelledby="faq-1"><p><span class="NormalTextRun SCXW16673374 BCX8">No. The Fabric Migration Assistant helps move workloads into Fabric and </span><span class="NormalTextRun SCXW16673374 BCX8">identifies</span><span class="NormalTextRun SCXW16673374 BCX8"> which objects migrate directly and which need adjustments, reducing the overhead of rebuilding schemas. It does not automatically verify that migrated data is fully </span><span class="NormalTextRun SCXW16673374 BCX8">accurate</span><span class="NormalTextRun SCXW16673374 BCX8"> from a testing standpoint, so <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/microsoft-fabric-testing-automation/" target="_blank" rel="noopener">a separate, structured validation</a></span> step is still </span><span class="NormalTextRun SCXW16673374 BCX8">required</span><span class="NormalTextRun SCXW16673374 BCX8">.</span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-2" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="2" aria-controls="elementor-tab-content-1532"><h3 class="eael-accordion-tab-title">What are the five layers of Microsoft Fabric migration testing?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1532" class="eael-accordion-content clearfix" data-tab="2" aria-labelledby="faq-2"><p><span class="NormalTextRun SpellingErrorV2Themed SCXW265290570 BCX8">Datagaps</span><span class="NormalTextRun SCXW265290570 BCX8"> approaches <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/data-migration-testing-automation/" target="_blank" rel="noopener">migration testing</a></span> in five layers: metadata comparison of structure, data profile comparison of statistical metrics, source-to-target comparison of records row by row, transformation validation of business logic, and BI report validation for Power BI and Tableau dashboards. Each layer addresses a different aspect of data accuracy and consistency.</span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-3" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="3" aria-controls="elementor-tab-content-1533"><h3 class="eael-accordion-tab-title">Why should metadata comparison come first in a Fabric migration test? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1533" class="eael-accordion-content clearfix" data-tab="3" aria-labelledby="faq-3"><p><span class="TextRun SCXW56763168 BCX8"><span class="NormalTextRun SCXW56763168 BCX8">Metadata issues left unresolved tend to surface later as errors. If columns exist in the target but not the source, data comparison fails at the mapping validation stage. Checking <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/data-testing-concepts/data-warehouse-testing/" target="_blank" rel="noopener">data types, nullability, keys and constraints</a></span> first, such as a </span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW56763168 BCX8">DECIMAL(</span><span class="NormalTextRun SCXW56763168 BCX8">18,4) field mapped to a different type, avoids cascading errors in later validation steps.</span></span><span class="EOP Selected SCXW56763168 BCX8"> </span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-4" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="4" aria-controls="elementor-tab-content-1534"><h3 class="eael-accordion-tab-title">How does Datagaps compare source and target data row by row? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1534" class="eael-accordion-content clearfix" data-tab="4" aria-labelledby="faq-4"><p><span class="NormalTextRun SCXW244387459 BCX8">The Data Compare </span><span class="NormalTextRun SCXW244387459 BCX8">component</span><span class="NormalTextRun SCXW244387459 BCX8">, added to a dataflow, compares records based on mapped columns. It supports mismatched row detection, <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/blog/data-reconciliation-best-practices/" target="_blank" rel="noopener">column-wise comparisons</a></span>, null and empty space handling, automatic data type </span><span class="NormalTextRun SCXW244387459 BCX8">conversion</span><span class="NormalTextRun SCXW244387459 BCX8"> and configurable thresholds. The report covers matched rows, rows only in source or target, </span><span class="NormalTextRun SCXW244387459 BCX8">duplicates</span><span class="NormalTextRun SCXW244387459 BCX8"> and column-level differences as downloadable datasets.</span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-5" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="5" aria-controls="elementor-tab-content-1535"><h3 class="eael-accordion-tab-title">Can Datagaps validate Power BI and Tableau reports after a Fabric migration? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1535" class="eael-accordion-content clearfix" data-tab="5" aria-labelledby="faq-5"><p><span class="NormalTextRun SCXW255623493 BCX8">Yes. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW255623493 BCX8">Datagaps</span><span class="NormalTextRun SCXW255623493 BCX8"> provides <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/bi-testing-complete-guide/" target="_blank" rel="noopener">BI Analytics</a></span> components including Power BI Regression, Power BI Upgrade, Tableau Regression, Tableau Upgrade and Cross BI comparison. They compare reports from source and target environments both visually and at the data level, covering everything from summary totals to drill-down behaviour.</span></p></div>
					</div></div>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-62980c3 e-flex e-con-boxed e-con e-parent" data-id="62980c3" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-1ac3fec e-con-full e-flex e-con e-child" data-id="1ac3fec" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-f5d35f8 e-con-full e-flex e-con e-child" data-id="f5d35f8" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-184c126 elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading" data-id="184c126" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<span class="elementor-heading-title elementor-size-default">Get Started Today</span>				</div>
				</div>
				<div class="elementor-element elementor-element-4a9257d elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading" data-id="4a9257d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Talk to a datagaps expert</h2>				</div>
				</div>
		<div class="elementor-element elementor-element-e2d718a e-con-full e-flex e-con e-child" data-id="e2d718a" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-0b52229 elementor-widget__width-auto home-btn-new elementor-widget elementor-widget-button" data-id="0b52229" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.datagaps.com/request-a-demo/" target="_blank">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Get a Demo</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-7b1b3d1 elementor-widget__width-auto home-btn-new elementor-widget elementor-widget-button" data-id="7b1b3d1" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.datagaps.com/contact-us/" target="_blank">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Contact Us</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-5da6591 e-flex e-con-boxed e-con e-parent" data-id="5da6591" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a6d9f5b elementor-widget elementor-widget-html" data-id="a6d9f5b" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://www.datagaps.com/#organization",
      "name": "Datagaps",
      "url": "https://www.datagaps.com/",
      "logo": {
        "@type": "ImageObject",
        "@id": "https://www.datagaps.com/#logo",
        "url": "https://www.datagaps.com/wp-content/uploads/datagaps-logo-2.svg",
        "contentUrl": "https://www.datagaps.com/wp-content/uploads/datagaps-logo-2.svg"
      },
      "sameAs": [
        "https://www.linkedin.com/company/datagaps/",
        "https://twitter.com/datagapsteam",
        "https://www.youtube.com/user/datagaps",
        "https://www.instagram.com/datagapsinc/",
        "https://www.facebook.com/datagapsinc"
      ]
    },
    {
      "@type": "Person",
      "@id": "https://www.datagaps.com/#/person/rajmohan-achanta",
      "name": "RajMohan Achanta",
      "jobTitle": "Associate Product Manager",
      "description": "Associate Product Manager at Datagaps. Shapes the product experience across ETL Validator, BI Validator, and Data Quality Monitor.",
      "worksFor": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "url": "https://www.datagaps.com/blog/author/rajmohan/",
      "sameAs": [
        "https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/"
      ],
      "alternateName": "Raj Mohan Achanta",
      "image": "https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png"
    },
    {
      "@type": "Person",
      "@id": "https://www.datagaps.com/#/person/avinash-keshri",
      "name": "Avinash Keshri",
      "jobTitle": "Head, Product Marketing",
      "description": "Head of Product Marketing at Datagaps and IIM Bangalore alumnus. 13+ years of experience in commercializing AI and data platforms across global markets.",
      "worksFor": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "alumniOf": {
        "@type": "CollegeOrUniversity",
        "name": "Indian Institute of Management Bangalore"
      },
      "url": "https://www.linkedin.com/in/avinashkeshri-iimb/",
      "sameAs": [
        "https://www.linkedin.com/in/avinashkeshri-iimb/"
      ],
      "image": "https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png"
    },
    {
      "@type": "BlogPosting",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#blogposting",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/"
      },
      "url": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/",
      "headline": "How to Test a Data Migration to Microsoft Fabric in 5 Layers",
      "description": "Learn how to test Microsoft Fabric migrations with 5 layers of data validation, from metadata, data comparison to transformations & BI reports.",
      "inLanguage": "en",
      "datePublished": "2026-10-26T08:53:17+00:00",
      "dateModified": "2026-10-27T09:46:06+00:00",
      "timeRequired": "PT14M",
      "author": [
        {
          "@id": "https://www.datagaps.com/#/person/rajmohan-achanta"
        },
        {
          "@id": "https://www.datagaps.com/#/person/avinash-keshri"
        }
      ],
      "publisher": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "image": {
        "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#featured-image"
      },
      "articleSection": [
        "Cloud Data Migration",
        "Data Validation"
      ],
      "keywords": "Microsoft Fabric, Datagaps, Data Migration, Data Testing, Fabric Migration, Migration Testing, Metadata Comparison, Data Profiling, Source-to-Target Comparison, BI Report Validation",
      "about": [
        {
          "@type": "Thing",
          "name": "Data migration testing"
        },
        {
          "@type": "Thing",
          "name": "Microsoft Fabric"
        },
        {
          "@type": "Thing",
          "name": "Data validation"
        }
      ],
      "mentions": [
        {
          "@type": "Thing",
          "name": "Datagaps DataOps Suite",
          "url": "https://www.datagaps.com/dataops-suite/"
        },
        {
          "@type": "Thing",
          "name": "Microsoft Fabric Migration Assistant"
        },
        {
          "@type": "Thing",
          "name": "Power BI"
        },
        {
          "@type": "Thing",
          "name": "Tableau"
        }
      ],
      "associatedMedia": [
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-migration-assistant"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-migration-steps"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-metadata-compare"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-source-object"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-metadata-check-types"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-source-only-columns"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-data-type-mismatch"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-profile-comparison"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-compare-settings"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-connect-fabric-source"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-metadata-failure"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-compare-report"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-compare-datasets"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-transform-dataflow"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-transform-testing"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-powerbi-comparison"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-bi-components"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-powerbi-migration-compare"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-flowchart"
        }
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#featured-image",
      "url": "https://www.datagaps.com/wp-content/uploads/Banner-Image-How-to-Test-a-Data-Migration-to-Microsoft-Fabric-in-5-Layers.jpg",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Banner-Image-How-to-Test-a-Data-Migration-to-Microsoft-Fabric-in-5-Layers.jpg",
      "width": 1200,
      "height": 628,
      "encodingFormat": "image/jpeg",
      "caption": "How to Test a Data Migration to Microsoft Fabric in 5 Layers",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-migration-assistant",
      "url": "https://www.datagaps.com/wp-content/uploads/Mgration-Assistant.1.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Mgration-Assistant.1.png",
      "name": "Microsoft Fabric Migration Assistant",
      "caption": "Microsoft Fabric Migration Assistant for Data Warehouse migrations",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-migration-steps",
      "url": "https://www.datagaps.com/wp-content/uploads/Migration-steps.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Migration-steps.png",
      "name": "Migration steps",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-metadata-compare",
      "url": "https://www.datagaps.com/wp-content/uploads/Metadata-Compare.3.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Metadata-Compare.3.png",
      "name": "Metadata Compare",
      "caption": "Metadata Compare component in a Datagaps dataflow",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-source-object",
      "url": "https://www.datagaps.com/wp-content/uploads/Source-Object.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Source-Object.png",
      "name": "Source Object",
      "caption": "Source Object selection in the Metadata Compare component",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-metadata-check-types",
      "url": "https://www.datagaps.com/wp-content/uploads/type-of-metadata-checks.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/type-of-metadata-checks.png",
      "name": "Types of metadata checks",
      "caption": "Types of metadata checks available in Metadata Compare",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-source-only-columns",
      "url": "https://www.datagaps.com/wp-content/uploads/columns-existing-in-source-only.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/columns-existing-in-source-only.png",
      "name": "Columns existing in source only",
      "caption": "Columns existing in source only",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-data-type-mismatch",
      "url": "https://www.datagaps.com/wp-content/uploads/data-type-mismatch.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/data-type-mismatch.png",
      "name": "Data type mismatch",
      "caption": "Data type mismatch",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-profile-comparison",
      "url": "https://www.datagaps.com/wp-content/uploads/data-profile-comparison.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/data-profile-comparison.png",
      "name": "Data profile comparison",
      "caption": "Data profile comparison",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-compare-settings",
      "url": "https://www.datagaps.com/wp-content/uploads/settings-to-enable-for-data-comparison.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/settings-to-enable-for-data-comparison.png",
      "name": "Settings to enable for data comparison",
      "caption": "Settings to enable for data comparison",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-connect-fabric-source",
      "url": "https://www.datagaps.com/wp-content/uploads/connect-both-Fabric-and-Source-Database.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/connect-both-Fabric-and-Source-Database.png",
      "name": "Connect both Fabric and source database",
      "caption": "Connect both Fabric and Source Database",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-metadata-failure",
      "url": "https://www.datagaps.com/wp-content/uploads/failure-in-case-metadata-issue-is-not-fixed.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/failure-in-case-metadata-issue-is-not-fixed.png",
      "name": "Failure when metadata issue is not fixed",
      "caption": "Failure in case metadata issue is not fixed",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-compare-report",
      "url": "https://www.datagaps.com/wp-content/uploads/data-comparison-report.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/data-comparison-report.png",
      "name": "Data comparison report",
      "caption": "Data comparison report",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-compare-datasets",
      "url": "https://www.datagaps.com/wp-content/uploads/different-datasets-after-comparison-1.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/different-datasets-after-comparison-1.png",
      "name": "Different datasets after comparison",
      "caption": "Different datasets after comparison",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-transform-dataflow",
      "url": "https://www.datagaps.com/wp-content/uploads/dataflow-for-data-transformation-validation.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/dataflow-for-data-transformation-validation.png",
      "name": "Dataflow for data transformation validation",
      "caption": "Dataflow for data transformation validation",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-transform-testing",
      "url": "https://www.datagaps.com/wp-content/uploads/data-transformation-testing-1.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/data-transformation-testing-1.png",
      "name": "Data transformation testing",
      "caption": "Data transformation testing",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-powerbi-comparison",
      "url": "https://www.datagaps.com/wp-content/uploads/powerbi-report-comparison.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/powerbi-report-comparison.png",
      "name": "Power BI report comparison",
      "caption": "Power BI report comparison",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-bi-components",
      "url": "https://www.datagaps.com/wp-content/uploads/components-offered-by-Datagaps.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/components-offered-by-Datagaps.png",
      "name": "BI components offered by Datagaps",
      "caption": "Components offered by Datagaps",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-powerbi-migration-compare",
      "url": "https://www.datagaps.com/wp-content/uploads/comparing-powerbi-reports-during-migration.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/comparing-powerbi-reports-during-migration.png",
      "name": "Comparing Power BI reports during migration",
      "caption": "Comparing Power BI reports during migration",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#img-flowchart",
      "url": "https://www.datagaps.com/wp-content/uploads/Flowchart.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Flowchart.png",
      "name": "Datagaps five-layer migration validation flowchart",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "FAQPage",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/#faq",
      "isPartOf": {
        "@id": "https://www.datagaps.com/blog/microsoft-fabric-migration-testing/"
      },
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Does the Microsoft Fabric Migration Assistant validate migrated data?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "No. The Fabric Migration Assistant helps move workloads into Fabric and identifies which objects migrate directly and which need adjustments, reducing the overhead of rebuilding schemas. It does not automatically verify that migrated data is fully accurate from a testing standpoint, so a separate, structured validation step is still required."
          }
        },
        {
          "@type": "Question",
          "name": "What are the five layers of Microsoft Fabric migration testing?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Datagaps approaches migration testing in five layers: metadata comparison of structure, data profile comparison of statistical metrics, source-to-target comparison of records row by row, transformation validation of business logic, and BI report validation for Power BI and Tableau dashboards. Each layer addresses a different aspect of data accuracy and consistency."
          }
        },
        {
          "@type": "Question",
          "name": "Why should metadata comparison come first in a Fabric migration test?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Metadata issues left unresolved tend to surface later as errors. If columns exist in the target but not the source, data comparison fails at the mapping validation stage. Checking data types, nullability, keys and constraints first, such as a DECIMAL(18,4) field mapped to a different type, avoids cascading errors in later validation steps."
          }
        },
        {
          "@type": "Question",
          "name": "How does Datagaps compare source and target data row by row?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "The Data Compare component, added to a dataflow, compares records based on mapped columns. It supports mismatched row detection, column-wise comparisons, null and empty space handling, automatic data type conversion and configurable thresholds. The report covers matched rows, rows only in source or target, duplicates and column-level differences as downloadable datasets."
          }
        },
        {
          "@type": "Question",
          "name": "Can Datagaps validate Power BI and Tableau reports after a Fabric migration?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. Datagaps provides BI Analytics components including Power BI Regression, Power BI Upgrade, Tableau Regression, Tableau Upgrade and Cross BI comparison. They compare reports from source and target environments both visually and at the data level, covering everything from summary totals to drill-down behaviour."
          }
        }
      ]
    }
  ]
}
</script>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f8574ba e-flex e-con-boxed e-con e-parent" data-id="f8574ba" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-6b8079b e-con-full e-flex e-con e-child" data-id="6b8079b" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-86810af e-con-full e-flex e-con e-child" data-id="86810af" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-f437041 e-con-full e-flex e-con e-child" data-id="f437041" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-eaeece0 elementor-widget-laptop__width-initial elementor-widget elementor-widget-image" data-id="eaeece0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="150" height="150" src="https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png" class="attachment-thumbnail size-thumbnail wp-image-53799" alt="Raj Mohan Achanta" srcset="https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png 150w, https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-300x300.png 300w, https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta.png 504w" sizes="(max-width: 150px) 100vw, 150px" />															</div>
				</div>
		<div class="elementor-element elementor-element-ff250c2 e-con-full e-flex e-con e-child" data-id="ff250c2" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-f8a8b4d elementor-position-inline-end elementor-mobile-position-inline-start elementor-widget-laptop__width-initial elementor-view-default elementor-widget elementor-widget-icon-box" data-id="f8a8b4d" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/" class="elementor-icon" tabindex="-1" aria-label="RajMohan Achanta">
				<i aria-hidden="true" class="fab fa-linkedin-in"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h5 class="elementor-icon-box-title">
						<a href="https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/" >
							RajMohan Achanta						</a>
					</h5>
				
									<p class="elementor-icon-box-description">
						Associate Product Manager, Datagaps					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-d390cfb elementor-widget elementor-widget-text-editor" data-id="d390cfb" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Associate Product Manager at Datagaps. Shapes the product experience across ETL Validator, BI Validator, and Data Quality Monitor.</p>								</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-a7960cb e-con-full e-flex e-con e-child" data-id="a7960cb" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-66b97d0 elementor-widget-laptop__width-initial elementor-widget elementor-widget-image" data-id="66b97d0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="150" height="150" src="https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png" class="attachment-thumbnail size-thumbnail wp-image-54463" alt="Avinash&apos;s picture" srcset="https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png 150w, https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-300x300.png 300w, https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2.png 504w" sizes="(max-width: 150px) 100vw, 150px" />															</div>
				</div>
		<div class="elementor-element elementor-element-5e8a351 e-con-full e-flex e-con e-child" data-id="5e8a351" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-6e0b636 elementor-position-inline-end elementor-mobile-position-inline-start elementor-view-default elementor-widget elementor-widget-icon-box" data-id="6e0b636" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://www.linkedin.com/in/avinashkeshri-iimb/" class="elementor-icon" tabindex="-1" aria-label="Avinash Keshri">
				<i aria-hidden="true" class="fab fa-linkedin-in"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h5 class="elementor-icon-box-title">
						<a href="https://www.linkedin.com/in/avinashkeshri-iimb/" >
							Avinash Keshri						</a>
					</h5>
				
									<p class="elementor-icon-box-description">
						Head, Product Marketing					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-1e2303c elementor-widget elementor-widget-text-editor" data-id="1e2303c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Head of Product Marketing at Datagaps and IIM Bangalore alumnus. 13+ years of experience in commercializing AI and data platforms across global markets.</p>								</div>
				</div>
				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://www.datagaps.com/blog/microsoft-fabric-migration-testing/">How to Test a Data Migration to Microsoft Fabric in 5 Layers</a> appeared first on <a href="https://www.datagaps.com">Datagaps | Gen AI-Powered Automated Cloud Data Testing</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How Datagaps Enables End-to-End Data Observability on Fabric</title>
		<link>https://www.datagaps.com/blog/microsoft-fabric-data-observability/</link>
		
		<dc:creator><![CDATA[Raj Mohan Achanta]]></dc:creator>
		<pubDate>Fri, 23 Oct 2026 09:14:02 +0000</pubDate>
				<category><![CDATA[Data Observability]]></category>
		<category><![CDATA[Data Quality]]></category>
		<category><![CDATA[DataOps]]></category>
		<category><![CDATA[Anomaly Detection]]></category>
		<category><![CDATA[data observability]]></category>
		<category><![CDATA[Microsoft Fabric]]></category>
		<guid isPermaLink="false">https://www.datagaps.com/?p=63744</guid>

					<description><![CDATA[<p>Monitor Microsoft Fabric data health end to end with Datagaps DataOps Suite, using AI-powered rules, validation, profiling, and anomaly detection.</p>
<p>The post <a href="https://www.datagaps.com/blog/microsoft-fabric-data-observability/">How Datagaps Enables End-to-End Data Observability on Fabric</a> appeared first on <a href="https://www.datagaps.com">Datagaps | Gen AI-Powered Automated Cloud Data Testing</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="63744" class="elementor elementor-63744" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-a3771bc e-flex e-con-boxed e-con e-parent" data-id="a3771bc" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-1fd7e36 elementor-widget elementor-widget-text-editor" data-id="1fd7e36" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW176038018 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW176038018 BCX8">Data observability is the continuous monitoring of data health across the full lifecycle, from ingestion to reporting. The </span><span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/dataops-suite/" target="_blank" rel="noopener"><span class="NormalTextRun SpellingErrorV2Themed SCXW176038018 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW176038018 BCX8">DataOps</span></a></span><span class="NormalTextRun SCXW176038018 BCX8"><a href="_wp_link_placeholder"> Suite</a> delivers it on Microsoft Fabric with AI-generated rules, data quality scoring, ETL and BI validation, </span><span class="NormalTextRun SCXW176038018 BCX8">profiling</span><span class="NormalTextRun SCXW176038018 BCX8"> and ML-based anomaly detection across </span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW176038018 BCX8">Bronze, Silver and Gold</span><span class="NormalTextRun SCXW176038018 BCX8"> layers.</span></span><span class="EOP Selected SCXW176038018 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-27eeb44 datagaps-tldr elementor-widget elementor-widget-text-editor" data-id="27eeb44" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Key Takeaways</strong></p><ul><li><span data-contrast="auto">A green pipeline and a green dashboard can still hide wrong data, such as overnight duplicate records.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Data quality checks data at rest; data observability tracks data in motion across the full lifecycle.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">The DataOps Suite maps onto Fabric&#8217;s medallion architecture across Bronze, Silver and Gold layers on OneLake.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Generated rules remain the same more than 80% of the time, so they can be exported and reused.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">AI spans column descriptions, rule generation, PII classification, natural-language SQL and anomaly detection.</span><span data-ccp-props="{}"> </span></li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-2bb8934 elementor-widget elementor-widget-text-editor" data-id="2bb8934" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2;" href="https://www.datagaps.com/request-a-demo/" target="_blank" rel="noopener"><span class="NormalTextRun SCXW117171178 BCX8">See how the </span><span class="NormalTextRun SpellingErrorV2Themed SCXW117171178 BCX8">DataOps</span><span class="NormalTextRun SCXW117171178 BCX8"> Suite monitors your Fabric pipelines end to end →</span></a></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-9e11135 elementor-widget elementor-widget-text-editor" data-id="9e11135" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW54637806 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW54637806 BCX8"><span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-observability-tool/" target="_blank" rel="noopener">End-to-end data observability</a></span> on Microsoft Fabric means </span><span class="NormalTextRun SCXW54637806 BCX8">monitoring</span><span class="NormalTextRun SCXW54637806 BCX8"> data health continuously as it moves from ingestion through transformation, </span><span class="NormalTextRun SCXW54637806 BCX8">storage</span><span class="NormalTextRun SCXW54637806 BCX8"> and reporting — not just running data quality checks on tables. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW54637806 BCX8">Datagaps</span><span class="NormalTextRun SCXW54637806 BCX8"> delivers this with the </span><span class="NormalTextRun SpellingErrorV2Themed SCXW54637806 BCX8">DataOps</span><span class="NormalTextRun SCXW54637806 BCX8"> Suite, which </span><span class="NormalTextRun SCXW54637806 BCX8">validates</span><span class="NormalTextRun SCXW54637806 BCX8"> and monitors data at multiple levels and integrates with existing architectures.</span></span><span class="EOP Selected SCXW54637806 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-ddcad15 e-flex e-con-boxed e-con e-parent" data-id="ddcad15" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-909654c elementor-widget elementor-widget-heading" data-id="909654c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Why do green pipelines still produce untrustworthy data?</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f269997 elementor-widget elementor-widget-text-editor" data-id="f269997" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW110844424 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW110844424 BCX8">Imagine waking up in the morning and seeing revenue on your dashboard jump by 40%. Everyone celebrates until someone realises that a pipeline duplicated records overnight. The pipeline was green. The dashboard was green. Everything looked fine, except the data itself was wrong.</span></span><span class="EOP Selected SCXW110844424 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-d15438e elementor-widget elementor-widget-text-editor" data-id="d15438e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW105398632 BCX8">Over the last five years, the importance of data has grown exponentially. Organisations have started using platforms like Microsoft Fabric and Databricks to build solutions, but the trust factor </span><span class="NormalTextRun SCXW105398632 BCX8">remains</span><span class="NormalTextRun SCXW105398632 BCX8"> missing. The reason is straightforward: <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-testing-concepts/database-testing/" target="_blank" rel="noopener">data pipelines cannot be fully trusted until they are fully tested.</a></span> Modern solutions require not just AI development, but also end-to-end AI testing.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-9498265 elementor-widget elementor-widget-text-editor" data-id="9498265" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW56266028 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW56266028 BCX8">Beyond trust, data observability also addresses accountability. Without clear visibility into where data went wrong and why, issues become difficult to </span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW56266028 BCX8">trace</span><span class="NormalTextRun SCXW56266028 BCX8"> and responsibility becomes hard to assign across engineering, analytics, and business teams.</span></span><span class="EOP Selected SCXW56266028 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-604e192 e-flex e-con-boxed e-con e-parent" data-id="604e192" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3445573 elementor-widget elementor-widget-heading" data-id="3445573" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What is data observability? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f760d4f elementor-widget elementor-widget-text-editor" data-id="f760d4f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW111125693 BCX8">Data observability is the monitoring of the entire data lifecycle, from ingestion to reporting. It is a concept that is </span><span class="NormalTextRun SCXW111125693 BCX8">frequently</span><span class="NormalTextRun SCXW111125693 BCX8"> misunderstood, and </span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW111125693 BCX8">its</span><span class="NormalTextRun SCXW111125693 BCX8"> meaning often varies depending on who is working with the data and how they interpret it. To understand it properly, it helps to look at it through the lens of </span><span class="NormalTextRun SCXW111125693 BCX8">different roles</span><span class="NormalTextRun SCXW111125693 BCX8">.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-b16fb31 elementor-widget elementor-widget-heading" data-id="b16fb31" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">What does data observability mean for a data engineer?</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-269c004 elementor-widget elementor-widget-text-editor" data-id="269c004" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW189491273 BCX8">As a data engineer, the primary concern</span><span class="NormalTextRun SCXW189491273 BCX8"> is separating good data from bad data. If a data quality check fails, you want to know exactly where the issue lies, whether it is in the source, a transformation, or a downstream table. That visibility is what observability means at this level.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-b5672e4 elementor-widget elementor-widget-heading" data-id="b5672e4" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">What does data observability mean for an analytics manager? </h3>				</div>
				</div>
				<div class="elementor-element elementor-element-ba1a932 elementor-widget elementor-widget-text-editor" data-id="ba1a932" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW142045581 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW142045581 BCX8">At a management level,</span><span class="NormalTextRun SCXW142045581 BCX8"> observability goes further. It is not just about finding data quality issues; it is about linking failures to data flow lineage to understand root causes, monitoring data quality health over time, prioritising fixes that require more attention, and having a measurable view of the entire pipeline to report to stakeholders.</span></span><span class="EOP Selected SCXW142045581 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-029f9aa elementor-widget elementor-widget-heading" data-id="029f9aa" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">What does data observability mean for a data scientist? </h3>				</div>
				</div>
				<div class="elementor-element elementor-element-c727210 elementor-widget elementor-widget-text-editor" data-id="c727210" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW210518157 BCX8">For a data scientist, observability means performing more aggressive testing of the data before it reaches models or dashboards. This includes anomaly detection using ML techniques, such as </span><span class="NormalTextRun SCXW210518157 BCX8">identifying</span><span class="NormalTextRun SCXW210518157 BCX8"> an unusual shift in data volume or a sudden increase in values within a column beyond its expected range. These signals serve as early warnings, giving the team the opportunity to investigate and resolve issues before potentially corrupted or drifted data is fed into production models.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-7294251 elementor-widget elementor-widget-heading" data-id="7294251" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">How is data observability different from data quality? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-ac40778 elementor-widget elementor-widget-text-editor" data-id="ac40778" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW59353193 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW59353193 BCX8"><span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-quality-monitoring-tools/" target="_blank" rel="noopener">Data quality</a></span> focuses on whether data meets predefined standards at a point in time, while data observability tracks data health continuously as it moves through systems, pipelines, and reports. The two terms are often used interchangeably, but they address different concerns. The comparison below clarifies the distinction:</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-98c5944 elementor-widget elementor-widget-html" data-id="98c5944" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<style>

.dim-table-wrapper {
    max-width: 100%;
    font-family: Inter, sans-serif;
    margin: auto;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 0px 5px rgba(0,0,0,.10);
}

.dim-table-wrapper .dim-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.dim-table-wrapper .dim-table thead th {
    background: #022769;
    color: #fff;
    padding: 18px 22px;
    font-size: 15px;
    font-weight: 600;
    text-align: left !important;
    font-family: Inter, sans-serif;
    border-bottom: 1px solid rgba(255,255,255,.25) !important;
}

.dim-table-wrapper .dim-table thead th:nth-child(1) { width: 24% !important; }
.dim-table-wrapper .dim-table thead th:nth-child(2) { width: 38% !important; }
.dim-table-wrapper .dim-table thead th:nth-child(3) { width: 38% !important; }

.dim-table-wrapper .dim-table tbody td {
    padding: 16px 22px;
    font-size: 16px;
    line-height: 1.55;
    vertical-align: top;
    text-align: left !important;
    color: #111;
    background: #f5f8fb;
    font-weight: 400;
    font-family: Inter, sans-serif;
    transition: .25s;
}

.dim-table-wrapper .dim-table tbody td:nth-child(1) {
    font-weight: 500;
}

.dim-table-wrapper .dim-table tbody tr:hover td {
    background: #eef3f8;
}

/* Row lines */
.dim-table-wrapper .dim-table tbody td {
    border-bottom: 1px solid #d5dce4 !important;
}

.dim-table-wrapper .dim-table tbody tr:last-child td {
    border-bottom: none !important;
}

/* Column divider lines */
.dim-table-wrapper .dim-table thead th:not(:last-child) {
    border-right: 1px solid rgba(255,255,255,.25) !important;
}

.dim-table-wrapper .dim-table tbody td:not(:last-child) {
    border-right: 1px solid #d5dce4 !important;
}

/* Responsive */
@media (max-width: 1200px) {
    .dim-table-wrapper .dim-table thead th {
        padding: 14px 16px;
        font-size: 13px;
    }
    .dim-table-wrapper .dim-table tbody td {
        padding: 12px 16px;
        font-size: 13px;
    }
}

@media (max-width: 991px) {
    .dim-table-wrapper {
        overflow: auto;
    }
    .dim-table-wrapper .dim-table {
        min-width: 700px;
    }
    .dim-table-wrapper .dim-table tbody td {
        padding: 14px 16px;
        font-size: 12px;
    }
    .dim-table-wrapper .dim-table::after {
        content: "← Swipe to view more →";
        display: block;
        text-align: center;
        color: #777;
        font-size: 12px;
        padding: 10px 0;
    }
}

</style>

<div class="dim-table-wrapper">
    <table class="dim-table">
        <colgroup>
            <col style="width:24%">
            <col style="width:38%">
            <col style="width:38%">
        </colgroup>
        <thead>
            <tr>
                <th style="text-align:left;">Dimension</th>
                <th style="text-align:left;">Data Observability</th>
                <th style="text-align:left;">Data Quality</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td style="text-align:left;">Scope</td>
                <td style="text-align:left;">Data in motion; full lifecycle from ingestion to reporting</td>
                <td style="text-align:left;">Data at rest; focuses on tables and datasets</td>
            </tr>
            <tr>
                <td style="text-align:left;">Issue Detection</td>
                <td style="text-align:left;">Detects known and unknown issues proactively</td>
                <td style="text-align:left;">Checks known issues; mostly reactive</td>
            </tr>
            <tr>
                <td style="text-align:left;">Coverage</td>
                <td style="text-align:left;">Drift, anomalies, lineage, and ML-based monitoring</td>
                <td style="text-align:left;">Nulls, duplicates, and static rule validation</td>
            </tr>
            <tr>
                <td style="text-align:left;">Approach</td>
                <td style="text-align:left;">Proactive with automated alerting</td>
                <td style="text-align:left;">Static, predefined rules</td>
            </tr>
            <tr>
                <td style="text-align:left;">Primary Use</td>
                <td style="text-align:left;">End-to-end pipeline health and traceability</td>
                <td style="text-align:left;">Table-level data integrity checks</td>
            </tr>
        </tbody>
    </table>
</div>				</div>
				</div>
				<div class="elementor-element elementor-element-e20cb0e elementor-widget elementor-widget-text-editor" data-id="e20cb0e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW175478236 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW175478236 BCX8">Data quality focuses on whether data meets predefined standards at a point in time. Data observability takes a broader view, tracking data health continuously as it moves through systems, pipelines, and reports.</span></span><span class="EOP Selected SCXW175478236 BCX8" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:259}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-663bbcb elementor-widget elementor-widget-heading" data-id="663bbcb" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">How does Datagaps enable end-to-end data observability on Microsoft Fabric? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-8efbf92 elementor-widget elementor-widget-text-editor" data-id="8efbf92" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW51743337 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW51743337 BCX8">Datagaps</span><span class="NormalTextRun SCXW51743337 BCX8"> offers the </span><span class="NormalTextRun SpellingErrorV2Themed SCXW51743337 BCX8">DataOps</span><span class="NormalTextRun SCXW51743337 BCX8"> Suite to address </span><span class="NormalTextRun SCXW51743337 BCX8">the trust problem described above</span><span class="NormalTextRun SCXW51743337 BCX8">. It is an end-to-end testing and monitoring platform that integrates with existing architectures and performs validation and monitoring at multiple levels. T</span><span class="NormalTextRun SpellingErrorV2Themed SCXW51743337 BCX8">he comp</span><span class="NormalTextRun SCXW51743337 BCX8">onents of the </span><span class="NormalTextRun SpellingErrorV2Themed SCXW51743337 BCX8">DataOps</span><span class="NormalTextRun SCXW51743337 BCX8"> Suite work <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/analytics-ops/" target="_blank" rel="noopener">across the full analytics pipeline</a></span>, regardless of the platform.</span></span><span class="EOP Selected SCXW51743337 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-6b2b2ad elementor-widget elementor-widget-image" data-id="6b2b2ad" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="2025" height="776" src="https://www.datagaps.com/wp-content/uploads/Cloud-Analytics-Pipeline-Infographic.png" class="attachment-full size-full wp-image-63780" alt="DataOps Suite architecture overview showing components across Landing Zone, Curated Zone, Warehouse, and BI layers" srcset="https://www.datagaps.com/wp-content/uploads/Cloud-Analytics-Pipeline-Infographic.png 2025w, https://www.datagaps.com/wp-content/uploads/Cloud-Analytics-Pipeline-Infographic-300x115.png 300w, https://www.datagaps.com/wp-content/uploads/Cloud-Analytics-Pipeline-Infographic-1024x392.png 1024w, https://www.datagaps.com/wp-content/uploads/Cloud-Analytics-Pipeline-Infographic-768x294.png 768w, https://www.datagaps.com/wp-content/uploads/Cloud-Analytics-Pipeline-Infographic-1536x589.png 1536w" sizes="(max-width: 2025px) 100vw, 2025px" />											<figcaption class="widget-image-caption wp-caption-text">DataOps Suite architecture overview showing components across Landing Zone, Curated Zone, Warehouse, and BI layers</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-6699392 elementor-widget elementor-widget-text-editor" data-id="6699392" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW36041825 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW36041825 BCX8">For Microsoft Fabric environments specifically, the integration maps natively onto the <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/azure-synapse-testing/" target="_blank" rel="noopener">medallion architecture</a></span>, with </span><span class="NormalTextRun SpellingErrorV2Themed SCXW36041825 BCX8">Datagaps</span><span class="NormalTextRun SCXW36041825 BCX8"> components </span><span class="NormalTextRun SCXW36041825 BCX8">operating</span><span class="NormalTextRun SCXW36041825 BCX8"> across </span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW36041825 BCX8">Bronze, Silver, and Gold</span><span class="NormalTextRun SCXW36041825 BCX8"> layers on </span><span class="NormalTextRun SpellingErrorV2Themed SCXW36041825 BCX8">OneLake</span><span class="NormalTextRun SCXW36041825 BCX8">.</span></span><span class="EOP Selected SCXW36041825 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-83fb622 elementor-widget elementor-widget-image" data-id="83fb622" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1044" height="439" src="https://www.datagaps.com/wp-content/uploads/Microsoft-Fabric-integration-with-datagaps.2.png" class="attachment-full size-full wp-image-63781" alt="Microsoft Fabric integration with Datagaps showing Data Quality Monitor, ETL Validation, and BI Validation mapped across Bronze, Silver, and Gold layers on OneLake" srcset="https://www.datagaps.com/wp-content/uploads/Microsoft-Fabric-integration-with-datagaps.2.png 1044w, https://www.datagaps.com/wp-content/uploads/Microsoft-Fabric-integration-with-datagaps.2-300x126.png 300w, https://www.datagaps.com/wp-content/uploads/Microsoft-Fabric-integration-with-datagaps.2-1024x431.png 1024w, https://www.datagaps.com/wp-content/uploads/Microsoft-Fabric-integration-with-datagaps.2-768x323.png 768w" sizes="(max-width: 1044px) 100vw, 1044px" />											<figcaption class="widget-image-caption wp-caption-text">Microsoft Fabric integration with Datagaps showing Data Quality Monitor, ETL Validation, and BI Validation mapped across Bronze, Silver, and Gold layers on OneLake</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-73bc907 elementor-widget elementor-widget-icon-box" data-id="73bc907" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							How do AI-generated column descriptions set up the data model?						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						The process begins as soon as you connect your data source and create a data model. The first task is generating descriptions for your columns using AI. This produces consistent metadata that the platform uses to understand your dataset and generate better rules and queries wherever required.					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-c38af0b elementor-widget elementor-widget-image" data-id="c38af0b" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="527" src="https://www.datagaps.com/wp-content/uploads/Datagaps-column-description.3.png" class="attachment-full size-full wp-image-63785" alt="Datagaps column description generation using AI on DimCustomer table with Generate Descriptions button highlighted]" srcset="https://www.datagaps.com/wp-content/uploads/Datagaps-column-description.3.png 1120w, https://www.datagaps.com/wp-content/uploads/Datagaps-column-description.3-300x141.png 300w, https://www.datagaps.com/wp-content/uploads/Datagaps-column-description.3-1024x482.png 1024w, https://www.datagaps.com/wp-content/uploads/Datagaps-column-description.3-768x361.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">Datagaps column description generation using AI on DimCustomer table with Generate Descriptions button highlighted</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-be84a62 elementor-widget elementor-widget-text-editor" data-id="be84a62" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW212699605 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW212699605 BCX8">Once descriptions are generated and sample data has been reviewed, the next step is building data quality processes, starting with defining data quality rules.</span></span><span class="EOP Selected SCXW212699605 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-35781c9 elementor-widget elementor-widget-icon-box" data-id="35781c9" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							How does Datagaps generate data quality rules automatically? 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						Datagaps generates <a href="https://www.datagaps.com/data-quality-monitoring-tools/" target="_blank" rel="noopener noreferrer" style="color: #1967d2;text-decoration: underline;font-weight: 400">data quality rules</a> automatically for all selected tables, without requiring manual checks to be written. The AI uses sample data and metadata to produce rules covering dimensions such as:					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-fcb2e06 elementor-widget elementor-widget-text-editor" data-id="fcb2e06" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<ul><li><span data-contrast="auto">Validity: ensuring values conform to expected formats and constraints</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Uniqueness: detecting duplicate records or primary key violations</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Completeness: identifying null or missing values</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Consistency: validating conformity of related fields</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Timeliness: checking that data arrives within expected time windows</span></li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-8df5de6 elementor-widget elementor-widget-image" data-id="8df5de6" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1100" height="500" src="https://www.datagaps.com/wp-content/uploads/DimCustomer-mail-address.4.webp" class="attachment-full size-full wp-image-63795" alt="Auto-generated data quality rules for DimCustomer table including email validity, birth date validity, duplicate check, and SQL expression rule" srcset="https://www.datagaps.com/wp-content/uploads/DimCustomer-mail-address.4.webp 1100w, https://www.datagaps.com/wp-content/uploads/DimCustomer-mail-address.4-300x136.webp 300w, https://www.datagaps.com/wp-content/uploads/DimCustomer-mail-address.4-1024x465.webp 1024w, https://www.datagaps.com/wp-content/uploads/DimCustomer-mail-address.4-768x349.webp 768w" sizes="(max-width: 1100px) 100vw, 1100px" />											<figcaption class="widget-image-caption wp-caption-text">Auto-generated data quality rules for DimCustomer table including email validity, birth date validity, duplicate check, and SQL expression rule</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-4077be2 elementor-widget elementor-widget-text-editor" data-id="4077be2" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW209800348 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW209800348 BCX8">A practical advantage of this approach is reusability. Once rules are generated for a given set of tables, more than 80% of the time those rules </span><span class="NormalTextRun SCXW209800348 BCX8">remain</span><span class="NormalTextRun SCXW209800348 BCX8"> the same across runs. They can be exported, imported, and customised rather than regenerated each time, which also reduces AI processing costs.</span></span><span class="EOP Selected SCXW209800348 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-8205b7f elementor-widget elementor-widget-image" data-id="8205b7f" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="595" src="https://www.datagaps.com/wp-content/uploads/Rules-list-with-Export-option.5.png" class="attachment-full size-full wp-image-63801" alt="Rules list with Export option" srcset="https://www.datagaps.com/wp-content/uploads/Rules-list-with-Export-option.5.png 1120w, https://www.datagaps.com/wp-content/uploads/Rules-list-with-Export-option.5-300x159.png 300w, https://www.datagaps.com/wp-content/uploads/Rules-list-with-Export-option.5-1024x544.png 1024w, https://www.datagaps.com/wp-content/uploads/Rules-list-with-Export-option.5-768x408.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">Rules list with Export option highlighted, showing rule reusability across environments</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-b36eca2 elementor-widget elementor-widget-icon-box" data-id="b36eca2" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							How does Datagaps detect and classify PII automatically? 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						For datasets containing personally identifiable information, Datagaps uses machine learning to automatically detect and classify PII columns across all tables. Rather than manually tagging sensitive fields, the platform classifies each column into a known entity type such as email address, phone number, or national identifier. These columns can then be <a href="https://www.datagaps.com/test-data-manager/" target="_blank" rel="noopener noreferrer" style="color: #1967d2;text-decoration: underline;font-weight: 400">masked</a> or flagged for <a href="https://www.datagaps.com/compliance-solutions/" target="_blank" rel="noopener noreferrer" style="color: #1967d2;text-decoration: underline;font-weight: 400">governance purposes</a> without any additional code.					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-6370d5a elementor-widget elementor-widget-icon-box" data-id="6370d5a" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							How is the data quality score calculated? 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						Every rule defined in a table contributes to an individual data quality score at the column level. These roll up into an aggregated score visible in the data quality dashboard. This gives teams a standardised, quantifiable view of data health that can be <a href="https://www.datagaps.com/ebook/data-quality-maturity-assessment-guide/" target="_blank" rel="noopener noreferrer" style="color: #1967d2;text-decoration: underline;font-weight: 400">tracked over time</a> and broken down by dimension.					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-c5b6022 elementor-arrows-position-outside elementor-pagination-position-outside elementor-widget elementor-widget-image-carousel" data-id="c5b6022" data-element_type="widget" data-e-type="widget" data-settings="{&quot;slides_to_show&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;both&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;effect&quot;:&quot;slide&quot;,&quot;speed&quot;:500}" data-widget_type="image-carousel.default">
				<div class="elementor-widget-container">
							<div class="elementor-image-carousel-wrapper swiper" role="region" aria-roledescription="carousel" aria-label="Image Carousel" dir="ltr">
			<div class="elementor-image-carousel swiper-wrapper" aria-live="off">
								<div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="1 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/SQL-Expression.6.png" alt="SQL Expression" /><figcaption class="elementor-image-carousel-caption">SQL Expression</figcaption></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="2 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/Dashboard.7.png" alt="Dashboard" /><figcaption class="elementor-image-carousel-caption">Dashboard</figcaption></figure></div>			</div>
												<div class="elementor-swiper-button elementor-swiper-button-prev" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-left"></i>					</div>
					<div class="elementor-swiper-button elementor-swiper-button-next" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-right"></i>					</div>
				
									<div class="swiper-pagination"></div>
									</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-eb74dc7 elementor-widget elementor-widget-text-editor" data-id="eb74dc7" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW102776981 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW102776981 BCX8">All records that fail defined quality checks are surfaced in the Data Quality Issues section.</span></span><span class="EOP Selected SCXW102776981 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-501c459 elementor-widget elementor-widget-icon-box" data-id="501c459" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							How are data quality issues managed and remediated? 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						From the Data Quality Issues interface, teams can choose to save, quarantine, or delete bad records. Notifications, stakeholder alerts, and ticket creation can all be automated from within the platform, ensuring full accountability throughout the remediation process. 

For example, if a check is added to ensure that first and last names in a table contain no special characters or numbers, the platform will show exactly where that check failed, how many bad records were found, and the sample rows that triggered the failure. The team can then decide whether to retain, isolate, or remove those records before proceeding.					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-83a24cf elementor-widget elementor-widget-image" data-id="83a24cf" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1107" height="857" src="https://www.datagaps.com/wp-content/uploads/Data-Quality-issues.8.png" class="attachment-full size-full wp-image-63829" alt="Data Quality issues in DQM" srcset="https://www.datagaps.com/wp-content/uploads/Data-Quality-issues.8.png 1107w, https://www.datagaps.com/wp-content/uploads/Data-Quality-issues.8-300x232.png 300w, https://www.datagaps.com/wp-content/uploads/Data-Quality-issues.8-1024x793.png 1024w, https://www.datagaps.com/wp-content/uploads/Data-Quality-issues.8-768x595.png 768w" sizes="(max-width: 1107px) 100vw, 1107px" />															</div>
				</div>
				<div class="elementor-element elementor-element-603f30b elementor-widget elementor-widget-icon-box" data-id="603f30b" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							How do dataflows validate ETL transformations and compare data? 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						A key part of end-to-end observability is <a href="https://www.datagaps.com/data-validation-etl-testing-tools/" target="_blank" rel="noopener noreferrer" style="color: #1967d2;text-decoration: underline;font-weight: 400">verifying that transformations produce the expected output</a>. The best way to find mismatches is by creating separate dataflows for testing. A dataflow connects a raw source, applies a transformation, and then <a href="https://www.datagaps.com/data-reconciliation/" target="_blank" rel="noopener noreferrer" style="color: #1967d2;text-decoration: underline;font-weight: 400">runs a comparison</a> to surface any rows where the output does not match expectations.					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-9a69d7a elementor-widget elementor-widget-image" data-id="9a69d7a" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="558" src="https://www.datagaps.com/wp-content/uploads/Dataflow-diagram.9.png" class="attachment-full size-full wp-image-63840" alt="" srcset="https://www.datagaps.com/wp-content/uploads/Dataflow-diagram.9.png 1120w, https://www.datagaps.com/wp-content/uploads/Dataflow-diagram.9-300x149.png 300w, https://www.datagaps.com/wp-content/uploads/Dataflow-diagram.9-1024x510.png 1024w, https://www.datagaps.com/wp-content/uploads/Dataflow-diagram.9-768x383.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-05d1904 elementor-widget elementor-widget-text-editor" data-id="05d1904" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW42687982 BCX8">The result view shows exactly which rows were mismatched, the original value versus the changed value per column, and a column-wise breakdown of discrepancies. This level of clarity is essential before moving any data solution to </span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW42687982 BCX8">production, and</span><span class="NormalTextRun SCXW42687982 BCX8"> is particularly valuable during <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-migration-testing-automation/" target="_blank" rel="noopener">data migration scenarios</a></span> where column mappings and type conversions need to be </span><span class="NormalTextRun SCXW42687982 BCX8">validated</span><span class="NormalTextRun SCXW42687982 BCX8">.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-59d66af elementor-widget elementor-widget-image" data-id="59d66af" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="544" src="https://www.datagaps.com/wp-content/uploads/Dataflow-mapping-result.10.png" class="attachment-full size-full wp-image-63842" alt="" srcset="https://www.datagaps.com/wp-content/uploads/Dataflow-mapping-result.10.png 1120w, https://www.datagaps.com/wp-content/uploads/Dataflow-mapping-result.10-300x146.png 300w, https://www.datagaps.com/wp-content/uploads/Dataflow-mapping-result.10-1024x497.png 1024w, https://www.datagaps.com/wp-content/uploads/Dataflow-mapping-result.10-768x373.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-ffad640 elementor-widget elementor-widget-text-editor" data-id="ffad640" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW8542091 BCX8">Within Dataflows, an AI Assistant is also available to help write correct and complex SQL queries using simple natural language prompts. To give the AI </span><span class="NormalTextRun SCXW8542091 BCX8">accurate</span><span class="NormalTextRun SCXW8542091 BCX8"> context, a RAG model of the data schema can be configured, allowing the assistant to generate queries that are grounded in the actual metadata of the dataset.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-4176210 elementor-arrows-position-outside elementor-pagination-position-outside elementor-widget elementor-widget-image-carousel" data-id="4176210" data-element_type="widget" data-e-type="widget" data-settings="{&quot;slides_to_show&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;both&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;effect&quot;:&quot;slide&quot;,&quot;speed&quot;:500}" data-widget_type="image-carousel.default">
				<div class="elementor-widget-container">
							<div class="elementor-image-carousel-wrapper swiper" role="region" aria-roledescription="carousel" aria-label="Image Carousel" dir="ltr">
			<div class="elementor-image-carousel swiper-wrapper" aria-live="off">
								<div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="1 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/Columnwise-mis-matches.11.png" alt="Columnwise mis-matches" /><figcaption class="elementor-image-carousel-caption">Columnwise mis-matches</figcaption></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="2 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/datacompare-mapping.12.png" alt="datacompare mapping" /><figcaption class="elementor-image-carousel-caption">datacompare mapping</figcaption></figure></div>			</div>
												<div class="elementor-swiper-button elementor-swiper-button-prev" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-left"></i>					</div>
					<div class="elementor-swiper-button elementor-swiper-button-next" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-right"></i>					</div>
				
									<div class="swiper-pagination"></div>
									</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-5426b93 elementor-widget elementor-widget-icon-box" data-id="5426b93" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							How are BI reports validated against source data? 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						Observability does not end at the database layer. Reports also need to be <a href="https://www.datagaps.com/bi-testing-tools/" target="_blank" rel="noopener noreferrer" style="color: #1967d2;text-decoration: underline;font-weight: 400">validated against the original dataset</a>. As an analytics manager, checking data quality scores alone is insufficient; the figures shown in a report must also match what is in the source tables. Dataflows support this by allowing a comparison between a BI tool dataset and the underlying source.

<br><br>

For example, if <a href="https://www.datagaps.com/automate-tableau-testing/" target="_blank" rel="noopener noreferrer" style="color: #1967d2;text-decoration: underline;font-weight: 400">a report on Tableau</a> is aggregating yearly income by number of children, the same aggregation can be written against the source table and compared directly. The tool picks up the dataset from the dashboard automatically and validates whether the numbers match. Any discrepancy in values is surfaced as a mismatched row, including type mismatches such as a column appearing as a decimal in the source but as a string in the report.					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-1f6918e elementor-arrows-position-outside elementor-pagination-position-outside elementor-widget elementor-widget-image-carousel" data-id="1f6918e" data-element_type="widget" data-e-type="widget" data-settings="{&quot;slides_to_show&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;both&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;effect&quot;:&quot;slide&quot;,&quot;speed&quot;:500}" data-widget_type="image-carousel.default">
				<div class="elementor-widget-container">
							<div class="elementor-image-carousel-wrapper swiper" role="region" aria-roledescription="carousel" aria-label="Image Carousel" dir="ltr">
			<div class="elementor-image-carousel swiper-wrapper" aria-live="off">
								<div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="1 of 3"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/Tableau-dataflow-diagram.13.png" alt="Dataflow diagram" /><figcaption class="elementor-image-carousel-caption">Dataflow diagram for BI validation connecting Tableau and SQL Server sources through Tableau_Cleanup and Tableau_Compare components</figcaption></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="2 of 3"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/SQL-Server-query.14.png" alt="Dataflow diagram for BI validation connecting Tableau and SQL Server sources through Tableau_Cleanup and Tableau_Compare components Press enter or click to view image in full size" /><figcaption class="elementor-image-carousel-caption">SQL Server query</figcaption></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="3 of 3"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/property-mapping-results.15.png" alt="Property, mapping, result" /><figcaption class="elementor-image-carousel-caption">Column mapping view showing Sum_YearlyIncome and TotalChildren mapped between Dataset A and Dataset B, with data type mismatch highlighted</figcaption></figure></div>			</div>
												<div class="elementor-swiper-button elementor-swiper-button-prev" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-left"></i>					</div>
					<div class="elementor-swiper-button elementor-swiper-button-next" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-right"></i>					</div>
				
									<div class="swiper-pagination"></div>
									</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-607fcfd elementor-widget elementor-widget-icon-box" data-id="607fcfd" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							How do data profiling and anomaly detection work? 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						A minimal yet important capability that also falls under data observability is <a href="https://www.datagaps.com/blog/data-profiling-in-etl-types-and-best-practices/" target="_blank" rel="noopener noreferrer" style="color: #1967d2;text-decoration: underline;font-weight: 400">profiling your data</a> and identifying patterns. For datasets that change every day, profiling provides a report on what has changed, what the distribution looks like, and where anomalies may have appeared.

<br><br>

Beyond standard aggregates such as minimum value, maximum value, null count, and mean, the platform supports machine learning-based analysis to detect skewness and hidden patterns in datasets. This does not require any custom code; selecting the desired profiling options is sufficient and the platform generates the report automatically.					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-4ad37bb elementor-widget elementor-widget-image" data-id="4ad37bb" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="521" src="https://www.datagaps.com/wp-content/uploads/Data-profiling-configuration.16.png" class="attachment-full size-full wp-image-63865" alt="Data profiling configuration" srcset="https://www.datagaps.com/wp-content/uploads/Data-profiling-configuration.16.png 1120w, https://www.datagaps.com/wp-content/uploads/Data-profiling-configuration.16-300x140.png 300w, https://www.datagaps.com/wp-content/uploads/Data-profiling-configuration.16-1024x476.png 1024w, https://www.datagaps.com/wp-content/uploads/Data-profiling-configuration.16-768x357.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">Data profiling configuration screen showing aggregate options, frequency analysis, pattern analysis selection, and anomaly detection settings with standard deviation method</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-730c36b elementor-widget elementor-widget-text-editor" data-id="730c36b" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW37014659 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW37014659 BCX8">The output is a detailed profile showing observed patterns per column, frequency of values, and trend comparisons against </span><span class="NormalTextRun SCXW37014659 BCX8">previous</span><span class="NormalTextRun SCXW37014659 BCX8"> runs, giving teams a continuous view of how their data is behaving over time.</span></span><span class="EOP Selected SCXW37014659 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-5d03d9f elementor-widget elementor-widget-image" data-id="5d03d9f" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="640" src="https://www.datagaps.com/wp-content/uploads/Data-profile-result.17.png" class="attachment-full size-full wp-image-63875" alt="Data profile result" srcset="https://www.datagaps.com/wp-content/uploads/Data-profile-result.17.png 1120w, https://www.datagaps.com/wp-content/uploads/Data-profile-result.17-300x171.png 300w, https://www.datagaps.com/wp-content/uploads/Data-profile-result.17-1024x585.png 1024w, https://www.datagaps.com/wp-content/uploads/Data-profile-result.17-768x439.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">Data profile result showing Customer_Key column with row count, null percentage, distinct count, frequency analysis, and pattern analysis breakdown</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-db332aa elementor-widget elementor-widget-heading" data-id="db332aa" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What role does AI play across the Datagaps observability framework?</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-37b736a elementor-widget elementor-widget-text-editor" data-id="37b736a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="auto">In the DataOps Suite, AI is embedded across the entire observability workflow rather than sitting in one feature. AI used for development in Microsoft Fabric is now matched by AI for testing as well. The AI capabilities span the following areas:</span><span data-ccp-props="{}"> </span></p><ul><li><span data-contrast="auto">AI-generated column descriptions to establish consistent and machine-readable metadata</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">AI-powered rule generation based on sample data and metadata context</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">ML-based entity classification for automated PII detection across all tables</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">An AI Assistant within Dataflows for generating SQL queries using natural language prompts, grounded in a RAG model of the data schema</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">ML-based anomaly detection for identifying distribution shifts and statistical irregularities without requiring custom code</span><span data-ccp-props="{}"> </span></li><li style="list-style-type: none;"> </li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-a367d05 elementor-widget elementor-widget-heading" data-id="a367d05" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Conclusion </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-e542658 elementor-widget elementor-widget-text-editor" data-id="e542658" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="auto">The best thing about having a data observability setup in place is that you can compare what goes into the system against what is being reflected on the dashboard or in your tables. You can introduce tests at every stage to validate what is happening and whether it is correct.</span><span data-ccp-props="{}"> </span></p><p><span data-contrast="auto">As organisations scale their data operations on Microsoft Fabric, data quality checks alone are not sufficient. Observability needs continuous visibility across the full data lifecycle, from ingestion through transformation, storage, and reporting. Datagaps and its DataOps Suite provide the tooling to achieve this, with AI accelerating every stage of the process and integrating natively with existing architectures.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-bf2f76e elementor-widget elementor-widget-text-editor" data-id="bf2f76e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="color: #1967d2;"><a style="color: #1967d2;" href="https://www.datagaps.com/request-a-demo/" target="_blank" rel="noopener"><span style="text-decoration: underline;"><span class="NormalTextRun SCXW211184476 BCX8">See how the </span><span class="NormalTextRun SpellingErrorV2Themed SCXW211184476 BCX8">DataOps</span><span class="NormalTextRun SCXW211184476 BCX8"> Suite validates Fabric data from Bronze to BI report →</span></span></a></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-32908ef elementor-widget elementor-widget-heading" data-id="32908ef" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Frequently Asked Questions </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-923e752 elementor-widget elementor-widget-eael-adv-accordion" data-id="923e752" data-element_type="widget" data-e-type="widget" data-widget_type="eael-adv-accordion.default">
				<div class="elementor-widget-container">
					            <div class="eael-adv-accordion" id="eael-adv-accordion-923e752" data-scroll-on-click="no" data-scroll-speed="300" data-accordion-id="923e752" data-accordion-type="accordion" data-toogle-speed="300">
            <div class="eael-accordion-list">
					<div id="faq-1" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="1" aria-controls="elementor-tab-content-1531"><h3 class="eael-accordion-tab-title">What is the difference between data observability and data quality? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1531" class="eael-accordion-content clearfix" data-tab="1" aria-labelledby="faq-1"><p><span class="TextRun SCXW133730243 BCX8"><span class="NormalTextRun SCXW133730243 BCX8">Data quality checks whether data at rest meets predefined standards, using static rules for issues like nulls and duplicates. Data observability covers data in motion <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/data-quality-observability-guide/" target="_blank" rel="noopener">across the full lifecycle</a></span>, proactively detecting known and unknown issues through drift, anomaly, </span><span class="NormalTextRun SCXW133730243 BCX8">lineage</span><span class="NormalTextRun SCXW133730243 BCX8"> and ML-based monitoring with automated alerting. Data quality checks are one part of observability.</span></span><span class="EOP Selected SCXW133730243 BCX8"> </span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-2" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="2" aria-controls="elementor-tab-content-1532"><h3 class="eael-accordion-tab-title">How does Datagaps support data observability on Microsoft Fabric? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1532" class="eael-accordion-content clearfix" data-tab="2" aria-labelledby="faq-2"><p><span class="TextRun SCXW81688219 BCX8"><span class="NormalTextRun SCXW81688219 BCX8">The </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81688219 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW81688219 BCX8">DataOps</span><span class="NormalTextRun SCXW81688219 BCX8"> Suite integrates with existing architectures and maps natively onto <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/microsoft-fabric-testing-automation/" target="_blank" rel="noopener">Fabric&#8217;s medallion architecture</a></span>, with Data Quality Monitor, ETL Validation and BI Validation </span><span class="NormalTextRun SCXW81688219 BCX8">operating</span><span class="NormalTextRun SCXW81688219 BCX8"> across </span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW81688219 BCX8">Bronze, Silver and Gold</span><span class="NormalTextRun SCXW81688219 BCX8"> layers on </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81688219 BCX8">OneLake</span><span class="NormalTextRun SCXW81688219 BCX8">. It covers AI-generated rules, DQ scoring, issue management, dataflow-based comparisons, BI report </span><span class="NormalTextRun SCXW81688219 BCX8">validation</span><span class="NormalTextRun SCXW81688219 BCX8"> and profiling.</span></span><span class="EOP Selected SCXW81688219 BCX8"> </span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-3" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="3" aria-controls="elementor-tab-content-1533"><h3 class="eael-accordion-tab-title">Can AI-generated data quality rules be reused across runs?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1533" class="eael-accordion-content clearfix" data-tab="3" aria-labelledby="faq-3"><p><span class="TextRun SCXW160290695 BCX8"><span class="NormalTextRun SCXW160290695 BCX8">Yes. <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/blog/how-to-generate-500-data-quality-rules-at-scale-using-ai/" target="_blank" rel="noopener">Once rules are generated</a></span> for a given set of tables, more than 80% of the time those rules </span><span class="NormalTextRun SCXW160290695 BCX8">remain</span><span class="NormalTextRun SCXW160290695 BCX8"> the same across runs. They can be exported, </span><span class="NormalTextRun SCXW160290695 BCX8">imported</span><span class="NormalTextRun SCXW160290695 BCX8"> and customised rather than regenerated each time, which also reduces AI processing costs. Rules cover validity, uniqueness, completeness, </span><span class="NormalTextRun SCXW160290695 BCX8">consistency</span><span class="NormalTextRun SCXW160290695 BCX8"> and timeliness.</span></span><span class="EOP Selected SCXW160290695 BCX8"> </span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-4" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="4" aria-controls="elementor-tab-content-1534"><h3 class="eael-accordion-tab-title">What happens to bad records that fail data quality checks in Datagaps?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1534" class="eael-accordion-content clearfix" data-tab="4" aria-labelledby="faq-4"><p><span class="NormalTextRun SCXW194459487 BCX8">Failed records are surfaced in the Data Quality Issues section, where teams can <span style="text-decoration: underline"><a href="https://www.datagaps.com/data-quality-remediation/" target="_blank" rel="noopener"><span style="color: #1967d2;text-decoration: underline">save, quarantine or</span> </a></span></span><span style="color: #1967d2"><a style="color: #1967d2" href="https://www.datagaps.com/data-quality-remediation/"><span class="NormalTextRun SCXW194459487 BCX8">delete</span></a></span><span class="NormalTextRun SCXW194459487 BCX8"> them. The platform shows where a check failed, how many bad records were found and sample rows. Notifications, stakeholder </span><span class="NormalTextRun SCXW194459487 BCX8">alerts</span><span class="NormalTextRun SCXW194459487 BCX8"> and ticket creation can be automated, ensuring accountability throughout remediation.</span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-5" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="5" aria-controls="elementor-tab-content-1535"><h3 class="eael-accordion-tab-title">How do you validate that a BI report matches its source data?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1535" class="eael-accordion-content clearfix" data-tab="5" aria-labelledby="faq-5"><p><span class="TextRun SCXW156902476 BCX8"><span class="NormalTextRun SpellingErrorV2Themed SCXW156902476 BCX8">Datagaps</span><span class="NormalTextRun SCXW156902476 BCX8"> dataflows <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/bi-testing-complete-guide/" target="_blank" rel="noopener">compare a BI tool dataset</a></span> with the underlying source. For a Tableau report aggregating yearly income by number of children, the same aggregation is written against the source table and compared directly. Discrepancies appear as mismatched rows, including type mismatches such as a decimal in the source shown as a string in the report.</span></span><span class="EOP Selected SCXW156902476 BCX8"> </span></p></div>
					</div></div>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-62980c3 e-flex e-con-boxed e-con e-parent" data-id="62980c3" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-1ac3fec e-con-full e-flex e-con e-child" data-id="1ac3fec" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-f5d35f8 e-con-full e-flex e-con e-child" data-id="f5d35f8" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-184c126 elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading" data-id="184c126" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<span class="elementor-heading-title elementor-size-default">Get Started Today</span>				</div>
				</div>
				<div class="elementor-element elementor-element-4a9257d elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading" data-id="4a9257d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Talk to a datagaps expert</h2>				</div>
				</div>
		<div class="elementor-element elementor-element-e2d718a e-con-full e-flex e-con e-child" data-id="e2d718a" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-0b52229 elementor-widget__width-auto home-btn-new elementor-widget elementor-widget-button" data-id="0b52229" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.datagaps.com/request-a-demo/" target="_blank">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Get a Demo</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-7b1b3d1 elementor-widget__width-auto home-btn-new elementor-widget elementor-widget-button" data-id="7b1b3d1" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.datagaps.com/contact-us/" target="_blank">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Contact Us</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-5da6591 e-flex e-con-boxed e-con e-parent" data-id="5da6591" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a6d9f5b elementor-widget elementor-widget-html" data-id="a6d9f5b" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://www.datagaps.com/#organization",
      "name": "Datagaps",
      "url": "https://www.datagaps.com/",
      "logo": {
        "@type": "ImageObject",
        "@id": "https://www.datagaps.com/#logo",
        "url": "https://www.datagaps.com/wp-content/uploads/datagaps-logo-2.svg",
        "contentUrl": "https://www.datagaps.com/wp-content/uploads/datagaps-logo-2.svg"
      },
      "sameAs": [
        "https://www.linkedin.com/company/datagaps/",
        "https://twitter.com/datagapsteam",
        "https://www.youtube.com/user/datagaps",
        "https://www.instagram.com/datagapsinc/",
        "https://www.facebook.com/datagapsinc"
      ]
    },
    {
      "@type": "Person",
      "@id": "https://www.datagaps.com/#/person/rajmohan-achanta",
      "name": "RajMohan Achanta",
      "jobTitle": "Associate Product Manager",
      "description": "Associate Product Manager at Datagaps. Shapes the product experience across ETL Validator, BI Validator, and Data Quality Monitor.",
      "worksFor": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "url": "https://www.datagaps.com/blog/author/rajmohan/",
      "sameAs": [
        "https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/"
      ],
      "alternateName": "Raj Mohan Achanta",
      "image": "https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png"
    },
    {
      "@type": "Person",
      "@id": "https://www.datagaps.com/#/person/avinash-keshri",
      "name": "Avinash Keshri",
      "jobTitle": "Head, Product Marketing",
      "description": "Head of Product Marketing at Datagaps and IIM Bangalore alumnus. 13+ years of experience in commercializing AI and data platforms across global markets.",
      "worksFor": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "alumniOf": {
        "@type": "CollegeOrUniversity",
        "name": "Indian Institute of Management Bangalore"
      },
      "url": "https://www.linkedin.com/in/avinashkeshri-iimb/",
      "sameAs": [
        "https://www.linkedin.com/in/avinashkeshri-iimb/"
      ],
      "image": "https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png"
    },
    {
      "@type": "BlogPosting",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#blogposting",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/"
      },
      "url": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/",
      "headline": "How Datagaps Enables End-to-End Data Observability on Fabric",
      "description": "Monitor Microsoft Fabric data health end to end with Datagaps DataOps Suite, AI-powered rules, validation, profiling, and anomaly detection.",
      "inLanguage": "en",
      "datePublished": "2026-10-23T09:14:02+00:00",
      "dateModified": "2026-10-27T10:35:27+00:00",
      "timeRequired": "PT14M",
      "author": [
        {
          "@id": "https://www.datagaps.com/#/person/rajmohan-achanta"
        },
        {
          "@id": "https://www.datagaps.com/#/person/avinash-keshri"
        }
      ],
      "publisher": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "image": {
        "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#featured-image"
      },
      "articleSection": [
        "Data Observability",
        "Data Quality",
        "DataOps"
      ],
      "keywords": "Data Observability, Microsoft Fabric, Data Quality, DataOps Suite, Medallion Architecture, Data Profiling, Anomaly Detection",
      "about": [
        {
          "@type": "Thing",
          "name": "Data observability"
        },
        {
          "@type": "Thing",
          "name": "Microsoft Fabric"
        },
        {
          "@type": "Thing",
          "name": "Data quality"
        }
      ],
      "mentions": [
        {
          "@type": "Thing",
          "name": "Datagaps DataOps Suite",
          "url": "https://www.datagaps.com/dataops-suite/"
        }
      ],
      "associatedMedia": [
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-architecture-overview"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-fabric-medallion-integration"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-column-descriptions"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-generated-dq-rules"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-rules-export"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-sql-expression"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-dq-dashboard"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-dq-issues"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-dataflow-diagram"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-dataflow-mapping-result"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-columnwise-mismatches"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-datacompare-mapping"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-tableau-dataflow"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-sql-server-query"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-bi-column-mapping"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-profiling-configuration"
        },
        {
          "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-profile-result"
        }
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#featured-image",
      "url": "https://www.datagaps.com/wp-content/uploads/How-Datagaps-Enables-End-to-End-Data-Observability-on-Fabric.jpg",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/How-Datagaps-Enables-End-to-End-Data-Observability-on-Fabric.jpg",
      "width": 1200,
      "height": 628,
      "encodingFormat": "image/jpeg",
      "caption": "How Datagaps Enables End-to-End Data Observability on Fabric",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-architecture-overview",
      "url": "https://www.datagaps.com/wp-content/uploads/Cloud-Analytics-Pipeline-Infographic.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Cloud-Analytics-Pipeline-Infographic.png",
      "name": "DataOps Suite architecture overview",
      "caption": "DataOps Suite architecture overview showing components across Landing Zone, Curated Zone, Warehouse, and BI layers",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-fabric-medallion-integration",
      "url": "https://www.datagaps.com/wp-content/uploads/Microsoft-Fabric-integration-with-datagaps.2.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Microsoft-Fabric-integration-with-datagaps.2.png",
      "name": "Microsoft Fabric integration with Datagaps",
      "caption": "Microsoft Fabric integration with Datagaps showing Data Quality Monitor, ETL Validation, and BI Validation mapped across Bronze, Silver, and Gold layers on OneLake",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-column-descriptions",
      "url": "https://www.datagaps.com/wp-content/uploads/Datagaps-column-description.3.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Datagaps-column-description.3.png",
      "name": "Datagaps column description generation using AI",
      "caption": "Datagaps column description generation using AI on DimCustomer table with Generate Descriptions button highlighted",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-generated-dq-rules",
      "url": "https://www.datagaps.com/wp-content/uploads/DimCustomer-mail-address.4.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/DimCustomer-mail-address.4.webp",
      "name": "Auto-generated data quality rules for DimCustomer table",
      "caption": "Auto-generated data quality rules for DimCustomer table including email validity, birth date validity, duplicate check, and SQL expression rule",
      "encodingFormat": "image/webp",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-rules-export",
      "url": "https://www.datagaps.com/wp-content/uploads/Rules-list-with-Export-option.5.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Rules-list-with-Export-option.5.png",
      "name": "Rules list with Export option",
      "caption": "Rules list with Export option highlighted, showing rule reusability across environments",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-sql-expression",
      "url": "https://www.datagaps.com/wp-content/uploads/SQL-Expression.6.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/SQL-Expression.6.png",
      "name": "SQL Expression",
      "caption": "SQL Expression",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-dq-dashboard",
      "url": "https://www.datagaps.com/wp-content/uploads/Dashboard.7.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Dashboard.7.png",
      "name": "Dashboard",
      "caption": "Dashboard",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-dq-issues",
      "url": "https://www.datagaps.com/wp-content/uploads/Data-Quality-issues.8.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Data-Quality-issues.8.png",
      "name": "Data Quality issues in DQM",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-dataflow-diagram",
      "url": "https://www.datagaps.com/wp-content/uploads/Dataflow-diagram.9.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Dataflow-diagram.9.png",
      "name": "Dataflow diagram connecting a source, a transformation and a comparison",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-dataflow-mapping-result",
      "url": "https://www.datagaps.com/wp-content/uploads/Dataflow-mapping-result.10.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Dataflow-mapping-result.10.png",
      "name": "Dataflow mapping result showing mismatched rows",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-columnwise-mismatches",
      "url": "https://www.datagaps.com/wp-content/uploads/Columnwise-mis-matches.11.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Columnwise-mis-matches.11.png",
      "name": "Columnwise mis-matches",
      "caption": "Columnwise mis-matches",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-datacompare-mapping",
      "url": "https://www.datagaps.com/wp-content/uploads/datacompare-mapping.12.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/datacompare-mapping.12.png",
      "name": "datacompare mapping",
      "caption": "datacompare mapping",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-tableau-dataflow",
      "url": "https://www.datagaps.com/wp-content/uploads/Tableau-dataflow-diagram.13.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Tableau-dataflow-diagram.13.png",
      "name": "Dataflow diagram for BI validation",
      "caption": "Dataflow diagram for BI validation connecting Tableau and SQL Server sources through Tableau_Cleanup and Tableau_Compare components",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-sql-server-query",
      "url": "https://www.datagaps.com/wp-content/uploads/SQL-Server-query.14.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/SQL-Server-query.14.png",
      "name": "SQL Server query",
      "caption": "SQL Server query",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-bi-column-mapping",
      "url": "https://www.datagaps.com/wp-content/uploads/property-mapping-results.15.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/property-mapping-results.15.png",
      "name": "Column mapping view with data type mismatch",
      "caption": "Column mapping view showing Sum_YearlyIncome and TotalChildren mapped between Dataset A and Dataset B, with data type mismatch highlighted",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-profiling-configuration",
      "url": "https://www.datagaps.com/wp-content/uploads/Data-profiling-configuration.16.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Data-profiling-configuration.16.png",
      "name": "Data profiling configuration screen",
      "caption": "Data profiling configuration screen showing aggregate options, frequency analysis, pattern analysis selection, and anomaly detection settings with standard deviation method",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#img-profile-result",
      "url": "https://www.datagaps.com/wp-content/uploads/Data-profile-result.17.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Data-profile-result.17.png",
      "name": "Data profile result for Customer_Key",
      "caption": "Data profile result showing Customer_Key column with row count, null percentage, distinct count, frequency analysis, and pattern analysis breakdown",
      "encodingFormat": "image/png",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "FAQPage",
      "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/#faq",
      "isPartOf": {
        "@id": "https://www.datagaps.com/blog/microsoft-fabric-data-observability/"
      },
      "mainEntity": [
        {
          "@type": "Question",
          "name": "What is the difference between data observability and data quality?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Data quality checks whether data at rest meets predefined standards, using static rules for issues like nulls and duplicates. Data observability covers data in motion across the full lifecycle, proactively detecting known and unknown issues through drift, anomaly, lineage and ML-based monitoring with automated alerting. Data quality checks are one part of observability."
          }
        },
        {
          "@type": "Question",
          "name": "How does Datagaps support data observability on Microsoft Fabric?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "The Datagaps DataOps Suite integrates with existing architectures and maps natively onto Fabric’s medallion architecture, with Data Quality Monitor, ETL Validation and BI Validation operating across Bronze, Silver and Gold layers on OneLake. It covers AI-generated rules, DQ scoring, issue management, dataflow-based comparisons, BI report validation and profiling."
          }
        },
        {
          "@type": "Question",
          "name": "Can AI-generated data quality rules be reused across runs?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. Once rules are generated for a given set of tables, more than 80% of the time those rules remain the same across runs. They can be exported, imported and customised rather than regenerated each time, which also reduces AI processing costs. Rules cover validity, uniqueness, completeness, consistency and timeliness."
          }
        },
        {
          "@type": "Question",
          "name": "What happens to bad records that fail data quality checks in Datagaps?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Failed records are surfaced in the Data Quality Issues section, where teams can save, quarantine or delete them. The platform shows where a check failed, how many bad records were found and sample rows. Notifications, stakeholder alerts and ticket creation can be automated, ensuring accountability throughout remediation."
          }
        },
        {
          "@type": "Question",
          "name": "How do you validate that a BI report matches its source data?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Datagaps dataflows compare a BI tool dataset with the underlying source. For a Tableau report aggregating yearly income by number of children, the same aggregation is written against the source table and compared directly. Discrepancies appear as mismatched rows, including type mismatches such as a decimal in the source shown as a string in the report."
          }
        }
      ]
    }
  ]
}
</script>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f8574ba e-flex e-con-boxed e-con e-parent" data-id="f8574ba" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-6b8079b e-con-full e-flex e-con e-child" data-id="6b8079b" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-86810af e-con-full e-flex e-con e-child" data-id="86810af" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-f437041 e-con-full e-flex e-con e-child" data-id="f437041" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-eaeece0 elementor-widget-laptop__width-initial elementor-widget elementor-widget-image" data-id="eaeece0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="150" height="150" src="https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png" class="attachment-thumbnail size-thumbnail wp-image-53799" alt="Raj Mohan Achanta" srcset="https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png 150w, https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-300x300.png 300w, https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta.png 504w" sizes="(max-width: 150px) 100vw, 150px" />															</div>
				</div>
		<div class="elementor-element elementor-element-ff250c2 e-con-full e-flex e-con e-child" data-id="ff250c2" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-f8a8b4d elementor-position-inline-end elementor-mobile-position-inline-start elementor-widget-laptop__width-initial elementor-view-default elementor-widget elementor-widget-icon-box" data-id="f8a8b4d" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/" class="elementor-icon" tabindex="-1" aria-label="RajMohan Achanta">
				<i aria-hidden="true" class="fab fa-linkedin-in"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h5 class="elementor-icon-box-title">
						<a href="https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/" >
							RajMohan Achanta						</a>
					</h5>
				
									<p class="elementor-icon-box-description">
						Associate Product Manager, Datagaps					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-d390cfb elementor-widget elementor-widget-text-editor" data-id="d390cfb" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Associate Product Manager at Datagaps. Shapes the product experience across ETL Validator, BI Validator, and Data Quality Monitor.</p>								</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-a7960cb e-con-full e-flex e-con e-child" data-id="a7960cb" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-66b97d0 elementor-widget-laptop__width-initial elementor-widget elementor-widget-image" data-id="66b97d0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="150" height="150" src="https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png" class="attachment-thumbnail size-thumbnail wp-image-54463" alt="Avinash&apos;s picture" srcset="https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png 150w, https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-300x300.png 300w, https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2.png 504w" sizes="(max-width: 150px) 100vw, 150px" />															</div>
				</div>
		<div class="elementor-element elementor-element-5e8a351 e-con-full e-flex e-con e-child" data-id="5e8a351" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-6e0b636 elementor-position-inline-end elementor-mobile-position-inline-start elementor-view-default elementor-widget elementor-widget-icon-box" data-id="6e0b636" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://www.linkedin.com/in/avinashkeshri-iimb/" class="elementor-icon" tabindex="-1" aria-label="Avinash Keshri">
				<i aria-hidden="true" class="fab fa-linkedin-in"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h5 class="elementor-icon-box-title">
						<a href="https://www.linkedin.com/in/avinashkeshri-iimb/" >
							Avinash Keshri						</a>
					</h5>
				
									<p class="elementor-icon-box-description">
						Head, Product Marketing					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-1e2303c elementor-widget elementor-widget-text-editor" data-id="1e2303c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Head of Product Marketing at Datagaps and IIM Bangalore alumnus. 13+ years of experience in commercializing AI and data platforms across global markets.</p>								</div>
				</div>
				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://www.datagaps.com/blog/microsoft-fabric-data-observability/">How Datagaps Enables End-to-End Data Observability on Fabric</a> appeared first on <a href="https://www.datagaps.com">Datagaps | Gen AI-Powered Automated Cloud Data Testing</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Generate 500+ Data Quality Rules at Scale Using AI in the Datagaps DataOps Suite</title>
		<link>https://www.datagaps.com/blog/how-to-generate-500-data-quality-rules-at-scale-using-ai/</link>
		
		<dc:creator><![CDATA[Raj Mohan Achanta]]></dc:creator>
		<pubDate>Fri, 23 Oct 2026 06:50:30 +0000</pubDate>
				<category><![CDATA[Data Quality]]></category>
		<guid isPermaLink="false">https://www.datagaps.com/?p=63393</guid>

					<description><![CDATA[<p>Datagaps strengthens trust in Microsoft Fabric with AI-driven data quality rule generation </p>
<p>The post <a href="https://www.datagaps.com/blog/how-to-generate-500-data-quality-rules-at-scale-using-ai/">How to Generate 500+ Data Quality Rules at Scale Using AI in the Datagaps DataOps Suite</a> appeared first on <a href="https://www.datagaps.com">Datagaps | Gen AI-Powered Automated Cloud Data Testing</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="63393" class="elementor elementor-63393" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-a3771bc e-flex e-con-boxed e-con e-parent" data-id="a3771bc" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-1fd7e36 elementor-widget elementor-widget-text-editor" data-id="1fd7e36" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="none">Enterprise data environments rarely consist of a handful of tables. Production data models in organizations like financial services firms, healthcare systems, and technology enterprises typically span 50 to 100 tables, each with 10 to 15 columns. Testing data quality across all of these tables manually is unsustainable.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p><p><span data-contrast="none">According to Gartner, 60% of data management tasks will be automated by 2027. For data quality testing specifically, manual rule creation becomes a bottleneck the moment a data model exceeds 20 tables. Writing SQL validation queries by hand for every column across every table is a process that does not scale.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-27eeb44 datagaps-tldr elementor-widget elementor-widget-text-editor" data-id="27eeb44" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Key Takeaways</strong></p><ul><li><span data-contrast="none">The Datagaps DataOps Suite’s AI-powered Rules Wizard generates data quality test cases automatically by analyzing table structures, column types, and data patterns, eliminating the need for manual SQL authoring.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559685&quot;:720,&quot;335559738&quot;:80,&quot;335559739&quot;:80,&quot;335559740&quot;:320,&quot;335559991&quot;:360}"> </span></li><li><span data-contrast="none">Severity settings (Low, Medium, High) directly control how many rules the AI generates per column, with High severity producing multi-dimension rules covering validity, uniqueness, conformity, and range checks.</span></li><li><span data-contrast="none">Splitting large data models into groups of 5 tables per generation cycle and iterating across severity levels is the most reliable approach for scaling past 500 rules.</span></li><li><span data-contrast="none">The AI assigns data quality dimensions (Validity, Completeness, Unicity, Consistency, Timeliness, Accuracy, Conformity) automatically based on column name and data type, though human review remains essential for edge cases.</span></li><li><span data-contrast="none">With 20 tables averaging 5 to 10 columns each, teams can generate 200+ baseline rules with zero manual effort, then scale to 500+ by adjusting severity and adding business-specific prompts.</span></li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-909654c elementor-widget elementor-widget-heading" data-id="909654c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Why Does Scaling Data Quality Rules Matter for Enterprise Data Teams?</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-9e11135 elementor-widget elementor-widget-text-editor" data-id="9e11135" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="none">When a data model grows beyond 20 tables, each with 10 or more columns, manually authoring SQL validation rules for every column becomes a resource drain that slows release cycles and leaves gaps in test coverage. Teams need a way to generate rules programmatically, across all tables and dimensions, without writing code.</span> </p><p><span data-contrast="none">The Datagaps DataOps Suite, listed in both Gartner&#8217;s Market Guide for DataOps Tools (October 2025) and Market Guide for Data Observability Tools (February 2026), addresses this challenge with an AI-powered Rules Wizard that generates comprehensive data quality test cases directly from your data model&#8217;s metadata.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p><p><span data-contrast="none">This guide walks through the complete process of generating 500+ data quality rules using the Rules Wizard, including the specific settings, prompt strategies, and iteration approach that produce the best results at enterprise scale.</span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-ddcad15 e-flex e-con-boxed e-con e-parent" data-id="ddcad15" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-124f5e1 elementor-widget elementor-widget-heading" data-id="124f5e1" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">How Does the AI Rules Wizard Work in the Datagaps DataOps Suite? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f269997 elementor-widget elementor-widget-text-editor" data-id="f269997" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW230945174 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW230945174 BCX8">The Rules Wizard sits inside the </span><span class="NormalTextRun SpellingErrorV2Themed SCXW230945174 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW230945174 BCX8">DataOps</span><span class="NormalTextRun SCXW230945174 BCX8"> Suite’s Data Quality module. It uses generative AI to </span><span class="NormalTextRun SpellingErrorV2Themed SCXW230945174 BCX8">analyze</span><span class="NormalTextRun SCXW230945174 BCX8"> your selected tables and columns, then produces data quality rules complete with rule names, descriptions, SQL validation queries, and data quality dimension classifications.</span></span><span class="EOP Selected SCXW230945174 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-d15438e elementor-widget elementor-widget-text-editor" data-id="d15438e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="none">The generation process follows five steps:</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p><ol><li><b> </b><b><span data-contrast="none">Select tables and columns</span></b><span data-contrast="none"> from your connected data model.</span></li><li><b> </b><b><span data-contrast="none">Provide a prompt</span></b><span data-contrast="none"> describing what types of rules you want generated.</span></li><li><b> </b><b><span data-contrast="none">Choose a severity level</span></b><span data-contrast="none"> (Low, Medium, or High) to control rule depth.</span></li><li><b> </b><b><span data-contrast="none">Generate rules</span></b><span data-contrast="none"> and review the output.</span></li><li><b> </b><b><span data-contrast="none">Iterate</span></b><span data-contrast="none"> by adjusting prompts, severity, or table groupings and regenerating.</span></li></ol>								</div>
				</div>
				<div class="elementor-element elementor-element-bee4722 elementor-widget elementor-widget-text-editor" data-id="bee4722" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW236641673 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW236641673 BCX8">The AI does not require you to specify which data quality dimension applies to each column. It </span><span class="NormalTextRun SCXW236641673 BCX8">determines</span><span class="NormalTextRun SCXW236641673 BCX8"> the </span><span class="NormalTextRun SCXW236641673 BCX8">appropriate dimension</span><span class="NormalTextRun SCXW236641673 BCX8"> (Validity, Completeness, Unicity, Consistency, Timeliness, Accuracy, or Conformity) based on column name, data type, and context.</span></span><span class="EOP Selected SCXW236641673 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-3ebad7d elementor-widget elementor-widget-image" data-id="3ebad7d" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="444" src="https://www.datagaps.com/wp-content/uploads/The-Rules-Wizard-data-model-before-generating-rules.-.png" class="attachment-full size-full wp-image-63716" alt="The Rules Wizard lets you select any combination of tables and columns from your data model before generating rules." srcset="https://www.datagaps.com/wp-content/uploads/The-Rules-Wizard-data-model-before-generating-rules.-.png 1120w, https://www.datagaps.com/wp-content/uploads/The-Rules-Wizard-data-model-before-generating-rules.--300x119.png 300w, https://www.datagaps.com/wp-content/uploads/The-Rules-Wizard-data-model-before-generating-rules.--1024x406.png 1024w, https://www.datagaps.com/wp-content/uploads/The-Rules-Wizard-data-model-before-generating-rules.--768x304.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">The Rules Wizard lets you select any combination of tables and columns from your data model before generating rules. </figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-604e192 e-flex e-con-boxed e-con e-parent" data-id="604e192" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3445573 elementor-widget elementor-widget-heading" data-id="3445573" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What Happens When You Generate Rules with Default Settings? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f760d4f elementor-widget elementor-widget-text-editor" data-id="f760d4f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW246538993 BCX8">To </span><span class="NormalTextRun SCXW246538993 BCX8">establish</span><span class="NormalTextRun SCXW246538993 BCX8"> a baseline, consider a data model with 12 tables inside the </span><span class="NormalTextRun SpellingErrorV2Themed SCXW246538993 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW246538993 BCX8">DataOps</span><span class="NormalTextRun SCXW246538993 BCX8"> Suite. Starting with just 2 tables and 6 to 7 columns total, using the default severity setting (Medium) and a standard prompt, the AI generated approximately 5 rules across the two tables.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-748de4c elementor-widget elementor-widget-text-editor" data-id="748de4c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW96276572 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW96276572 BCX8">For simple columns like </span><span class="NormalTextRun SpellingErrorV2Themed SCXW96276572 BCX8">CategoryID</span><span class="NormalTextRun SCXW96276572 BCX8"> and </span><span class="NormalTextRun SpellingErrorV2Themed SCXW96276572 BCX8">CategoryName</span><span class="NormalTextRun SCXW96276572 BCX8">, the AI recognized that the most critical validation was a null check. Since these columns are straightforward identifiers and labels, a null validation under the Validity dimension was the </span><span class="NormalTextRun SCXW96276572 BCX8">appropriate test</span><span class="NormalTextRun SCXW96276572 BCX8">.</span></span><span class="EOP Selected SCXW96276572 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-c00ce5c elementor-widget elementor-widget-image" data-id="c00ce5c" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="513" src="https://www.datagaps.com/wp-content/uploads/AI-generates-approximately-one-rule-per-column.png" class="attachment-full size-full wp-image-63717" alt="At Medium severity, the AI generates approximately one rule per column, focusing on the most critical validation for each column’s data type." srcset="https://www.datagaps.com/wp-content/uploads/AI-generates-approximately-one-rule-per-column.png 1120w, https://www.datagaps.com/wp-content/uploads/AI-generates-approximately-one-rule-per-column-300x137.png 300w, https://www.datagaps.com/wp-content/uploads/AI-generates-approximately-one-rule-per-column-1024x469.png 1024w, https://www.datagaps.com/wp-content/uploads/AI-generates-approximately-one-rule-per-column-768x352.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">At Medium severity, the AI generates approximately one rule per column, focusing on the most critical validation for each column’s data type. </figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-269c004 elementor-widget elementor-widget-text-editor" data-id="269c004" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW208368160 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW208368160 BCX8">For columns like </span><span class="NormalTextRun SpellingErrorV2Themed SCXW208368160 BCX8">CustomerID</span><span class="NormalTextRun SCXW208368160 BCX8">, the AI went further. It generated not only a null check (Validity) but also a duplicate check (Unicity), recognizing that a primary key column should </span><span class="NormalTextRun SCXW208368160 BCX8">contain</span><span class="NormalTextRun SCXW208368160 BCX8"> unique values. This pattern detection happens automatically based on column naming conventions and data type analysis.</span></span><span class="EOP Selected SCXW208368160 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-862053b elementor-widget elementor-widget-image" data-id="862053b" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="492" src="https://www.datagaps.com/wp-content/uploads/The-Dashboard-provides-a-consolidated-view-of-all-generated-rules-across-tables-with-filtering-options-by-table-dimension-and-severity.-.png" class="attachment-full size-full wp-image-63718" alt="" srcset="https://www.datagaps.com/wp-content/uploads/The-Dashboard-provides-a-consolidated-view-of-all-generated-rules-across-tables-with-filtering-options-by-table-dimension-and-severity.-.png 1120w, https://www.datagaps.com/wp-content/uploads/The-Dashboard-provides-a-consolidated-view-of-all-generated-rules-across-tables-with-filtering-options-by-table-dimension-and-severity.--300x132.png 300w, https://www.datagaps.com/wp-content/uploads/The-Dashboard-provides-a-consolidated-view-of-all-generated-rules-across-tables-with-filtering-options-by-table-dimension-and-severity.--1024x450.png 1024w, https://www.datagaps.com/wp-content/uploads/The-Dashboard-provides-a-consolidated-view-of-all-generated-rules-across-tables-with-filtering-options-by-table-dimension-and-severity.--768x337.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">The Dashboard provides a consolidated view of all generated rules across tables, with filtering options by table, dimension, and severity. </figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-57b2963 elementor-widget elementor-widget-text-editor" data-id="57b2963" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW26782231 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW26782231 BCX8">Each generated rule includes a complete SQL query that can be executed against your data source. The rule editor allows you to </span><span class="NormalTextRun SCXW26782231 BCX8">modify</span><span class="NormalTextRun SCXW26782231 BCX8"> any generated rule, including the SQL query, rule name, description, and data quality dimension.</span></span><span class="EOP Selected SCXW26782231 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-1226d70 elementor-widget elementor-widget-image" data-id="1226d70" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="942" height="883" src="https://www.datagaps.com/wp-content/uploads/Every-generated-rule-is-fully-editable.-.png" class="attachment-full size-full wp-image-63719" alt="Every generated rule is fully editable." srcset="https://www.datagaps.com/wp-content/uploads/Every-generated-rule-is-fully-editable.-.png 942w, https://www.datagaps.com/wp-content/uploads/Every-generated-rule-is-fully-editable.--300x281.png 300w, https://www.datagaps.com/wp-content/uploads/Every-generated-rule-is-fully-editable.--768x720.png 768w" sizes="(max-width: 942px) 100vw, 942px" />											<figcaption class="widget-image-caption wp-caption-text">Every generated rule is fully editable. </figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-b5672e4 elementor-widget elementor-widget-heading" data-id="b5672e4" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">How Does Severity Level Affect the Number of Rules Generated? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-ba1a932 elementor-widget elementor-widget-text-editor" data-id="ba1a932" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW224037642 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW224037642 BCX8">Severity is the single most important setting for controlling rule volume. Changing the severity from Medium to High dramatically increases the number and variety of rules the AI generates per column.</span></span><span class="EOP Selected SCXW224037642 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-2a05d44 elementor-widget elementor-widget-text-editor" data-id="2a05d44" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW164569888 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW164569888 BCX8">At </span></span><strong><span class="TextRun SCXW164569888 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW164569888 BCX8">Medium severity</span></span></strong><span class="TextRun SCXW164569888 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW164569888 BCX8">, the AI generates one rule per column, typically a null or validity check. This is </span><span class="NormalTextRun SCXW164569888 BCX8">appropriate for</span><span class="NormalTextRun SCXW164569888 BCX8"> tables that do not require deep validation.</span></span><span class="EOP Selected SCXW164569888 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-0781a38 elementor-widget elementor-widget-text-editor" data-id="0781a38" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="none">At </span><b><span data-contrast="none">High severity</span></b><span data-contrast="none">, the AI generates multiple rules per column across several data quality dimensions. For a column like EmployeeID, High severity produced three distinct rules:</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p><ul><li><span data-contrast="none">A null check under Validity (identifying records where EmployeeID is null)</span></li><li><span data-contrast="none">A duplicate check under Unicity (identifying records where EmployeeID appears more than once)</span></li><li><span data-contrast="none">A positive range check under Validity (identifying records where EmployeeID is less than or equal to zero)</span></li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-c89f2ca elementor-widget elementor-widget-image" data-id="c89f2ca" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="480" src="https://www.datagaps.com/wp-content/uploads/High-severity-generates-multiple-rules-per-column-covering-validity-uniqueness-and-range-checks-automatically.-.png" class="attachment-full size-full wp-image-63720" alt="" srcset="https://www.datagaps.com/wp-content/uploads/High-severity-generates-multiple-rules-per-column-covering-validity-uniqueness-and-range-checks-automatically.-.png 1120w, https://www.datagaps.com/wp-content/uploads/High-severity-generates-multiple-rules-per-column-covering-validity-uniqueness-and-range-checks-automatically.--300x129.png 300w, https://www.datagaps.com/wp-content/uploads/High-severity-generates-multiple-rules-per-column-covering-validity-uniqueness-and-range-checks-automatically.--1024x439.png 1024w, https://www.datagaps.com/wp-content/uploads/High-severity-generates-multiple-rules-per-column-covering-validity-uniqueness-and-range-checks-automatically.--768x329.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">High severity generates multiple rules per column, covering validity, uniqueness, and range checks automatically. </figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-2e90b9f elementor-widget elementor-widget-text-editor" data-id="2e90b9f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW267000538 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW267000538 BCX8">The AI also </span><span class="NormalTextRun SCXW267000538 BCX8">demonstrates</span><span class="NormalTextRun SCXW267000538 BCX8"> contextual intelligence at High severity. For a FirstName column, it generated rules checking for duplicates (Unicity) and blank values after trimming (Conformity). The conformity check specifically </span><span class="NormalTextRun SCXW267000538 BCX8">validates</span><span class="NormalTextRun SCXW267000538 BCX8"> that names do not </span><span class="NormalTextRun SCXW267000538 BCX8">contain</span><span class="NormalTextRun SCXW267000538 BCX8"> only whitespace characters, a check the AI inferred entirely from the column name and data type.</span></span><span class="EOP Selected SCXW267000538 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-87946ef elementor-widget elementor-widget-image" data-id="87946ef" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="530" src="https://www.datagaps.com/wp-content/uploads/The-AI-infers-domain-specific-checks-from-column-names.-.png" class="attachment-full size-full wp-image-63721" alt="The AI infers domain-specific checks from column names." srcset="https://www.datagaps.com/wp-content/uploads/The-AI-infers-domain-specific-checks-from-column-names.-.png 1120w, https://www.datagaps.com/wp-content/uploads/The-AI-infers-domain-specific-checks-from-column-names.--300x142.png 300w, https://www.datagaps.com/wp-content/uploads/The-AI-infers-domain-specific-checks-from-column-names.--1024x485.png 1024w, https://www.datagaps.com/wp-content/uploads/The-AI-infers-domain-specific-checks-from-column-names.--768x363.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">The AI infers domain-specific checks from column names. </figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-530b838 elementor-widget elementor-widget-heading" data-id="530b838" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Where Can AI Misinterpret Column Context, and How Do You Fix It? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-98cc803 elementor-widget elementor-widget-text-editor" data-id="98cc803" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW57880038 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW57880038 BCX8">AI-generated rules require human oversight. The generative model interprets column purpose based on naming conventions and data types, but edge cases exist where this interpretation is incorrect.</span></span><span class="EOP Selected SCXW57880038 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-766b857 elementor-widget elementor-widget-text-editor" data-id="766b857" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW31391656 BCX8">A practical example: a column named </span><span class="NormalTextRun SpellingErrorV2Themed SCXW31391656 BCX8">ReportsTo</span><span class="NormalTextRun SCXW31391656 BCX8"> in an Employees table. The AI interpreted this column as numeric and generated a positive range check, assuming it </span><span class="NormalTextRun SCXW31391656 BCX8">contained</span><span class="NormalTextRun SCXW31391656 BCX8"> numeric IDs. In practice, this column stored the name of the manager each employee reports to, making it a text field. The range check was not applicable.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-ac9120c elementor-widget elementor-widget-image" data-id="ac9120c" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="525" src="https://www.datagaps.com/wp-content/uploads/The-AI-misinterpreted-the-ReportsTo-column-as-numeric.-Human-review-catches-these-edge-cases-before-rules-are-deployed.-.png" class="attachment-full size-full wp-image-63722" alt="The AI misinterpreted the ReportsTo column as numeric. Human review catches these edge cases before rules are deployed." srcset="https://www.datagaps.com/wp-content/uploads/The-AI-misinterpreted-the-ReportsTo-column-as-numeric.-Human-review-catches-these-edge-cases-before-rules-are-deployed.-.png 1120w, https://www.datagaps.com/wp-content/uploads/The-AI-misinterpreted-the-ReportsTo-column-as-numeric.-Human-review-catches-these-edge-cases-before-rules-are-deployed.--300x141.png 300w, https://www.datagaps.com/wp-content/uploads/The-AI-misinterpreted-the-ReportsTo-column-as-numeric.-Human-review-catches-these-edge-cases-before-rules-are-deployed.--1024x480.png 1024w, https://www.datagaps.com/wp-content/uploads/The-AI-misinterpreted-the-ReportsTo-column-as-numeric.-Human-review-catches-these-edge-cases-before-rules-are-deployed.--768x360.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">The AI misinterpreted the ReportsTo column as numeric. Human review catches these edge cases before rules are deployed. </figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-091dee4 elementor-widget elementor-widget-text-editor" data-id="091dee4" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW232000799 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW232000799 BCX8">These edge cases are manageable. You can edit any rule directly in the Rules Wizard, change the data quality dimension, update the SQL query, or </span><span class="NormalTextRun SCXW232000799 BCX8">delete</span><span class="NormalTextRun SCXW232000799 BCX8"> the rule entirely. The </span><span class="NormalTextRun SpellingErrorV2Themed SCXW232000799 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW232000799 BCX8">DataOps</span><span class="NormalTextRun SCXW232000799 BCX8"> Suite also supports AI-generated column descriptions. If column descriptions are </span><span class="NormalTextRun SCXW232000799 BCX8">accurate</span><span class="NormalTextRun SCXW232000799 BCX8"> and up to date, the rule generation becomes significantly more precise because the AI has </span><span class="NormalTextRun SCXW232000799 BCX8">additional</span><span class="NormalTextRun SCXW232000799 BCX8"> context about what each column </span><span class="NormalTextRun SCXW232000799 BCX8">contains</span><span class="NormalTextRun SCXW232000799 BCX8">.</span></span><span class="EOP Selected SCXW232000799 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-4515c10 elementor-widget elementor-widget-text-editor" data-id="4515c10" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW201660973 BCX8">The recommendation is to generate and review column descriptions using the </span><span class="NormalTextRun SpellingErrorV2Themed SCXW201660973 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW201660973 BCX8">DataOps</span><span class="NormalTextRun SCXW201660973 BCX8"> Suite’s AI description generation before running rule generation. Accurate descriptions reduce misinterpretation and improve the relevance of generated rules.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-db332aa elementor-widget elementor-widget-heading" data-id="db332aa" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What Is the Best Strategy for Generating 500+ Rules Across a Large Data Model? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-37b736a elementor-widget elementor-widget-text-editor" data-id="37b736a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW267052531 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW267052531 BCX8">Generating hundreds of rules across a data model with 20 or more tables requires a structured iteration approach. Token limits in AI models constrain how many rules can be generated in a single pass, so batching is essential.</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-ae3d2df elementor-widget elementor-widget-text-editor" data-id="ae3d2df" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="none">The recommended approach:</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-aba61c1 elementor-widget elementor-widget-text-editor" data-id="aba61c1" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><b><span data-contrast="none">Group your tables in batches of 5. </span></b><span data-contrast="none">For a 20-table data model, this means 4 generation cycles. Smaller batches give the AI more token budget per table, which produces more comprehensive rules per column.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:60,&quot;335559740&quot;:320}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-7ae8c37 elementor-widget elementor-widget-text-editor" data-id="7ae8c37" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong><span class="TextRun SCXW69277111 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW69277111 BCX8">Assign severity based on table criticality. </span></span></strong><span class="TextRun SCXW69277111 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW69277111 BCX8">Not every table needs High severity. Tables </span><span class="NormalTextRun SCXW69277111 BCX8">containing</span><span class="NormalTextRun SCXW69277111 BCX8"> core business entities (customers, orders, financial transactions) benefit from High severity to generate multi-dimension rules. Reference or lookup tables can use the default </span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW69277111 BCX8">Medium</span><span class="NormalTextRun SCXW69277111 BCX8"> severity.</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-717190f elementor-widget elementor-widget-text-editor" data-id="717190f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong><span class="TextRun SCXW102053567 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW102053567 BCX8">Use domain-specific prompts for critical tables. </span></span></strong><span class="TextRun SCXW102053567 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW102053567 BCX8">The standard prompt generates generic rules across all data quality dimensions. For tables with specific business requirements, add context to the prompt. For example, specifying that an order amount column should only </span><span class="NormalTextRun SCXW102053567 BCX8">contain</span><span class="NormalTextRun SCXW102053567 BCX8"> values within a defined range, or that a date column should never </span><span class="NormalTextRun SCXW102053567 BCX8">contain</span><span class="NormalTextRun SCXW102053567 BCX8"> future dates.</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-93b5690 elementor-widget elementor-widget-text-editor" data-id="93b5690" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong><span class="TextRun SCXW241103478 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW241103478 BCX8">Update RAG after each generation cycle. </span></span></strong><span class="TextRun SCXW241103478 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW241103478 BCX8">Every time you generate new rules, the Retrieval-Augmented Generation index within the </span><span class="NormalTextRun SpellingErrorV2Themed SCXW241103478 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW241103478 BCX8">DataOps</span><span class="NormalTextRun SCXW241103478 BCX8"> Suite needs to be refreshed. It is more efficient to generate all rules first, then update RAG once, rather than updating after every batch.</span></span><span class="EOP Selected SCXW241103478 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:60,&quot;335559740&quot;:320}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-de9c0e6 elementor-widget elementor-widget-image" data-id="de9c0e6" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="485" src="https://www.datagaps.com/wp-content/uploads/Update-RAG-after-completing-all-rule-generation-cycles-rather-than-after-each-batch-to-minimize-processing-time.-.png" class="attachment-full size-full wp-image-63723" alt="" srcset="https://www.datagaps.com/wp-content/uploads/Update-RAG-after-completing-all-rule-generation-cycles-rather-than-after-each-batch-to-minimize-processing-time.-.png 1120w, https://www.datagaps.com/wp-content/uploads/Update-RAG-after-completing-all-rule-generation-cycles-rather-than-after-each-batch-to-minimize-processing-time.--300x130.png 300w, https://www.datagaps.com/wp-content/uploads/Update-RAG-after-completing-all-rule-generation-cycles-rather-than-after-each-batch-to-minimize-processing-time.--1024x443.png 1024w, https://www.datagaps.com/wp-content/uploads/Update-RAG-after-completing-all-rule-generation-cycles-rather-than-after-each-batch-to-minimize-processing-time.--768x333.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text"> Update RAG after completing all rule generation cycles rather than after each batch to minimize processing time. </figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-e50c0ec elementor-widget elementor-widget-text-editor" data-id="e50c0ec" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong><span class="TextRun SCXW214013042 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW214013042 BCX8">A practical calculation: </span></span></strong><span class="TextRun SCXW214013042 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW214013042 BCX8">With 20 tables averaging 5 to 10 columns each, </span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW214013042 BCX8">Medium</span><span class="NormalTextRun SCXW214013042 BCX8"> severity generates approximately 1 rule per column (100 to 200 rules total). Switching critical tables to High severity produces 3 to 4 rules per column for those tables. Adding business-specific prompts can push generation to 5+ rules per column for targeted tables. Reaching 500+ rules across a 20-table model is achievable in 4 to 5 generation cycles, typically under 2 hours of total effort. Each generation cycle itself takes 30 to 60 seconds. The primary time investment is reviewing output and refining prompts between iterations.</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-53aa0a6 elementor-widget elementor-widget-text-editor" data-id="53aa0a6" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW140774059 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW140774059 BCX8">This approach is data-source agnostic. The Rules Wizard works with any data source connected to the </span><span class="NormalTextRun SpellingErrorV2Themed SCXW140774059 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW140774059 BCX8">DataOps</span><span class="NormalTextRun SCXW140774059 BCX8"> Suite, including Microsoft Fabric, Snowflake, Databricks, Azure Synapse, Oracle, Amazon Redshift, and 200+ additional systems, because rule generation operates on the data model metadata rather than the underlying platform.</span></span><span class="EOP Selected SCXW140774059 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-7eaf9fe elementor-widget elementor-widget-image" data-id="7eaf9fe" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1100" height="301" src="https://www.datagaps.com/wp-content/uploads/The-five-step-iteration-cycle-for-scaling-data-quality-rule-generation-to-500-rules-across-enterprise-data-models.-.png" class="attachment-full size-full wp-image-63724" alt="" srcset="https://www.datagaps.com/wp-content/uploads/The-five-step-iteration-cycle-for-scaling-data-quality-rule-generation-to-500-rules-across-enterprise-data-models.-.png 1100w, https://www.datagaps.com/wp-content/uploads/The-five-step-iteration-cycle-for-scaling-data-quality-rule-generation-to-500-rules-across-enterprise-data-models.--300x82.png 300w, https://www.datagaps.com/wp-content/uploads/The-five-step-iteration-cycle-for-scaling-data-quality-rule-generation-to-500-rules-across-enterprise-data-models.--1024x280.png 1024w, https://www.datagaps.com/wp-content/uploads/The-five-step-iteration-cycle-for-scaling-data-quality-rule-generation-to-500-rules-across-enterprise-data-models.--768x210.png 768w" sizes="(max-width: 1100px) 100vw, 1100px" />											<figcaption class="widget-image-caption wp-caption-text">The five-step iteration cycle for scaling data quality rule generation to 500+ rules across enterprise data models. </figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-ad06699 elementor-widget elementor-widget-heading" data-id="ad06699" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What Should You Know About Prompts for AI Rule Generation? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-19d37b4 elementor-widget elementor-widget-text-editor" data-id="19d37b4" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW69312220 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW69312220 BCX8">The prompt you provide to the Rules Wizard directly shapes the types of rules generated. There are two categories of prompts to prepare:</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-d1925d8 elementor-widget elementor-widget-text-editor" data-id="d1925d8" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW164522880 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW164522880 BCX8">Generic prompts </span></span><span class="TextRun SCXW164522880 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW164522880 BCX8">work across all tables and columns. These instruct the AI to generate comprehensive data quality checks covering null validation, duplicate detection, range checks, format validation, and referential integrity. Keep a standard generic prompt ready for baseline generation across all tables.</span></span><span class="EOP Selected SCXW164522880 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:60,&quot;335559740&quot;:320}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-96559b1 elementor-widget elementor-widget-text-editor" data-id="96559b1" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW55513533 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW55513533 BCX8">Domain-specific prompts </span></span><span class="TextRun SCXW55513533 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW55513533 BCX8">target particular business requirements. These are more effective for critical tables where you need the AI to generate rules that reflect specific data constraints. For example, instructing the AI to check whether a column </span><span class="NormalTextRun SCXW55513533 BCX8">contains</span><span class="NormalTextRun SCXW55513533 BCX8"> values from an approved list, whether dates fall within a business-relevant range, or whether numeric values meet threshold requirements.</span></span><span class="EOP Selected SCXW55513533 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:60,&quot;335559740&quot;:320}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-0772a0b elementor-widget elementor-widget-text-editor" data-id="0772a0b" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="none">A few practical notes on prompt formatting:</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p><ul><li><span data-contrast="none">Write prompts in plain English. The system prompt within the Datagaps DataOps Suite already contains the processing instructions for rule generation. Your prompt only needs to specify what you want tested.</span></li><li><span data-contrast="none">Avoid special characters. The AI prompt parser may not process certain symbols correctly. If you encounter a “No Rules Generated” error, remove any special characters from your prompt and retry.</span></li><li><span data-contrast="none">Combine the generic prompt with a domain-specific prompt for the best results on critical tables.</span></li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-f9452ec elementor-widget elementor-widget-image" data-id="f9452ec" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="466" src="https://www.datagaps.com/wp-content/uploads/The-prompt-field-accepts-plain-English-instructions.-Combine-generic-and-domain-specific-prompts-for-maximum-rule-coverage.-.png" class="attachment-full size-full wp-image-63725" alt="The prompt field accepts plain English instructions. Combine generic and domain-specific prompts for maximum rule coverage." srcset="https://www.datagaps.com/wp-content/uploads/The-prompt-field-accepts-plain-English-instructions.-Combine-generic-and-domain-specific-prompts-for-maximum-rule-coverage.-.png 1120w, https://www.datagaps.com/wp-content/uploads/The-prompt-field-accepts-plain-English-instructions.-Combine-generic-and-domain-specific-prompts-for-maximum-rule-coverage.--300x125.png 300w, https://www.datagaps.com/wp-content/uploads/The-prompt-field-accepts-plain-English-instructions.-Combine-generic-and-domain-specific-prompts-for-maximum-rule-coverage.--1024x426.png 1024w, https://www.datagaps.com/wp-content/uploads/The-prompt-field-accepts-plain-English-instructions.-Combine-generic-and-domain-specific-prompts-for-maximum-rule-coverage.--768x320.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">The prompt field accepts plain English instructions. Combine generic and domain-specific prompts for maximum rule coverage. </figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-a367d05 elementor-widget elementor-widget-heading" data-id="a367d05" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Conclusion </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-e542658 elementor-widget elementor-widget-text-editor" data-id="e542658" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW265570792 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW265570792 BCX8">Scaling data quality testing from a handful of manual checks to 500+ automated rules is no longer a multi-sprint engineering project. With the </span><span class="NormalTextRun SpellingErrorV2Themed SCXW265570792 BCX8">Datagaps</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW265570792 BCX8">DataOps</span><span class="NormalTextRun SCXW265570792 BCX8"> Suite’s AI-powered Rules Wizard, enterprise data teams can generate comprehensive, multi-dimension data quality rules across their entire data model using prompts and configuration settings alone.</span></span><span class="EOP Selected SCXW265570792 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p><p><span data-contrast="none">The approach is straightforward: batch your tables, adjust severity based on criticality, layer generic and domain-specific prompts, and iterate. The AI handles rule naming, SQL generation, and dimension classification. Your team focuses on reviewing, refining, and deploying.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p><p><span data-contrast="none">For organizations managing data quality across Snowflake, Microsoft Fabric, Databricks, or any of 200+ supported platforms, this capability transforms data quality testing from a reactive, manual process into a proactive, scalable practice. Every generated rule feeds directly into the Data Quality Score on the Datagaps DataOps Suite dashboard, giving you a continuously updated, granular view of your data health across every table and dimension. The more rules you generate, the more precise that picture becomes.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:120,&quot;335559739&quot;:120,&quot;335559740&quot;:320}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-bf2f76e elementor-widget elementor-widget-text-editor" data-id="bf2f76e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="color: #1967d2;"><a style="color: #1967d2;" href="https://www.datagaps.com/request-a-demo/" target="_blank" rel="noopener"><span style="text-decoration: underline;"><span class="TextRun SCXW55301721 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW55301721 BCX8">See how </span><span class="NormalTextRun SpellingErrorV2Themed SCXW55301721 BCX8">Datagaps</span><span class="NormalTextRun SCXW55301721 BCX8"> generates data quality rules at scale for your data model→</span></span></span></a></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-32908ef elementor-widget elementor-widget-heading" data-id="32908ef" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Frequently Asked Questions </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-923e752 elementor-widget elementor-widget-eael-adv-accordion" data-id="923e752" data-element_type="widget" data-e-type="widget" data-widget_type="eael-adv-accordion.default">
				<div class="elementor-widget-container">
					            <div class="eael-adv-accordion" id="eael-adv-accordion-923e752" data-scroll-on-click="no" data-scroll-speed="300" data-accordion-id="923e752" data-accordion-type="accordion" data-toogle-speed="300">
            <div class="eael-accordion-list">
					<div id="faq-1" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="1" aria-controls="elementor-tab-content-1531"><h3 class="eael-accordion-tab-title">How does the Datagaps DataOps Suite generate data quality rules automatically?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1531" class="eael-accordion-content clearfix" data-tab="1" aria-labelledby="faq-1"><p>The AI-powered Rules Wizard analyzes the metadata of the tables and columns you select, including column names, data types and context. For each rule it produces a name, description, executable SQL validation query and a data quality dimension (Validity, Completeness, Unicity, Consistency, Timeliness, Accuracy or Conformity). You pick the tables, write a prompt, choose a severity level, then generate and review. No manual SQL is needed.</p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-2" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="2" aria-controls="elementor-tab-content-1532"><h3 class="eael-accordion-tab-title">How does the severity level affect the number of rules generated?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1532" class="eael-accordion-content clearfix" data-tab="2" aria-labelledby="faq-2"><p>Severity is the main control over rule volume. Medium (the default) generates about one rule per column, usually a null or validity check. High generates several rules per column across multiple dimensions. For example, an ID column gets a null check, a duplicate check and a positive-range check. Use High for critical tables such as customers, orders or financial transactions. Use Medium for reference or lookup tables.</p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-3" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="3" aria-controls="elementor-tab-content-1533"><h3 class="eael-accordion-tab-title">Can the AI get a column wrong, and how do I fix it?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1533" class="eael-accordion-content clearfix" data-tab="3" aria-labelledby="faq-3"><p>Yes, human review is still needed. In the blog’s example, the AI treated a <code>ReportsTo</code> column as numeric and generated a positive-range check, but the column actually stored manager names. You can edit any generated rule’s SQL, name, description or dimension, or delete it. You can also generate AI column descriptions before running rule generation, which gives the AI more context and reduces misinterpretation.</p><p> </p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-4" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="4" aria-controls="elementor-tab-content-1534"><h3 class="eael-accordion-tab-title">Which data sources does the Rules Wizard support, and what should I know about prompts?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1534" class="eael-accordion-content clearfix" data-tab="4" aria-labelledby="faq-4"><p>It works with any source connected to the Datagaps DataOps Suite, including Microsoft Fabric, Snowflake, Databricks, Azure Synapse, Oracle, Amazon Redshift and 200+ others, because it works from metadata rather than the underlying platform. Write prompts in plain English and avoid special characters. If you see a “No Rules Generated” error, remove special characters and retry.</p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-5" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="5" aria-controls="elementor-tab-content-1535"><h3 class="eael-accordion-tab-title">What is the best way to reach 500+ rules across a large data model?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1535" class="eael-accordion-content clearfix" data-tab="5" aria-labelledby="faq-5"><ul><li>Split the model into batches of about 5 tables per generation cycle. For 20 tables, that is 4 cycles.</li><li>Set severity by table criticality.</li><li>Combine a generic prompt with domain-specific prompts for critical tables.</li><li>Refresh the RAG index once after all generation cycles, not after each batch.</li></ul><p>Each cycle takes 30–60 seconds, and the whole process typically takes under 2 hours, most of it spent reviewing output.</p></div>
					</div></div>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-62980c3 e-flex e-con-boxed e-con e-parent" data-id="62980c3" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-1ac3fec e-con-full e-flex e-con e-child" data-id="1ac3fec" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-f5d35f8 e-con-full e-flex e-con e-child" data-id="f5d35f8" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-184c126 elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading" data-id="184c126" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<span class="elementor-heading-title elementor-size-default">Get Started Today</span>				</div>
				</div>
				<div class="elementor-element elementor-element-4a9257d elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading" data-id="4a9257d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Talk to a datagaps expert</h2>				</div>
				</div>
		<div class="elementor-element elementor-element-e2d718a e-con-full e-flex e-con e-child" data-id="e2d718a" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-0b52229 elementor-widget__width-auto home-btn-new elementor-widget elementor-widget-button" data-id="0b52229" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.datagaps.com/request-a-demo/" target="_blank">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Get a Demo</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-7b1b3d1 elementor-widget__width-auto home-btn-new elementor-widget elementor-widget-button" data-id="7b1b3d1" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.datagaps.com/contact-us/" target="_blank">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Contact Us</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-5da6591 e-flex e-con-boxed e-con e-parent" data-id="5da6591" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a6d9f5b elementor-widget elementor-widget-html" data-id="a6d9f5b" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://www.datagaps.com/#organization",
      "name": "Datagaps",
      "url": "https://www.datagaps.com/",
      "logo": {
        "@type": "ImageObject",
        "@id": "https://www.datagaps.com/#logo",
        "url": "https://www.datagaps.com/wp-content/uploads/datagaps-logo-2.svg",
        "contentUrl": "https://www.datagaps.com/wp-content/uploads/datagaps-logo-2.svg"
      },
      "sameAs": [
        "https://www.linkedin.com/company/datagaps/",
        "https://twitter.com/datagapsteam",
        "https://www.youtube.com/user/datagaps",
        "https://www.instagram.com/datagapsinc/",
        "https://www.facebook.com/datagapsinc"
      ]
    },
    {
      "@type": "Person",
      "@id": "https://www.datagaps.com/#/person/rajmohan-achanta",
      "name": "RajMohan Achanta",
      "jobTitle": "Associate Product Manager",
      "description": "Associate Product Manager at Datagaps. Shapes the product experience across ETL Validator, BI Validator, and Data Quality Monitor.",
      "worksFor": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "url": "https://www.datagaps.com/blog/author/rajmohan/",
      "sameAs": [
        "https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/"
      ],
      "alternateName": "Raj Mohan Achanta",
      "image": "https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png"
    },
    {
      "@type": "Person",
      "@id": "https://www.datagaps.com/#/person/avinash-keshri",
      "name": "Avinash Keshri",
      "jobTitle": "Head, Product Marketing",
      "description": "Head of Product Marketing at Datagaps and IIM Bangalore alumnus. 13+ years of experience in commercializing AI and data platforms across global markets.",
      "worksFor": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "alumniOf": {
        "@type": "CollegeOrUniversity",
        "name": "Indian Institute of Management Bangalore"
      },
      "url": "https://www.linkedin.com/in/avinashkeshri-iimb/",
      "sameAs": [
        "https://www.linkedin.com/in/avinashkeshri-iimb/"
      ],
      "image": "https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png"
    },
    {
      "@type": "BlogPosting",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#blogposting",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/"
      },
      "url": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/",
      "headline": "How to Generate Data Quality Rules for Microsoft Fabric with AI",
      "alternativeHeadline": "Datagaps strengthens trust in Microsoft Fabric with AI-driven data quality rule generation",
      "description": "Learn how to generate and validate data quality rules for Microsoft Fabric in Datagaps using AI-assisted rule generation: connect Fabric, build a data model, scope prompts, review SQL rules, run validations and interpret DQ scores.",
      "inLanguage": "en",
      "datePublished": "2026-10-21T09:09:26+00:00",
      "dateModified": "2026-10-21T11:52:41+00:00",
      "author": [
        {
          "@id": "https://www.datagaps.com/#/person/rajmohan-achanta"
        },
        {
          "@id": "https://www.datagaps.com/#/person/avinash-keshri"
        }
      ],
      "publisher": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "image": {
        "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#featured-image"
      },
      "articleSection": "Data Quality",
      "keywords": "Microsoft Fabric, Data Quality, Data Validation, DataOps, AI Rule Generation",
      "about": [
        {
          "@type": "Thing",
          "name": "Microsoft Fabric"
        },
        {
          "@type": "Thing",
          "name": "Data quality"
        }
      ],
      "associatedMedia": [
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-01-connect-fabric"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-02-data-quality-section"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-03-data-model"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-04-baseline-dq-score"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-05-data-rules-wizard"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-06-generative-ai-rule"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-07-success-criteria-severity"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-08-select-columns"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-09-prompts"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-10-generating-rules"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-11-review-rules"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-12-rules-in-data-model"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-13-run-configuration"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-14-score-by-column"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-15-passing-rule-report"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-16-failing-rule-report"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-17-run-summary"
        }
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#featured-image",
      "url": "https://www.datagaps.com/wp-content/uploads/Data-Quality-rules-for-MF-data-banner-1024x536.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Data-Quality-rules-for-MF-data-banner-1024x536.webp",
      "width": 1024,
      "height": 536,
      "caption": "How to Generate Data Quality Rules for Microsoft Fabric with AI",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-01-connect-fabric",
      "url": "https://www.datagaps.com/wp-content/uploads/Modern-Data-Sources-Connector-Dashboard.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Modern-Data-Sources-Connector-Dashboard.png",
      "name": "Modern Data Sources Connector Dashboard",
      "caption": "Connect Microsoft Fabric as a data source using available connectors",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/png"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-02-data-quality-section",
      "url": "https://www.datagaps.com/wp-content/uploads/Data-quality-sections-for-DQ-Score.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Data-quality-sections-for-DQ-Score.webp",
      "name": "Data quality sections for DQ Score",
      "caption": "The Data Quality section provides access to DQ Score, Data Lineage, and other quality workflows.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-03-data-model",
      "url": "https://www.datagaps.com/wp-content/uploads/Data-Model-to-organise-tables-for-rules-s3.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Data-Model-to-organise-tables-for-rules-s3.webp",
      "name": "Data Model to organise tables for rules",
      "caption": "Create a data model to organize tables for rule creation and scoring.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-04-baseline-dq-score",
      "url": "https://www.datagaps.com/wp-content/uploads/Generate-and-review-DQ-Score.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Generate-and-review-DQ-Score.webp",
      "name": "Generate and review DQ Score",
      "caption": "Generate and review DQ Score",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-05-data-rules-wizard",
      "url": "https://www.datagaps.com/wp-content/uploads/Data-rules-wizard.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Data-rules-wizard.webp",
      "name": "Data rules wizard",
      "caption": "Data rules wizard",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-06-generative-ai-rule",
      "url": "https://www.datagaps.com/wp-content/uploads/S61-AI-Rules-generation-1.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S61-AI-Rules-generation-1.webp",
      "name": "Select Generative AI Rule to generate rules using a prompt-driven workflow",
      "caption": "Select Generative AI Rule to generate rules using a prompt-driven workflow.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-07-success-criteria-severity",
      "url": "https://www.datagaps.com/wp-content/uploads/S62-defining-success-criteria-and-severity.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S62-defining-success-criteria-and-severity.webp",
      "name": "Define success criteria and severity to standardize rule outcomes",
      "caption": "Define success criteria and severity to standardize rule outcomes.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-08-select-columns",
      "url": "https://www.datagaps.com/wp-content/uploads/S71-Select-the-table-and-columns-to-scope-AI-rule-generation.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S71-Select-the-table-and-columns-to-scope-AI-rule-generation.webp",
      "name": "Select the table and columns to scope AI rule generation",
      "caption": "Select the table and columns to scope AI rule generation",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-09-prompts",
      "url": "https://www.datagaps.com/wp-content/uploads/S72-Provide-prompts-combining-generic-checks-and-domain-logic.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S72-Provide-prompts-combining-generic-checks-and-domain-logic.webp",
      "name": "Provide prompts combining generic checks and domain logic",
      "caption": "Provide prompts combining generic checks and domain logic",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-10-generating-rules",
      "url": "https://www.datagaps.com/wp-content/uploads/S73-Rules-generated-automatically-based-on-selected-scope-and-prompts.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S73-Rules-generated-automatically-based-on-selected-scope-and-prompts.webp",
      "name": "Rules generated automatically based on selected scope and prompts",
      "caption": "Rules generated automatically based on selected scope and prompts",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-11-review-rules",
      "url": "https://www.datagaps.com/wp-content/uploads/S81-Review-generated-rules-including-SQL-logic-and-dimension-mapping-before-execution.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S81-Review-generated-rules-including-SQL-logic-and-dimension-mapping-before-execution.webp",
      "name": "Review generated rules, including SQL logic and dimension mapping, before execution",
      "caption": "Review generated rules, including SQL logic and dimension mapping, before execution",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-12-rules-in-data-model",
      "url": "https://www.datagaps.com/wp-content/uploads/S82-Rules-are-centrally-managed-within-the-data-model-for-review-and-execution.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S82-Rules-are-centrally-managed-within-the-data-model-for-review-and-execution.webp",
      "name": "Rules are centrally managed within the data model for review and execution",
      "caption": "Rules are centrally managed within the data model for review and execution",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-13-run-configuration",
      "url": "https://www.datagaps.com/wp-content/uploads/Configure-execution-settings.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Configure-execution-settings.webp",
      "name": "Configure execution settings",
      "caption": "Configure execution settings and where bad records should be stored.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-14-score-by-column",
      "url": "https://www.datagaps.com/wp-content/uploads/S101-Evaluate-quality-at-the-column-level-based-on-executed-rules.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S101-Evaluate-quality-at-the-column-level-based-on-executed-rules.webp",
      "name": "Evaluate quality at the column level based on executed rules",
      "caption": "Evaluate quality at the column level based on executed rules.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-15-passing-rule-report",
      "url": "https://www.datagaps.com/wp-content/uploads/S102-Rule-reports-provide-pass-status-counts-and-execution-details.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S102-Rule-reports-provide-pass-status-counts-and-execution-details.webp",
      "name": "Rule reports provide pass status, counts, and execution details",
      "caption": "Rule reports provide pass status, counts, and execution details.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-16-failing-rule-report",
      "url": "https://www.datagaps.com/wp-content/uploads/S103-Failures-highlight-bad-records-and-provide-samples-to-accelerate-remediation.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S103-Failures-highlight-bad-records-and-provide-samples-to-accelerate-remediation.webp",
      "name": "Failures highlight bad records and provide samples to accelerate remediation",
      "caption": "Failures highlight bad records and provide samples to accelerate remediation.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-17-run-summary",
      "url": "https://www.datagaps.com/wp-content/uploads/S104-Run-summary-consolidated-results-across-rules-columns-and-dimensions.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S104-Run-summary-consolidated-results-across-rules-columns-and-dimensions.webp",
      "name": "Run summary consolidated results across rules, columns, and dimensions",
      "caption": "Run summary consolidated results across rules, columns, and dimensions.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "FAQPage",
      "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#faq",
      "isPartOf": {
        "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/"
      },
      "mainEntity": [
        {
          "@type": "Question",
          "name": "How does Datagaps generate data quality rules for Microsoft Fabric tables?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Datagaps generates rules through the AI-assisted mode of its Data Rules Wizard. You select the Fabric table and columns, define success criteria and severity, and provide a generic prompt plus a domain prompt. Datagaps then returns rule suggestions with rule names, descriptions, mapped quality dimensions and SQL logic that identifies bad records."
          }
        },
        {
          "@type": "Question",
          "name": "What data quality checks are typical for a Microsoft Fabric gold layer?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Common checks include numeric constraints such as revenue greater than zero, format checks such as valid email patterns, null checks for required attributes, uniqueness checks to prevent duplicate keys, and cross-table consistency checks that reconcile datasets. A gold layer often holds dozens of tables with dozens of columns each, which is why manual implementation becomes hard to manage."
          }
        },
        {
          "@type": "Question",
          "name": "Should AI-generated data quality rules be reviewed before they run?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. AI-generated rules should be reviewed before execution to confirm they align with internal standards and domain expectations. Review covers the rule name, description, mapped dimension and SQL logic. For production adoption, add a formal review workflow, especially for cross-table logic, and keep domain prompts in a shared repository per business domain."
          }
        },
        {
          "@type": "Question",
          "name": "What can you configure before running data quality validations on Fabric data?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Before execution, you configure how the run behaves: where bad records should be stored, parallel execution settings, and sampling limits for the bad data that is captured. These settings are applied to the rules managed centrally within the data model, so validations run consistently each time they are triggered."
          }
        },
        {
          "@type": "Question",
          "name": "How do you interpret Datagaps data quality results for Microsoft Fabric?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Results are reviewed at several levels: a column-wise DQ score based on executed rules, rule-level pass or fail outcomes, sample bad records for investigation, and a summary across rules, columns and dimensions. Start with the high-level scoring view, then examine a passing and a failing rule, and finish with the overall run summary."
          }
        }
      ]
    }
  ]
}
</script>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f8574ba e-flex e-con-boxed e-con e-parent" data-id="f8574ba" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-6b8079b e-con-full e-flex e-con e-child" data-id="6b8079b" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-86810af e-con-full e-flex e-con e-child" data-id="86810af" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-f437041 e-con-full e-flex e-con e-child" data-id="f437041" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-eaeece0 elementor-widget-laptop__width-initial elementor-widget elementor-widget-image" data-id="eaeece0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="150" height="150" src="https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png" class="attachment-thumbnail size-thumbnail wp-image-53799" alt="Raj Mohan Achanta" srcset="https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png 150w, https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-300x300.png 300w, https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta.png 504w" sizes="(max-width: 150px) 100vw, 150px" />															</div>
				</div>
		<div class="elementor-element elementor-element-ff250c2 e-con-full e-flex e-con e-child" data-id="ff250c2" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-f8a8b4d elementor-position-inline-end elementor-mobile-position-inline-start elementor-widget-laptop__width-initial elementor-view-default elementor-widget elementor-widget-icon-box" data-id="f8a8b4d" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/" class="elementor-icon" tabindex="-1" aria-label="RajMohan Achanta">
				<i aria-hidden="true" class="fab fa-linkedin-in"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h5 class="elementor-icon-box-title">
						<a href="https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/" >
							RajMohan Achanta						</a>
					</h5>
				
									<p class="elementor-icon-box-description">
						Associate Product Manager, Datagaps					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-d390cfb elementor-widget elementor-widget-text-editor" data-id="d390cfb" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Associate Product Manager at Datagaps. Shapes the product experience across ETL Validator, BI Validator, and Data Quality Monitor.</p>								</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-a7960cb e-con-full e-flex e-con e-child" data-id="a7960cb" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-66b97d0 elementor-widget-laptop__width-initial elementor-widget elementor-widget-image" data-id="66b97d0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="150" height="150" src="https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png" class="attachment-thumbnail size-thumbnail wp-image-54463" alt="Avinash&apos;s picture" srcset="https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png 150w, https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-300x300.png 300w, https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2.png 504w" sizes="(max-width: 150px) 100vw, 150px" />															</div>
				</div>
		<div class="elementor-element elementor-element-5e8a351 e-con-full e-flex e-con e-child" data-id="5e8a351" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-6e0b636 elementor-position-inline-end elementor-mobile-position-inline-start elementor-view-default elementor-widget elementor-widget-icon-box" data-id="6e0b636" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://www.linkedin.com/in/avinashkeshri-iimb/" class="elementor-icon" tabindex="-1" aria-label="Avinash Keshri">
				<i aria-hidden="true" class="fab fa-linkedin-in"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h5 class="elementor-icon-box-title">
						<a href="https://www.linkedin.com/in/avinashkeshri-iimb/" >
							Avinash Keshri						</a>
					</h5>
				
									<p class="elementor-icon-box-description">
						Head, Product Marketing					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-1e2303c elementor-widget elementor-widget-text-editor" data-id="1e2303c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Head of Product Marketing at Datagaps and IIM Bangalore alumnus. 13+ years of experience in commercializing AI and data platforms across global markets.</p>								</div>
				</div>
				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-2bb5504 e-flex e-con-boxed e-con e-parent" data-id="2bb5504" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
					</div>
				</div>
		<div class="elementor-element elementor-element-6f1e8b2 e-flex e-con-boxed e-con e-parent" data-id="6f1e8b2" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
					</div>
				</div>
				</div>
		<p>The post <a href="https://www.datagaps.com/blog/how-to-generate-500-data-quality-rules-at-scale-using-ai/">How to Generate 500+ Data Quality Rules at Scale Using AI in the Datagaps DataOps Suite</a> appeared first on <a href="https://www.datagaps.com">Datagaps | Gen AI-Powered Automated Cloud Data Testing</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Generate Synthetic Test Data for Microsoft Fabric with TDM</title>
		<link>https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/</link>
		
		<dc:creator><![CDATA[Raj Mohan Achanta]]></dc:creator>
		<pubDate>Thu, 22 Oct 2026 12:27:27 +0000</pubDate>
				<category><![CDATA[Data Quality]]></category>
		<category><![CDATA[Data Validation]]></category>
		<category><![CDATA[DataOps]]></category>
		<category><![CDATA[Datagaps TDM]]></category>
		<category><![CDATA[Microsoft Fabric]]></category>
		<category><![CDATA[PII Masking]]></category>
		<category><![CDATA[Synthetic Data]]></category>
		<category><![CDATA[Test Data Management]]></category>
		<guid isPermaLink="false">https://www.datagaps.com/?p=63404</guid>

					<description><![CDATA[<p>Generate synthetic test data for Microsoft Fabric with Datagaps TDM. Use AI to create masked, realistic data for secure, scalable testing.</p>
<p>The post <a href="https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/">How to Generate Synthetic Test Data for Microsoft Fabric with TDM</a> appeared first on <a href="https://www.datagaps.com">Datagaps | Gen AI-Powered Automated Cloud Data Testing</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="63404" class="elementor elementor-63404" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-a3771bc e-flex e-con-boxed e-con e-parent" data-id="a3771bc" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-1fd7e36 elementor-widget elementor-widget-text-editor" data-id="1fd7e36" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW99550397 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW99550397 BCX8">Datagaps</span><span class="NormalTextRun SCXW99550397 BCX8"><span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/test-data-manager/" target="_blank" rel="noopener"> Test Data Manager</a></span> (TDM) is an AI-powered synthetic data tool that learns patterns from sample data to generate privacy-safe test data for Microsoft Fabric </span><span class="NormalTextRun SpellingErrorV2Themed SCXW99550397 BCX8">lakehouses</span><span class="NormalTextRun SCXW99550397 BCX8"> and warehouses, masking PII automatically and reducing work that could take weeks to under an hour.</span></span><span class="EOP Selected SCXW99550397 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-27eeb44 datagaps-tldr elementor-widget elementor-widget-text-editor" data-id="27eeb44" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Key Takeaways</strong></p><ul><li><span data-contrast="auto">Manually copying or creating test data breaks down at 30 to 40 or more tables per testing cycle.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">TDM has two components: Data Models configure generation, and Datasets generate and load the data.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">AI auto-detects entities, treats classified columns as PII or confidential, and masks them during generation.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Sample data is a prerequisite; by default TDM takes 5,000 rows from the connected source.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Generating 100 or 1,000 rows completes in about five seconds, with multiple tables processed in parallel.</span></li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-2bb8934 elementor-widget elementor-widget-text-editor" data-id="2bb8934" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2;" href="https://www.datagaps.com/test-data-manager-trial-request/" target="_blank" rel="noopener"><span class="NormalTextRun SCXW77785008 BCX8">See how </span><span class="NormalTextRun SpellingErrorV2Themed SCXW77785008 BCX8">Datagaps</span><span class="NormalTextRun SCXW77785008 BCX8"> TDM generates masked test data for your Fabric tables →</span></a></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-9e11135 elementor-widget elementor-widget-text-editor" data-id="9e11135" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW95773873 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW95773873 BCX8">To generate synthetic test data for Microsoft Fabric, configure a </span></span><span class="TextRun SCXW95773873 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW95773873 BCX8">Data Model</span></span><span class="TextRun SCXW95773873 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW95773873 BCX8"> in </span><span class="NormalTextRun SpellingErrorV2Themed SCXW95773873 BCX8">Datagaps</span><span class="NormalTextRun SCXW95773873 BCX8"> Test Data Manager (TDM) — connect your </span><span class="NormalTextRun SpellingErrorV2Themed SCXW95773873 BCX8">lakehouse</span><span class="NormalTextRun SCXW95773873 BCX8"> or warehouse, let AI detect and mask entities, load sample data and confirm target data types — then use a </span></span><span class="TextRun SCXW95773873 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW95773873 BCX8">Dataset</span></span><span class="TextRun SCXW95773873 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW95773873 BCX8"> to generate the volume you need and load it into tables or files.</span></span><span class="EOP Selected SCXW95773873 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-ddcad15 e-flex e-con-boxed e-con e-parent" data-id="ddcad15" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-909654c elementor-widget elementor-widget-heading" data-id="909654c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Why is test data for Microsoft Fabric pipelines hard to manage? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f269997 elementor-widget elementor-widget-text-editor" data-id="f269997" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW193107267 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW193107267 BCX8">In <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/microsoft-fabric-testing-automation/" target="_blank" rel="noopener">Microsoft Fabric</a></span>, <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/blog/microsoft-fabric-migration-testing/" target="_blank" rel="noopener">pipelines and notebooks</a></span> are only as good as the data used to test them. In a typical enterprise setting, developers work with minimal or dummy data, and QA teams manually copy production data or create new entries for staging. In large setups with 30 to 40 or more tables per testing cycle, this becomes unsustainable fast, especially when PII masking and relational integrity are also in scope.</span></span><span class="EOP SCXW193107267 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-d15438e elementor-widget elementor-widget-text-editor" data-id="d15438e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW45042379 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW45042379 BCX8">Datagaps</span><span class="NormalTextRun SCXW45042379 BCX8"> Test Data Manager (TDM)</span></span><span class="TextRun SCXW45042379 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW45042379 BCX8"> addresses this directly. Its AI capabilities generate synthetic data that covers all production-level nuances without manual effort, reducing what could take weeks to under an hour.</span></span><span class="EOP Selected SCXW45042379 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-604e192 e-flex e-con-boxed e-con e-parent" data-id="604e192" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3445573 elementor-widget elementor-widget-heading" data-id="3445573" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">How does Datagaps TDM generate synthetic data for Microsoft Fabric? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f760d4f elementor-widget elementor-widget-text-editor" data-id="f760d4f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW68732214 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW68732214 BCX8">Datagaps</span><span class="NormalTextRun SCXW68732214 BCX8"> TDM has two core components: </span></span><strong><span class="TextRun SCXW68732214 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW68732214 BCX8">Data Models</span></span></strong><span class="TextRun SCXW68732214 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW68732214 BCX8"> and </span></span><strong><span class="TextRun SCXW68732214 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW68732214 BCX8">Datasets</span></span><span class="TextRun SCXW68732214 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW68732214 BCX8">.</span></span></strong></p>								</div>
				</div>
				<div class="elementor-element elementor-element-748de4c elementor-widget elementor-widget-text-editor" data-id="748de4c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/test-data-manager/" target="_blank" rel="noopener"><strong><span class="TextRun SCXW78120396 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW78120396 BCX8">Data Models</span></span></strong></a></span><span class="TextRun SCXW78120396 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW78120396 BCX8"> are where you configure the data you want to generate for each table. This includes masking data, fetching sample data for generation, defining the target data type, and all other configuration requirements.</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-d7f17f0 elementor-widget elementor-widget-text-editor" data-id="d7f17f0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong><span class="TextRun SCXW117414207 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW117414207 BCX8">Datasets</span></span></strong><span class="TextRun SCXW117414207 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW117414207 BCX8"> use the configured data model and generate data using AI/ML capabilities. You define the volume of data to be generated and then choose to either save it to an external location or load it directly into tables for testing.</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-6b2b2ad elementor-widget elementor-widget-image" data-id="6b2b2ad" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1120" height="677" src="https://www.datagaps.com/wp-content/uploads/image-1-1.png" class="attachment-full size-full wp-image-63571" alt="Data Models &amp; Datasets of DQ in Datagaps" srcset="https://www.datagaps.com/wp-content/uploads/image-1-1.png 1120w, https://www.datagaps.com/wp-content/uploads/image-1-1-300x181.png 300w, https://www.datagaps.com/wp-content/uploads/image-1-1-1024x619.png 1024w, https://www.datagaps.com/wp-content/uploads/image-1-1-768x464.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />											<figcaption class="widget-image-caption wp-caption-text">Test Data Manager — Data Models and Datasets</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-b5672e4 elementor-widget elementor-widget-heading" data-id="b5672e4" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">How do you configure a TDM data model for Microsoft Fabric tables?</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-7078a95 elementor-widget elementor-widget-heading" data-id="7078a95" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Connect the Fabric lakehouse or warehouse </h3>				</div>
				</div>
				<div class="elementor-element elementor-element-ba1a932 elementor-widget elementor-widget-text-editor" data-id="ba1a932" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW19038420 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW19038420 BCX8">For demonstration purposes, two schemas were connected into the data model, </span><span class="NormalTextRun SCXW19038420 BCX8">containing</span><span class="NormalTextRun SCXW19038420 BCX8"> 5 to 10 dimension and fact tables, each with </span><span class="NormalTextRun SCXW19038420 BCX8">approximately 20</span><span class="NormalTextRun SCXW19038420 BCX8"> to 30 columns. When you connect your Fabric data source, you connect your specific </span><span class="NormalTextRun SpellingErrorV2Themed SCXW19038420 BCX8">lakehouse</span><span class="NormalTextRun SCXW19038420 BCX8"> or warehouse. The moment a data source is connected, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW19038420 BCX8">Datagaps</span><span class="NormalTextRun SCXW19038420 BCX8"> fetches relevant metadata and automatically reflects it in the interface.</span></span><span class="EOP Selected SCXW19038420 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-73bc907 elementor-widget elementor-widget-icon-box" data-id="73bc907" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							How are entities classified and PII masked? 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						There is an additional column called Entity, which is used to define the type of a column and whether it needs to be masked. When any column is classified as one of the defined entities, Datagaps treats that data as PII or confidential and masks it during generation. Datagaps already supports <a href="https://www.datagaps.com/compliance-solutions/" style="color: #1967d2;text-decoration: underline">GDPR, CCPA, and HIPAA-aligned workflows</a>, which means data security concerns are addressed at the platform level.					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-30e5cc2 elementor-widget elementor-widget-image" data-id="30e5cc2" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="539" src="https://www.datagaps.com/wp-content/uploads/image-2-1-1.png" class="attachment-full size-full wp-image-63576" alt="Data Models of TDM" srcset="https://www.datagaps.com/wp-content/uploads/image-2-1-1.png 1120w, https://www.datagaps.com/wp-content/uploads/image-2-1-1-300x144.png 300w, https://www.datagaps.com/wp-content/uploads/image-2-1-1-1024x493.png 1024w, https://www.datagaps.com/wp-content/uploads/image-2-1-1-768x370.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-fcb2e06 elementor-widget elementor-widget-text-editor" data-id="fcb2e06" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW151286073 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW151286073 BCX8">Entity detection can be done manually, or </span><span class="NormalTextRun SpellingErrorV2Themed SCXW151286073 BCX8">Datagaps</span><span class="NormalTextRun SCXW151286073 BCX8"> can handle it automatically using AI. There is a built-in </span><span class="NormalTextRun SCXW151286073 BCX8">option</span><span class="NormalTextRun SCXW151286073 BCX8"> to auto-detect entities for your tables.</span></span><span class="EOP Selected SCXW151286073 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-8c53a37 elementor-widget elementor-widget-image" data-id="8c53a37" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="529" src="https://www.datagaps.com/wp-content/uploads/image-3-1.png" class="attachment-full size-full wp-image-63587" alt="Auto-detect entities" srcset="https://www.datagaps.com/wp-content/uploads/image-3-1.png 1120w, https://www.datagaps.com/wp-content/uploads/image-3-1-300x142.png 300w, https://www.datagaps.com/wp-content/uploads/image-3-1-1024x484.png 1024w, https://www.datagaps.com/wp-content/uploads/image-3-1-768x363.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-aa24450 elementor-widget elementor-widget-text-editor" data-id="aa24450" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW16242282 BCX8">When auto-detect entities </span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW16242282 BCX8">is</span><span class="NormalTextRun SCXW16242282 BCX8"> used, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW16242282 BCX8">Datagaps</span><span class="NormalTextRun SCXW16242282 BCX8"> applies its internal AI/ML models to classify each column into one of its predefined entity categories. Columns </span><span class="NormalTextRun SCXW16242282 BCX8">containing</span><span class="NormalTextRun SCXW16242282 BCX8"> names, payment details, addresses, date-time values, and similar data are auto-classified without requiring manual intervention. This is a particularly powerful feature when connecting tables for the first time and configuring them at scale. The platform can generate millions of records across formats with built-in masking.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-d9ac59d elementor-widget elementor-widget-image" data-id="d9ac59d" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="516" src="https://www.datagaps.com/wp-content/uploads/image-4-1.png" class="attachment-full size-full wp-image-63591" alt="" srcset="https://www.datagaps.com/wp-content/uploads/image-4-1.png 1120w, https://www.datagaps.com/wp-content/uploads/image-4-1-300x138.png 300w, https://www.datagaps.com/wp-content/uploads/image-4-1-1024x472.png 1024w, https://www.datagaps.com/wp-content/uploads/image-4-1-768x354.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-b36eca2 elementor-widget elementor-widget-icon-box" data-id="b36eca2" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Why is sample data required? 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						The only prerequisite is that some sample data must be loaded before using this feature. To auto-detect entities and generate synthetic data, existing data is required so the system can identify patterns in those values. You can filter that sample however you choose, whether using a specific set of values or a random selection. This sample enables the AI to understand the patterns needed for accurate synthetic data generation.					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-cc8fd1e elementor-widget elementor-widget-image" data-id="cc8fd1e" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="537" src="https://www.datagaps.com/wp-content/uploads/image-5-1.png" class="attachment-full size-full wp-image-63599" alt="synthetic data generation" srcset="https://www.datagaps.com/wp-content/uploads/image-5-1.png 1120w, https://www.datagaps.com/wp-content/uploads/image-5-1-300x144.png 300w, https://www.datagaps.com/wp-content/uploads/image-5-1-1024x491.png 1024w, https://www.datagaps.com/wp-content/uploads/image-5-1-768x368.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-501c459 elementor-widget elementor-widget-icon-box" data-id="501c459" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h2 class="elementor-icon-box-title">
						<span  >
							How do you preserve referential integrity between tables?						</span>
					</h2>
				
									<p class="elementor-icon-box-description">
						For projects with relationships between tables, these need to be accounted for carefully. A foreign key, for example, must be mapped correctly and must be available in its source table. Otherwise, the generated data will lack <a href="https://www.datagaps.com/app-integration-data-testing/" style="color: #1967d2;text-decoration: underline">referential integrity</a>. Datagaps allows you to define these relationships and map columns to their parent column in another table.					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-766fd2c elementor-widget elementor-widget-image" data-id="766fd2c" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="482" src="https://www.datagaps.com/wp-content/uploads/image-6.png" class="attachment-full size-full wp-image-63600" alt="Relation - child, parent column" srcset="https://www.datagaps.com/wp-content/uploads/image-6.png 1120w, https://www.datagaps.com/wp-content/uploads/image-6-300x129.png 300w, https://www.datagaps.com/wp-content/uploads/image-6-1024x441.png 1024w, https://www.datagaps.com/wp-content/uploads/image-6-768x331.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-603f30b elementor-widget elementor-widget-icon-box" data-id="603f30b" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							How much sample data does TDM use? 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						By default, Datagaps takes 5,000 rows of sample data from the connected source. This can be increased or decreased after initial testing. It also allows you to add a WHERE clause to filter specific data for sample generation, which is useful when testing for a particular region or segment. 					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-f81d791 elementor-widget elementor-widget-image" data-id="f81d791" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="617" src="https://www.datagaps.com/wp-content/uploads/image-7.png" class="attachment-full size-full wp-image-63605" alt="" srcset="https://www.datagaps.com/wp-content/uploads/image-7.png 1120w, https://www.datagaps.com/wp-content/uploads/image-7-300x165.png 300w, https://www.datagaps.com/wp-content/uploads/image-7-1024x564.png 1024w, https://www.datagaps.com/wp-content/uploads/image-7-768x423.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-ec0f73c elementor-widget elementor-widget-text-editor" data-id="ec0f73c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW128503419 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW128503419 BCX8">When you generate your sample data, you will notice that certain columns are masked. These are the same columns for which an entity was defined in the configuration step.</span></span><span class="EOP Selected SCXW128503419 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-4176210 elementor-arrows-position-outside elementor-pagination-position-outside elementor-widget elementor-widget-image-carousel" data-id="4176210" data-element_type="widget" data-e-type="widget" data-settings="{&quot;slides_to_show&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;both&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;effect&quot;:&quot;slide&quot;,&quot;speed&quot;:500}" data-widget_type="image-carousel.default">
				<div class="elementor-widget-container">
							<div class="elementor-image-carousel-wrapper swiper" role="region" aria-roledescription="carousel" aria-label="Image Carousel" dir="ltr">
			<div class="elementor-image-carousel swiper-wrapper" aria-live="off">
								<div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="1 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/image-8-1-1024x585.png" alt="Sample data" /></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="2 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/image-9-1-1024x595.png" alt="Synthetic data" /></figure></div>			</div>
												<div class="elementor-swiper-button elementor-swiper-button-prev" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-left"></i>					</div>
					<div class="elementor-swiper-button elementor-swiper-button-next" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-right"></i>					</div>
				
									<div class="swiper-pagination"></div>
									</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-5426b93 elementor-widget elementor-widget-icon-box" data-id="5426b93" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							How are target data types defined? 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						Once that configuration is complete, the next step is defining the quality of your synthetic data. This is where you define the target data types for generation. For entity columns, there are predefined data types that Datagaps refers to during generation. This too does not need to be done manually. The auto-recommend feature assigns entities and correct target data types for each table. All that is required is a review to confirm accuracy. 					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-036cecb elementor-arrows-position-outside elementor-pagination-position-outside elementor-widget elementor-widget-image-carousel" data-id="036cecb" data-element_type="widget" data-e-type="widget" data-settings="{&quot;slides_to_show&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;both&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;effect&quot;:&quot;slide&quot;,&quot;speed&quot;:500}" data-widget_type="image-carousel.default">
				<div class="elementor-widget-container">
							<div class="elementor-image-carousel-wrapper swiper" role="region" aria-roledescription="carousel" aria-label="Image Carousel" dir="ltr">
			<div class="elementor-image-carousel swiper-wrapper" aria-live="off">
								<div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="1 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/image-10-1024x474.png" alt="Data Type in Synthetic data" /></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="2 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/image-11-1024x571.png" alt="Generator data in synthetic data" /></figure></div>			</div>
												<div class="elementor-swiper-button elementor-swiper-button-prev" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-left"></i>					</div>
					<div class="elementor-swiper-button elementor-swiper-button-next" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-right"></i>					</div>
				
									<div class="swiper-pagination"></div>
									</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-607fcfd elementor-widget elementor-widget-icon-box" data-id="607fcfd" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							What is Fake Data in Datagaps TDM?						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						The real capability of synthetic data generation becomes apparent at this step. For columns containing names, payment details, or other entity types, the system automatically classifies the target type and sets the data up as realistic fake data. This is what Datagaps refers to as Fake Data. 					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-eb8c94a elementor-widget elementor-widget-image" data-id="eb8c94a" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="444" height="574" src="https://www.datagaps.com/wp-content/uploads/image-13.png" class="attachment-large size-large wp-image-63624" alt="Fake data consists of AI or machine-generated values" srcset="https://www.datagaps.com/wp-content/uploads/image-13.png 444w, https://www.datagaps.com/wp-content/uploads/image-13-232x300.png 232w" sizes="(max-width: 444px) 100vw, 444px" />															</div>
				</div>
				<div class="elementor-element elementor-element-7b1517e elementor-widget elementor-widget-text-editor" data-id="7b1517e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW39084132 BCX8">Fake data consists of AI or machine-generated values defined across multiple categories. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW39084132 BCX8">Datagaps</span><span class="NormalTextRun SCXW39084132 BCX8"> maintains a predefined list of categories aligned with real-world data, and it classifies columns into one of those categories before generation. While the AI handles classification accurately in most cases, it is strongly recommended to review the target type of each column at this step. Verify that a column is not misclassified, for example, as an address when it </span><span class="NormalTextRun AdvancedProofingIssueV2Themed SCXW39084132 BCX8">actually contains</span><span class="NormalTextRun SCXW39084132 BCX8"> a name.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-cdb152c elementor-widget elementor-widget-image" data-id="cdb152c" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="462" height="748" src="https://www.datagaps.com/wp-content/uploads/image-12.png" class="attachment-medium_large size-medium_large wp-image-63620" alt="Fake Data in TDM" srcset="https://www.datagaps.com/wp-content/uploads/image-12.png 462w, https://www.datagaps.com/wp-content/uploads/image-12-185x300.png 185w" sizes="(max-width: 462px) 100vw, 462px" />															</div>
				</div>
				<div class="elementor-element elementor-element-e2594de elementor-widget elementor-widget-text-editor" data-id="e2594de" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW199547311 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW199547311 BCX8">Almost any category of data you can think of is predefined within TDM, including blood group, card details, age, email, contact information, and more. All of them can be mapped correctly to your tables without manual classification, and the AI generates these values as part of the synthetic data generation process.</span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-9c77ca9 elementor-widget elementor-widget-image" data-id="9c77ca9" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="826" src="https://www.datagaps.com/wp-content/uploads/image-14.png" class="attachment-full size-full wp-image-63626" alt="Fake Data providers" srcset="https://www.datagaps.com/wp-content/uploads/image-14.png 1120w, https://www.datagaps.com/wp-content/uploads/image-14-300x221.png 300w, https://www.datagaps.com/wp-content/uploads/image-14-1024x755.png 1024w, https://www.datagaps.com/wp-content/uploads/image-14-768x566.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-a6e2e27 elementor-widget elementor-widget-icon-box" data-id="a6e2e27" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Can you apply constraints, gender and locale options?						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						Yes. Constraints can also be applied during generation. For datetime columns, for example, you can define a specific range to ensure the generated values fall within a desired window.					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-4de2b3e elementor-widget elementor-widget-image" data-id="4de2b3e" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="439" height="707" src="https://www.datagaps.com/wp-content/uploads/image-15.png" class="attachment-large size-large wp-image-63633" alt="Fake data valid till date" srcset="https://www.datagaps.com/wp-content/uploads/image-15.png 439w, https://www.datagaps.com/wp-content/uploads/image-15-186x300.png 186w" sizes="(max-width: 439px) 100vw, 439px" />															</div>
				</div>
				<div class="elementor-element elementor-element-fe9b4be elementor-widget elementor-widget-text-editor" data-id="fe9b4be" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW232524628 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW232524628 BCX8">If you want generated names to reflect a particular gender, that can be configured as well. And if you need the synthetic data to reflect details from a specific locale, that option is available too.</span></span><span class="EOP Selected SCXW232524628 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-3c9462a elementor-arrows-position-outside elementor-pagination-position-outside elementor-widget elementor-widget-image-carousel" data-id="3c9462a" data-element_type="widget" data-e-type="widget" data-settings="{&quot;slides_to_show&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;both&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;effect&quot;:&quot;slide&quot;,&quot;speed&quot;:500}" data-widget_type="image-carousel.default">
				<div class="elementor-widget-container">
							<div class="elementor-image-carousel-wrapper swiper" role="region" aria-roledescription="carousel" aria-label="Image Carousel" dir="ltr">
			<div class="elementor-image-carousel swiper-wrapper" aria-live="off">
								<div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="1 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/image16-1024x413.png" alt="preview of synthetic data in TDM" /></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="2 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/image-17-1.png" alt="Locale Type" /></figure></div>			</div>
												<div class="elementor-swiper-button elementor-swiper-button-prev" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-left"></i>					</div>
					<div class="elementor-swiper-button elementor-swiper-button-next" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-right"></i>					</div>
				
									<div class="swiper-pagination"></div>
									</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-9d6cf49 elementor-widget elementor-widget-icon-box" data-id="9d6cf49" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Data model configuration at a glance 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						All of the above configuration is done within the Data Model component of TDM. This can be done across all tables in a single pass before moving to the generation phase. <br><br>1. Go to the data model <br>

2. Use AI to auto-detect entities and verify them <br>

3. Load sample data <br>

4. Let AI define target types for synthetic data and verify again <br>

5. Make adjustments as required for enterprise needs 					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-8fa536b elementor-widget elementor-widget-icon-box" data-id="8fa536b" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h2 class="elementor-icon-box-title">
						<span  >
							How do you generate and load synthetic data with TDM datasets? 						</span>
					</h2>
				
									<p class="elementor-icon-box-description">
						Once configuration is complete, the process moves to the Dataset component of TDM, where you choose the output destination, select tables, generate the data and load it into the target. 					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-489743b elementor-widget elementor-widget-icon-box" data-id="489743b" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Choose where the generated data is saved 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						Here, you define where you want to save the generated data and how. This includes choosing whether to save the synthetic data to CSV files, load it directly into tables in an existing database, into a specific schema, and so on. 					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-19edb07 elementor-widget elementor-widget-image" data-id="19edb07" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="514" src="https://www.datagaps.com/wp-content/uploads/image-18.png" class="attachment-full size-full wp-image-63644" alt="Properties of test data" srcset="https://www.datagaps.com/wp-content/uploads/image-18.png 1120w, https://www.datagaps.com/wp-content/uploads/image-18-300x138.png 300w, https://www.datagaps.com/wp-content/uploads/image-18-1024x470.png 1024w, https://www.datagaps.com/wp-content/uploads/image-18-768x352.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-d6e247a elementor-widget elementor-widget-icon-box" data-id="d6e247a" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Select tables and run generation 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						Next, you select the tables for which you want to generate data, with the option to do this for all tables or only selected ones. 					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-6742cc5 elementor-widget elementor-widget-image" data-id="6742cc5" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="320" src="https://www.datagaps.com/wp-content/uploads/image-19.png" class="attachment-full size-full wp-image-63646" alt="Select tables to generate data" srcset="https://www.datagaps.com/wp-content/uploads/image-19.png 1120w, https://www.datagaps.com/wp-content/uploads/image-19-300x86.png 300w, https://www.datagaps.com/wp-content/uploads/image-19-1024x293.png 1024w, https://www.datagaps.com/wp-content/uploads/image-19-768x219.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-e4a9c14 elementor-widget elementor-widget-text-editor" data-id="e4a9c14" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SCXW29224212 BCX8">Data generation typically takes a few seconds to a few minutes, depending on the volume configured. For 100 or 1,000 rows, generation completes in approximately 5 seconds. When generating across multiple tables, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW29224212 BCX8">Datagaps</span><span class="NormalTextRun SCXW29224212 BCX8"> processes them in parallel within the same </span><span class="NormalTextRun SCXW29224212 BCX8">time frame</span><span class="NormalTextRun SCXW29224212 BCX8">.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-a9a006c elementor-arrows-position-outside elementor-pagination-position-outside elementor-widget elementor-widget-image-carousel" data-id="a9a006c" data-element_type="widget" data-e-type="widget" data-settings="{&quot;slides_to_show&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;both&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;effect&quot;:&quot;slide&quot;,&quot;speed&quot;:500}" data-widget_type="image-carousel.default">
				<div class="elementor-widget-container">
							<div class="elementor-image-carousel-wrapper swiper" role="region" aria-roledescription="carousel" aria-label="Image Carousel" dir="ltr">
			<div class="elementor-image-carousel swiper-wrapper" aria-live="off">
								<div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="1 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/image-20.png" alt="Generation result showing Order, Transaction, and Customer tables being processed simultaneously" /></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="2 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/image-21.png" alt="Generation result showing Order, Transaction, and Customer tables being processed simultaneously" /></figure></div>			</div>
												<div class="elementor-swiper-button elementor-swiper-button-prev" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-left"></i>					</div>
					<div class="elementor-swiper-button elementor-swiper-button-next" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-right"></i>					</div>
				
									<div class="swiper-pagination"></div>
									</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-fc3a5f9 elementor-widget elementor-widget-icon-box" data-id="fc3a5f9" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Load data into the target table or file 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						Once data is generated, it can be loaded into the target table or file. If a table is selected as the target, the schemas must be clearly defined to avoid conflicts during insertion. 					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-4a8e464 elementor-widget elementor-widget-image" data-id="4a8e464" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="269" src="https://www.datagaps.com/wp-content/uploads/image-22.png" class="attachment-full size-full wp-image-63652" alt="Load data into the target table" srcset="https://www.datagaps.com/wp-content/uploads/image-22.png 1120w, https://www.datagaps.com/wp-content/uploads/image-22-300x72.png 300w, https://www.datagaps.com/wp-content/uploads/image-22-1024x246.png 1024w, https://www.datagaps.com/wp-content/uploads/image-22-768x184.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-1e872cc elementor-widget elementor-widget-icon-box" data-id="1e872cc" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							What happens if sample data is missing? 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						If sample data was not loaded for some tables during configuration, the tool will fail during generation and prompt you to go back and add sample data. This is by design. Sample data is what enables the system to identify patterns within your data so the output remains relevant to your use case.<br><br>When all items are configured correctly, data generation will succeed consistently. 					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-75a1a0a elementor-arrows-position-outside elementor-pagination-position-outside elementor-widget elementor-widget-image-carousel" data-id="75a1a0a" data-element_type="widget" data-e-type="widget" data-settings="{&quot;slides_to_show&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;both&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;effect&quot;:&quot;slide&quot;,&quot;speed&quot;:500}" data-widget_type="image-carousel.default">
				<div class="elementor-widget-container">
							<div class="elementor-image-carousel-wrapper swiper" role="region" aria-roledescription="carousel" aria-label="Image Carousel" dir="ltr">
			<div class="elementor-image-carousel swiper-wrapper" aria-live="off">
								<div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="1 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/image-23.png" alt="Generate, load data" /></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="2 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/image-24.png" alt="Generate, load data" /></figure></div>			</div>
												<div class="elementor-swiper-button elementor-swiper-button-prev" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-left"></i>					</div>
					<div class="elementor-swiper-button elementor-swiper-button-next" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-right"></i>					</div>
				
									<div class="swiper-pagination"></div>
									</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-b881419 elementor-widget elementor-widget-icon-box" data-id="b881419" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Choose save behavior and confirm the load 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						When loading into the target table, you can choose the save behavior: append, drop, or truncate. The appropriate choice depends on how you intend to proceed with testing once the data is available. 					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-35f7042 elementor-widget elementor-widget-image" data-id="35f7042" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="445" height="304" src="https://www.datagaps.com/wp-content/uploads/Append-the-result.png" class="attachment-large size-large wp-image-63662" alt="Append the result of generated data" srcset="https://www.datagaps.com/wp-content/uploads/Append-the-result.png 445w, https://www.datagaps.com/wp-content/uploads/Append-the-result-300x205.png 300w" sizes="(max-width: 445px) 100vw, 445px" />															</div>
				</div>
				<div class="elementor-element elementor-element-98cc803 elementor-widget elementor-widget-text-editor" data-id="98cc803" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<ul><li><span class="TextRun SCXW170806998 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW170806998 BCX8">If the load is successful, a confirmation is shown. If not, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW170806998 BCX8">Datagaps</span><span class="NormalTextRun SCXW170806998 BCX8"> provides logs so you can trace and resolve the exact issue. Loading of final synthetic data is straightforward whether you are saving to a file such as CSV or directly to a table. For table targets, </span><span class="NormalTextRun SCXW170806998 BCX8">validate</span><span class="NormalTextRun SCXW170806998 BCX8"> the schema and the process is complete.</span></span><span class="EOP Selected SCXW170806998 BCX8" data-ccp-props="{}"> </span></li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-6972070 elementor-widget elementor-widget-image" data-id="6972070" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1120" height="213" src="https://www.datagaps.com/wp-content/uploads/Load-data-complete.png" class="attachment-full size-full wp-image-63666" alt="Load data complete in TDM" srcset="https://www.datagaps.com/wp-content/uploads/Load-data-complete.png 1120w, https://www.datagaps.com/wp-content/uploads/Load-data-complete-300x57.png 300w, https://www.datagaps.com/wp-content/uploads/Load-data-complete-1024x195.png 1024w, https://www.datagaps.com/wp-content/uploads/Load-data-complete-768x146.png 768w" sizes="(max-width: 1120px) 100vw, 1120px" />															</div>
				</div>
				<div class="elementor-element elementor-element-a367d05 elementor-widget elementor-widget-heading" data-id="a367d05" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Conclusion </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-e542658 elementor-widget elementor-widget-text-editor" data-id="e542658" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="auto">That is the complete process for generating synthetic data at scale for enterprise environments, regardless of the data source, whether <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/microsoft-fabric-testing-automation/" target="_blank" rel="noopener">Microsoft Fabric</a></span> or others. Datagaps supports each step of the testing process and provides all the tools required for testing any part of an analytical workflow.</span><span data-ccp-props="{}"> </span></p><p><span data-contrast="auto">The key differentiator is <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/blog/microsoft-fabric-data-observability/" target="_blank" rel="noopener">AI integration at every step</a></span>. The same work done manually could take weeks to replicate data correctly, and even then, it would be difficult to introduce the same level of diversity, especially for edge cases and unexpected patterns.</span><span data-ccp-props="{}"> </span></p><p><span data-contrast="auto">With AI-powered generation, teams can produce large volumes of synthetic data, introduce varied patterns and data rules, and run <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-validation-etl-testing-tools/" target="_blank" rel="noopener">comprehensive testing of pipelines</a></span> before anything reaches production.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-bf2f76e elementor-widget elementor-widget-text-editor" data-id="bf2f76e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="text-decoration: underline;"><span style="color: #1967d2; text-decoration: underline;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/test-data-manager-trial-request/" target="_blank" rel="noopener"><span class="EOP Selected SCXW265958618 BCX8" data-ccp-props="{}"><span class="TextRun SCXW10738096 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW10738096 BCX8">See how TDM generates masked, relationally consistent test data for Fabric →</span></span> </span></a></span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-32908ef elementor-widget elementor-widget-heading" data-id="32908ef" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Frequently Asked Questions </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-923e752 elementor-widget elementor-widget-eael-adv-accordion" data-id="923e752" data-element_type="widget" data-e-type="widget" data-widget_type="eael-adv-accordion.default">
				<div class="elementor-widget-container">
					            <div class="eael-adv-accordion" id="eael-adv-accordion-923e752" data-scroll-on-click="no" data-scroll-speed="300" data-accordion-id="923e752" data-accordion-type="accordion" data-toogle-speed="300">
            <div class="eael-accordion-list">
					<div id="faq-1" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="1" aria-controls="elementor-tab-content-1531"><h3 class="eael-accordion-tab-title">How does Datagaps TDM generate synthetic data for Microsoft Fabric? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1531" class="eael-accordion-content clearfix" data-tab="1" aria-labelledby="faq-1"><p><span class="TextRun SCXW3880589 BCX8"><span class="NormalTextRun SCXW3880589 BCX8">TDM uses two components. In the Data Model you <span style="text-decoration: underline"><span style="color: #1967d2;text-decoration: underline"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/getting-started-with-dataops-suite-sandbox/" target="_blank" rel="noopener">connect a Fabric </a></span></span></span><span style="text-decoration: underline"><span style="color: #1967d2;text-decoration: underline"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/getting-started-with-dataops-suite-sandbox/"><span class="NormalTextRun SpellingErrorV2Themed SCXW3880589 BCX8">lakehouse</span></a></span></span><span class="NormalTextRun SCXW3880589 BCX8"><span style="text-decoration: underline"><a href="https://www.datagaps.com/getting-started-with-dataops-suite-sandbox/"><span style="color: #1967d2;text-decoration: underline"> or warehouse</span></a></span>, classify entities, load sample </span><span class="NormalTextRun SCXW3880589 BCX8">data</span><span class="NormalTextRun SCXW3880589 BCX8"> and set target data types. In the Dataset you choose the volume, select </span><span class="NormalTextRun SCXW3880589 BCX8">tables</span><span class="NormalTextRun SCXW3880589 BCX8"> and save the output to files such as CSV or load it directly into tables. AI/ML capabilities generate the data from patterns in the sample.</span></span><span class="EOP Selected SCXW3880589 BCX8"> </span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-2" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="2" aria-controls="elementor-tab-content-1532"><h3 class="eael-accordion-tab-title">Does Datagaps TDM mask PII in synthetic test data?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1532" class="eael-accordion-content clearfix" data-tab="2" aria-labelledby="faq-2"><p><span class="NormalTextRun SCXW208588374 BCX8">Yes. When a column is classified as one of TDM&#8217;s defined entities, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW208588374 BCX8">Datagaps</span><span class="NormalTextRun SCXW208588374 BCX8"> treats it as PII or confidential and masks it during generation. Entities can be set manually or auto-detected with AI, which classifies names, payment details, addresses and date-time values. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW208588374 BCX8">Datagaps</span><span class="NormalTextRun SCXW208588374 BCX8"> supports GDPR, CCPA and <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/industries/healthcare/" target="_blank" rel="noopener">HIPAA-aligned workflows</a></span>.</span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-3" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="3" aria-controls="elementor-tab-content-1533"><h3 class="eael-accordion-tab-title">Why does TDM need sample data before generating synthetic data?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1533" class="eael-accordion-content clearfix" data-tab="3" aria-labelledby="faq-3"><p><span class="NormalTextRun SCXW221225326 BCX8">Sample data lets the AI </span><span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/blog/data-profiling-in-etl-types-and-best-practices/" target="_blank" rel="noopener"><span class="NormalTextRun SCXW221225326 BCX8">identify</span></a></span><span class="NormalTextRun SCXW221225326 BCX8"><span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/blog/data-profiling-in-etl-types-and-best-practices/"> patterns in existing values</a></span> so generated output stays relevant to your use case. By </span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW221225326 BCX8">default</span><span class="NormalTextRun SCXW221225326 BCX8"> TDM takes 5,000 rows from the connected source, which you can increase, </span><span class="NormalTextRun SCXW221225326 BCX8">decrease</span><span class="NormalTextRun SCXW221225326 BCX8"> or filter with a WHERE clause. If sample data is missing for a table, generation fails by design and prompts you to add it.</span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-4" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="4" aria-controls="elementor-tab-content-1534"><h3 class="eael-accordion-tab-title">How does TDM keep referential integrity across related Fabric tables? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1534" class="eael-accordion-content clearfix" data-tab="4" aria-labelledby="faq-4"><p><span class="TextRun SCXW18591511 BCX8"><span class="NormalTextRun SCXW18591511 BCX8">TDM lets you <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/data-testing-concepts/database-testing/" target="_blank" rel="noopener">define relationships between tables</a></span> and map columns to their parent column in another table. A foreign key, for example, must be mapped correctly and must be available in its source table; </span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW18591511 BCX8">otherwise</span><span class="NormalTextRun SCXW18591511 BCX8"> the generated data will lack referential integrity. Defining these mappings during data model configuration keeps related tables consistent.</span></span><span class="EOP Selected SCXW18591511 BCX8"> </span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-5" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="5" aria-controls="elementor-tab-content-1535"><h3 class="eael-accordion-tab-title">How fast is synthetic data generation with Datagaps TDM? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1535" class="eael-accordion-content clearfix" data-tab="5" aria-labelledby="faq-5"><p><span class="TextRun SCXW45868271 BCX8"><span class="NormalTextRun SCXW45868271 BCX8">Generation typically takes a few seconds to a few minutes, depending on the configured volume. For 100 or 1,000 rows it completes in approximately five seconds, and multiple tables are processed in parallel within the same </span><span class="NormalTextRun SCXW45868271 BCX8">time frame</span><span class="NormalTextRun SCXW45868271 BCX8">. The full workflow reduces what could take weeks of manual effort to under an hour.</span></span><span class="EOP Selected SCXW45868271 BCX8"> See the <span style="text-decoration: underline;color: #1967d2"><a style="color: #1967d2;text-decoration: underline" href="https://www.datagaps.com/roi-calculator/" target="_blank" rel="noopener">ROI Calculator</a></span></span></p></div>
					</div></div>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-62980c3 e-flex e-con-boxed e-con e-parent" data-id="62980c3" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-1ac3fec e-con-full e-flex e-con e-child" data-id="1ac3fec" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-f5d35f8 e-con-full e-flex e-con e-child" data-id="f5d35f8" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-184c126 elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading" data-id="184c126" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<span class="elementor-heading-title elementor-size-default">Get Started Today</span>				</div>
				</div>
				<div class="elementor-element elementor-element-4a9257d elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading" data-id="4a9257d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Talk to a datagaps expert</h2>				</div>
				</div>
		<div class="elementor-element elementor-element-e2d718a e-con-full e-flex e-con e-child" data-id="e2d718a" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-0b52229 elementor-widget__width-auto home-btn-new elementor-widget elementor-widget-button" data-id="0b52229" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.datagaps.com/request-a-demo/" target="_blank">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Get a Demo</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-7b1b3d1 elementor-widget__width-auto home-btn-new elementor-widget elementor-widget-button" data-id="7b1b3d1" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.datagaps.com/contact-us/" target="_blank">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Contact Us</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-5da6591 e-flex e-con-boxed e-con e-parent" data-id="5da6591" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a6d9f5b elementor-widget elementor-widget-html" data-id="a6d9f5b" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://www.datagaps.com/#organization",
      "name": "Datagaps",
      "url": "https://www.datagaps.com/",
      "logo": {
        "@type": "ImageObject",
        "@id": "https://www.datagaps.com/#logo",
        "url": "https://www.datagaps.com/wp-content/uploads/datagaps-logo-2.svg",
        "contentUrl": "https://www.datagaps.com/wp-content/uploads/datagaps-logo-2.svg"
      },
      "sameAs": [
        "https://www.linkedin.com/company/datagaps/",
        "https://twitter.com/datagapsteam",
        "https://www.youtube.com/user/datagaps",
        "https://www.instagram.com/datagapsinc/",
        "https://www.facebook.com/datagapsinc"
      ]
    },
    {
      "@type": "Person",
      "@id": "https://www.datagaps.com/#/person/rajmohan-achanta",
      "name": "RajMohan Achanta",
      "jobTitle": "Associate Product Manager",
      "description": "Associate Product Manager at Datagaps. Shapes the product experience across ETL Validator, BI Validator, and Data Quality Monitor.",
      "worksFor": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "url": "https://www.datagaps.com/blog/author/rajmohan/",
      "sameAs": [
        "https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/"
      ],
      "alternateName": "Raj Mohan Achanta",
      "image": "https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png"
    },
    {
      "@type": "Person",
      "@id": "https://www.datagaps.com/#/person/avinash-keshri",
      "name": "Avinash Keshri",
      "jobTitle": "Head, Product Marketing",
      "description": "Head of Product Marketing at Datagaps and IIM Bangalore alumnus. 13+ years of experience in commercializing AI and data platforms across global markets.",
      "worksFor": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "alumniOf": {
        "@type": "CollegeOrUniversity",
        "name": "Indian Institute of Management Bangalore"
      },
      "url": "https://www.linkedin.com/in/avinashkeshri-iimb/",
      "sameAs": [
        "https://www.linkedin.com/in/avinashkeshri-iimb/"
      ],
      "image": "https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png"
    },
    {
      "@type": "BlogPosting",
      "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#blogposting",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/"
      },
      "url": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/",
      "headline": "How to Generate Synthetic Test Data for Microsoft Fabric with TDM",
      "description": "Generate synthetic test data for Microsoft Fabric with Datagaps TDM. Use AI to create masked, realistic data for secure, scalable testing.",
      "inLanguage": "en",
      "datePublished": "2026-10-22T12:27:27+00:00",
      "dateModified": "2026-10-27T10:50:53+00:00",
      "author": [
        {
          "@id": "https://www.datagaps.com/#/person/rajmohan-achanta"
        },
        {
          "@id": "https://www.datagaps.com/#/person/avinash-keshri"
        }
      ],
      "publisher": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "image": {
        "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#featured-image"
      },
      "articleSection": [
        "Data Quality",
        "Data Validation",
        "DataOps"
      ],
      "keywords": "Microsoft Fabric, Synthetic Test Data, Test Data Manager, TDM, PII Masking, Test Data Generation",
      "about": [
        {
          "@type": "Thing",
          "name": "Microsoft Fabric"
        },
        {
          "@type": "Thing",
          "name": "Synthetic test data"
        },
        {
          "@type": "Thing",
          "name": "Data masking"
        }
      ],
      "mentions": [
        {
          "@type": "Thing",
          "name": "Datagaps Test Data Manager",
          "url": "https://www.datagaps.com/test-data-manager/"
        }
      ],
      "associatedMedia": [
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-tdm-data-models-datasets"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-data-models-of-tdm"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-auto-detect-entities"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-entities-classified"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-synthetic-data-generation"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-relation-child-parent-column"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-sample-data-settings"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-sample-data"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-synthetic-data"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-data-type-synthetic-data"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-generator-data-synthetic-data"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-fake-data-ai-values"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-fake-data-in-tdm"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-fake-data-providers"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-fake-data-valid-till-date"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-synthetic-data-preview"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-locale-type"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-properties-test-data"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-select-tables-generate"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-generation-result-1"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-generation-result-2"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-load-data-target-table"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-generate-load-data-1"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-generate-load-data-2"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/#img-append-result"
        },
        {
          "@id": "https://www.datagaps.com/blog/synthetic-test-data-generation-micr
          ]
}
</script>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f8574ba e-flex e-con-boxed e-con e-parent" data-id="f8574ba" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-6b8079b e-con-full e-flex e-con e-child" data-id="6b8079b" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-86810af e-con-full e-flex e-con e-child" data-id="86810af" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-f437041 e-con-full e-flex e-con e-child" data-id="f437041" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-eaeece0 elementor-widget-laptop__width-initial elementor-widget elementor-widget-image" data-id="eaeece0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="150" height="150" src="https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png" class="attachment-thumbnail size-thumbnail wp-image-53799" alt="Raj Mohan Achanta" srcset="https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png 150w, https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-300x300.png 300w, https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta.png 504w" sizes="(max-width: 150px) 100vw, 150px" />															</div>
				</div>
		<div class="elementor-element elementor-element-ff250c2 e-con-full e-flex e-con e-child" data-id="ff250c2" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-f8a8b4d elementor-position-inline-end elementor-mobile-position-inline-start elementor-widget-laptop__width-initial elementor-view-default elementor-widget elementor-widget-icon-box" data-id="f8a8b4d" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/" class="elementor-icon" tabindex="-1" aria-label="RajMohan Achanta">
				<i aria-hidden="true" class="fab fa-linkedin-in"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h5 class="elementor-icon-box-title">
						<a href="https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/" >
							RajMohan Achanta						</a>
					</h5>
				
									<p class="elementor-icon-box-description">
						Associate Product Manager, Datagaps					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-d390cfb elementor-widget elementor-widget-text-editor" data-id="d390cfb" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Associate Product Manager at Datagaps. Shapes the product experience across ETL Validator, BI Validator, and Data Quality Monitor.</p>								</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-a7960cb e-con-full e-flex e-con e-child" data-id="a7960cb" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-66b97d0 elementor-widget-laptop__width-initial elementor-widget elementor-widget-image" data-id="66b97d0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="150" height="150" src="https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png" class="attachment-thumbnail size-thumbnail wp-image-54463" alt="Avinash&apos;s picture" srcset="https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png 150w, https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-300x300.png 300w, https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2.png 504w" sizes="(max-width: 150px) 100vw, 150px" />															</div>
				</div>
		<div class="elementor-element elementor-element-5e8a351 e-con-full e-flex e-con e-child" data-id="5e8a351" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-6e0b636 elementor-position-inline-end elementor-mobile-position-inline-start elementor-view-default elementor-widget elementor-widget-icon-box" data-id="6e0b636" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://www.linkedin.com/in/avinashkeshri-iimb/" class="elementor-icon" tabindex="-1" aria-label="Avinash Keshri">
				<i aria-hidden="true" class="fab fa-linkedin-in"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h5 class="elementor-icon-box-title">
						<a href="https://www.linkedin.com/in/avinashkeshri-iimb/" >
							Avinash Keshri						</a>
					</h5>
				
									<p class="elementor-icon-box-description">
						Head, Product Marketing					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-1e2303c elementor-widget elementor-widget-text-editor" data-id="1e2303c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Head of Product Marketing at Datagaps and IIM Bangalore alumnus. 13+ years of experience in commercializing AI and data platforms across global markets.</p>								</div>
				</div>
				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://www.datagaps.com/blog/synthetic-test-data-generation-microsoft-fabric/">How to Generate Synthetic Test Data for Microsoft Fabric with TDM</a> appeared first on <a href="https://www.datagaps.com">Datagaps | Gen AI-Powered Automated Cloud Data Testing</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Generate Data Quality Rules for Microsoft Fabric with AI</title>
		<link>https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/</link>
		
		<dc:creator><![CDATA[Raj Mohan Achanta]]></dc:creator>
		<pubDate>Wed, 21 Oct 2026 09:09:26 +0000</pubDate>
				<category><![CDATA[Data Quality]]></category>
		<category><![CDATA[Data Validation]]></category>
		<category><![CDATA[DataOps]]></category>
		<category><![CDATA[AI Rule Generation]]></category>
		<category><![CDATA[dataops]]></category>
		<category><![CDATA[Microsoft Fabric]]></category>
		<guid isPermaLink="false">https://www.datagaps.com/?p=63199</guid>

					<description><![CDATA[<p>Generate data quality rules for Microsoft Fabric using AI. Learn how AI simplifies rule creation, improves data accuracy, and strengthens data governance.</p>
<p>The post <a href="https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/">How to Generate Data Quality Rules for Microsoft Fabric with AI</a> appeared first on <a href="https://www.datagaps.com">Datagaps | Gen AI-Powered Automated Cloud Data Testing</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="63199" class="elementor elementor-63199" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-a3771bc e-flex e-con-boxed e-con e-parent" data-id="a3771bc" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-1fd7e36 elementor-widget elementor-widget-text-editor" data-id="1fd7e36" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW26841463 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW26841463 BCX8">AI-assisted data quality rule generation in </span><span class="NormalTextRun SpellingErrorV2Themed SCXW26841463 BCX8">Datagaps</span><span class="NormalTextRun SCXW26841463 BCX8"> is a prompt-driven workflow that creates validation rules, including rule names, descriptions, quality dimensions and SQL logic, for selected Microsoft Fabric tables and columns, then executes them to produce column-level DQ scores, pass/fail results and sample bad records.</span></span><span class="EOP Selected SCXW26841463 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-27eeb44 datagaps-tldr elementor-widget elementor-widget-text-editor" data-id="27eeb44" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Key Takeaways</strong></p><ul><li><span data-contrast="auto">Successful Fabric pipelines do not guarantee output trustworthy enough for reporting, operations and AI use cases.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Defining checks manually across hundreds of tables and thousands of columns is hard to standardize and sustain.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Datagaps generates rules from selected columns plus a generic prompt and a business-specific domain prompt.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Each AI-generated rule includes SQL logic and dimension mapping and should be reviewed before execution.</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Results show column-wise DQ scores, rule pass/fail outcomes, sample bad records and an overall run summary.</span><span data-ccp-props="{}"> </span></li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-2bb8934 elementor-widget elementor-widget-text-editor" data-id="2bb8934" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2;" href="https://www.datagaps.com/data-ops-suite-trial-request/" target="_blank" rel="noopener"><span class="TextRun SCXW176770195 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW176770195 BCX8">See how </span><span class="NormalTextRun SpellingErrorV2Themed SCXW176770195 BCX8">Datagaps</span><span class="NormalTextRun SCXW176770195 BCX8"> generates data quality rules for your Fabric tables →</span></span></a></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-9e11135 elementor-widget elementor-widget-text-editor" data-id="9e11135" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW195147135 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW195147135 BCX8">To generate <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-quality-monitoring-tools/" target="_blank" rel="noopener">data quality rules</a></span> for Microsoft Fabric at scale, connect Fabric as a data source in </span><span class="NormalTextRun SpellingErrorV2Themed SCXW195147135 BCX8">Datagaps</span><span class="NormalTextRun SCXW195147135 BCX8">, create a data model over the tables you want to validate, and use the Data Rules Wizard&#8217;s AI-assisted mode to generate rules from your selected columns and prompts. You then review the rules, run </span><span class="NormalTextRun SCXW195147135 BCX8">validations</span><span class="NormalTextRun SCXW195147135 BCX8"> and use the DQ score and bad-record samples to prioritize remediation.</span></span><span class="EOP Selected SCXW195147135 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-ddcad15 e-flex e-con-boxed e-con e-parent" data-id="ddcad15" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-909654c elementor-widget elementor-widget-heading" data-id="909654c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Why does data quality matter once Microsoft Fabric pipelines are running? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f269997 elementor-widget elementor-widget-text-editor" data-id="f269997" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW184782545 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW184782545 BCX8">As organizations adopt <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/microsoft-fabric-testing-automation/" target="_blank" rel="noopener">Microsoft Fabric</a></span> to modernize analytics and accelerate AI-driven use cases, the focus quickly shifts from pipeline execution to outcome reliability. Pipelines may run successfully, but the real question is whether the output is trustworthy enough for reporting, operations, and AI experiences.</span></span><span class="EOP Selected SCXW184782545 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-d15438e elementor-widget elementor-widget-text-editor" data-id="d15438e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW102124142 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW102124142 BCX8">This becomes even more important when Fabric data powers automated dashboards and natural language use cases such as text to SQL. In these scenarios, quality issues can silently propagate and impact decisions at scale.</span></span><span class="EOP Selected SCXW102124142 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-9498265 elementor-widget elementor-widget-text-editor" data-id="9498265" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="NormalTextRun SpellingErrorV2Themed SCXW249505822 BCX8">Datagaps</span><span class="NormalTextRun SCXW249505822 BCX8"> helps address this by providing a structured workflow for data quality and validation, including AI-assisted rule generation to accelerate coverage and improve consistency.</span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-604e192 e-flex e-con-boxed e-con e-parent" data-id="604e192" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3445573 elementor-widget elementor-widget-heading" data-id="3445573" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Why is data quality rule generation difficult in Fabric environments? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-f760d4f elementor-widget elementor-widget-text-editor" data-id="f760d4f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW35418886 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW35418886 BCX8">Rule generation is difficult because enterprise data estates often include hundreds of tables and thousands of columns, each with business meaning and validation expectations. Defining and </span><span class="NormalTextRun SCXW35418886 BCX8">maintaining</span><span class="NormalTextRun SCXW35418886 BCX8"> tests manually across that footprint is time-consuming, difficult to standardize, and hard to sustain as schemas evolve.</span></span><span class="EOP Selected SCXW35418886 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-748de4c elementor-widget elementor-widget-text-editor" data-id="748de4c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW225488128 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW225488128 BCX8">Many projects follow layered architectures across environments like DEV, STG, and PROD. Data changes at each layer due to ingestion and transformations. To </span><span class="NormalTextRun SCXW225488128 BCX8">maintain</span><span class="NormalTextRun SCXW225488128 BCX8"> trust, teams typically need validation at table level and column level, and sometimes across layers.</span></span><span class="EOP Selected SCXW225488128 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-b16fb31 elementor-widget elementor-widget-heading" data-id="b16fb31" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<p class="elementor-heading-title elementor-size-default">A typical gold layer might include dozens of tables with dozens of columns per table. Common checks include:</p>				</div>
				</div>
				<div class="elementor-element elementor-element-269c004 elementor-widget elementor-widget-text-editor" data-id="269c004" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<ul><li><span data-contrast="auto">Numeric constraints such as revenue greater than zero</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Format checks such as valid email patterns</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Null checks for required attributes</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Uniqueness checks to prevent duplicate keys</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Cross-table consistency checks to ensure reconciliation across datasets</span><span data-ccp-props="{}"> </span></li></ul><p><span data-contrast="auto">Manually implementing these checks at scale can become difficult to manage, especially when new columns appear and business logic changes.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-b5672e4 elementor-widget elementor-widget-heading" data-id="b5672e4" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">How do you generate and validate data quality rules for Microsoft Fabric in Datagaps? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-ba1a932 elementor-widget elementor-widget-text-editor" data-id="ba1a932" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW262476204 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW262476204 BCX8">The end-to-end workflow has ten steps: connect Fabric, open the <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-quality-monitoring-tools/" target="_blank" rel="noopener">Data Quality section</a></span>, build a data model, baseline the DQ score, create rules with the Data Rules Wizard, generate them with AI, scope them with prompts, review them, run validations, and interpret the results.</span></span><span class="EOP Selected SCXW262476204 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-73bc907 elementor-widget elementor-widget-icon-box" data-id="73bc907" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Step 1: Connect Microsoft Fabric as a data source 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						Start by adding Microsoft Fabric as a data source in Datagaps using the available connectors and the integration flow. 					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-6b2b2ad elementor-widget elementor-widget-image" data-id="6b2b2ad" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1790" height="800" src="https://www.datagaps.com/wp-content/uploads/Modern-Data-Sources-Connector-Dashboard-1.png" class="attachment-full size-full wp-image-63428" alt="Modern Data Sources Connector Dashboard" srcset="https://www.datagaps.com/wp-content/uploads/Modern-Data-Sources-Connector-Dashboard-1.png 1790w, https://www.datagaps.com/wp-content/uploads/Modern-Data-Sources-Connector-Dashboard-1-300x134.png 300w, https://www.datagaps.com/wp-content/uploads/Modern-Data-Sources-Connector-Dashboard-1-1024x458.png 1024w, https://www.datagaps.com/wp-content/uploads/Modern-Data-Sources-Connector-Dashboard-1-768x343.png 768w, https://www.datagaps.com/wp-content/uploads/Modern-Data-Sources-Connector-Dashboard-1-1536x686.png 1536w" sizes="(max-width: 1790px) 100vw, 1790px" />											<figcaption class="widget-image-caption wp-caption-text">Connect Microsoft Fabric as a data source using available connectors</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-35781c9 elementor-widget elementor-widget-icon-box" data-id="35781c9" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Step 2: Move to the Data Quality section to access DQ capabilities						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						After the Fabric integration is set up, move to the Data Quality section in Datagaps. This area provides multiple data quality related capabilities, such as:  					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-fcb2e06 elementor-widget elementor-widget-text-editor" data-id="fcb2e06" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<ul><li><span data-contrast="auto">Viewing and generating a </span><b><span data-contrast="auto">Data Quality Score</span></b><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Exploring </span><b><span data-contrast="auto">Data Lineage</span></b><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Reviewing data quality issues and related artifacts</span><span data-ccp-props="{}"> </span></li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-aa24450 elementor-widget elementor-widget-text-editor" data-id="aa24450" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW57799901 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW57799901 BCX8">This step is important because it is where you begin the quality workflow before building rules.</span></span><span class="EOP Selected SCXW57799901 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-d6a10ec elementor-widget elementor-widget-image" data-id="d6a10ec" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img decoding="async" src="https://www.datagaps.com/wp-content/uploads/elementor/thumbs/Data-quality-sections-for-DQ-Score-rv7seeo4ugzmvk7w51gibr8mz21lhwwv158py0myb4.png" title="Data quality sections for DQ Score" alt="Data quality sections for DQ Score" loading="lazy" />											<figcaption class="widget-image-caption wp-caption-text">The Data Quality section provides access to DQ Score, Data Lineage, and other quality workflows.</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-b36eca2 elementor-widget elementor-widget-icon-box" data-id="b36eca2" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Step 3: Create a data model and select tables						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						Create a data model as the base layer on which rules are generated and executed. Select the Fabric tables you want to validate. This can scale from a single table to hundreds depending on your scope.					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-d2ee5e1 elementor-widget elementor-widget-image" data-id="d2ee5e1" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img decoding="async" src="https://www.datagaps.com/wp-content/uploads/elementor/thumbs/Data-Model-to-organise-tables-for-rules-s3-rv7sherkoezci9sq3a35t77keivaiy04av1sxn8dlw.png" title="Data Model to organise tables for rules" alt="Data Model to organise tables for rules" loading="lazy" />											<figcaption class="widget-image-caption wp-caption-text">Create a data model to organize tables for rule creation and scoring.</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-501c459 elementor-widget elementor-widget-icon-box" data-id="501c459" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Step 4: Generate and review baseline DQ score and trends						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						Once the data model is set up, generate the DQ score to establish a baseline. Review trends and drilldowns to understand quality distribution across tables and dimensions.					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-e3e8bea elementor-widget elementor-widget-image" data-id="e3e8bea" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img decoding="async" src="https://www.datagaps.com/wp-content/uploads/elementor/thumbs/Generate-and-review-DQ-Score-rv7sohhu4ipck1239adv4ptwnwuxz579xfknes0tsc.png" title="Generate and review DQ Score" alt="Generate and review DQ Score" loading="lazy" />											<figcaption class="widget-image-caption wp-caption-text"></figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-603f30b elementor-widget elementor-widget-icon-box" data-id="603f30b" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Step 5: Create rules using the Data Rules Wizard 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						Datagaps provides a Data Rules Wizard that supports both manual rule definition and AI-assisted rule generation.					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-b409e6b elementor-widget elementor-widget-image" data-id="b409e6b" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img decoding="async" src="https://www.datagaps.com/wp-content/uploads/elementor/thumbs/Data-rules-wizard-rv7srzg7kblcob8552id5lsqorulnojrfpm2hhyelk.png" title="Data rules wizard" alt="Data rules wizard" loading="lazy" />											<figcaption class="widget-image-caption wp-caption-text">Data rules wizard</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-5426b93 elementor-widget elementor-widget-icon-box" data-id="5426b93" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Step 6: Use AI-assisted rule generation to accelerate rule creation						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						Switch the rule type to the AI-assisted mode and define execution criteria like success conditions and severity. This enables Datagaps to generate rule suggestions based on your selected columns and the prompt you provide. 					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-4176210 elementor-arrows-position-outside elementor-pagination-position-outside elementor-widget elementor-widget-image-carousel" data-id="4176210" data-element_type="widget" data-e-type="widget" data-settings="{&quot;slides_to_show&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;both&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;effect&quot;:&quot;slide&quot;,&quot;speed&quot;:500}" data-widget_type="image-carousel.default">
				<div class="elementor-widget-container">
							<div class="elementor-image-carousel-wrapper swiper" role="region" aria-roledescription="carousel" aria-label="Image Carousel" dir="ltr">
			<div class="elementor-image-carousel swiper-wrapper" aria-live="off">
								<div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="1 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/S61-AI-Rules-generation-1536x755.png" alt="Select Generative AI Rule to generate rules using a prompt-driven workflow." /><figcaption class="elementor-image-carousel-caption">Select Generative AI Rule to generate rules using a prompt-driven workflow.</figcaption></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="2 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/S62-defining-success-criteria-and-severity-1536x426.png" alt="Define success criteria and severity to standardize rule outcomes." /><figcaption class="elementor-image-carousel-caption">Define success criteria and severity to standardize rule outcomes.</figcaption></figure></div>			</div>
												<div class="elementor-swiper-button elementor-swiper-button-prev" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-left"></i>					</div>
					<div class="elementor-swiper-button elementor-swiper-button-next" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-right"></i>					</div>
				
									<div class="swiper-pagination"></div>
									</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-607fcfd elementor-widget elementor-widget-icon-box" data-id="607fcfd" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Step 7: Select tables and columns, then provide prompts 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						Select the table and columns to include in rule generation. Use two prompts to improve output quality: <br><br>

1. A generic prompt covering standard validations across most columns <br><br>

2. A domain prompt covering business specific rules for critical fields 					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-75fac0d elementor-arrows-position-outside elementor-pagination-position-outside elementor-widget elementor-widget-image-carousel" data-id="75fac0d" data-element_type="widget" data-e-type="widget" data-settings="{&quot;slides_to_show&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;both&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;effect&quot;:&quot;slide&quot;,&quot;speed&quot;:500}" data-widget_type="image-carousel.default">
				<div class="elementor-widget-container">
							<div class="elementor-image-carousel-wrapper swiper" role="region" aria-roledescription="carousel" aria-label="Image Carousel" dir="ltr">
			<div class="elementor-image-carousel swiper-wrapper" aria-live="off">
								<div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="1 of 3"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/S71-Select-the-table-and-columns-to-scope-AI-rule-generation-1536x702.png" alt="Select the table and columns to scope AI rule generation." /><figcaption class="elementor-image-carousel-caption">Select the table and columns to scope AI rule generation.</figcaption></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="2 of 3"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/S72-Provide-prompts-combining-generic-checks-and-domain-logic-1536x314.png" alt="Provide prompts combining generic checks and domain logic" /><figcaption class="elementor-image-carousel-caption">Provide prompts combining generic checks and domain logic</figcaption></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="3 of 3"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/S73-Rules-generated-automatically-based-on-selected-scope-and-prompts-1536x721.png" alt="Rules are generated automatically based on selected scope and prompts" /><figcaption class="elementor-image-carousel-caption">Rules are generated automatically based on selected scope and prompts</figcaption></figure></div>			</div>
												<div class="elementor-swiper-button elementor-swiper-button-prev" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-left"></i>					</div>
					<div class="elementor-swiper-button elementor-swiper-button-next" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-right"></i>					</div>
				
									<div class="swiper-pagination"></div>
									</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-9d6cf49 elementor-widget elementor-widget-icon-box" data-id="9d6cf49" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Step 8: Review AI-generated rules before execution 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						AI-generated rules typically include rule names, descriptions, mapped quality dimensions, and SQL logic that identifies bad records according to the chosen success criteria. Review these rules before running them to ensure they align with internal standards and domain expectations. 					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-a9a006c elementor-arrows-position-outside elementor-pagination-position-outside elementor-widget elementor-widget-image-carousel" data-id="a9a006c" data-element_type="widget" data-e-type="widget" data-settings="{&quot;slides_to_show&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;both&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;effect&quot;:&quot;slide&quot;,&quot;speed&quot;:500}" data-widget_type="image-carousel.default">
				<div class="elementor-widget-container">
							<div class="elementor-image-carousel-wrapper swiper" role="region" aria-roledescription="carousel" aria-label="Image Carousel" dir="ltr">
			<div class="elementor-image-carousel swiper-wrapper" aria-live="off">
								<div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="1 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/S81-Review-generated-rules-including-SQL-logic-and-dimension-mapping-before-execution-1536x695.png" alt="Review generated rules, including SQL logic and dimension mapping, before execution." /><figcaption class="elementor-image-carousel-caption">Review generated rules, including SQL logic and dimension mapping, before execution</figcaption></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="2 of 2"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/S82-Rules-are-centrally-managed-within-the-data-model-for-review-and-execution-1536x743.png" alt="Rules are centrally managed within the data model for review and execution." /><figcaption class="elementor-image-carousel-caption">Rules are centrally managed within the data model for review and execution</figcaption></figure></div>			</div>
												<div class="elementor-swiper-button elementor-swiper-button-prev" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-left"></i>					</div>
					<div class="elementor-swiper-button elementor-swiper-button-next" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-right"></i>					</div>
				
									<div class="swiper-pagination"></div>
									</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-1e872cc elementor-widget elementor-widget-icon-box" data-id="1e872cc" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Step 9: Configure and run validations						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						Before execution, configure how the run should behave, including where to store bad records, parallel execution settings, and sampling limits for captured bad data.					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-874695b elementor-widget elementor-widget-image" data-id="874695b" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img decoding="async" src="https://www.datagaps.com/wp-content/uploads/elementor/thumbs/Configure-execution-settings-rv7tajrgjiv9clvcsgpxts4haghag9vvx2a07i1rv2.png" title="Configure execution settings and where bad records should be stored." alt="Configure execution settings and where bad records should be stored." loading="lazy" />											<figcaption class="widget-image-caption wp-caption-text">Configure execution settings and where bad records should be stored.</figcaption>
										</figure>
									</div>
				</div>
				<div class="elementor-element elementor-element-b881419 elementor-widget elementor-widget-icon-box" data-id="b881419" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<span  >
							Step 10: Interpret results and prioritize remediation 						</span>
					</h3>
				
									<p class="elementor-icon-box-description">
						After execution, results can be reviewed across multiple levels, including: 					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-98cc803 elementor-widget elementor-widget-text-editor" data-id="98cc803" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<ul><li><span data-contrast="auto">Column-wise DQ score based on executed rules</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Rule-level pass or fail outcomes</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Sample bad records for investigation</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Summary view across rules and columns</span><span data-ccp-props="{}"> </span></li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-766b857 elementor-widget elementor-widget-text-editor" data-id="766b857" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW185869050 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW185869050 BCX8"><strong>Work through the results top-down:</strong> start with the high-level scoring view, then review one passing rule and one failing rule, and close with the overall summary.</span></span><span class="EOP Selected SCXW185869050 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-75a1a0a elementor-arrows-position-outside elementor-pagination-position-outside elementor-widget elementor-widget-image-carousel" data-id="75a1a0a" data-element_type="widget" data-e-type="widget" data-settings="{&quot;slides_to_show&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;both&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;effect&quot;:&quot;slide&quot;,&quot;speed&quot;:500}" data-widget_type="image-carousel.default">
				<div class="elementor-widget-container">
							<div class="elementor-image-carousel-wrapper swiper" role="region" aria-roledescription="carousel" aria-label="Image Carousel" dir="ltr">
			<div class="elementor-image-carousel swiper-wrapper" aria-live="off">
								<div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="1 of 4"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/S101-Evaluate-quality-at-the-column-level-based-on-executed-rules-1536x534.png" alt="Evaluate quality at the column level based on executed rules." /><figcaption class="elementor-image-carousel-caption">Evaluate quality at the column level based on executed rules.</figcaption></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="2 of 4"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/S102-Rule-reports-provide-pass-status-counts-and-execution-details-1536x664.png" alt="Rule reports provide pass status, counts, and execution details." /><figcaption class="elementor-image-carousel-caption">Rule reports provide pass status, counts, and execution details.</figcaption></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="3 of 4"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/S103-Failures-highlight-bad-records-and-provide-samples-to-accelerate-remediation-1536x971.png" alt="Failures highlight bad records and provide samples to accelerate remediation." /><figcaption class="elementor-image-carousel-caption">Failures highlight bad records and provide samples to accelerate remediation</figcaption></figure></div><div class="swiper-slide" role="group" aria-roledescription="slide" aria-label="4 of 4"><figure class="swiper-slide-inner"><img decoding="async" class="swiper-slide-image" src="https://www.datagaps.com/wp-content/uploads/S104-Run-summary-consolidated-results-across-rules-columns-and-dimensions-1536x827.png" alt="Run summary consolidates results across rules, columns, and dimensions." /><figcaption class="elementor-image-carousel-caption">Run summary consolidates results across rules, columns, and dimensions.</figcaption></figure></div>			</div>
												<div class="elementor-swiper-button elementor-swiper-button-prev" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-left"></i>					</div>
					<div class="elementor-swiper-button elementor-swiper-button-next" role="button" tabindex="0">
						<i aria-hidden="true" class="eicon-chevron-right"></i>					</div>
				
									<div class="swiper-pagination"></div>
									</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-db332aa elementor-widget elementor-widget-heading" data-id="db332aa" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">How can teams operationalize AI-generated data quality rules in production? </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-37b736a elementor-widget elementor-widget-text-editor" data-id="37b736a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-contrast="auto">To operationalize this at enterprise scale, standardize how rules are generated, reviewed and gated:</span><span data-ccp-props="{}"> </span></p><ul><li><span data-contrast="auto">Standardize prompts for repeatable rule generation across datasets</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Maintain domain prompts in a shared repository per business domain</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Add a review workflow for AI-generated rules, especially for cross-table logic</span><span data-ccp-props="{}"> </span></li><li><span data-contrast="auto">Track DQ score trends and define thresholds for release gates</span><span data-ccp-props="{}"> </span><span data-contrast="auto">Integrate validation runs into pipeline schedules for continuous monitoring</span><span data-ccp-props="{}"> </span></li><li><span class="TextRun SCXW108358148 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW108358148 BCX8">Integrate validation runs into pipeline schedules for continuous monitoring</span></span><span class="EOP Selected SCXW108358148 BCX8" data-ccp-props="{}"> </span></li><li style="list-style-type: none;"> </li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-a367d05 elementor-widget elementor-widget-heading" data-id="a367d05" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Conclusion </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-e542658 elementor-widget elementor-widget-text-editor" data-id="e542658" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span class="TextRun SCXW181035878 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="auto"><span class="NormalTextRun SCXW181035878 BCX8">Microsoft Fabric enables fast analytics and AI experiences, but reliable outcomes depend on trustworthy data. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW181035878 BCX8">Datagaps</span><span class="NormalTextRun SCXW181035878 BCX8"> supports Fabric data quality workflows by helping teams generate rules faster, execute validations consistently, and interpret results with actionable detail. This reduces risk, improves reliability, and helps scale data quality practices across teams and environments.</span></span><span class="EOP Selected SCXW181035878 BCX8" data-ccp-props="{}"> </span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-bf2f76e elementor-widget elementor-widget-text-editor" data-id="bf2f76e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="text-decoration: underline;"><span style="color: #1967d2; text-decoration: underline;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/request-a-demo/" target="_blank" rel="noopener"><span class="TextRun SCXW265958618 BCX8" lang="EN-IN" xml:lang="EN-IN" data-contrast="none"><span class="NormalTextRun SCXW265958618 BCX8">See how </span><span class="NormalTextRun SpellingErrorV2Themed SCXW265958618 BCX8">Datagaps</span><span class="NormalTextRun SCXW265958618 BCX8"> AI rule generation scores your Fabric tables → </span></span><span class="EOP Selected SCXW265958618 BCX8" data-ccp-props="{}"> </span></a></span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-32908ef elementor-widget elementor-widget-heading" data-id="32908ef" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Frequently Asked Questions </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-923e752 elementor-widget elementor-widget-eael-adv-accordion" data-id="923e752" data-element_type="widget" data-e-type="widget" data-widget_type="eael-adv-accordion.default">
				<div class="elementor-widget-container">
					            <div class="eael-adv-accordion" id="eael-adv-accordion-923e752" data-scroll-on-click="no" data-scroll-speed="300" data-accordion-id="923e752" data-accordion-type="accordion" data-toogle-speed="300">
            <div class="eael-accordion-list">
					<div id="faq-1" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="1" aria-controls="elementor-tab-content-1531"><h3 class="eael-accordion-tab-title">How does Datagaps generate data quality rules for Microsoft Fabric tables? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1531" class="eael-accordion-content clearfix" data-tab="1" aria-labelledby="faq-1"><p><span class="TextRun SCXW197349388 BCX8"><span class="NormalTextRun SpellingErrorV2Themed SCXW197349388 BCX8">Datagaps</span><span class="NormalTextRun SCXW197349388 BCX8"> generates rules through the AI-assisted mode of its Data Rules Wizard. You select the Fabric table and columns, define success criteria and severity, and provide a generic prompt plus a domain prompt. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW197349388 BCX8">Datagaps</span><span class="NormalTextRun SCXW197349388 BCX8"> then returns rule suggestions with rule names, descriptions, mapped quality </span><span class="NormalTextRun SCXW197349388 BCX8">dimensions</span><span class="NormalTextRun SCXW197349388 BCX8"> and SQL logic that </span><span class="NormalTextRun SCXW197349388 BCX8">identifies</span><span class="NormalTextRun SCXW197349388 BCX8"> bad records.</span></span><span class="EOP Selected SCXW197349388 BCX8"> </span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-2" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="2" aria-controls="elementor-tab-content-1532"><h3 class="eael-accordion-tab-title">What data quality checks are typical for a Microsoft Fabric gold layer?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1532" class="eael-accordion-content clearfix" data-tab="2" aria-labelledby="faq-2"><p><span class="TextRun SCXW99668558 BCX8"><span class="NormalTextRun SCXW99668558 BCX8">Common checks include numeric constraints such as revenue greater than zero, format checks such as valid email patterns, null checks for required attributes, uniqueness checks to prevent duplicate keys, and cross-table consistency checks that reconcile datasets. A gold layer often holds dozens of tables with dozens of columns each, which is why manual implementation becomes hard to manage.</span></span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-3" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="3" aria-controls="elementor-tab-content-1533"><h3 class="eael-accordion-tab-title">Should AI-generated data quality rules be reviewed before they run?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1533" class="eael-accordion-content clearfix" data-tab="3" aria-labelledby="faq-3"><p><span class="TextRun SCXW47403614 BCX8"><span class="NormalTextRun SCXW47403614 BCX8">Yes. AI-generated rules should be reviewed before execution to confirm they align with internal standards and domain expectations. Review covers the rule name, description, mapped </span><span class="NormalTextRun SCXW47403614 BCX8">dimension</span><span class="NormalTextRun SCXW47403614 BCX8"> and SQL logic. For production adoption, add a formal review workflow, especially for cross-table logic, and keep domain prompts in a shared repository per business domain.</span></span><span class="EOP Selected SCXW47403614 BCX8"> </span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-4" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="4" aria-controls="elementor-tab-content-1534"><h3 class="eael-accordion-tab-title">What can you configure before running data quality validations on Fabric data? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1534" class="eael-accordion-content clearfix" data-tab="4" aria-labelledby="faq-4"><p><span class="TextRun SCXW15312659 BCX8"><span class="NormalTextRun SCXW15312659 BCX8">Before execution, you configure how the run behaves: where bad records should be stored, parallel execution settings, and sampling limits for the bad data that is captured. These settings are applied to the rules managed centrally within the data model, so validations run consistently each time they are triggered.</span></span></p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-5" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="5" aria-controls="elementor-tab-content-1535"><h3 class="eael-accordion-tab-title">How do you interpret Datagaps data quality results for Microsoft Fabric? </h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-1535" class="eael-accordion-content clearfix" data-tab="5" aria-labelledby="faq-5"><p><span class="NormalTextRun SCXW220250160 BCX8">Results are reviewed at several levels: a column-wise DQ score based on executed rules, rule-level pass or fail outcomes, sample bad records for investigation, and a summary across rules, </span><span class="NormalTextRun SCXW220250160 BCX8">columns</span><span class="NormalTextRun SCXW220250160 BCX8"> and dimensions. Start with the high-level scoring view, then examine a passing and a failing rule, and finish with the overall run summary.</span></p></div>
					</div></div>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-62980c3 e-flex e-con-boxed e-con e-parent" data-id="62980c3" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-1ac3fec e-con-full e-flex e-con e-child" data-id="1ac3fec" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-f5d35f8 e-con-full e-flex e-con e-child" data-id="f5d35f8" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-184c126 elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading" data-id="184c126" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<span class="elementor-heading-title elementor-size-default">Get Started Today</span>				</div>
				</div>
				<div class="elementor-element elementor-element-4a9257d elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading" data-id="4a9257d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Talk to a datagaps expert</h2>				</div>
				</div>
		<div class="elementor-element elementor-element-e2d718a e-con-full e-flex e-con e-child" data-id="e2d718a" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-0b52229 elementor-widget__width-auto home-btn-new elementor-widget elementor-widget-button" data-id="0b52229" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.datagaps.com/request-a-demo/" target="_blank">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Get a Demo</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-7b1b3d1 elementor-widget__width-auto home-btn-new elementor-widget elementor-widget-button" data-id="7b1b3d1" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.datagaps.com/contact-us/" target="_blank">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Contact Us</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-5da6591 e-flex e-con-boxed e-con e-parent" data-id="5da6591" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a6d9f5b elementor-widget elementor-widget-html" data-id="a6d9f5b" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://www.datagaps.com/#organization",
      "name": "Datagaps",
      "url": "https://www.datagaps.com/",
      "logo": {
        "@type": "ImageObject",
        "@id": "https://www.datagaps.com/#logo",
        "url": "https://www.datagaps.com/wp-content/uploads/datagaps-logo-2.svg",
        "contentUrl": "https://www.datagaps.com/wp-content/uploads/datagaps-logo-2.svg"
      },
      "sameAs": [
        "https://www.linkedin.com/company/datagaps/",
        "https://twitter.com/datagapsteam",
        "https://www.youtube.com/user/datagaps",
        "https://www.instagram.com/datagapsinc/",
        "https://www.facebook.com/datagapsinc"
      ]
    },
    {
      "@type": "Person",
      "@id": "https://www.datagaps.com/#/person/rajmohan-achanta",
      "name": "RajMohan Achanta",
      "jobTitle": "Associate Product Manager",
      "description": "Associate Product Manager at Datagaps. Shapes the product experience across ETL Validator, BI Validator, and Data Quality Monitor.",
      "worksFor": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "url": "https://www.datagaps.com/blog/author/rajmohan/",
      "sameAs": [
        "https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/"
      ],
      "alternateName": "Raj Mohan Achanta",
      "image": "https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png"
    },
    {
      "@type": "Person",
      "@id": "https://www.datagaps.com/#/person/avinash-keshri",
      "name": "Avinash Keshri",
      "jobTitle": "Head, Product Marketing",
      "description": "Head of Product Marketing at Datagaps and IIM Bangalore alumnus. 13+ years of experience in commercializing AI and data platforms across global markets.",
      "worksFor": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "alumniOf": {
        "@type": "CollegeOrUniversity",
        "name": "Indian Institute of Management Bangalore"
      },
      "url": "https://www.linkedin.com/in/avinashkeshri-iimb/",
      "sameAs": [
        "https://www.linkedin.com/in/avinashkeshri-iimb/"
      ],
      "image": "https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png"
    },
    {
      "@type": "BlogPosting",
      "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#blogposting",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/"
      },
      "url": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/",
      "headline": "How to Generate Data Quality Rules for Microsoft Fabric with AI",
      "alternativeHeadline": "Datagaps strengthens trust in Microsoft Fabric with AI-driven data quality rule generation",
      "description": "Learn how to generate and validate data quality rules for Microsoft Fabric in Datagaps using AI-assisted rule generation: connect Fabric, build a data model, scope prompts, review SQL rules, run validations and interpret DQ scores.",
      "inLanguage": "en",
      "datePublished": "2026-10-21T09:09:26+00:00",
      "dateModified": "2026-10-21T11:52:41+00:00",
      "author": [
        {
          "@id": "https://www.datagaps.com/#/person/rajmohan-achanta"
        },
        {
          "@id": "https://www.datagaps.com/#/person/avinash-keshri"
        }
      ],
      "publisher": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "image": {
        "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#featured-image"
      },
      "articleSection": "Data Quality",
      "keywords": "Microsoft Fabric, Data Quality, Data Validation, DataOps, AI Rule Generation",
      "about": [
        {
          "@type": "Thing",
          "name": "Microsoft Fabric"
        },
        {
          "@type": "Thing",
          "name": "Data quality"
        }
      ],
      "associatedMedia": [
        {
          "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-01-connect-fabric"
        },
        {
          "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-02-data-quality-section"
        },
        {
          "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-03-data-model"
        },
        {
          "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-04-baseline-dq-score"
        },
        {
          "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-05-data-rules-wizard"
        },
        {
          "@id": "https://www.datagaps.com/blog/how-to-generate-data-quality-rules-for-microsoft-fabric-with-ai/#img-06-generative-ai-rule"
        },
        {
          "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-07-success-criteria-severity"
        },
        {
          "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-08-select-columns"
        },
        {
          "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-09-prompts"
        },
        {
          "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-10-generating-rules"
        },
        {
          "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-11-review-rules"
        },
        {
          "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-12-rules-in-data-model"
        },
        {
          "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-13-run-configuration"
        },
        {
          "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-14-score-by-column"
        },
        {
          "@id": "https://www.datagaps.com/blogai-data-quality-rules-microsoft-fabric/#img-15-passing-rule-report"
        },
        {
          "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-16-failing-rule-report"
        },
        {
          "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-17-run-summary"
        }
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#featured-image",
      "url": "https://www.datagaps.com/wp-content/uploads/Data-Quality-rules-for-MF-data-banner-1024x536.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Data-Quality-rules-for-MF-data-banner-1024x536.webp",
      "width": 1024,
      "height": 536,
      "caption": "How to Generate Data Quality Rules for Microsoft Fabric with AI",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-01-connect-fabric",
      "url": "https://www.datagaps.com/wp-content/uploads/Modern-Data-Sources-Connector-Dashboard.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Modern-Data-Sources-Connector-Dashboard.png",
      "name": "Modern Data Sources Connector Dashboard",
      "caption": "Connect Microsoft Fabric as a data source using available connectors",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/png"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-02-data-quality-section",
      "url": "https://www.datagaps.com/wp-content/uploads/Data-quality-sections-for-DQ-Score.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Data-quality-sections-for-DQ-Score.webp",
      "name": "Data quality sections for DQ Score",
      "caption": "The Data Quality section provides access to DQ Score, Data Lineage, and other quality workflows.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-03-data-model",
      "url": "https://www.datagaps.com/wp-content/uploads/Data-Model-to-organise-tables-for-rules-s3.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Data-Model-to-organise-tables-for-rules-s3.webp",
      "name": "Data Model to organise tables for rules",
      "caption": "Create a data model to organize tables for rule creation and scoring.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-04-baseline-dq-score",
      "url": "https://www.datagaps.com/wp-content/uploads/Generate-and-review-DQ-Score.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Generate-and-review-DQ-Score.webp",
      "name": "Generate and review DQ Score",
      "caption": "Generate and review DQ Score",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-05-data-rules-wizard",
      "url": "https://www.datagaps.com/wp-content/uploads/Data-rules-wizard.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Data-rules-wizard.webp",
      "name": "Data rules wizard",
      "caption": "Data rules wizard",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-06-generative-ai-rule",
      "url": "https://www.datagaps.com/wp-content/uploads/S61-AI-Rules-generation-1.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S61-AI-Rules-generation-1.webp",
      "name": "Select Generative AI Rule to generate rules using a prompt-driven workflow",
      "caption": "Select Generative AI Rule to generate rules using a prompt-driven workflow.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-07-success-criteria-severity",
      "url": "https://www.datagaps.com/wp-content/uploads/S62-defining-success-criteria-and-severity.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S62-defining-success-criteria-and-severity.webp",
      "name": "Define success criteria and severity to standardize rule outcomes",
      "caption": "Define success criteria and severity to standardize rule outcomes.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-08-select-columns",
      "url": "https://www.datagaps.com/wp-content/uploads/S71-Select-the-table-and-columns-to-scope-AI-rule-generation.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S71-Select-the-table-and-columns-to-scope-AI-rule-generation.webp",
      "name": "Select the table and columns to scope AI rule generation",
      "caption": "Select the table and columns to scope AI rule generation",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-09-prompts",
      "url": "https://www.datagaps.com/wp-content/uploads/S72-Provide-prompts-combining-generic-checks-and-domain-logic.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S72-Provide-prompts-combining-generic-checks-and-domain-logic.webp",
      "name": "Provide prompts combining generic checks and domain logic",
      "caption": "Provide prompts combining generic checks and domain logic",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-10-generating-rules",
      "url": "https://www.datagaps.com/wp-content/uploads/S73-Rules-generated-automatically-based-on-selected-scope-and-prompts.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S73-Rules-generated-automatically-based-on-selected-scope-and-prompts.webp",
      "name": "Rules generated automatically based on selected scope and prompts",
      "caption": "Rules generated automatically based on selected scope and prompts",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-11-review-rules",
      "url": "https://www.datagaps.com/wp-content/uploads/S81-Review-generated-rules-including-SQL-logic-and-dimension-mapping-before-execution.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S81-Review-generated-rules-including-SQL-logic-and-dimension-mapping-before-execution.webp",
      "name": "Review generated rules, including SQL logic and dimension mapping, before execution",
      "caption": "Review generated rules, including SQL logic and dimension mapping, before execution",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-12-rules-in-data-model",
      "url": "https://www.datagaps.com/wp-content/uploads/S82-Rules-are-centrally-managed-within-the-data-model-for-review-and-execution.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S82-Rules-are-centrally-managed-within-the-data-model-for-review-and-execution.webp",
      "name": "Rules are centrally managed within the data model for review and execution",
      "caption": "Rules are centrally managed within the data model for review and execution",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-13-run-configuration",
      "url": "https://www.datagaps.com/wp-content/uploads/Configure-execution-settings.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Configure-execution-settings.webp",
      "name": "Configure execution settings",
      "caption": "Configure execution settings and where bad records should be stored.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-14-score-by-column",
      "url": "https://www.datagaps.com/wp-content/uploads/S101-Evaluate-quality-at-the-column-level-based-on-executed-rules.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S101-Evaluate-quality-at-the-column-level-based-on-executed-rules.webp",
      "name": "Evaluate quality at the column level based on executed rules",
      "caption": "Evaluate quality at the column level based on executed rules.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-15-passing-rule-report",
      "url": "https://www.datagaps.com/wp-content/uploads/S102-Rule-reports-provide-pass-status-counts-and-execution-details.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S102-Rule-reports-provide-pass-status-counts-and-execution-details.webp",
      "name": "Rule reports provide pass status, counts, and execution details",
      "caption": "Rule reports provide pass status, counts, and execution details.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-16-failing-rule-report",
      "url": "https://www.datagaps.com/wp-content/uploads/S103-Failures-highlight-bad-records-and-provide-samples-to-accelerate-remediation.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S103-Failures-highlight-bad-records-and-provide-samples-to-accelerate-remediation.webp",
      "name": "Failures highlight bad records and provide samples to accelerate remediation",
      "caption": "Failures highlight bad records and provide samples to accelerate remediation.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#img-17-run-summary",
      "url": "https://www.datagaps.com/wp-content/uploads/S104-Run-summary-consolidated-results-across-rules-columns-and-dimensions.webp",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/S104-Run-summary-consolidated-results-across-rules-columns-and-dimensions.webp",
      "name": "Run summary consolidated results across rules, columns, and dimensions",
      "caption": "Run summary consolidated results across rules, columns, and dimensions.",
      "creator": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "encodingFormat": "image/webp"
    },
    {
      "@type": "FAQPage",
      "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/#faq",
      "isPartOf": {
        "@id": "https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/"
      },
      "mainEntity": [
        {
          "@type": "Question",
          "name": "How does Datagaps generate data quality rules for Microsoft Fabric tables?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Datagaps generates rules through the AI-assisted mode of its Data Rules Wizard. You select the Fabric table and columns, define success criteria and severity, and provide a generic prompt plus a domain prompt. Datagaps then returns rule suggestions with rule names, descriptions, mapped quality dimensions and SQL logic that identifies bad records."
          }
        },
        {
          "@type": "Question",
          "name": "What data quality checks are typical for a Microsoft Fabric gold layer?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Common checks include numeric constraints such as revenue greater than zero, format checks such as valid email patterns, null checks for required attributes, uniqueness checks to prevent duplicate keys, and cross-table consistency checks that reconcile datasets. A gold layer often holds dozens of tables with dozens of columns each, which is why manual implementation becomes hard to manage."
          }
        },
        {
          "@type": "Question",
          "name": "Should AI-generated data quality rules be reviewed before they run?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. AI-generated rules should be reviewed before execution to confirm they align with internal standards and domain expectations. Review covers the rule name, description, mapped dimension and SQL logic. For production adoption, add a formal review workflow, especially for cross-table logic, and keep domain prompts in a shared repository per business domain."
          }
        },
        {
          "@type": "Question",
          "name": "What can you configure before running data quality validations on Fabric data?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Before execution, you configure how the run behaves: where bad records should be stored, parallel execution settings, and sampling limits for the bad data that is captured. These settings are applied to the rules managed centrally within the data model, so validations run consistently each time they are triggered."
          }
        },
        {
          "@type": "Question",
          "name": "How do you interpret Datagaps data quality results for Microsoft Fabric?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Results are reviewed at several levels: a column-wise DQ score based on executed rules, rule-level pass or fail outcomes, sample bad records for investigation, and a summary across rules, columns and dimensions. Start with the high-level scoring view, then examine a passing and a failing rule, and finish with the overall run summary."
          }
        }
      ]
    }
  ]
}
</script>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f8574ba e-flex e-con-boxed e-con e-parent" data-id="f8574ba" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-6b8079b e-con-full e-flex e-con e-child" data-id="6b8079b" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-86810af e-con-full e-flex e-con e-child" data-id="86810af" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-f437041 e-con-full e-flex e-con e-child" data-id="f437041" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-eaeece0 elementor-widget-laptop__width-initial elementor-widget elementor-widget-image" data-id="eaeece0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="150" height="150" src="https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png" class="attachment-thumbnail size-thumbnail wp-image-53799" alt="Raj Mohan Achanta" srcset="https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png 150w, https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-300x300.png 300w, https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta.png 504w" sizes="(max-width: 150px) 100vw, 150px" />															</div>
				</div>
		<div class="elementor-element elementor-element-ff250c2 e-con-full e-flex e-con e-child" data-id="ff250c2" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-f8a8b4d elementor-position-inline-end elementor-mobile-position-inline-start elementor-widget-laptop__width-initial elementor-view-default elementor-widget elementor-widget-icon-box" data-id="f8a8b4d" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/" class="elementor-icon" tabindex="-1" aria-label="RajMohan Achanta">
				<i aria-hidden="true" class="fab fa-linkedin-in"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h5 class="elementor-icon-box-title">
						<a href="https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/" >
							RajMohan Achanta						</a>
					</h5>
				
									<p class="elementor-icon-box-description">
						Associate Product Manager, Datagaps					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-d390cfb elementor-widget elementor-widget-text-editor" data-id="d390cfb" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Associate Product Manager at Datagaps. Shapes the product experience across ETL Validator, BI Validator, and Data Quality Monitor.</p>								</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-a7960cb e-con-full e-flex e-con e-child" data-id="a7960cb" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-66b97d0 elementor-widget-laptop__width-initial elementor-widget elementor-widget-image" data-id="66b97d0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="150" height="150" src="https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png" class="attachment-thumbnail size-thumbnail wp-image-54463" alt="Avinash&apos;s picture" srcset="https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png 150w, https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-300x300.png 300w, https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2.png 504w" sizes="(max-width: 150px) 100vw, 150px" />															</div>
				</div>
		<div class="elementor-element elementor-element-5e8a351 e-con-full e-flex e-con e-child" data-id="5e8a351" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-6e0b636 elementor-position-inline-end elementor-mobile-position-inline-start elementor-view-default elementor-widget elementor-widget-icon-box" data-id="6e0b636" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://www.linkedin.com/in/avinashkeshri-iimb/" class="elementor-icon" tabindex="-1" aria-label="Avinash Keshri">
				<i aria-hidden="true" class="fab fa-linkedin-in"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h5 class="elementor-icon-box-title">
						<a href="https://www.linkedin.com/in/avinashkeshri-iimb/" >
							Avinash Keshri						</a>
					</h5>
				
									<p class="elementor-icon-box-description">
						Head, Product Marketing					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-1e2303c elementor-widget elementor-widget-text-editor" data-id="1e2303c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Head of Product Marketing at Datagaps and IIM Bangalore alumnus. 13+ years of experience in commercializing AI and data platforms across global markets.</p>								</div>
				</div>
				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://www.datagaps.com/blog/ai-data-quality-rules-microsoft-fabric/">How to Generate Data Quality Rules for Microsoft Fabric with AI</a> appeared first on <a href="https://www.datagaps.com">Datagaps | Gen AI-Powered Automated Cloud Data Testing</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Datagaps vs iCEDQ: An Honest Guide to End-to-End Data Quality &#038; Validation</title>
		<link>https://www.datagaps.com/blog/datagaps-vs-icedq/</link>
					<comments>https://www.datagaps.com/blog/datagaps-vs-icedq/#respond</comments>
		
		<dc:creator><![CDATA[Raj Mohan Achanta]]></dc:creator>
		<pubDate>Fri, 16 Oct 2026 06:22:18 +0000</pubDate>
				<category><![CDATA[BI Testing]]></category>
		<category><![CDATA[Data Validation]]></category>
		<guid isPermaLink="false">https://www.datagaps.com/?p=62921</guid>

					<description><![CDATA[<p>Datagaps vs iCEDQ: An Overview Datagaps vs iCEDQ: Both platforms automate data validation at full volume, but iCEDQ stops at the data behind reports. Datagaps DataOps Suite also scores data quality, generates synthetic test data, and tests BI dashboards as users see them. It is named in two Gartner Market Guides. The Verdict at a [&#8230;]</p>
<p>The post <a href="https://www.datagaps.com/blog/datagaps-vs-icedq/">Datagaps vs iCEDQ: An Honest Guide to End-to-End Data Quality &#038; Validation</a> appeared first on <a href="https://www.datagaps.com">Datagaps | Gen AI-Powered Automated Cloud Data Testing</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="62921" class="elementor elementor-62921" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-8dcf290 e-flex e-con-boxed e-con e-parent" data-id="8dcf290" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-15e71d8 e-con-full e-flex e-con e-child" data-id="15e71d8" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-9461abe elementor-widget elementor-widget-heading" data-id="9461abe" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default"><h2 data-elementor-setting-key="title" data-pen-placeholder="Type Here..." style="font-size: 45px;font-weight: 400;line-height: 1.2;font-family: Poppins, sans-serif;word-spacing: 0px;color: #ffffff">
    
    <span style="color: #ffffff;font-family: Manrope, sans-serif;font-size: 44px;font-weight: 700">
        Datagaps vs iCEDQ: An Overview
    </span>

</h2></h2>				</div>
				</div>
				<div class="elementor-element elementor-element-1ae7bde bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="1ae7bde" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="color: #1f9d55;"><strong>Datagaps vs iCEDQ: </strong></span>Both platforms automate data validation at full volume, but iCEDQ stops at the data behind reports. Datagaps DataOps Suite also scores data quality, generates synthetic test data, and tests BI dashboards as users see them. It is named in two Gartner Market Guides.</p>								</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-248f9fe e-flex e-con-boxed e-con e-parent" data-id="248f9fe" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-705fb6f e-con-full e-flex e-con e-child" data-id="705fb6f" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;gradient&quot;}">
				<div class="elementor-element elementor-element-54792cf elementor-widget elementor-widget-heading" data-id="54792cf" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">The Verdict at a Glance </h2>				</div>
				</div>
		<div class="elementor-element elementor-element-1808360 e-con-full e-flex e-con e-child" data-id="1808360" data-element_type="container" data-e-type="container">
		<div class="elementor-element elementor-element-5eb3414 e-grid e-con-full e-con e-child" data-id="5eb3414" data-element_type="container" data-e-type="container">
		<div class="elementor-element elementor-element-472aec0 e-con-full bi-testing-report e-flex e-con e-child" data-id="472aec0" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-913e310 elementor-widget elementor-widget-text-editor" data-id="913e310" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Both reconcile source and target at full volume; Datagaps carries validation into data quality and BI.</p>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-3f64ef9 e-con-full bi-testing-report e-flex e-con e-child" data-id="3f64ef9" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-22d8e89 elementor-widget elementor-widget-text-editor" data-id="22d8e89" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Across BI reports, Datagaps tests reports as users see them: visuals, filters, security, load and pixel-level regression.</p>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-34be35d e-con-full bi-testing-report e-flex e-con e-child" data-id="34be35d" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-cc7d62e elementor-widget elementor-widget-text-editor" data-id="cc7d62e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Datagaps turns data quality into a score with drill-down; iCEDQ runs quality rules without a scorecard.</p>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-39bb168 e-con-full bi-testing-report e-flex e-con e-child" data-id="39bb168" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-f4a7d30 elementor-widget elementor-widget-text-editor" data-id="f4a7d30" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Datagaps generates complete validation workflows, for data and for BI, across hundreds of tables and reports at once.</p>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-e3ca6b9 e-con-full bi-testing-report e-flex e-con e-child" data-id="e3ca6b9" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-b2d7591 elementor-widget elementor-widget-text-editor" data-id="b2d7591" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Datagaps is named in the Gartner Market Guides for DataOps Tools and Data Observability Tools, with more recent reviews.</p>								</div>
				</div>
				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-da64bab e-flex e-con-boxed e-con e-parent" data-id="da64bab" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-133e999 elementor-widget elementor-widget-text-editor" data-id="133e999" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>This guide compares <span style="text-decoration: underline;"><span style="color: #1967d2; text-decoration: underline;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/dataops-suite/" target="_blank" rel="noopener">Datagaps DataOps Suite</a></span></span> and iCEDQ for teams choosing a platform for data validation, data quality, and BI testing. It starts with how the category is changing and what analysts now expect from it. It then compares the two platforms feature by feature, checks iCEDQ&#8217;s own claims, and closes with three questions to take into any evaluation.</p><p><a href="https://www.datagaps.com/request-a-demo/" target="_blank" rel="noopener"><span style="text-decoration: underline; color: #1967d2;">Book a walkthrough with your own data →</span></a></p>								</div>
				</div>
				<div class="elementor-element elementor-element-01cf464 elementor-widget elementor-widget-heading" data-id="01cf464" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What Is Changing in How Enterprises Validate Data?</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-9251cb7 elementor-widget elementor-widget-text-editor" data-id="9251cb7" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Data validation started with one question: did the target receive what the source sent? Enterprises still ask it. Four shifts have widened what they expect a platform to do beyond that.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-97d587e elementor-widget elementor-widget-image-box" data-id="97d587e" data-element_type="widget" data-e-type="widget" data-widget_type="image-box.default">
				<div class="elementor-widget-container">
					<div class="elementor-image-box-wrapper"><div class="elementor-image-box-content"><h3 class="elementor-image-box-title">Validation is moving to the dashboard</h3><p class="elementor-image-box-description">The dashboard is where the business acts on data, and it is the least tested layer. Power BI and Microsoft Fabric have no native testing feature, as SQLBI has pointed out. Of 95 enterprise data teams Datagaps worked with, 73% needed BI report validation alongside ETL reconciliation.</p></div></div>				</div>
				</div>
				<div class="elementor-element elementor-element-f8e6c73 elementor-widget elementor-widget-image-box" data-id="f8e6c73" data-element_type="widget" data-e-type="widget" data-widget_type="image-box.default">
				<div class="elementor-widget-container">
					<div class="elementor-image-box-wrapper"><div class="elementor-image-box-content"><h3 class="elementor-image-box-title">Buyers want fewer tools</h3><p class="elementor-image-box-description">Gartner's 2026 Market Guide for Data Observability Tools describes a market moving toward unified platforms that combine observability, quality, and governance. Buyers put it in their own terms: test cases sit in one tool, runs in another, and tracking in a third. They want one platform instead.</p></div></div>				</div>
				</div>
				<div class="elementor-element elementor-element-5f7d5d8 elementor-widget elementor-widget-image-box" data-id="5f7d5d8" data-element_type="widget" data-e-type="widget" data-widget_type="image-box.default">
				<div class="elementor-widget-container">
					<div class="elementor-image-box-wrapper"><div class="elementor-image-box-content"><h3 class="elementor-image-box-title">AI is taking on whole tasks</h3><p class="elementor-image-box-description">Gartner's 2026 research on augmented data quality points to agentic automation across the quality lifecycle. Buyers now ask how much of the validation work agents can generate, run, and explain, with a person approving each change.</p></div></div>				</div>
				</div>
				<div class="elementor-element elementor-element-21b1bdc elementor-widget elementor-widget-image-box" data-id="21b1bdc" data-element_type="widget" data-e-type="widget" data-widget_type="image-box.default">
				<div class="elementor-widget-container">
					<div class="elementor-image-box-wrapper"><div class="elementor-image-box-content"><h3 class="elementor-image-box-title">Migrations put every layer under test at once</h3><p class="elementor-image-box-description">A move to Snowflake, Databricks, or Fabric changes pipelines, data quality, and reports in one go, turning hundreds of tables and reports into hundreds of tests. Forty percent of the teams Datagaps worked with needed migration validation, yet 65% were still validating data by hand.</p></div></div>				</div>
				</div>
				<div class="elementor-element elementor-element-741557b elementor-widget elementor-widget-text-editor" data-id="741557b" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>These four shifts are the yardstick for the comparison that follows.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-918188d e-flex e-con-boxed e-con e-parent" data-id="918188d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-e0bbd18 elementor-widget elementor-widget-heading" data-id="e0bbd18" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What Should a Data Validation and Data Quality Platform Cover Today?</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-d2e86d4 e-flex e-con-boxed e-con e-parent" data-id="d2e86d4" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-8b2561c bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="8b2561c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Analyst definitions have caught up with these shifts. Gartner&#8217;s DataOps Tools research defines test automation as business-rule validation, test-script management, regression testing, and test data management. Test data sits inside the definition, not beside it.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-1453051 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="1453051" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>On data quality, Gartner&#8217;s Augmented Data Quality research expects profiling, rule management, rules written from plain language, and a metrics view built on critical data elements, used by business and BI teams as well as engineers. Gartner expects 70% of organizations to adopt modern data quality solutions by 2027 (Gartner, cited by Informatica, 2025).</p>								</div>
				</div>
				<div class="elementor-element elementor-element-6f91b0a bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="6f91b0a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Put the two together with the shift toward the dashboard and the requirement becomes four jobs. A platform has to reconcile pipelines, measure quality, supply safe test data, and validate what the business sees. Datagaps DataOps Suite is built around exactly those four jobs, one component for each, with AI agents working across all of them.</p>								</div>
				</div>
		<div class="elementor-element elementor-element-20eb36c e-con-full e-flex e-con e-child" data-id="20eb36c" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-b4274b6 elementor-widget-widescreen__width-initial elementor-widget elementor-widget-html" data-id="b4274b6" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<style>

.suite-table-wrapper {
    max-width: 100%;
    font-family: Inter, sans-serif;
    margin: auto;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 0px 5px rgba(0,0,0,.10);
}

.suite-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.suite-table thead th {
    background: #022769;
    color: #fff;
    padding: 22px;
    font-size: 14px;
    font-weight: 500;
    text-align: left !important;
    font-family: Inter, sans-serif;
}

.suite-table thead th:nth-child(1) {
    width: 28% !important;
    text-align: left !important;
}

.suite-table thead th:nth-child(2) {
    width: 44% !important;
    text-align: left !important;
}

.suite-table thead th:nth-child(3) {
    width: 28% !important;
    font-weight: 600;
    text-align: left !important;
}

.suite-table tbody td {
    padding: 18px 22px;
    font-size: 16px;
    line-height: 1.55;
    border-bottom: 1px solid #edf1f4;
    vertical-align: top;
    text-align: left !important;
    font-family: Inter, sans-serif;
}

.suite-table tbody tr:hover {
    background: #fafafa;
}

.suite-table tbody td:nth-child(1) {
    font-weight: 600;
    color: #111;
    font-size: 14px;
    text-align: left !important;
}

.suite-table tbody td:nth-child(2) {
    color: #111;
    text-align: left !important;
}

.suite-table tbody td:nth-child(3) {
    background: #f5f8fb;
    color: #111;
    font-weight: 500;
    text-align: left !important;
}

.suite-table tbody tr:hover td:nth-child(3) {
    background: #eef8f2;
}

.suite-table tbody td {
    transition: .25s;
}

.suite-table tbody tr:last-child td {
    border-bottom: none;
}

/* Column divider lines */
.suite-table thead th:not(:last-child) {
    border-right: 1px solid rgba(255,255,255,.25) !important;
}

.suite-table tbody td:not(:last-child) {
    border-right: 1px solid #dfe5ec !important;
}

/* Responsive */
@media (max-width: 1200px) {
    .suite-table thead th {
        padding: 15px 16px;
        font-size: 13px;
    }
    .suite-table tbody td {
        padding: 12px 16px;
        font-size: 13px;
    }
}

@media (max-width: 991px) {
    .suite-table-wrapper {
        overflow: auto;
    }
    .suite-table {
        min-width: 800px;
    }
    .suite-table tbody td {
        padding: 18px 16px;
        font-size: 12px;
        border-bottom: 1px solid #edf1f4;
        vertical-align: top;
        font-family: Inter, sans-serif;
    }
    .suite-table tbody td:first-child {
        font-size: 12px;
    }
    .suite-table::after {
        content: "← Swipe to view more →";
        display: block;
        text-align: center;
        color: #777;
        font-size: 12px;
        padding: 10px 0;
    }
}

</style>

<div class="suite-table-wrapper">
    <table class="suite-table">
        <colgroup>
            <col style="width:28%">
            <col style="width:44%">
            <col style="width:28%">
        </colgroup>
        <thead>
            <tr>
                <th style="text-align:left;">The job</th>
                <th style="text-align:left;">What the market expects</th>
                <th style="text-align:left;">DataOps Suite component</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td style="text-align:left;">Reconcile pipelines</td>
                <td style="text-align:left;">Full-volume source-to-target and transformation testing, regression packs, CI/CD</td>
                <td style="text-align:left;">ETL Validator</td>
            </tr>
            <tr>
                <td style="text-align:left;">Measure quality</td>
                <td style="text-align:left;">Profiling, business rules, quality scores by dimension, anomaly detection</td>
                <td style="text-align:left;">Data Quality Monitor</td>
            </tr>
            <tr>
                <td style="text-align:left;">Supply test data</td>
                <td style="text-align:left;">Privacy-safe synthetic data that behaves like production</td>
                <td style="text-align:left;">Test Data Manager</td>
            </tr>
            <tr>
                <td style="text-align:left;">Validate the dashboard</td>
                <td style="text-align:left;">Report data, visuals, filters, performance, and BI governance</td>
                <td style="text-align:left;">BI Validator</td>
            </tr>
            <tr>
                <td style="text-align:left;">Automate across all four</td>
                <td style="text-align:left;">Agentic AI that generates, runs, and explains tests, with human approval</td>
                <td style="text-align:left;">AI/ML agents and MCP server</td>
            </tr>
        </tbody>
    </table>
</div>				</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-e9487cc bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="e9487cc" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-teams="true">The components share one connector layer and one audit trail, so a single validation flow can start at a source table, apply data quality rules along the way, and end at a dashboard visual. Before comparing features, it is worth seeing how independent analysts have assessed that scope.</span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-291f1b1 e-flex e-con-boxed e-con e-parent" data-id="291f1b1" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-1f67e10 e-con-full e-flex e-con e-child" data-id="1f67e10" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-e66e280 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="e66e280" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>What this means for buyers: </strong>check all four jobs, not only the first. A platform that misses one leaves manual work where errors cost the most.</p>								</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-bb6d614 e-flex e-con-boxed e-con e-parent" data-id="bb6d614" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-9f34211 elementor-widget elementor-widget-heading" data-id="9f34211" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What Does Analyst Recognition Tell Buyers?</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-cc0cd48 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="cc0cd48" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Gartner publishes two Market Guides that map directly onto this evaluation. Each defines a market, sets out the capabilities buyers should expect, and names Representative Vendors based on analyst assessment of market presence and functional coverage. Vendors cannot nominate themselves, so a listing is an outside view of what a product actually does.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-f72ff16 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="f72ff16" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>The Market Guide for DataOps Tools covers pipeline orchestration, observability, environment management, deployment automation, and test automation. The Market Guide for Data Observability Tools covers how platforms monitor data content, pipelines, and infrastructure. One is about testing data as it moves; the other is about watching its quality continuously.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-d88cff5 e-flex e-con-boxed e-con e-parent" data-id="d88cff5" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-b6e9fe5 elementor-widget elementor-widget-html" data-id="b6e9fe5" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<style>

.signal-table-wrapper {
    max-width: 100%;
    font-family: Inter, sans-serif;
    margin: auto;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 0px 5px rgba(0,0,0,.10);
}

.signal-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.signal-table thead th {
    background: #022769;
    color: #fff;
    padding: 22px;
    font-size: 14px;
    font-weight: 600;
    text-align: left !important;
    font-family: Inter, sans-serif;
    width: 33.33% !important;
}

.signal-table tbody td {
    padding: 18px 22px;
    font-size: 16px;
    line-height: 1.55;
    border-bottom: 1px solid #edf1f4;
    vertical-align: top;
    text-align: left !important;
    color: #111;
    font-family: Inter, sans-serif;
    width: 33.33% !important;
    transition: .25s;
}

.signal-table tbody tr:hover {
    background: #fafafa;
}

.signal-table tbody td:nth-child(1) {
    font-weight: 600;
    font-size: 14px;
}

.signal-table tbody td:nth-child(3) {
    background: #f5f8fb;
    color: #64748b;
}

.signal-table tbody tr:hover td:nth-child(3) {
    background: #eef8f2;
}

.signal-table tbody tr:last-child td {
    border-bottom: none;
}

/* Column divider lines */
.signal-table thead th:not(:last-child) {
    border-right: 1px solid rgba(255,255,255,.25) !important;
}

.signal-table tbody td:not(:last-child) {
    border-right: 1px solid #dfe5ec !important;
}

/* Responsive */
@media (max-width: 1200px) {
    .signal-table thead th {
        padding: 15px 16px;
        font-size: 13px;
    }
    .signal-table tbody td {
        padding: 12px 16px;
        font-size: 13px;
    }
}

@media (max-width: 991px) {
    .signal-table-wrapper {
        overflow: auto;
    }
    .signal-table {
        min-width: 800px;
    }
    .signal-table tbody td {
        padding: 18px 16px;
        font-size: 12px;
        border-bottom: 1px solid #edf1f4;
        vertical-align: top;
        font-family: Inter, sans-serif;
    }
    .signal-table tbody td:first-child {
        font-size: 12px;
    }
    .signal-table::after {
        content: "← Swipe to view more →";
        display: block;
        text-align: center;
        color: #777;
        font-size: 12px;
        padding: 10px 0;
    }
}

</style>

<div class="signal-table-wrapper">
    <table class="signal-table">
        <colgroup>
            <col style="width:33.33%">
            <col style="width:33.33%">
            <col style="width:33.33%">
        </colgroup>
        <thead>
            <tr>
                <th style="text-align:left;">Independent signal</th>
                <th style="text-align:left;">Datagaps</th>
                <th style="text-align:left;">iCEDQ</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td style="text-align:left;">Gartner Market Guide for DataOps Tools (Oct 2025)</td>
                <td style="text-align:left;">✓ Representative Vendor, categorised as a specialist in data pipeline test automation</td>
                <td style="text-align:left;">Cites a DataOps guide mention on its own site; edition not named</td>
            </tr>
            <tr>
                <td style="text-align:left;">Gartner Market Guide for Data Observability Tools (Feb 2026)</td>
                <td style="text-align:left;">✓ Representative Vendor for Data Quality Monitor: data content observability, pipeline observability, and lineage</td>
                <td style="text-align:left;">No listing found in public sources</td>
            </tr>
            <tr>
                <td style="text-align:left;">Gartner Peer Insights</td>
                <td style="text-align:left;">4.6 from 8 ratings; newest June 2026</td>
                <td style="text-align:left;">4.0 from 1 rating; April 2024</td>
            </tr>
        </tbody>
    </table>
</div>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-9d97a84 e-flex e-con-boxed e-con e-parent" data-id="9d97a84" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-329b452 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="329b452" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>In the DataOps guide, Gartner points to enterprise deployments of Datagaps in financial services, healthcare, technology, and higher education. In the Data Observability guide, Data Quality Monitor is recognised for validating data where it resides rather than moving it.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-4ca0117 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="4ca0117" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Being named in both matters because they are separate markets with separate criteria. Analysts recognised Datagaps both for testing pipelines and for monitoring data quality continuously, which is the same scope buyers now expect from one platform. Check the current vendor lists yourself: recognition is the one claim no vendor should ask you to accept on trust.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-e62139d elementor-widget elementor-widget-heading" data-id="e62139d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">How Do Datagaps and iCEDQ Compare Feature by Feature?</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-c702014 e-flex e-con-boxed e-con e-parent" data-id="c702014" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-2f721d3 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="2f721d3" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>This is where iCEDQ is measured against the four jobs. Rows marked Neutral are areas where both platforms deliver; the rest show where they part ways.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-fba4d73 elementor-widget elementor-widget-html" data-id="fba4d73" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<style>

.cmp-table-wrapper {
    max-width: 100%;
    font-family: Inter, sans-serif;
    margin: auto;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 0px 5px rgba(0,0,0,.10);
}

.cmp-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.cmp-table thead th {
    background: #022769;
    color: #fff;
    padding: 22px;
    font-size: 14px;
    font-weight: 600;
    text-align: left !important;
    font-family: Inter, sans-serif;
}

.cmp-table thead th:nth-child(1) { width: 22% !important; }
.cmp-table thead th:nth-child(2) { width: 32% !important; }
.cmp-table thead th:nth-child(3) { width: 32% !important; }
.cmp-table thead th:nth-child(4) { width: 14% !important; }

.cmp-table tbody td {
    padding: 18px 22px;
    font-size: 15px;
    line-height: 1.55;
    border-bottom: 1px solid #edf1f4;
    vertical-align: top;
    text-align: left !important;
    color: #111;
    font-family: Inter, sans-serif;
    transition: .25s;
}

.cmp-table tbody tr:hover {
    background: #fafafa;
}

.cmp-table tbody td:nth-child(1) {
    font-weight: 600;
    font-size: 14px;
}

.cmp-table tbody td:nth-child(4) {
    background: #f5f8fb;
    color: #64748b;
    font-weight: 500;
}

.cmp-table tbody td.win {
    color: #022769;
    font-weight: 600;
}

.cmp-table tbody tr:hover td:nth-child(4) {
    background: #eef8f2;
}

.cmp-table tbody tr:last-child td {
    border-bottom: none;
}

/* Column divider lines */
.cmp-table thead th:not(:last-child) {
    border-right: 1px solid rgba(255,255,255,.25);
}

.cmp-table tbody td:not(:last-child) {
    border-right: 1px solid #dfe5ec;
}

/* Responsive */
@media (max-width: 1200px) {
    .cmp-table thead th {
        padding: 15px 16px;
        font-size: 13px;
    }
    .cmp-table tbody td {
        padding: 12px 16px;
        font-size: 13px;
    }
}

@media (max-width: 991px) {
    .cmp-table-wrapper {
        overflow: auto;
    }
    .cmp-table {
        min-width: 900px;
    }
    .cmp-table tbody td {
        padding: 18px 16px;
        font-size: 12px;
        border-bottom: 1px solid #edf1f4;
        vertical-align: top;
        font-family: Inter, sans-serif;
    }
    .cmp-table tbody td:first-child {
        font-size: 12px;
    }
    .cmp-table::after {
        content: "← Swipe to view more →";
        display: block;
        text-align: center;
        color: #777;
        font-size: 12px;
        padding: 10px 0;
    }
}

</style>

<div class="cmp-table-wrapper">
    <table class="cmp-table">
        <colgroup>
            <col style="width:22%">
            <col style="width:32%">
            <col style="width:32%">
            <col style="width:14%">
        </colgroup>
        <thead>
            <tr>
                <th style="text-align:left;">Capability</th>
                <th style="text-align:left;">Datagaps</th>
                <th style="text-align:left;">iCEDQ</th>
                <th style="text-align:left;">Advantage</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td style="text-align:left;">Source-to-target reconciliation</td>
                <td style="text-align:left;">100% of records on a Spark engine</td>
                <td style="text-align:left;">100% of records; in-memory engine plus Spark</td>
                <td style="text-align:left;">Neutral</td>
            </tr>
            <tr>
                <td style="text-align:left;">Many sources and transformations in one test</td>
                <td style="text-align:left;">One visual dataflow chains sources, transformations, comparisons and actions; SQL, Python, Scala</td>
                <td style="text-align:left;">Rule-based comparisons, including multi-source; Groovy or Java for complex logic</td>
                <td class="win" style="text-align:left;">Datagaps</td>
            </tr>
            <tr>
                <td style="text-align:left;">Bulk test generation</td>
                <td style="text-align:left;">Hundreds of complete dataflows and BI tests at once</td>
                <td style="text-align:left;">Rules created in bulk or by AI from mapping documents; no bulk BI tests</td>
                <td class="win" style="text-align:left;">Datagaps</td>
            </tr>
            <tr>
                <td style="text-align:left;">BI report data validation</td>
                <td style="text-align:left;">Report vs database, report vs report</td>
                <td style="text-align:left;">Report data via BI APIs, including Power BI semantic models</td>
                <td style="text-align:left;">Neutral</td>
            </tr>
            <tr>
                <td style="text-align:left;">BI visual regression</td>
                <td style="text-align:left;">Pixel-to-pixel and textual comparison; side-by-side PDFs</td>
                <td style="text-align:left;">None; bypasses the visual layer</td>
                <td class="win" style="text-align:left;">Datagaps</td>
            </tr>
            <tr>
                <td style="text-align:left;">BI functional testing</td>
                <td style="text-align:left;">Filters, slicers, parameters, bookmarks, row-level security</td>
                <td style="text-align:left;">Filters and parameters applied to extract data</td>
                <td class="win" style="text-align:left;">Datagaps</td>
            </tr>
            <tr>
                <td style="text-align:left;">BI performance and stress testing</td>
                <td style="text-align:left;">Concurrent-user load testing</td>
                <td style="text-align:left;">None</td>
                <td class="win" style="text-align:left;">Datagaps</td>
            </tr>
            <tr>
                <td style="text-align:left;">BI governance</td>
                <td style="text-align:left;">Finds unused measures, duplicate reports and orphaned tables; compares KPIs across platforms</td>
                <td style="text-align:left;">None</td>
                <td class="win" style="text-align:left;">Datagaps</td>
            </tr>
            <tr>
                <td style="text-align:left;">Data quality rules and monitoring</td>
                <td style="text-align:left;">Rules, profiling, monitoring</td>
                <td style="text-align:left;">Rules, profiling, monitoring</td>
                <td style="text-align:left;">Neutral</td>
            </tr>
            <tr>
                <td style="text-align:left;">Data quality scoring</td>
                <td style="text-align:left;">Scores by dimension; scorecard with drill-down to column</td>
                <td style="text-align:left;">No quality score or scorecard; a few pre-packaged dashboards</td>
                <td class="win" style="text-align:left;">Datagaps</td>
            </tr>
            <tr>
                <td style="text-align:left;">Observability</td>
                <td style="text-align:left;">ML anomaly detection, profiling, lineage</td>
                <td style="text-align:left;">ML and rule-based anomaly detection, auto-profiling</td>
                <td style="text-align:left;">Neutral</td>
            </tr>
            <tr>
                <td style="text-align:left;">Test data management</td>
                <td style="text-align:left;">Synthetic data; PII and PHI masking</td>
                <td style="text-align:left;">None</td>
                <td class="win" style="text-align:left;">Datagaps</td>
            </tr>
            <tr>
                <td style="text-align:left;">AI and agents</td>
                <td style="text-align:left;">AI agents across ETL, data quality, BI and test data, plus an MCP server</td>
                <td style="text-align:left;">AI rule generation and an MCP server for data rules, workflows and profiling</td>
                <td class="win" style="text-align:left;">Datagaps</td>
            </tr>
            <tr>
                <td style="text-align:left;">CI/CD and deployment</td>
                <td style="text-align:left;">REST API, CLI, Azure DevOps, Jenkins; on-premises or your cloud, on Kubernetes, Databricks or EMR</td>
                <td style="text-align:left;">REST API, CLI, Jenkins, Azure Pipelines; SaaS on AWS or on-premises</td>
                <td style="text-align:left;">Neutral</td>
            </tr>
        </tbody>
    </table>
</div>				</div>
				</div>
				<div class="elementor-element elementor-element-5a5cfed bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="5a5cfed" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><em>iCEDQ entries reflect its public product documentation as of October 2026.</em></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-a7c1256 e-flex e-con-boxed e-con e-parent" data-id="a7c1256" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-cdd43e3 elementor-widget elementor-widget-heading" data-id="cdd43e3" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">How Do iCEDQ's Public Claims Hold Up?</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f5b1562 e-flex e-con-boxed e-con e-parent" data-id="f5b1562" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-93cb7bd bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="93cb7bd" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>iCEDQ markets itself as the only integrated platform for data testing, monitoring, and observability, covering the entire data development lifecycle. We checked its main claims against its own documentation and independent reviews.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-4362829 elementor-widget elementor-widget-html" data-id="4362829" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<style>

.icedq-table-wrapper {
    max-width: 100%;
    font-family: Inter, sans-serif;
    margin: auto;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 0px 5px rgba(0,0,0,.10);
}

.icedq-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.icedq-table thead th {
    background: #022769;
    color: #fff;
    padding: 22px;
    font-size: 14px;
    font-weight: 600;
    text-align: left !important;
    font-family: Inter, sans-serif;
}

.icedq-table thead th:nth-child(1) {
    width: 6% !important;
    text-align: center !important;
}
.icedq-table thead th:nth-child(2) { width: 26% !important; }
.icedq-table thead th:nth-child(3) { width: 46% !important; }
.icedq-table thead th:nth-child(4) { width: 22% !important; }

.icedq-table tbody td {
    padding: 18px 22px;
    font-size: 16px;
    line-height: 1.55;
    border-bottom: 1px solid #edf1f4;
    vertical-align: top;
    text-align: left !important;
    color: #111;
    font-family: Inter, sans-serif;
    transition: .25s;
}

.icedq-table tbody tr:hover {
    background: #fafafa;
}

.icedq-table tbody td:nth-child(1) {
    text-align: center !important;
    font-weight: 600;
    font-size: 14px;
}

.icedq-table tbody td:nth-child(2) {
    background: #f5f8fb;
    color: #64748b;
}

.icedq-table tbody tr:hover td:nth-child(2) {
    background: #eef8f2;
}

.icedq-table tbody td:nth-child(4) {
    font-weight: 500;
}

.icedq-table tbody tr:last-child td {
    border-bottom: none;
}

/* Column divider lines */
.icedq-table thead th:not(:last-child) {
    border-right: 1px solid rgba(255,255,255,.25);
}

.icedq-table tbody td:not(:last-child) {
    border-right: 1px solid #dfe5ec;
}

/* Responsive */
@media (max-width: 1200px) {
    .icedq-table thead th {
        padding: 15px 16px;
        font-size: 13px;
    }
    .icedq-table tbody td {
        padding: 12px 16px;
        font-size: 13px;
    }
}

@media (max-width: 991px) {
    .icedq-table-wrapper {
        overflow: auto;
    }
    .icedq-table {
        min-width: 900px;
    }
    .icedq-table tbody td {
        padding: 18px 16px;
        font-size: 12px;
        border-bottom: 1px solid #edf1f4;
        vertical-align: top;
        font-family: Inter, sans-serif;
    }
    .icedq-table::after {
        content: "← Swipe to view more →";
        display: block;
        text-align: center;
        color: #777;
        font-size: 12px;
        padding: 10px 0;
    }
}

</style>

<div class="icedq-table-wrapper">
    <table class="icedq-table">
        <colgroup>
            <col style="width:6%">
            <col style="width:26%">
            <col style="width:46%">
            <col style="width:22%">
        </colgroup>
        <thead>
            <tr>
                <th>#</th>
                <th>iCEDQ claim </th>
                <th>What the evidence shows</th>
                <th>Verdict</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>1</td>
                <td>The only integrated testing, monitoring and observability platform</td>
                <td>One rule engine runs from QA into production, so the integration is real. It is not the only one: Datagaps DataOps Suite also combines testing, monitoring and observability, and adds test data management and dashboard testing.</td>
                <td>Integrated, not complete</td>
            </tr>
            <tr>
                <td>2</td>
                <td>Covers the entire data lifecycle</td>
                <td>It spans development, QA and production, but coverage ends at report data. iCEDQ’s own BI page says it works from the data behind reports, not what the dashboard displays.</td>
                <td>Overstated</td>
            </tr>
            <tr>
                <td>3</td>
                <td>BI and report testing</td>
                <td>Validates report numbers across major BI tools, including Power BI semantic models. No visual or load testing.</td>
                <td>Data only</td>
            </tr>
            <tr>
                <td>4</td>
                <td>Full-volume validation, no sampling</td>
                <td>True. Datagaps validates 100% of records as well.</td>
                <td>True, not unique</td>
            </tr>
            <tr>
                <td>5</td>
                <td>Data reliability</td>
                <td>Writes at length about data quality dimensions. Its product offers rules and observability metrics, but no data quality scorecard.</td>
                <td>No quality scorecard</td>
            </tr>
        </tbody>
    </table>
</div>				</div>
				</div>
				<div class="elementor-element elementor-element-c4a80b3 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="c4a80b3" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p class="MsoNormal" style="margin-bottom: 7.0pt;">iCEDQ&#8217;s claims hold at the data layer. Its &#8220;only&#8221; and &#8220;entire lifecycle&#8221; claims break where the business looks: the dashboard.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-a1bb5f2 e-flex e-con-boxed e-con e-parent" data-id="a1bb5f2" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a8f5fee elementor-widget elementor-widget-heading" data-id="a8f5fee" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Where Does Datagaps Go Further Than iCEDQ?</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-daebe51 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="daebe51" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Seven capabilities separate the two platforms. None of them can be switched on with a configuration change.</p>								</div>
				</div>
		<div class="elementor-element elementor-element-6d8a6da e-con-full e-flex e-con e-child" data-id="6d8a6da" data-element_type="container" data-e-type="container">
		<div class="elementor-element elementor-element-ca4483c e-grid e-con-full e-con e-child" data-id="ca4483c" data-element_type="container" data-e-type="container">
		<div class="elementor-element elementor-element-09baac5 e-con-full bi-testing-report e-flex e-con e-child" data-id="09baac5" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-21f05f5 elementor-widget elementor-widget-image-box" data-id="21f05f5" data-element_type="widget" data-e-type="widget" data-widget_type="image-box.default">
				<div class="elementor-widget-container">
					<div class="elementor-image-box-wrapper"><div class="elementor-image-box-content"><h3 class="elementor-image-box-title">1. Pixel-to-Pixel Visual Regression</h3><p class="elementor-image-box-description">A report can hold correct data and still be wrong: a series disappears after an upgrade, a label truncates, a chart reorders. BI Validator compares report renders pixel by pixel and as text across versions and environments, and produces side-by-side PDFs for sign-off. iCEDQ pulls report data through APIs and skips the visual layer, so these defects go to manual review.</p></div></div>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-2ec0723 e-con-full bi-testing-report e-flex e-con e-child" data-id="2ec0723" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-97c99be elementor-widget elementor-widget-image-box" data-id="97c99be" data-element_type="widget" data-e-type="widget" data-widget_type="image-box.default">
				<div class="elementor-widget-container">
					<div class="elementor-image-box-wrapper"><div class="elementor-image-box-content"><h3 class="elementor-image-box-title">2. Functional and Load Testing of Dashboards</h3><p class="elementor-image-box-description">BI Validator applies filters, slicers, parameters, and bookmarks, tests row-level security, and simulates concurrent users to measure load times and find bottlenecks before rollout. iCEDQ has no functional or load testing for dashboards.<br><br>
<a href="https://www.datagaps.com/bi-testing-tools/" style="color: #1967d2;text-decoration: underline;font-weight: 400">See how BI Validator load-tests a dashboard before rollout →</a></p></div></div>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-8f5943b e-con-full bi-testing-report e-flex e-con e-child" data-id="8f5943b" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-06ffb12 elementor-widget elementor-widget-image-box" data-id="06ffb12" data-element_type="widget" data-e-type="widget" data-widget_type="image-box.default">
				<div class="elementor-widget-container">
					<div class="elementor-image-box-wrapper"><div class="elementor-image-box-content"><h3 class="elementor-image-box-title">3. Hundreds of Workflows Generated at Once</h3><p class="elementor-image-box-description">Datagaps wizards generate tests for hundreds of tables at once and cut configuration time by up to 70%. Mapping Manager turns a mapping document into a test suite, and Generate DB Flows builds one from schema metadata. Each output is a complete dataflow with sources, transformations, comparisons, and actions, and BI Validator does the same for report regression. iCEDQ generates rules, in bulk or with AI; it does not generate BI tests.</p></div></div>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-97b87fb e-con-full bi-testing-report e-flex e-con e-child" data-id="97b87fb" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-e10c89a elementor-widget elementor-widget-image-box" data-id="e10c89a" data-element_type="widget" data-e-type="widget" data-widget_type="image-box.default">
				<div class="elementor-widget-container">
					<div class="elementor-image-box-wrapper"><div class="elementor-image-box-content"><h3 class="elementor-image-box-title">4. Many Sources and Real Logic in One Test</h3><p class="elementor-image-box-description">One Datagaps dataflow can join S3 files, Oracle, Snowflake, and an API, transform the result in SQL, Python, or Scala, and reconcile it against a target on a drag-and-drop canvas. Mismatch insights point to the root cause. iCEDQ builds tests as rules, and complex logic goes into Groovy or Java, a learning curve its own reviewers mention.</p></div></div>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-a9e15ea e-con-full bi-testing-report e-flex e-con e-child" data-id="a9e15ea" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-9cf4b9e elementor-widget elementor-widget-image-box" data-id="9cf4b9e" data-element_type="widget" data-e-type="widget" data-widget_type="image-box.default">
				<div class="elementor-widget-container">
					<div class="elementor-image-box-wrapper"><div class="elementor-image-box-content"><h3 class="elementor-image-box-title">5. Data Quality You Can Measure</h3><p class="elementor-image-box-description"><a href="https://www.datagaps.com/data-quality-monitoring-tools/" style="color: #1967d2;text-decoration: underline;font-weight: 400">Data Quality Monitor</a> scores data at rest and in motion for accuracy, consistency, completeness, unicity, and conformity. Scores roll up into an enterprise scorecard with drill-down to column level. Alerts fire on threshold breaches, and failures can open Jira or ServiceNow tickets. iCEDQ writes about quality dimensions at length but gives users no scorecard to measure them.</p></div></div>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-e8c3366 e-con-full bi-testing-report e-flex e-con e-child" data-id="e8c3366" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-4e8ac9d elementor-widget elementor-widget-image-box" data-id="4e8ac9d" data-element_type="widget" data-e-type="widget" data-widget_type="image-box.default">
				<div class="elementor-widget-container">
					<div class="elementor-image-box-wrapper"><div class="elementor-image-box-content"><h3 class="elementor-image-box-title">6. Test Data Management</h3><p class="elementor-image-box-description">Gartner's definition of DataOps test automation includes test data management. <a href="https://www.datagaps.com/test-data-manager/" style="color: #1967d2;text-decoration: underline;font-weight: 400">Test Data Manager</a> generates synthetic data that keeps production patterns and relationships, masks PII and PHI for GDPR and HIPAA, and produces millions of rows in minutes. iCEDQ has no test data capability.</p></div></div>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-f82e9a2 e-con-full bi-testing-report e-flex e-con e-child" data-id="f82e9a2" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-f11e392 elementor-widget elementor-widget-image-box" data-id="f11e392" data-element_type="widget" data-e-type="widget" data-widget_type="image-box.default">
				<div class="elementor-widget-container">
					<div class="elementor-image-box-wrapper"><div class="elementor-image-box-content"><h3 class="elementor-image-box-title">7. AI Across the Whole Stack</h3><p class="elementor-image-box-description">Both vendors offer an MCP server; iCEDQ's is built around rules, workflows and profiling. Datagaps has 15 AI and ML capabilities, its MCP server among them, spanning ETL, data quality, BI, and test data. Agents write tests from mapping documents, recommend DQ rules, build BI tests from plain English, compare KPIs and visuals across BI platforms, convert DAX to SQL, and flag unused measures and duplicate reports. Every change waits for human approval.</p></div></div>				</div>
				</div>
				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-a42811d e-flex e-con-boxed e-con e-parent" data-id="a42811d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-8b46921 elementor-widget elementor-widget-heading" data-id="8b46921" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Where Do Testing, Data Quality, and BI Validation Come Together?</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-3448082 e-flex e-con-boxed e-con e-parent" data-id="3448082" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-943c41e bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="943c41e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-teams="true">These differences matter most when they appear together, and a migration is where they do. A move to Snowflake, Databricks, or Fabric, one of the four shifts described earlier, puts pipelines, data quality, and dashboards under test at once.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-84e5de9 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="84e5de9" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>A migration is complete only when the data has moved, its quality holds on the new platform, and the reports still show the same numbers. iCEDQ covers the data and its rules. Datagaps covers all three from one platform: tests generated in bulk for the move, quality reconciled across systems and scored on the target, and reports compared down to the visual, with DAX-to-SQL validation for BI migrations.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-117ee03 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="117ee03" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="text-decoration: underline;"><span style="color: #1967d2; text-decoration: underline;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/dataops-suite/" target="_blank" rel="noopener">See how DataOps Suite tests, measures and validates a migration in one platform →</a></span></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-aa9fd4a elementor-widget elementor-widget-heading" data-id="aa9fd4a" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">What Do Teams Moving Off iCEDQ Report?</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-c00c89a bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="c00c89a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>The same issues come up across recent evaluations with iCEDQ users. These are anonymized patterns, set against what Datagaps provides.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-a42f548 elementor-widget elementor-widget-html" data-id="a42f548" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<style>

.teams-table-wrapper {
    max-width: 100%;
    font-family: Inter, sans-serif;
    margin: auto;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 0px 5px rgba(0,0,0,.10);
}

.teams-table-wrapper .teams-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.teams-table-wrapper .teams-table thead th {
    background: #022769;
    color: #fff;
    padding: 22px;
    font-size: 14px;
    font-weight: 600;
    text-align: left !important;
    font-family: Inter, sans-serif;
    width: 50% !important;
}

.teams-table-wrapper .teams-table tbody td {
    padding: 18px 22px;
    font-size: 16px;
    line-height: 1.55;
    border-bottom: 1px solid #edf1f4;
    vertical-align: top;
    text-align: left !important;
    color: #111;
    background: #fff;
    font-weight: 400;
    font-family: Inter, sans-serif;
    width: 50% !important;
    transition: .25s;
}

.teams-table-wrapper .teams-table tbody td:nth-child(1) {
    font-weight: 600;
    font-size: 16px;
    text-align: left !important;
}

.teams-table-wrapper .teams-table tbody td:nth-child(2) {
    background: #fff;
    color: #111;
    text-align: left !important;
}

.teams-table-wrapper .teams-table tbody tr:hover td {
    background: #fafafa;
}

.teams-table-wrapper .teams-table tbody tr:last-child td {
    border-bottom: none;
}

/* Column divider line */
.teams-table-wrapper .teams-table thead th:not(:last-child) {
    border-right: 1px solid rgba(255,255,255,.25) !important;
}

.teams-table-wrapper .teams-table tbody td:not(:last-child) {
    border-right: 1px solid #dfe5ec !important;
}

/* Responsive */
@media (max-width: 1200px) {
    .teams-table-wrapper .teams-table thead th {
        padding: 15px 16px;
        font-size: 13px;
    }
    .teams-table-wrapper .teams-table tbody td {
        padding: 12px 16px;
        font-size: 13px;
    }
    .teams-table-wrapper .teams-table tbody td:nth-child(1) {
        font-size: 13px;
    }
}

@media (max-width: 991px) {
    .teams-table-wrapper {
        overflow: auto;
    }
    .teams-table-wrapper .teams-table {
        min-width: 700px;
    }
    .teams-table-wrapper .teams-table tbody td {
        padding: 18px 16px;
        font-size: 12px;
    }
    .teams-table-wrapper .teams-table tbody td:nth-child(1) {
        font-size: 12px;
    }
    .teams-table-wrapper .teams-table::after {
        content: "← Swipe to view more →";
        display: block;
        text-align: center;
        color: #777;
        font-size: 12px;
        padding: 10px 0;
    }
}

</style>

<div class="teams-table-wrapper">
    <table class="teams-table">
        <colgroup>
            <col style="width:50%">
            <col style="width:50%">
        </colgroup>
        <thead>
            <tr>
                <th>What teams report</th>
                <th>What Datagaps provides</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>Hundreds of long, complex SQL rules that are hard to read and maintain</td>
                <td>Visual dataflows, generated in bulk from mapping documents or schema metadata</td>
            </tr>
            <tr>
                <td>Failure alerts without detail, so teams build their own dashboards on exported error records</td>
                <td>Built-in DQ dashboards, row-level exception outputs, and Jira or ServiceNow tickets with context</td>
            </tr>
            <tr>
                <td>Test lifecycle in one tool, execution in iCEDQ, tracking in a third</td>
                <td>One platform for test case lifecycle and execution, connected to Jira and Azure Test Plans</td>
            </tr>
            <tr>
                <td>Long runs, and detail lost when logic is pushed into the warehouse</td>
                <td>Spark horizontal scaling; row-level mismatch output under pushdown</td>
            </tr>
            <tr>
                <td>Comparison insights that make root cause easier to find</td>
                <td>Comparison insights and AI-guided root-cause analysis</td>
            </tr>
        </tbody>
    </table>
</div>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-d624247 e-flex e-con-boxed e-con e-parent" data-id="d624247" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-9adbfc5 elementor-widget elementor-widget-heading" data-id="9adbfc5" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">What Do Independent Reviews Say?</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-dfe644b bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="dfe644b" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-teams="true">On the two platforms where both vendors are reviewed, Datagaps has the more recent feedback. As of October 2026, Datagaps has ten G2 reviews, the newest from August 2026, and a 4.6 rating from eight Gartner Peer Insights reviewers, the newest from June 2026. iCEDQ’s newest G2 review is from August 2024, and it has a single Gartner Peer Insights rating, from April 2024.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-5125888 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="5125888" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-teams="true">Datagaps reviewers point to the BI layer. One G2 reviewer uses BI Validator for Tableau regression and stress testing, which Tableau does not offer natively, and a Gartner reviewer notes that it catches changes in both data and visuals. A recent industry guide also highlights Datagaps for multi-source migration QA (Testriq, 2026).</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-eac86f1 elementor-widget elementor-widget-heading" data-id="eac86f1" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Is Your Data Tested, Measured, and Governed, from Source to Screen?</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-1a60f7d bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="1a60f7d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Choosing a platform now means answering three questions, not one. Each comes with signs that a team has outgrown data-level validation.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-4aabd87 elementor-widget elementor-widget-html" data-id="4aabd87" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<style>

.qa-table-wrapper {
    max-width: 100%;
    font-family: Inter, sans-serif;
    margin: auto;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 0px 5px rgba(0,0,0,.10);
}

.qa-table-wrapper .qa-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.qa-table-wrapper .qa-table thead th {
    background: #022769;
    color: #fff;
    padding: 22px;
    font-size: 14px;
    font-weight: 600;
    text-align: left !important;
    font-family: Inter, sans-serif;
}

.qa-table-wrapper .qa-table thead th:nth-child(1) { width: 28% !important; }
.qa-table-wrapper .qa-table thead th:nth-child(2) { width: 36% !important; }
.qa-table-wrapper .qa-table thead th:nth-child(3) { width: 36% !important; }

.qa-table-wrapper .qa-table tbody td {
    padding: 18px 22px;
    font-size: 16px;
    line-height: 1.55;
    border-bottom: 1px solid #edf1f4;
    vertical-align: top;
    text-align: left !important;
    color: #111;
    background: #fff;
    font-weight: 400;
    font-family: Inter, sans-serif;
    transition: .25s;
}

.qa-table-wrapper .qa-table tbody td:nth-child(1) {
    font-weight: 600;
    font-size: 16px;
}

.qa-table-wrapper .qa-table tbody tr:hover td {
    background: #fafafa;
}

.qa-table-wrapper .qa-table tbody tr:last-child td {
    border-bottom: none;
}

/* Column divider lines */
.qa-table-wrapper .qa-table thead th:not(:last-child) {
    border-right: 1px solid rgba(255,255,255,.25) !important;
}

.qa-table-wrapper .qa-table tbody td:not(:last-child) {
    border-right: 1px solid #dfe5ec !important;
}

/* Responsive */
@media (max-width: 1200px) {
    .qa-table-wrapper .qa-table thead th {
        padding: 15px 16px;
        font-size: 13px;
    }
    .qa-table-wrapper .qa-table tbody td {
        padding: 12px 16px;
        font-size: 13px;
    }
    .qa-table-wrapper .qa-table tbody td:nth-child(1) {
        font-size: 13px;
    }
}

@media (max-width: 991px) {
    .qa-table-wrapper {
        overflow: auto;
    }
    .qa-table-wrapper .qa-table {
        min-width: 800px;
    }
    .qa-table-wrapper .qa-table tbody td {
        padding: 18px 16px;
        font-size: 12px;
    }
    .qa-table-wrapper .qa-table tbody td:nth-child(1) {
        font-size: 12px;
    }
    .qa-table-wrapper .qa-table::after {
        content: "← Swipe to view more →";
        display: block;
        text-align: center;
        color: #777;
        font-size: 12px;
        padding: 10px 0;
    }
}

</style>

<div class="qa-table-wrapper">
    <table class="qa-table">
        <colgroup>
            <col style="width:28%">
            <col style="width:36%">
            <col style="width:36%">
        </colgroup>
        <thead>
            <tr>
                <th style="text-align:left;">Question</th>
                <th style="text-align:left;">Signs you need it</th>
                <th style="text-align:left;">How Datagaps answers it</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td style="text-align:left;">1. Is the data right?<br>(Test it)</td>
                <td style="text-align:left;">Hundreds of rules that are hard to maintain; migrations of hundreds of tables; test data copied from production</td>
                <td style="text-align:left;">Full-volume reconciliation; complete dataflows generated in bulk; many sources in one visual test; synthetic test data generation with masking of sensitive fields</td>
            </tr>
            <tr>
                <td style="text-align:left;">2. How good is the data?<br>(Measure it)</td>
                <td style="text-align:left;">Leadership asks for a data quality number and nobody has one; alerts arrive without context</td>
                <td style="text-align:left;">Quality scores by dimension; enterprise scorecard down to column level; ML anomaly detection; tickets with context</td>
            </tr>
            <tr>
                <td style="text-align:left;">3. Can the business trust what it sees?<br>(Govern it)</td>
                <td style="text-align:left;">Dashboards checked by eye after every release; duplicate reports and measures piling up; a BI migration under way</td>
                <td style="text-align:left;">Pixel-to-pixel regression; performance and security validation; KPI, visual, filter and metadata comparison; unused measures, duplicate reports and orphaned tables found; DAX-to-SQL validation</td>
            </tr>
        </tbody>
    </table>
</div>				</div>
				</div>
				<div class="elementor-element elementor-element-a3c14ff bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="a3c14ff" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Pipeline reconciliation answers the first question, and both platforms handle it. A quality score answers the second. Governing every visual, filter, permission, and KPI answers the third. Datagaps DataOps Suite answers all three, from source to screen, in one platform.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-498addf bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="498addf" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Check it on your own data. Teams on iCEDQ can run both platforms side by side during a 14-day trial, extendable by 14 days, and generate dataflows in bulk from existing mapping documents instead of rebuilding rules one by one.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-2eaea88 bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="2eaea88" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2;" href="https://www.datagaps.com/request-a-demo/" target="_blank" rel="noopener"><strong>Test, measure and govern an iCEDQ workload on your own data →</strong></a></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-938e10c bi-extra-margin elementor-widget elementor-widget-text-editor" data-id="938e10c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-quality-monitoring-tools/" target="_blank" rel="noopener">Explore Data Quality Monitor →</a></span>  |  <span style="text-decoration: underline; color: #1967d2;"><a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/data-ops-suite-trial-request/" target="_blank" rel="noopener">Start a 14-day DataOps Suite trial →</a></span>  | <span style="text-decoration: underline;"><span style="color: #1967d2; text-decoration: underline;"> <a style="color: #1967d2; text-decoration: underline;" href="https://www.datagaps.com/blog/datagaps-vs-querysurge/" target="_blank" rel="noopener">Read: Datagaps vs QuerySurge →</a></span></span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-aad15e2 e-flex e-con-boxed e-con e-parent" data-id="aad15e2" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-7ba4479 e-con-full e-flex e-con e-child" data-id="7ba4479" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-6495ca2 elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading" data-id="6495ca2" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<span class="elementor-heading-title elementor-size-default">Get Started Today</span>				</div>
				</div>
				<div class="elementor-element elementor-element-decee42 elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading" data-id="decee42" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">See Datagaps validate a iCEDQ-style workload end-to-end on your data </h2>				</div>
				</div>
				<div class="elementor-element elementor-element-234a921 elementor-widget-widescreen__width-initial experience-br elementor-widget elementor-widget-text-editor" data-id="234a921" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Our team will run a live demo against your specific use case — your stack, your data problem, your pipeline.</p>								</div>
				</div>
		<div class="elementor-element elementor-element-6c5465e e-con-full e-flex e-con e-child" data-id="6c5465e" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-f77155c elementor-widget__width-auto home-btn-new elementor-widget elementor-widget-button" data-id="f77155c" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.datagaps.com/request-a-demo/" target="_blank">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Explore the full DataOps Suite</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-7de3a31 elementor-widget__width-auto home-btn-new elementor-widget elementor-widget-button" data-id="7de3a31" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.datagaps.com/data-ops-suite-trial-request/" target="_blank">
						<span class="elementor-button-content-wrapper">
									<span class="elementor-button-text">Start Free 14-Day Trial</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-a825597 elementor-widget-widescreen__width-initial elementor-widget elementor-widget-text-editor" data-id="a825597" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>SOC 2 Type II certified | ISO 27001 certified | No credit card required for trial | Your data never leaves your environment</p>								</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-a4a39b5 e-flex e-con-boxed e-con e-parent" data-id="a4a39b5" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-4d95095 elementor-widget elementor-widget-heading" data-id="4d95095" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Frequently Asked Questions</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-86e1523 e-flex e-con-boxed e-con e-parent" data-id="86e1523" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-d792434 elementor-widget elementor-widget-eael-adv-accordion" data-id="d792434" data-element_type="widget" data-e-type="widget" data-widget_type="eael-adv-accordion.default">
				<div class="elementor-widget-container">
					            <div class="eael-adv-accordion" id="eael-adv-accordion-d792434" data-scroll-on-click="no" data-scroll-speed="300" data-accordion-id="d792434" data-accordion-type="accordion" data-toogle-speed="300">
            <div class="eael-accordion-list">
					<div id="faq-1" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="1" aria-controls="elementor-tab-content-2261"><h3 class="eael-accordion-tab-title">Is Datagaps an alternative to iCEDQ?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-2261" class="eael-accordion-content clearfix" data-tab="1" aria-labelledby="faq-1"><p>Yes. Datagaps DataOps Suite covers what iCEDQ does, including full-volume source-to-target reconciliation, data quality rules, monitoring, and anomaly detection. It adds pixel-to-pixel BI regression, dashboard load testing, data quality scoring, BI governance, and synthetic test data. Teams evaluating iCEDQ usually shortlist Datagaps when validation has to reach the dashboard.</p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-2" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="2" aria-controls="elementor-tab-content-2262"><h3 class="eael-accordion-tab-title">What is the main difference between Datagaps and iCEDQ?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-2262" class="eael-accordion-content clearfix" data-tab="2" aria-labelledby="faq-2"><p>Scope. Both validate data pipelines at full volume, but iCEDQ stops at the data behind reports. Datagaps also tests what users see, including visuals, filters, row-level security, and performance under load. It scores data quality, governs the BI layer, and generates synthetic test data, all in one platform.</p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-3" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="3" aria-controls="elementor-tab-content-2263"><h3 class="eael-accordion-tab-title">Can iCEDQ run visual regression tests on Power BI or Tableau dashboards?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-2263" class="eael-accordion-content clearfix" data-tab="3" aria-labelledby="faq-3"><p>No. iCEDQ validates report data through BI platform APIs, including Power BI semantic models, and bypasses the visual layer. Datagaps BI Validator compares report renders pixel by pixel and as text across versions and environments for Power BI, Tableau, Oracle Analytics, and other platforms, with side-by-side regression PDFs.</p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-4" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="4" aria-controls="elementor-tab-content-2264"><h3 class="eael-accordion-tab-title">Which platform scores data quality, Datagaps or iCEDQ?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-2264" class="eael-accordion-content clearfix" data-tab="4" aria-labelledby="faq-4"><p>Datagaps. Data Quality Monitor scores data for accuracy, consistency, completeness, unicity, and conformity, rolls the scores into an enterprise scorecard with drill-down to column level, and alerts when thresholds are breached. iCEDQ runs data quality rules and writes about quality dimensions, but has no scorecard to measure them.</p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-5" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="5" aria-controls="elementor-tab-content-2265"><h3 class="eael-accordion-tab-title">Can Datagaps generate tests for hundreds of tables at once?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-2265" class="eael-accordion-content clearfix" data-tab="5" aria-labelledby="faq-5"><p>Yes. Datagaps wizards generate tests for hundreds of tables at once. One customer created comparison tests for 400 SQL Server tables of more than 500 million rows each in a few hours. Mapping Manager turns mapping documents into test suites, and BI Validator creates report regression tests in bulk.</p></div>
					</div><div class="eael-accordion-list">
					<div id="faq-6" class="elementor-tab-title eael-accordion-header" tabindex="0" data-tab="6" aria-controls="elementor-tab-content-2266"><h3 class="eael-accordion-tab-title">Can a team move from iCEDQ without rebuilding every test by hand?</h3><i aria-hidden="true" class="fa-toggle fas fa-angle-down"></i></div><div id="elementor-tab-content-2266" class="eael-accordion-content clearfix" data-tab="6" aria-labelledby="faq-6"><p><span>Yes. Teams can run Datagaps alongside iCEDQ on the same pipelines during a 14-day trial, extendable by 14 days, and compare results. Instead of recreating rules one at a time, Datagaps generates dataflows in bulk from mapping documents or schema metadata, and connects to existing schedulers through its REST API and CLI.</span></p></div>
					</div></div>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-ec1a338 e-con-full e-flex e-con e-child" data-id="ec1a338" data-element_type="container" data-e-type="container">
		<div class="elementor-element elementor-element-66128da e-con-full e-flex e-con e-child" data-id="66128da" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-b83a936 elementor-widget-laptop__width-initial elementor-widget elementor-widget-image" data-id="b83a936" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="150" height="150" src="https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png" class="attachment-thumbnail size-thumbnail wp-image-53799" alt="Raj Mohan Achanta" srcset="https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-150x150.png 150w, https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta-300x300.png 300w, https://www.datagaps.com/wp-content/uploads/RajMohan-Achanta.png 504w" sizes="(max-width: 150px) 100vw, 150px" />															</div>
				</div>
		<div class="elementor-element elementor-element-fbc8452 e-con-full e-flex e-con e-child" data-id="fbc8452" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-932b447 elementor-position-inline-end elementor-mobile-position-inline-start elementor-widget-laptop__width-initial elementor-view-default elementor-widget elementor-widget-icon-box" data-id="932b447" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/" class="elementor-icon" tabindex="-1" aria-label="Raj Mohan Achanta">
				<i aria-hidden="true" class="fab fa-linkedin-in"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h5 class="elementor-icon-box-title">
						<a href="https://www.linkedin.com/in/raj-mohan-achanta-41454b1a2/" >
							Raj Mohan Achanta						</a>
					</h5>
				
									<p class="elementor-icon-box-description">
						Associate Product Manager, Datagaps					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-ab03b9a elementor-widget elementor-widget-text-editor" data-id="ab03b9a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Associate Product Manager at Datagaps. Shapes the product experience across ETL Validator, BI Validator, and Data Quality Monitor.</p>								</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-587fb2f e-con-full e-flex e-con e-child" data-id="587fb2f" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-e70c099 elementor-widget-laptop__width-initial elementor-widget elementor-widget-image" data-id="e70c099" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="150" height="150" src="https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png" class="attachment-thumbnail size-thumbnail wp-image-54463" alt="Avinash&apos;s picture" srcset="https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-150x150.png 150w, https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-300x300.png 300w, https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2.png 504w" sizes="(max-width: 150px) 100vw, 150px" />															</div>
				</div>
		<div class="elementor-element elementor-element-0816b3d e-con-full e-flex e-con e-child" data-id="0816b3d" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-58a75fe elementor-position-inline-end elementor-mobile-position-inline-start elementor-view-default elementor-widget elementor-widget-icon-box" data-id="58a75fe" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://www.linkedin.com/in/avinashkeshri-iimb/" class="elementor-icon" tabindex="-1" aria-label="Avinash Keshri">
				<i aria-hidden="true" class="fab fa-linkedin-in"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h5 class="elementor-icon-box-title">
						<a href="https://www.linkedin.com/in/avinashkeshri-iimb/" >
							Avinash Keshri						</a>
					</h5>
				
									<p class="elementor-icon-box-description">
						Head, Product Marketing					</p>
				
			</div>
			
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-f89e140 elementor-widget elementor-widget-text-editor" data-id="f89e140" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Head of Product Marketing at Datagaps and IIM Bangalore alumnus. 13+ years of experience in commercializing AI and data platforms across global markets.</p>								</div>
				</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-ff35045 e-flex e-con-boxed e-con e-parent" data-id="ff35045" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-ff48b79 elementor-widget elementor-widget-html" data-id="ff48b79" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebPage",
      "@id": "https://www.datagaps.com/blog/datagaps-vs-icedq/#webpage",
      "url": "https://www.datagaps.com/blog/datagaps-vs-icedq/",
      "name": "Datagaps vs iCEDQ: Data Validation & BI Testing Guide",
      "description": "Compare Datagaps vs iCEDQ on data validation, data quality scoring and BI testing, with Gartner criteria, independent reviews and proof. See the gaps.",
      "inLanguage": "en-US",
      "datePublished": "2026-10-12",
      "dateModified": "2026-10-12",
      "primaryImageOfPage": {
        "@id": "https://www.datagaps.com/blog/datagaps-vs-icedq/#primaryimage"
      },
      "image": {
        "@id": "https://www.datagaps.com/blog/datagaps-vs-icedq/#primaryimage"
      },
      "isPartOf": {
        "@id": "https://www.datagaps.com/#website"
      },
      "breadcrumb": {
        "@id": "https://www.datagaps.com/blog/datagaps-vs-icedq/#breadcrumb"
      },
      "mainEntity": [
        {
          "@id": "https://www.datagaps.com/blog/datagaps-vs-icedq/#article"
        },
        {
          "@id": "https://www.datagaps.com/blog/datagaps-vs-icedq/#faq"
        }
      ],
      "about": [
        {
          "@type": "Thing",
          "name": "Datagaps vs iCEDQ"
        },
        {
          "@type": "Thing",
          "name": "iCEDQ Alternative"
        },
        {
          "@type": "Thing",
          "name": "Data Validation"
        },
        {
          "@type": "Thing",
          "name": "Data Quality Scoring"
        },
        {
          "@type": "Thing",
          "name": "BI Testing"
        },
        {
          "@type": "Thing",
          "name": "BI Visual Regression Testing"
        }
      ],
      "mentions": [
        {
          "@id": "https://www.datagaps.com/dataops-suite/#softwareapplication"
        },
        {
          "@id": "https://www.datagaps.com/data-validation-etl-testing-tools/#softwareapplication"
        },
        {
          "@id": "https://www.datagaps.com/bi-testing-tools/#softwareapplication"
        },
        {
          "@id": "https://www.datagaps.com/data-quality-monitoring-tools/#softwareapplication"
        },
        {
          "@id": "https://www.datagaps.com/test-data-manager/#softwareapplication"
        }
      ],
      "publisher": {
        "@type": "Organization",
        "@id": "https://www.datagaps.com/#organization",
        "name": "Datagaps",
        "url": "https://www.datagaps.com/"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.datagaps.com/blog/datagaps-vs-icedq/#primaryimage",
      "url": "https://www.datagaps.com/wp-content/uploads/Datagaps-vs-iCEDQ.png",
      "contentUrl": "https://www.datagaps.com/wp-content/uploads/Datagaps-vs-iCEDQ.png",
      "width": 1600,
      "height": 900,
      "caption": "Datagaps vs iCEDQ: An Honest Guide to End-to-End Data Quality & Validation",
      "inLanguage": "en-US"
    },
    {
      "@type": "BlogPosting",
      "@id": "https://www.datagaps.com/blog/datagaps-vs-icedq/#article",
      "url": "https://www.datagaps.com/blog/datagaps-vs-icedq/",
      "mainEntityOfPage": {
        "@id": "https://www.datagaps.com/blog/datagaps-vs-icedq/#webpage"
      },
      "headline": "Datagaps vs iCEDQ: An Honest Guide to End-to-End Data Quality & Validation",
      "description": "Compare Datagaps DataOps Suite and iCEDQ across data validation, data quality scoring, BI visual regression testing, test data management, AI agents, and analyst recognition.",
      "image": {
        "@id": "https://www.datagaps.com/blog/datagaps-vs-icedq/#primaryimage"
      },
      "thumbnailUrl": "https://www.datagaps.com/wp-content/uploads/Datagaps-vs-iCEDQ.png",
      "datePublished": "2026-10-12",
      "dateModified": "2026-10-12",
      "author": [
        {
          "@id": "https://www.datagaps.com/blog/datagaps-vs-icedq/#author-avinash-keshri"
        }
      ],
      "publisher": {
        "@type": "Organization",
        "@id": "https://www.datagaps.com/#organization",
        "name": "Datagaps",
        "url": "https://www.datagaps.com/"
      },
      "copyrightHolder": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "copyrightYear": 2026,
      "genre": "Technology",
      "inLanguage": "en-US",
      "articleSection": [
        "The Verdict at a Glance",
        "What Is Changing in How Enterprises Validate Data?",
        "What Should a Data Validation and Data Quality Platform Cover Today?",
        "What Does Analyst Recognition Tell Buyers?",
        "How Do Datagaps and iCEDQ Compare Feature by Feature?",
        "How Do iCEDQ's Public Claims Hold Up?",
        "Where Does Datagaps Go Further Than iCEDQ?",
        "Where Do Testing, Data Quality, and BI Validation Come Together?",
        "What Do Teams Moving Off iCEDQ Report?",
        "Is Your Data Tested, Measured, and Governed, from Source to Screen?",
        "Frequently Asked Questions: Datagaps vs iCEDQ"
      ],
      "keywords": [
        "Datagaps vs iCEDQ",
        "iCEDQ vs Datagaps",
        "iCEDQ alternative",
        "iCEDQ alternatives",
        "BI visual regression testing",
        "data quality scoring",
        "data validation tools",
        "automated data validation",
        "data quality monitoring",
        "data quality scorecard",
        "BI testing",
        "Power BI testing",
        "Tableau testing",
        "BI governance",
        "ETL testing tools",
        "source-to-target validation",
        "data migration testing",
        "test data management",
        "synthetic test data generation",
        "data observability",
        "DataOps",
        "AI-powered data validation",
        "MCP server",
        "Datagaps DataOps Suite",
        "ETL Validator",
        "BI Validator",
        "Data Quality Monitor",
        "Test Data Manager",
        "iCEDQ"
      ],
      "about": [
        {
          "@type": "Thing",
          "name": "iCEDQ Alternative"
        },
        {
          "@type": "Thing",
          "name": "Datagaps vs iCEDQ"
        },
        {
          "@type": "Thing",
          "name": "Data Validation"
        },
        {
          "@type": "Thing",
          "name": "Data Quality"
        },
        {
          "@type": "Thing",
          "name": "BI Testing"
        },
        {
          "@type": "Thing",
          "name": "DataOps"
        }
      ],
      "mentions": [
        {
          "@id": "https://www.datagaps.com/dataops-suite/#softwareapplication"
        },
        {
          "@id": "https://www.datagaps.com/data-validation-etl-testing-tools/#softwareapplication"
        },
        {
          "@id": "https://www.datagaps.com/bi-testing-tools/#softwareapplication"
        },
        {
          "@id": "https://www.datagaps.com/data-quality-monitoring-tools/#softwareapplication"
        },
        {
          "@id": "https://www.datagaps.com/test-data-manager/#softwareapplication"
        },
        {
          "@type": "Thing",
          "name": "iCEDQ",
          "url": "https://icedq.com/"
        }
      ],
      "isPartOf": {
        "@id": "https://www.datagaps.com/#website"
      }
    },
    {
      "@type": "ItemList",
      "@id": "https://www.datagaps.com/blog/datagaps-vs-icedq/#capabilities",
      "name": "Seven capabilities where Datagaps goes further than iCEDQ",
      "itemListOrder": "https://schema.org/ItemListOrderAscending",
      "numberOfItems": 7,
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Pixel-to-Pixel Visual Regression",
          "url": "https://www.datagaps.com/blog/datagaps-vs-icedq/#pixel-to-pixel-visual-regression"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Functional and Load Testing of Dashboards",
          "url": "https://www.datagaps.com/blog/datagaps-vs-icedq/#functional-and-load-testing-of-dashboards"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Hundreds of Workflows Generated at Once",
          "url": "https://www.datagaps.com/blog/datagaps-vs-icedq/#hundreds-of-workflows-generated-at-once"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Many Sources and Real Logic in One Test",
          "url": "https://www.datagaps.com/blog/datagaps-vs-icedq/#many-sources-and-real-logic-in-one-test"
        },
        {
          "@type": "ListItem",
          "position": 5,
          "name": "Data Quality You Can Measure",
          "url": "https://www.datagaps.com/blog/datagaps-vs-icedq/#data-quality-you-can-measure"
        },
        {
          "@type": "ListItem",
          "position": 6,
          "name": "Test Data Management",
          "url": "https://www.datagaps.com/blog/datagaps-vs-icedq/#test-data-management"
        },
        {
          "@type": "ListItem",
          "position": 7,
          "name": "AI Across the Whole Stack",
          "url": "https://www.datagaps.com/blog/datagaps-vs-icedq/#ai-across-the-whole-stack"
        }
      ]
    },
    {
      "@type": "Person",
      "@id": "https://www.datagaps.com/blog/datagaps-vs-icedq/#author-avinash-keshri",
      "name": "Avinash Keshri",
      "jobTitle": "Head, Product Marketing",
      "description": "Head of Product Marketing at Datagaps and IIM Bangalore alumnus. 13+ years of experience commercializing AI and data platforms across global markets.",
      "image": {
        "@type": "ImageObject",
        "@id": "https://www.datagaps.com/blog/datagaps-vs-icedq/#author-avinash-image",
        "url": "https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-300x300.png",
        "contentUrl": "https://www.datagaps.com/wp-content/uploads/Avinash-Keshri-2-300x300.png",
        "caption": "Avinash Keshri"
      },
      "sameAs": [
        "https://www.linkedin.com/in/avinashkeshri-iimb/"
      ],
      "worksFor": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "knowsAbout": [
        "Product Marketing",
        "Artificial Intelligence",
        "Data Platforms",
        "Data Validation",
        "Data Quality",
        "BI Testing",
        "Enterprise Software",
        "DataOps"
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://www.datagaps.com/blog/datagaps-vs-icedq/#faq",
      "url": "https://www.datagaps.com/blog/datagaps-vs-icedq/#faq",
      "name": "Datagaps vs iCEDQ Frequently Asked Questions",
      "isPartOf": {
        "@id": "https://www.datagaps.com/blog/datagaps-vs-icedq/#webpage"
      },
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Is Datagaps an alternative to iCEDQ?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. Datagaps DataOps Suite covers what iCEDQ does, including full-volume source-to-target reconciliation, data quality rules, monitoring, and anomaly detection. It adds pixel-to-pixel BI regression, dashboard load testing, data quality scoring, BI governance, and synthetic test data. Teams evaluating iCEDQ usually shortlist Datagaps when validation has to reach the dashboard."
          }
        },
        {
          "@type": "Question",
          "name": "What is the main difference between Datagaps and iCEDQ?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Scope. Both validate data pipelines at full volume, but iCEDQ stops at the data behind reports. Datagaps also tests what users see, including visuals, filters, row-level security, and performance under load. It scores data quality, governs the BI layer, and generates synthetic test data, all in one platform."
          }
        },
        {
          "@type": "Question",
          "name": "Can iCEDQ run visual regression tests on Power BI or Tableau dashboards?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "No. iCEDQ validates report data through BI platform APIs, including Power BI semantic models, and bypasses the visual layer. Datagaps BI Validator compares report renders pixel by pixel and as text across versions and environments for Power BI, Tableau, Oracle Analytics, and other platforms, with side-by-side regression PDFs."
          }
        },
        {
          "@type": "Question",
          "name": "Which platform scores data quality, Datagaps or iCEDQ?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Datagaps. Data Quality Monitor scores data for accuracy, consistency, completeness, unicity, and conformity, rolls the scores into an enterprise scorecard with drill-down to column level, and alerts when thresholds are breached. iCEDQ runs data quality rules and writes about quality dimensions, but has no scorecard to measure them."
          }
        },
        {
          "@type": "Question",
          "name": "Can Datagaps generate tests for hundreds of tables at once?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. Datagaps wizards generate tests for hundreds of tables at once. One customer created comparison tests for 400 SQL Server tables of more than 500 million rows each in a few hours. Mapping Manager turns mapping documents into test suites, and BI Validator creates report regression tests in bulk."
          }
        },
        {
          "@type": "Question",
          "name": "Do Datagaps and iCEDQ both validate 100% of records?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes, both validate full data volumes rather than samples. Datagaps runs on an Apache Spark engine that scales on EMR, Databricks, and Kubernetes, has validated a 1,900-column, 25-million-row table in a Fortune 100 migration, and still returns row-level mismatches when validation is pushed down into the warehouse."
          }
        },
        {
          "@type": "Question",
          "name": "How does Datagaps AI compare with iCEDQ's MCP server?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Both offer an MCP server so teams can work from the AI agents they already use. iCEDQ's 48 MCP tools cover data rules, workflows, and profiling. Datagaps has 15 AI and ML capabilities across four products, including BI tests from prompts, report comparison across BI platforms, and DAX-to-SQL conversion, with human approval before any change runs."
          }
        }
      ]
    },
    {
      "@type": "SoftwareApplication",
      "@id": "https://www.datagaps.com/dataops-suite/#softwareapplication",
      "name": "DataOps Suite",
      "alternateName": "DataOps Suite<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />",
      "applicationCategory": "BusinessApplication",
      "applicationSubCategory": "AI-Powered Data Validation and DataOps Platform",
      "operatingSystem": "Web-based",
      "url": "https://www.datagaps.com/dataops-suite/",
      "description": "Datagaps DataOps Suite is an end-to-end data validation platform covering ETL testing, BI validation, continuous data quality monitoring, test data management, and enterprise data testing.",
      "featureList": [
        "ETL testing",
        "ETL and ELT validation",
        "100% row-level data validation",
        "Source-to-target reconciliation",
        "Data migration testing",
        "Data Quality Monitor",
        "Continuous data quality monitoring",
        "Data quality scoring",
        "Data lineage",
        "BI Validator",
        "Pixel-to-pixel BI visual regression testing",
        "BI performance and stress testing",
        "BI governance",
        "Power BI testing",
        "Tableau testing",
        "Oracle Analytics testing",
        "Test Data Manager",
        "Synthetic test data generation",
        "PII and PHI masking",
        "AI-powered test generation",
        "AI-powered anomaly detection",
        "MCP server",
        "CI/CD integration",
        "Enterprise data validation"
      ],
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "USD",
        "description": "Free 14-day trial",
        "url": "https://www.datagaps.com/data-ops-suite-trial-request/",
        "availability": "https://schema.org/InStock"
      },
      "publisher": {
        "@type": "Organization",
        "@id": "https://www.datagaps.com/#organization",
        "name": "Datagaps",
        "url": "https://www.datagaps.com/"
      }
    },
    {
      "@type": "SoftwareApplication",
      "@id": "https://www.datagaps.com/data-validation-etl-testing-tools/#softwareapplication",
      "name": "ETL Validator",
      "alternateName": "Datagaps ETL Validator",
      "applicationCategory": "BusinessApplication",
      "applicationSubCategory": "ETL Testing and Data Validation",
      "operatingSystem": "Web-based",
      "url": "https://www.datagaps.com/data-validation-etl-testing-tools/",
      "description": "Datagaps ETL Validator is an AI-powered, low-code ETL testing and data validation product for source-to-target reconciliation, transformation validation, data migration testing, and bulk test generation.",
      "featureList": [
        "100% row-level validation",
        "Source-to-target reconciliation",
        "Transformation validation",
        "Visual dataflows across multiple sources",
        "Bulk test generation from mapping documents",
        "Data migration testing",
        "CI/CD integration",
        "Audit-ready validation reports"
      ],
      "isPartOf": {
        "@id": "https://www.datagaps.com/dataops-suite/#softwareapplication"
      },
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "USD",
        "description": "Free 14-day trial",
        "url": "https://www.datagaps.com/data-ops-suite-trial-request/",
        "availability": "https://schema.org/InStock"
      },
      "publisher": {
        "@type": "Organization",
        "@id": "https://www.datagaps.com/#organization",
        "name": "Datagaps",
        "url": "https://www.datagaps.com/"
      }
    },
    {
      "@type": "SoftwareApplication",
      "@id": "https://www.datagaps.com/bi-testing-tools/#softwareapplication",
      "name": "BI Validator",
      "alternateName": "Datagaps BI Validator",
      "applicationCategory": "BusinessApplication",
      "applicationSubCategory": "BI Testing and BI Governance",
      "operatingSystem": "Web-based",
      "url": "https://www.datagaps.com/bi-testing-tools/",
      "description": "Datagaps BI Validator tests BI reports and dashboards as users see them, with pixel-to-pixel visual regression, functional testing, concurrent-user load testing, and BI governance.",
      "featureList": [
        "Pixel-to-pixel and textual report comparison",
        "Side-by-side regression PDFs",
        "Filter, slicer, parameter, and bookmark testing",
        "Row-level security testing",
        "Concurrent-user load testing",
        "KPI comparison across BI platforms",
        "Unused measure, duplicate report, and orphaned table detection",
        "DAX-to-SQL validation"
      ],
      "isPartOf": {
        "@id": "https://www.datagaps.com/dataops-suite/#softwareapplication"
      },
      "publisher": {
        "@type": "Organization",
        "@id": "https://www.datagaps.com/#organization",
        "name": "Datagaps",
        "url": "https://www.datagaps.com/"
      }
    },
    {
      "@type": "SoftwareApplication",
      "@id": "https://www.datagaps.com/data-quality-monitoring-tools/#softwareapplication",
      "name": "Data Quality Monitor",
      "alternateName": "Datagaps Data Quality Monitor",
      "applicationCategory": "BusinessApplication",
      "applicationSubCategory": "Data Quality Monitoring and Data Observability",
      "operatingSystem": "Web-based",
      "url": "https://www.datagaps.com/data-quality-monitoring-tools/",
      "description": "Datagaps Data Quality Monitor scores data at rest and in motion by dimension, rolls scores into an enterprise scorecard with column-level drill-down, and detects anomalies using machine learning.",
      "featureList": [
        "Data quality scoring by dimension",
        "Enterprise data quality scorecard",
        "Column-level drill-down",
        "ML-based anomaly detection",
        "Data profiling",
        "Data lineage",
        "Threshold alerts",
        "Jira and ServiceNow ticket creation"
      ],
      "isPartOf": {
        "@id": "https://www.datagaps.com/dataops-suite/#softwareapplication"
      },
      "publisher": {
        "@type": "Organization",
        "@id": "https://www.datagaps.com/#organization",
        "name": "Datagaps",
        "url": "https://www.datagaps.com/"
      }
    },
    {
      "@type": "SoftwareApplication",
      "@id": "https://www.datagaps.com/test-data-manager/#softwareapplication",
      "name": "Test Data Manager",
      "alternateName": "Datagaps Test Data Manager",
      "applicationCategory": "BusinessApplication",
      "applicationSubCategory": "Test Data Management",
      "operatingSystem": "Web-based",
      "url": "https://www.datagaps.com/test-data-manager/",
      "description": "Datagaps Test Data Manager generates privacy-safe synthetic test data that keeps production patterns and relationships, and masks PII and PHI for GDPR and HIPAA.",
      "featureList": [
        "Synthetic test data generation",
        "Production-like patterns and relationships",
        "PII and PHI masking",
        "Bulk data generation"
      ],
      "isPartOf": {
        "@id": "https://www.datagaps.com/dataops-suite/#softwareapplication"
      },
      "publisher": {
        "@type": "Organization",
        "@id": "https://www.datagaps.com/#organization",
        "name": "Datagaps",
        "url": "https://www.datagaps.com/"
      }
    },
    {
      "@type": "WebSite",
      "@id": "https://www.datagaps.com/#website",
      "url": "https://www.datagaps.com/",
      "name": "Datagaps",
      "publisher": {
        "@id": "https://www.datagaps.com/#organization"
      },
      "inLanguage": "en-US",
      "potentialAction": {
        "@type": "SearchAction",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://www.datagaps.com/?s={search_term_string}"
        },
        "query-input": "required name=search_term_string"
      }
    }
  ]
}
</script>				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://www.datagaps.com/blog/datagaps-vs-icedq/">Datagaps vs iCEDQ: An Honest Guide to End-to-End Data Quality &#038; Validation</a> appeared first on <a href="https://www.datagaps.com">Datagaps | Gen AI-Powered Automated Cloud Data Testing</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.datagaps.com/blog/datagaps-vs-icedq/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>