144 lines
83 KiB
HTML
Raw Permalink Normal View History

<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper docs-doc-page docs-version-1.1.0 plugin-docs plugin-id-default docs-doc-id-docs/ui-ingestion" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.4.3">
<title data-rh="true">UI Based Ingestion / Managed Ingestion | DataHub</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.datahub.com/docs/1.1.0/ui-ingestion"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="1.1.0"><meta data-rh="true" name="docusaurus_tag" content="docs-default-1.1.0"><meta data-rh="true" name="docsearch:version" content="1.1.0"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-1.1.0"><meta data-rh="true" property="og:title" content="UI Based Ingestion / Managed Ingestion | DataHub"><meta data-rh="true" name="description" content="Introduction"><meta data-rh="true" property="og:description" content="Introduction"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://docs.datahub.com/docs/1.1.0/ui-ingestion"><link data-rh="true" rel="alternate" href="https://docs.datahub.com/docs/1.1.0/ui-ingestion" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.datahub.com/docs/1.1.0/ui-ingestion" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://RK0UG797F3-dsn.algolia.net" crossorigin="anonymous"><link rel="alternate" type="application/rss+xml" href="/learn/rss.xml" title="DataHub RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/learn/atom.xml" title="DataHub Atom Feed">
<link rel="preconnect" href="https://www.google-analytics.com">
<link rel="preconnect" href="https://www.googletagmanager.com">
<script async src="https://www.googletagmanager.com/gtag/js?id=G-PKGVLETT4C"></script>
<script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-PKGVLETT4C",{})</script>
<link rel="preconnect" href="https://www.googletagmanager.com">
<script>window.dataLayer=window.dataLayer||[]</script>
<script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElement(a);r.async=!0,r.src="https://www.googletagmanager.com/gtm.js?id=GTM-5M8T9HNN",m.parentNode.insertBefore(r,m)}(window,document,"script","dataLayer")</script>
<link rel="search" type="application/opensearchdescription+xml" title="DataHub" href="/opensearch.xml">
<meta httpequiv="Content-Security-Policy" content="frame-ancestors &#39;self&#39; https://*.acryl.io https://acryldata.io http://localhost:*">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;700&display=swap">
<script src="https://tools.luckyorange.com/core/lo.js?site-id=28ea8a38" async defer="defer"></script>
<script src="/scripts/rb2b.js" async defer="defer"></script>
<script src="https://app.revenuehero.io/scheduler.min.js"></script>
<script src="https://tag.clearbitscripts.com/v1/pk_2e321cabe30432a5c44c0424781aa35f/tags.js" referrerpolicy="strict-origin-when-cross-origin"></script>
<script src="/scripts/reo.js"></script>
<script id="runllm-widget-script" type="module" src="https://widget.runllm.com" crossorigin="true" runllm-name="DataHub" runllm-assistant-id="81" runllm-position="BOTTOM_RIGHT" runllm-keyboard-shortcut="Mod+j" runllm-preset="docusaurus" runllm-theme-color="#1890FF" runllm-brand-logo="https://docs.datahub.com/img/datahub-logo-color-mark.svg" runllm-community-url="https://datahub.com/slack" runllm-community-type="slack" runllm-disable-ask-a-person="true" async></script><link rel="stylesheet" href="/assets/css/styles.d8fe2eb8.css">
<link rel="preload" href="/assets/js/runtime~main.f72b8fdb.js" as="script">
<link rel="preload" href="/assets/js/main.9d79f7e2.js" as="script">
</head>
<body class="navigation-with-keyboard">
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5M8T9HNN" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:transparent;color:#ffffff" role="banner"><div class="content_knG7 announcementBarContent_xLdY"><div class="shimmer-banner"><p>DataHub Secures $35 Million Series B</p><a href="https://datahub.com/news/series-b-announcement/" target="_blank" class="button"><div>Read the announcement<span></span></div></a></div></div></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a href="https://datahub.com" target="_blank" rel="noopener noreferrer" class="navbar__brand"><div class="navbar__logo"><img src="/img/datahub-logo-color-light-horizontal.svg" alt="DataHub Logo" class="themedImage_ToTc themedImage--light_HNdA"><img src="/img/datahub-logo-color-dark-horizontal.svg" alt="DataHub Logo" class="themedImage_ToTc themedImage--dark_i4oU"></div></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link versionNavItem_cbn8">1.1.0</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/docs/ui-ingestion">Next</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/docs/1.1.0/ui-ingestion">1.1.0</a></li><li><hr class="dropdown-separator" style="margin: 0.4rem;"></li><li><div class="dropdown__link"><b>Archived versions</b></div></li><li>
<a class="dropdown__link" href="https://docs-website-t9sv4w3gr-acryldata.vercel.app/docs/features">1.0.0
<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg>
</a>
</li><li>
<a class="dropdown__link" href="https://docs-website-t9sv4w3gr-acryldata.vercel.app/docs/0.15.0/features">0.15.0
<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg>
</a>
</li><li>
<a class="dropdown__link" href="https://docs-website-8jkm4uler-acryldata.vercel.app/docs/0.14.1/features">0.14.1
<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg>
</a>
</li><li>
<a class="dropdown__link" href="https://docs-website-eue2qafvn-acryldata.vercel.app/docs/features">0.14.0
<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg>
</a>
</li><li>
<a class="dropdown__link" href="https://docs-website-psat3nzgi-acryldata.vercel.app/docs/features">0.13.1
<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg>
</a>
</li><li>
<a class="dropdown__link" href="https://docs-website-lzxh86531-acryldata.vercel.app/docs/features">0.13.0
<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg>
</a>
</li><li>
<a class="dropdown__link" href="https://docs-website-2uuxmgza2-acryldata.vercel.app/docs/features">0.12.1
<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg>
</a>
</li><li>
<a class="dropdown__link" href="https://docs-website-irpoe2osc-acryldata.vercel.app/docs/features">0.11.0
<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg>
</a>
</li><li>
<a class="dropdown__link" href="https://docs-website-1gv2yzn9d-acryldata.vercel.app/docs/features">0.10.5
<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg>
</a>
</li></ul></div></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/docs">Docs</a><a class="navbar__item navbar__link" href="/integrations">Integrations</a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Learn</a><ul class="dropdown__menu dropdown__menu_Z8FC"><div class="wrapper_kp81"><div><a href="https://datahub.com/weekly-demo" target="_blank" rel="noopener noreferrer" class="card_BUD7"><div class="icon_BgHd"><img src="/img/icon-join-slack.png" alt="Weekly Demo"></div><div class="title_c7DP">Weekly Demo</div></a></div><div><a href="https://datahub.com/use-cases" target="_blank" rel="noopener noreferrer" class="card_BUD7"><div class="icon_BgHd"><img src="/img/icon-forum.png" alt="Use Cases"></div><div class="title_c7DP">Use Cases</div></a></div><div><a href="httpps://datahub.com/adoption-stories" target="_blank" rel="noopener noreferrer" class="card_BUD7"><div class="icon_BgHd"><img src="/img/icon-events.png" alt="Adoption Stories"></div><div class="title_c7DP">Adoption Stories</div></a></div><div><a href="https://medium.com/datahub-project" target="_blank" rel="noopener noreferrer" class="card_BUD7"><div class="icon_BgHd"><img src="/img/icon-champions.png" alt="Blog"></div><div class="title_c7DP">Blog</div></a></div><div><a href="https://www.youtube.com/channel/UC3qFQC5IiwR5fvWEqi_tJ5w" target="_blank" rel="noopener noreferrer" class="card_BUD7"><div class="icon_BgHd"><img src="/img/icon-share-your-journey.png" alt="Youtube"></div><div class="title_c7DP">Youtube</div></a></div></div></ul></div><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Community</a><ul class="dropdown__menu dropdown__menu_Z8FC"><div class="wrapper_kp81"><div><a href="https://datahub.com/slack/" target="_blank" rel="noopener noreferrer" class="card_BUD7"><div class="icon_BgHd"><img src="/img/icon-join-slack.png" alt="Join Slack"></div><div class="title_c7DP">Join Slack</div></a></div><div><a href="https://datahub.com/events" target="_blank" rel="noopener noreferrer" class="card_BUD7"><div class="icon_BgHd"><img src="/img/icon-events.png" alt="Events"></div><div class="title_c7DP">Events</div></a></div><div><a href="https://datahub.com/champions/" target="_blank" rel="noopener noreferrer" class="card_BUD7"><div class="icon_BgHd"><img src="/img/icon-champions.png" alt="Champions"></div><div class="title_c7DP">Champions</div></a></div><div><a href="https://datahub.com/share-your-journey/" target="_blank" rel="noopener noreferrer" class="card_BUD7"><div class="icon_BgHd"><img src="/img/icon-share-your-journey.png" alt="Share Your Journey"></div><div class="title_c7DP">Share Your Journey</div></a></div></div></ul></div><a href="https://datahub.com/products/why-datahub-cloud/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">
<style>
.cloud-cta {
color: var(--ifm-menu-color-active);
font-weight: 600;
background: linear-gradient(40deg, var(--ifm-menu-color-active), var(--ifm-menu-color-active));
background-size: 200% 100%;
-webkit-background-clip: text;
background-clip: text;
transition: background-image 0.3s ease;
}
.cloud-cta:hover {
color: transparent;
background: linear-gradient(40deg, var(--ifm-menu-color-active), #ff1493);
background-size: 200% 100%;
-webkit-background-clip: text;
background-clip: text;
animation: gradientShift 3s ease infinite;
}
@keyframes gradientShift {
0%, 100% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
}
</style>
<div class="cloud-cta">Get Cloud</div>
</a><a href="https://datahub.com/slack?utm_source=docs&amp;utm_medium=header&amp;utm_campaign=docs_header" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">
<style>
.slack-logo:hover {
opacity: 0.8;
}
</style>
<img class="slack-logo" src="https://upload.wikimedia.org/wikipedia/commons/d/d5/Slack_icon_2019.svg" , alt="slack" , height="20px" style="margin: 10px 0 0 0;">
</a><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menuHtmlItem_M9Kj menu__list-item"><div>Getting Started</div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/docs/1.1.0/features">What Is DataHub?</a><button aria-label="Toggle the collapsible sidebar category &#x27;What Is DataHub?&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/docs/1.1.0/category/features">Features</a><button aria-label="Toggle the collapsible sidebar category &#x27;Features&#x27;" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" tabindex="0" href="/docs/1.1.0/managed-datahub/observe/assertions">Assertions</a><button aria-label="Toggle the collapsible sidebar category &#x27;Assertions&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/1.1.0/features/feature-guides/access-management">Access Management</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/docs/1.1.0/automations/docs-propagation">Automations</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/1.1.0/businessattributes">Business Attributes</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/1.1.0/glossary/business-glossary">Business Glossary</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/docs/1.1.0/features/feature-guides/c
getting metadata into DataHub easier by minimizing the overhead required to operate custom integration pipelines.</p><p>This document will describe the steps required to configure, schedule, and execute metadata ingestion inside the UI.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="running-metadata-ingestion">Running Metadata Ingestion<a href="#running-metadata-ingestion" class="hash-link" aria-label="Direct link to Running Metadata Ingestion" title="Direct link to Running Metadata Ingestion"></a></h2><h3 class="anchor anchorWithStickyNavbar_LWe7" id="prerequisites">Prerequisites<a href="#prerequisites" class="hash-link" aria-label="Direct link to Prerequisites" title="Direct link to Prerequisites"></a></h3><p>To view &amp; manage UI-based metadata ingestion, you must have the <code>Manage Metadata Ingestion</code> &amp; <code>Manage Secrets</code>
privileges assigned to your account. These can be granted by a <a href="/docs/1.1.0/authorization/policies">Platform Policy</a>.</p><p align="center"><img loading="lazy" width="70%" src="https://raw.githubusercontent.com/datahub-project/static-assets/main/imgs/ingestion-privileges.png" class="img_ev3q"></p><p>Once you have these privileges, you can begin to manage ingestion by navigating to the &#x27;Ingestion&#x27; tab in DataHub.</p><p align="center"><img loading="lazy" width="70%" src="https://raw.githubusercontent.com/datahub-project/static-assets/main/imgs/ingestion-tab.png" class="img_ev3q"></p><p>On this page, you&#x27;ll see a list of active <strong>Ingestion Sources</strong>. An Ingestion Sources is a unique source of metadata ingested
into DataHub from an external source like Snowflake, Redshift, or BigQuery.</p><p>If you&#x27;re just getting started, you won&#x27;t have any sources. In the following sections, we&#x27;ll describe how to create
your first <strong>Ingestion Source</strong>.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="creating-an-ingestion-source">Creating an Ingestion Source<a href="#creating-an-ingestion-source" class="hash-link" aria-label="Direct link to Creating an Ingestion Source" title="Direct link to Creating an Ingestion Source"></a></h3><div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">UI</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">CLI</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">GraphQL</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p>Before ingesting any metadata, you need to create a new Ingestion Source. Start by clicking <strong>+ Create new source</strong>.</p><p align="center"><img loading="lazy" width="70%" src="https://raw.githubusercontent.com/datahub-project/static-assets/main/imgs/create-new-ingestion-source-button.png" class="img_ev3q"></p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="step-1-select-a-platform-template">Step 1: Select a Platform Template<a href="#step-1-select-a-platform-template" class="hash-link" aria-label="Direct link to Step 1: Select a Platform Template" title="Direct link to Step 1: Select a Platform Template"></a></h4><p>In the first step, select a <strong>Recipe Template</strong> corresponding to the source type that you&#x27;d like to extract metadata from. Choose among
a variety of natively supported integrations, from Snowflake to Postgres to Kafka.
Select <code>Custom</code> to construct an ingestion recipe from scratch.</p><p align="center"><img loading="lazy" width="70%" src="https://raw.githubusercontent.com/datahub-project/static-assets/main/imgs/select-platform-template.png" class="img_ev3q"></p><p>Next, you&#x27;ll configure an ingestion <strong>Recipe</strong>, which defines <em>how</em> and <em>what</em> to extract from the source system.</p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="step-2-configure-a-recipe">Step 2: Configure a Recipe<a href="#step-2-configure-a-recipe" class="hash-link" aria-label="Direct link to Step 2: Configure a Recipe" title="Direct link to Step 2: Configure a Recipe"></a></h4><p>Next, you&#x27;ll define an ingestion <strong>Recipe</strong> in <a href="https://yaml.org/" target="_blank" rel="noopener noreferrer">YAML</a>. A <a href="/docs/metadata-ingestion/#recipes">Recipe</a> is a set of configurations which is
used by DataHub to extract metadata from a 3rd party system. It most often consists of the following parts:</p><ol><li><p>A source <strong>type</strong>: The type of system you&#x27;d like to extract metadata from (e.g. snowflake, mysql, postgres). If you&#x27;ve chosen a native template, this will already be populated for you.
To view a full list of currently supported <strong>types</strong>, check out <a href="/docs/metadata-ingestion/#installing-plugins">this list</a>.</p></li><li><p>A source <strong>config</strong>: A set of configurations specific to the source <strong>type</strong>. Most sources support the following types of configuration values:</p><ul><li><strong>Coordinates</strong>: The location of the system you want to extract metadata from</li><li><strong>Credentials</strong>: Authorized credentials for accessing the system you want to extract metadata from</li><li><strong>Customizations</strong>: Customizations regarding the metadata that will be extracted, e.g. which databases or tables to scan in a relational DB</li></ul></li><li><p>A sink <strong>type</strong>: A type of sink to route the metadata extracted from the source type. The officially supported DataHub sink
types are <code>datahub-rest</code> and <code>datahub-kafka</code>.</p></li><li><p>A sink <strong>config</strong>: Configuration required to send metadata to the provided sink type. For example, DataHub coordinates and credentials.</p></li></ol><p>A sample of a full recipe configured to ingest metadata from MySQL can be found in the image below.</p><p align="center"><img loading="lazy" width="70%" src="https://raw.githubusercontent.com/datahub-project/static-assets/main/imgs/example-mysql-recipe.png" class="img_ev3q"></p><p>Detailed configuration examples &amp; documentation for each source type can be found on the <a href="/docs/metadata-ingestion/">DataHub Docs</a> website.</p><h5 class="anchor anchorWithStickyNavbar_LWe7" id="creating-a-secret">Creating a Secret<a href="#creating-a-secret" class="hash-link" aria-label="Direct link to Creating a Secret" title="Direct link to Creating a Secret"></a></h5><p>For production use cases, sensitive configuration values, such as database usernames and passwords,
should be hidden from plain view within your ingestion recipe. To accomplish this, you can create &amp; embed <strong>Secrets</strong>. Secrets are named values
that are encrypted and stored within DataHub&#x27;s storage layer.</p><p>To create a secret, first navigate to the &#x27;Secrets&#x27; tab. Then click <code>+ Create new secret</code>.</p><p align="center"><img loading="lazy" width="70%" src="https://raw.githubusercontent.com/datahub-project/static-assets/main/imgs/create-secret.png" class="img_ev3q"></p><p><em>Creating a Secret to store the username for a MySQL database</em></p><p>Inside the form, provide a unique name for the secret along with the value to be encrypted, and an optional description. Click <strong>Create</strong> when you are done.
This will create a Secret which can be referenced inside your ingestion recipe using its name.</p><h5 class="anchor anchorWithStickyNavbar_LWe7" id="referencing-a-secret">Referencing a Secret<a href="#referencing-a-secret" class="hash-link" aria-label="Direct link to Referencing a Secret" title="Direct link to Referencing a Secret"></a></h5><p>Once a Secret has been created, it can be referenced from within your <strong>Recipe</strong> using variable substitution. For example,
to substitute secrets for a MySQL username and password into a Recipe, your Recipe would be defined as follows:</p><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token key atrule">source</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token key atrule">type</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> mysql</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token key atrule">config</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token key atrule">host_port</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;localhost:3306&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token key atrule">database</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> my_db</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token key atrule">username</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain">MYSQL_USERNAME</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token key atrule">password</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> $</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain">MYSQL_PASSWORD</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token key atrule">include_tables</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token boolean important" style="color:rgb(255, 88, 116)">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token key atrule">include_views</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token boolean important" style="color:rgb(255, 88, 116)">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token key atrule">profiling</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token key atrule">enabled</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token boolean important" style="color:rgb(255, 88, 116)">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"></sp
Secret values are not persisted to disk beyond execution time, and are never transmitted outside DataHub.</p><blockquote><p><strong>Attention</strong>: Any DataHub users who have been granted the <code>Manage Secrets</code> <a href="/docs/1.1.0/authorization/policies">Platform Privilege</a> will be able to retrieve plaintext secret values using the GraphQL API.</p></blockquote><h4 class="anchor anchorWithStickyNavbar_LWe7" id="step-3-schedule-execution">Step 3: Schedule Execution<a href="#step-3-schedule-execution" class="hash-link" aria-label="Direct link to Step 3: Schedule Execution" title="Direct link to Step 3: Schedule Execution"></a></h4><p>Next, you can optionally configure a schedule on which to execute your new Ingestion Source. This enables to schedule metadata extraction on a monthly, weekly, daily, or hourly cadence depending on the needs of your organization.
Schedules are defined using CRON format.</p><p align="center"><img loading="lazy" width="70%" src="https://raw.githubusercontent.com/datahub-project/static-assets/main/imgs/schedule-ingestion.png" class="img_ev3q"></p><p><em>An Ingestion Source that is executed at 9:15am every day, Los Angeles time</em></p><p>To learn more about the CRON scheduling format, check out the <a href="https://en.wikipedia.org/wiki/Cron" target="_blank" rel="noopener noreferrer">Wikipedia</a> overview.</p><p>If you plan to execute ingestion on an ad-hoc basis, you can click <strong>Skip</strong> to skip the scheduling step entirely. Don&#x27;t worry -
you can always come back and change this.</p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="step-4-finishing-up">Step 4: Finishing Up<a href="#step-4-finishing-up" class="hash-link" aria-label="Direct link to Step 4: Finishing Up" title="Direct link to Step 4: Finishing Up"></a></h4><p>Finally, give your Ingestion Source a name.</p><p align="center"><img loading="lazy" width="70%" src="https://raw.githubusercontent.com/datahub-project/static-assets/main/imgs/name-ingestion-source.png" class="img_ev3q"></p><p>Once you&#x27;re happy with your configurations, click &#x27;Done&#x27; to save your changes.</p><h5 class="anchor anchorWithStickyNavbar_LWe7" id="advanced-ingestion-configs">Advanced ingestion configs:<a href="#advanced-ingestion-configs" class="hash-link" aria-label="Direct link to Advanced ingestion configs:" title="Direct link to Advanced ingestion configs:"></a></h5><p>DataHub&#x27;s Managed Ingestion UI comes pre-configured to use the latest version of the DataHub CLI (<a href="https://pypi.org/project/acryl-datahub/" target="_blank" rel="noopener noreferrer">acryl-datahub</a>) that is compatible
with the server. However, you can override the default package version using the &#x27;Advanced&#x27; source configurations.</p><p>To do so, simply click &#x27;Advanced&#x27;, then change the &#x27;CLI Version&#x27; text box to contain the exact version
of the DataHub CLI you&#x27;d like to use.</p><p align="center"><img loading="lazy" width="70%" src="https://raw.githubusercontent.com/datahub-project/static-assets/main/imgs/custom-ingestion-cli-version.png" class="img_ev3q"></p><p><em>Pinning the CLI version to version <code>0.8.23.2</code></em></p><p>Other advanced options include specifying <strong>environment variables</strong>, <strong>DataHub plugins</strong> or <strong>python packages at runtime</strong>.</p><p>Once you&#x27;re happy with your changes, simply click &#x27;Done&#x27; to save.</p></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p>You can upload and even update recipes using the cli as mentioned in the <a href="/docs/1.1.0/cli#ingest-deploy">cli documentation for uploading ingestion recipes</a>.
An example execution for a given <code>recipe.yaml</code> file, would look something like:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">datahub ingest deploy --name </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;My Test Ingestion Source&quot;</span><span class="token plain"> --schedule </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;5 * * * *&quot;</span><span class="token plain"> --time-zone </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;UTC&quot;</span><span class="token plain"> -c recipe.yaml</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>This would create a new recipe with the name <code>My Test Ingestion Source</code>. Note that to update an existing recipe, it&#x27;s <code>urn</code> id must be passed as a parameter.
DataHub supports having multiple recipes with the same name so to distinguish them we use the urn for unique identification.</p></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p>Create ingestion sources using <a href="/docs/1.1.0/api/graphql/overview">DataHub&#x27;s GraphQL API</a> using the <strong>createIngestionSource</strong> mutation endpoint.</p><div class="language-graphql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-graphql codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token keyword" style="font-style:italic">mutation</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token property-query property-mutation property-mutation">createIngestionSource</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token attr-name" style="color:rgb(255, 203, 107)">input</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token attr-name" style="color:rgb(255, 203, 107)">name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token description string" style="color:rgb(195, 232, 141)">&quot;</span><span class="token description string language-markdown" style="color:rgb(195, 232, 141)">My Test Ingestion Source</span><span class="token description string" style="color:rgb(195, 232, 141)">&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token attr-name" style="color:rgb(255, 203, 107)">type</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token description string" style="color:rgb(195, 232, 141)">&quot;</span><span class="token description string language-markdown" style="color:rgb(195, 232, 141)">mysql</span><span class="token description string" style="color:rgb(195, 232, 141)">&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token attr-name" style="color:rgb(255, 203, 107)">description</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token description string" style="color:rgb(195, 232, 141)">&quot;</span><span class="token description string language-markdown" style="color:rgb(195, 232, 141)">My ingestion source description</span><span class="token description string" style="color:rgb(195, 232, 141)">&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token attr-name" style="color:rgb(255, 203, 107)">schedule</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"> </span><span class="token attr-name" style="color:rgb(255, 203, 107)">interval</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">&quot;*/5 * * * *&quot;</span><span class="token punctuation" style="co
you should see the &#x27;Last Status&#x27; column of the ingestion source change from <code>N/A</code> to <code>Running</code>. This
means that the request to execute ingestion has been successfully picked up by the DataHub ingestion executor.</p><p align="center"><img loading="lazy" width="70%" src="https://raw.githubusercontent.com/datahub-project/static-assets/main/imgs/running-ingestion.png" class="img_ev3q"></p><p>If ingestion has executed successfully, you should see it&#x27;s state shown in green as <code>Succeeded</code>.</p><p align="center"><img loading="lazy" width="70%" src="https://raw.githubusercontent.com/datahub-project/static-assets/main/imgs/successful-ingestion.png" class="img_ev3q"></p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="cancelling-an-ingestion-run">Cancelling an Ingestion Run<a href="#cancelling-an-ingestion-run" class="hash-link" aria-label="Direct link to Cancelling an Ingestion Run" title="Direct link to Cancelling an Ingestion Run"></a></h3><p>If your ingestion run is hanging, there may a bug in the ingestion source, or another persistent issue like exponential timeouts. If these situations,
you can cancel ingestion by clicking <strong>Cancel</strong> on the problematic run.</p><p align="center"><img loading="lazy" width="70%" src="https://raw.githubusercontent.com/datahub-project/static-assets/main/imgs/cancelled-ingestion.png" class="img_ev3q"></p><p>Once cancelled, you can view the output of the ingestion run by clicking <strong>Details</strong>.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="debugging-a-failed-ingestion-run">Debugging a Failed Ingestion Run<a href="#debugging-a-failed-ingestion-run" class="hash-link" aria-label="Direct link to Debugging a Failed Ingestion Run" title="Direct link to Debugging a Failed Ingestion Run"></a></h3><p align="center"><img loading="lazy" width="70%" src="https://raw.githubusercontent.com/datahub-project/static-assets/main/imgs/failed-ingestion.png" class="img_ev3q"></p><p>A variety of things can cause an ingestion run to fail. Common reasons for failure include:</p><ol><li><strong>Recipe Misconfiguration</strong>: A recipe has not provided the required or expected configurations for the ingestion source. You can refer
to the <a href="/docs/metadata-ingestion">Metadata Ingestion Framework</a> source docs to learn more about the configurations required for your source type.</li><li><strong>Failure to resolve Secrets</strong>: If DataHub is unable to find secrets that were referenced by your Recipe configuration, the ingestion run will fail.
Verify that the names of the secrets referenced in your recipe match those which have been created.</li><li><strong>Connectivity / Network Reachability</strong>: If DataHub is unable to reach a data source, for example due to DNS resolution
failures, metadata ingestion will fail. Ensure that the network where DataHub is deployed has access to the data source which
you are trying to reach.</li><li><strong>Authentication</strong>: If you&#x27;ve enabled <a href="/docs/1.1.0/authentication/introducing-metadata-service-authentication">Metadata Service Authentication</a>, you&#x27;ll need to provide a Personal Access Token
in your Recipe Configuration. To so this, set the &#x27;token&#x27; field of the sink configuration to contain a Personal Access Token:</li></ol><p align="center"><img loading="lazy" width="70%" src="https://raw.githubusercontent.com/datahub-project/static-assets/main/imgs/ingestion-with-token.png" class="img_ev3q"></p><p>The output of each run is captured and available to view in the UI for easier debugging. To view output logs, click <strong>DETAILS</strong>
on the corresponding ingestion run.</p><p align="center"><img loading="lazy" width="70%" src="https://raw.githubusercontent.com/datahub-project/static-assets/main/imgs/ingestion-logs.png" class="img_ev3q"></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="faq">FAQ<a href="#faq" class="hash-link" aria-label="Direct link to FAQ" title="Direct link to FAQ"></a></h2><h3 class="anchor anchorWithStickyNavbar_LWe7" id="i-tried-to-ingest-metadata-after-running-datahub-docker-quickstart-but-ingestion-is-failing-with-failed-to-connect-errors-what-do-i-do">I tried to ingest metadata after running &#x27;datahub docker quickstart&#x27;, but ingestion is failing with &#x27;Failed to Connect&#x27; errors. What do I do?<a href="#i-tried-to-ingest-metadata-after-running-datahub-docker-quickstart-but-ingestion-is-failing-with-failed-to-connect-errors-what-do-i-do" class="hash-link" aria-label="Direct link to I tried to ingest metadata after running &#x27;datahub docker quickstart&#x27;, but ingestion is failing with &#x27;Failed to Connect&#x27; errors. What do I do?" title="Direct link to I tried to ingest metadata after running &#x27;datahub docker quickstart&#x27;, but ingestion is failing with &#x27;Failed to Connect&#x27; errors. What do I do?"></a></h3><p>If not due to one of the reasons outlined above, this may be because the executor running ingestion is unable
to reach DataHub&#x27;s backend using the default configurations. Try changing your ingestion recipe to make the <code>sink.config.server</code> variable point to the Docker
DNS name for the <code>datahub-gms</code> pod:</p><p align="center"><img loading="lazy" width="70%" src="https://raw.githubusercontent.com/datahub-project/static-assets/main/imgs/quickstart-ingestion-config.png" class="img_ev3q"></p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="i-see-na-when-i-try-to-run-ingestion-what-do-i-do">I see &#x27;N/A&#x27; when I try to run ingestion. What do I do?<a href="#i-see-na-when-i-try-to-run-ingestion-what-do-i-do" class="hash-link" aria-label="Direct link to I see &#x27;N/A&#x27; when I try to run ingestion. What do I do?" title="Direct link to I see &#x27;N/A&#x27; when I try to run ingestion. What do I do?"></a></h3><p>If you see &#x27;N/A&#x27;, and the ingestion run state never changes to &#x27;Running&#x27;, this may mean
that your executor (<code>datahub-actions</code>) container is down.</p><p>This container is responsible for executing requests to run ingestion when they come in, either
on demand on a particular schedule. You can verify the health of the container using <code>docker ps</code>. Moreover, you can inspect the container logs using by finding the container id
for the <code>datahub-actions</code> container and running <code>docker logs &lt;container-id&gt;</code>.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="when-should-i-not-use-ui-ingestion">When should I NOT use UI Ingestion?<a href="#when-should-i-not-use-ui-ingestion" class="hash-link" aria-label="Direct link to When should I NOT use UI Ingestion?" title="Direct link to When should I NOT use UI Ingestion?"></a></h3><p>There are valid cases for ingesting metadata without the UI-based ingestion scheduler. For example,</p><ul><li>You have written a custom ingestion Source</li><li>Your data sources are not reachable on the network where DataHub is deployed. DataHub Cloud users can use a <a href="/docs/1.1.0/managed-datahub/operator-guide/setting-up-remote-ingestion-executor">remote executor</a> for remote UI-based ingestion.</li><li>Your ingestion source requires context from a local filesystem (e.g. input files)</li><li>You want to distribute metadata ingestion among multiple producers / environments</li></ul><h3 class="anchor anchorWithStickyNavbar_LWe7" id="how-do-i-attach-policies-to-the-actions-pod-to-give-it-permissions-to-pull-metadata-from-various-sources">How do I attach policies to the actions pod to give it permissions to pull metadata from various sources?<a href="#how-do-i-attach-policies-to-the-actions-pod-to-give-it-permissions-to-pull-metadata-from-various-sources" class="hash-link" aria-label="Direct link to How do I attach policies to the actions pod to give it permissions to pull metadata from various sources?" title="Direct link to How do I attach policies to the actions pod to give it permissions to pull metadata from various sources?"></a></h3><p>This varies across the underlying platform. For AWS, please refer to this <a href="/docs/1.1.0/deploy/aws#iam-policies-for-ui-based-ingestion">guide</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="demo">Demo<a href="#demo" class="hash-link" aria-label="Direct link to Demo" title="Direct link to Demo"></a></h2><p>Click <a href="https://www.youtube.com/watch?v=EyMyLcaw_74" target="_blank" rel="noopener noreferrer">here</a> to see a full demo of the UI Ingestion feature.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="feedback--questions--concerns">Feedback / Questions / Concerns<a href="#feedback--questions--concerns" class="hash-link" aria-label="Direct link to Feedback / Questions / Concerns" title="Direct link to Feedback / Questions / Concerns"></a></h2><p>We want to hear from you! For any inquiries, including Feedback, Questions, or Concerns, reach out on <a href="https://datahubspace.slack.com/join/shared_invite/zt-nx7i0dj7-I3IJYC551vpnvvjIaNRRGw#/shared-invite/email" target="_blank" rel="noopener noreferrer">Slack</a>!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="slackUtm_uoBr"><div class="slackUtm_uoBr"><hr>Need more help? Join the conversation in <a href="https://datahub.com/slack?utm_source=docs&amp;utm_medium=footer&amp;utm_campaign=docs_footer&amp;utm_content=docs/ui-ingestion">Slack!</a></div></div><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/datahub-project/datahub/blob/master/docs/ui-ingestion.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_VsjB"></div></div></footer><div class="feedbackWrapper_mUHF"><div class="feedbackWidget_PX4d"><div class="feedbackButtons_wn3V"><strong>Is this page helpful?</strong><div><button class="feedbackButton_UgQs"><span role="img" aria-label="like" class="anticon anticon-like"><svg viewBox="64 64 896 896" focusable="false" data-icon="like" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-4
<script src="/assets/js/runtime~main.f72b8fdb.js"></script>
<script src="/assets/js/main.9d79f7e2.js"></script>
</body>
</html>