datahub/assets/js/16f8abae.697ffdd0.js
2025-08-22 14:09:31 +00:00

1 line
14 KiB
JavaScript

"use strict";(self.webpackChunkdocs_website=self.webpackChunkdocs_website||[]).push([[58491],{7653:(e,t,a)=>{a.d(t,{A:()=>n});const n={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm127.98 274.82h-.04l-.08.06L512 466.75 384.14 338.88c-.04-.05-.06-.06-.08-.06a.12.12 0 00-.07 0c-.03 0-.05.01-.09.05l-45.02 45.02a.2.2 0 00-.05.09.12.12 0 000 .07v.02a.27.27 0 00.06.06L466.75 512 338.88 639.86c-.05.04-.06.06-.06.08a.12.12 0 000 .07c0 .03.01.05.05.09l45.02 45.02a.2.2 0 00.09.05.12.12 0 00.07 0c.02 0 .04-.01.08-.05L512 557.25l127.86 127.87c.04.04.06.05.08.05a.12.12 0 00.07 0c.03 0 .05-.01.09-.05l45.02-45.02a.2.2 0 00.05-.09.12.12 0 000-.07v-.02a.27.27 0 00-.05-.06L557.25 512l127.87-127.86c.04-.04.05-.06.05-.08a.12.12 0 000-.07c0-.03-.01-.05-.05-.09l-45.02-45.02a.2.2 0 00-.09-.05.12.12 0 00-.07 0z"}}]},name:"close-circle",theme:"filled"}},4732:(e,t,a)=>{a.d(t,{A:()=>l});var n=a(89379),r=a(96540),o=a(7653),s=a(89990),i=function(e,t){return r.createElement(s.A,(0,n.A)((0,n.A)({},e),{},{ref:t,icon:o.A}))};const l=r.forwardRef(i)},15680:(e,t,a)=>{a.d(t,{xA:()=>d,yg:()=>p});var n=a(96540);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var l=n.createContext({}),c=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),h=c(a),b=r,p=h["".concat(l,".").concat(b)]||h[b]||u[b]||o;return a?n.createElement(p,s(s({ref:t},d),{},{components:a})):n.createElement(p,s({ref:t},d))}));function p(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,s=new Array(o);s[0]=b;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[h]="string"==typeof e?e:r,s[1]=i;for(var c=2;c<o;c++)s[c]=a[c];return n.createElement.apply(null,s)}return n.createElement.apply(null,a)}b.displayName="MDXCreateElement"},43655:(e,t,a)=>{a.d(t,{A:()=>f});var n=a(96540),r=a(20053);const o="availabilityCard_P5od",s="managedIcon_AxXO",i="platform_wqXv",l="platformAvailable_Y8lN";var c=a(4732),d=a(89379);const h={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z"}}]},name:"check-circle",theme:"filled"};var u=a(89990),b=function(e,t){return n.createElement(u.A,(0,d.A)((0,d.A)({},e),{},{ref:t,icon:h}))};const p=n.forwardRef(b);const g={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3zm36.3 281a123.07 123.07 0 01-87.6 36.3H263.9c-33.1 0-64.2-12.9-87.6-36.3A123.3 123.3 0 01140 612c0-28 9.1-54.3 26.2-76.3a125.7 125.7 0 0166.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0152.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10c54.3 14.5 92.1 63.8 92.1 120 0 33.1-12.9 64.3-36.3 87.7z"}}]},name:"cloud",theme:"outlined"};var y=function(e,t){return n.createElement(u.A,(0,d.A)((0,d.A)({},e),{},{ref:t,icon:g}))};const m=n.forwardRef(y),f=({saasOnly:e,ossOnly:t})=>n.createElement("div",{className:(0,r.A)(o,"card")},n.createElement("strong",null,"Feature Availability"),n.createElement("div",null,n.createElement("span",{className:(0,r.A)(i,!e&&l)},"Self-Hosted DataHub ",e?n.createElement(c.A,null):n.createElement(p,null))),n.createElement("div",null,n.createElement(m,{className:s}),n.createElement("span",{className:(0,r.A)(i,!t&&l)},"DataHub Cloud ",t?n.createElement(c.A,null):n.createElement(p,null))))},28353:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>h,contentTitle:()=>c,default:()=>g,frontMatter:()=>l,metadata:()=>d,toc:()=>u});a(96540);var n=a(15680),r=a(43655);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}(Object(t)).forEach((function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(t,a))})),e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}const l={description:"This page provides an overview of the Data Health Dashboard",title:"Data Health Dashboard",slug:"/managed-datahub/observe/data-health-dashboard",custom_edit_url:"https://github.com/datahub-project/datahub/blob/master/docs/managed-datahub/observe/data-health-dashboard.md"},c="Data Health Dashboard",d={unversionedId:"docs/managed-datahub/observe/data-health-dashboard",id:"docs/managed-datahub/observe/data-health-dashboard",title:"Data Health Dashboard",description:"This page provides an overview of the Data Health Dashboard",source:"@site/genDocs/docs/managed-datahub/observe/data-health-dashboard.md",sourceDirName:"docs/managed-datahub/observe",slug:"/managed-datahub/observe/data-health-dashboard",permalink:"/docs/managed-datahub/observe/data-health-dashboard",draft:!1,editUrl:"https://github.com/datahub-project/datahub/blob/master/docs/managed-datahub/observe/data-health-dashboard.md",tags:[],version:"current",frontMatter:{description:"This page provides an overview of the Data Health Dashboard",title:"Data Health Dashboard",slug:"/managed-datahub/observe/data-health-dashboard",custom_edit_url:"https://github.com/datahub-project/datahub/blob/master/docs/managed-datahub/observe/data-health-dashboard.md"},sidebar:"overviewSidebar",previous:{title:"Smart Assertions (AI Anomaly Detection) \u26a1",permalink:"/docs/managed-datahub/observe/smart-assertions"},next:{title:"Assertion Notes",permalink:"/docs/managed-datahub/observe/assertion-notes"}},h={},u=[{value:"What Is the Data Health Dashboard",id:"what-is-the-data-health-dashboard",level:2},{value:"How to use it",id:"how-to-use-it",level:2},{value:"Assertions Tab",id:"assertions-tab",level:3},{value:"Incidents Tab",id:"incidents-tab",level:3},{value:"Personalizing the Dashboard",id:"personalizing-the-dashboard",level:2},{value:"Bulk Create Smart Assertions",id:"bulk-create-smart-assertions",level:2}],b={toc:u},p="wrapper";function g(e){var{components:t}=e,a=i(e,["components"]);return(0,n.yg)(p,s(function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{},n=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(a).filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable})))),n.forEach((function(t){o(e,t,a[t])}))}return e}({},b,a),{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h1",{id:"data-health-dashboard"},"Data Health Dashboard"),(0,n.yg)(r.A,{saasOnly:!0,mdxType:"FeatureAvailability"}),(0,n.yg)("h2",{id:"what-is-the-data-health-dashboard"},"What Is the Data Health Dashboard"),(0,n.yg)("p",null,"The Data Health Dashboard aims to solve two critical use cases:"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"Triaging Data Quality Issues"),(0,n.yg)("li",{parentName:"ol"},"Understanding Broader Data Quality Coverage and Trends")),(0,n.yg)("p",null,"You can access it via the Sidebar Nav. It can be found under the ",(0,n.yg)("em",{parentName:"p"},"Observe")," section."),(0,n.yg)("p",{align:"left"},(0,n.yg)("img",{width:"80%",src:"https://raw.githubusercontent.com/datahub-project/static-assets/main/imgs/observe/data-health/overview.png"})),(0,n.yg)("h2",{id:"how-to-use-it"},"How to use it"),(0,n.yg)("h3",{id:"assertions-tab"},"Assertions Tab"),(0,n.yg)("p",null,"There are two ways to slice assertions:"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"By Assertion"),(0,n.yg)("li",{parentName:"ol"},"By Table")),(0,n.yg)("p",null,(0,n.yg)("strong",{parentName:"p"},"When to use ",(0,n.yg)("inlineCode",{parentName:"strong"},"By Assertion"))),(0,n.yg)("p",null,"This view presents an activity log of assertion runs, sorted by the last time a given assertion ran. This is incredibly valuable for triaging and detecting trends in the data quality checks."),(0,n.yg)("p",null,"For instance, by applying a time range filter (i.e., ",(0,n.yg)("inlineCode",{parentName:"p"},"Last 7 Days"),"), and setting ",(0,n.yg)("inlineCode",{parentName:"p"},"Results")," to ",(0,n.yg)("inlineCode",{parentName:"p"},"At least one failure"),", you can quickly see which assertions have failed at least once in the last 7 days. Furthermore, you'll be able to see how often their failing, relative to how often they're running, enabling you to quickly find and investigate flaky checks."),(0,n.yg)("p",null,(0,n.yg)("strong",{parentName:"p"},"When to use ",(0,n.yg)("inlineCode",{parentName:"strong"},"By Table"))),(0,n.yg)("p",null,"This view presents a list of tables that have at least one assertion that has ran on it. It is sorted by the last time any assertion ran on that table. The health dots indicate the last status of an assertion of that given type on the table."),(0,n.yg)("p",null,"This view is incredibly useful for understanding monitoring coverage across your team's tables."),(0,n.yg)("h3",{id:"incidents-tab"},"Incidents Tab"),(0,n.yg)("p",null,"The incidents tab presents the tables that have active incidents open against them. It is sorted by the last time an incident activity was reported on the given table."),(0,n.yg)("p",null,"At a glance, you can grasp how many incidents are open against any given table, see which incident last had updates on that table, and who owns it."),(0,n.yg)("p",null,(0,n.yg)("strong",{parentName:"p"},"Coming soon:")," In the future we'll be introducing high-level visual cards giving useful statistics on table coverage, time to resolution, and more.\nWe will also be introducing a timeline view of assertion failures over a given time period. Our hope is to make it even easier to detect trends in data quality failures at a single glance."),(0,n.yg)("h2",{id:"personalizing-the-dashboard"},"Personalizing the Dashboard"),(0,n.yg)("p",null,"We understand that each team, and perhaps even an individual may care about a different subset of data than others.\nFor this reason, we have included a broad range of filters to make it easy to drill down the Dashboard to the specific subset of data you care about. You can filter by:"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"Dataset Owner"),(0,n.yg)("li",{parentName:"ol"},"Dataset Domain"),(0,n.yg)("li",{parentName:"ol"},"Dataset Tags\n...and much more.")),(0,n.yg)("p",null,"In addition, both the ",(0,n.yg)("inlineCode",{parentName:"p"},"By Tables")," tab and the ",(0,n.yg)("inlineCode",{parentName:"p"},"Incidents")," tab will apply your global ",(0,n.yg)("inlineCode",{parentName:"p"},"View")," (managed via the search bar on the very top of DataHub's navigation). So if you already have a view created for your team, these tabs will automatically filter the reports down to the subset of data only you care about."),(0,n.yg)("p",{align:"left"},(0,n.yg)("img",{width:"80%",src:"https://raw.githubusercontent.com/datahub-project/static-assets/main/imgs/observe/data-health/view-applied.png"})),(0,n.yg)("h2",{id:"bulk-create-smart-assertions"},"Bulk Create Smart Assertions"),(0,n.yg)("p",null,(0,n.yg)("a",{parentName:"p",href:"/docs/managed-datahub/observe/smart-assertions"},"Smart Assertions")," are AI Anomaly Checks that can be used to quickly 'strap a seatbelt' across your data landscape. You can hit the 'Bulk Create' button in the top right corner of the data health dashboard to quickly set up anomaly detection across your most important assets:"),(0,n.yg)("div",{align:"center"},(0,n.yg)("iframe",{width:"560",height:"315",src:"https://www.loom.com/embed/f6720541914645aab6b28cdff8695d9f?sid=58dff84d-bb88-4f02-b814-17fb4986ad1f",frameborder:"0",webkitallowfullscreen:!0,mozallowfullscreen:!0,allowfullscreen:!0})))}g.isMDXComponent=!0}}]);