138 lines
299 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-metadata-service/README" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.4.3">
<title data-rh="true">metadata-service | 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/metadata-service"><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="metadata-service | DataHub"><meta data-rh="true" name="description" content="DataHub Metadata Service is a service written in Java consisting of multiple servlets:"><meta data-rh="true" property="og:description" content="DataHub Metadata Service is a service written in Java consisting of multiple servlets:"><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/metadata-service"><link data-rh="true" rel="alternate" href="https://docs.datahub.com/docs/1.1.0/metadata-service" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.datahub.com/docs/1.1.0/metadata-service" 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.934c8cf3.js" as="script">
<link rel="preload" href="/assets/js/main.909d1814.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><strong>Town Hall August 21:</strong> The Latest in DataHub Lineage</p><a href="https://events.datahub.com/august-town-hall-2025?utm_source=webinar&utm_medium=&utm_campaign=17099074-FY25-Q3-Town-Hall" target="_blank" class="button"><div>Save your spot<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/metadata-service">Next</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/docs/1.1.0/metadata-service">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 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/category/features">Features</a><button aria-label="Toggle the collapsible sidebar category &#x27;Features&#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 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/managed-datahub/managed-datahub-overview">DataHub Cloud</a><button aria-label="Toggle the collapsible sidebar category &#x27;DataHub Cloud&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menuHtmlItem_M9Kj menu__list-item"><div>Integrations</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/metadata-ingestion">Overview</a><button aria-label="Toggle the collapsible sidebar category &#x27;Overview&#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 menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/1.1.0/metadata-ingestion/cli-ingestion">Quickstart Guides</a></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/metadata-ingestion/source_overview">Sources</a><button aria-label="Toggle the collapsible sidebar category &#x27;Sources&#x27;" type="button" class="clean-btn menu__car
<a href="https://github.com/datahub-project/datahub/blob/master/docker/elasticsearch" target="_blank" rel="noopener noreferrer">Elasticsearch</a> and <a href="https://github.com/datahub-project/datahub/blob/master/docker/mysql" target="_blank" rel="noopener noreferrer">MySQL</a> Docker containers are up and running.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="start-via-docker-image">Start via Docker image<a href="#start-via-docker-image" class="hash-link" aria-label="Direct link to Start via Docker image" title="Direct link to Start via Docker image"></a></h2><p>Quickest way to try out `DataHub Metadata Service`` is running the <a href="https://github.com/datahub-project/datahub/blob/master/docker/datahub-gms" target="_blank" rel="noopener noreferrer">Docker image</a>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="start-via-command-line">Start via command line<a href="#start-via-command-line" class="hash-link" aria-label="Direct link to Start via command line" title="Direct link to Start via command line"></a></h2><p>If you do modify things and want to try it out quickly without building the Docker image, you can also run
the application directly from command line after a successful <a href="#build">build</a>:</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">./gradlew :metadata-service:war:run</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>To run with debug logs printed to console, use</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">./gradlew :metadata-service:war:run -Dlogback.debug=true</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><h2 class="anchor anchorWithStickyNavbar_LWe7" id="api-documentation">API Documentation<a href="#api-documentation" class="hash-link" aria-label="Direct link to API Documentation" title="Direct link to API Documentation"></a></h2><p>The Metadata Service hosts 2 distinct APIs:</p><ol><li><a href="https://graphql.org/" target="_blank" rel="noopener noreferrer">GraphQL</a> API</li><li><a href="https://linkedin.github.io/rest.li/" target="_blank" rel="noopener noreferrer">Rest.li</a> API</li></ol><p>The <strong>GraphQL API</strong> serves as the primary public API for the platform. It can be used to fetch and update metadata programatically in the
language of your choice.</p><p>The <strong>Rest.li</strong> API represents the underlying persistence layer, and exposes the raw PDL models used in storage.
Under the hood, it powers the GraphQL API. Aside from that, it is also used for system-specific ingestion of metadata, being used by
the Metadata Ingestion Framework for pushing metadata into DataHub directly. For all intents and purposes, the Rest.li API is considered system-internal,
meaning DataHub components are the only ones to consume this API directly.</p><p>When in doubt, opt to build on top of the friendlier GraphQL API.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="graphql-api">GraphQL API<a href="#graphql-api" class="hash-link" aria-label="Direct link to GraphQL API" title="Direct link to GraphQL API"></a></h3><p>DataHub Metadata Service exposes a <a href="https://graphql.org/" target="_blank" rel="noopener noreferrer">GraphQL</a> endpoint serving as the public API for DataHub metadata.</p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="exploring-the-graphql-api">Exploring the GraphQL API<a href="#exploring-the-graphql-api" class="hash-link" aria-label="Direct link to Exploring the GraphQL API" title="Direct link to Exploring the GraphQL API"></a></h4><p>To access GraphiQL, a browser-based exploration &amp; documentation tool, simply navigate to either</p><ul><li><code>localhost:8080/api/graphiql</code> (<code>metadata-service</code>)</li><li><code>localhost:9002/api/graphiql</code> (<code>datahub-frontend-react</code>)</li></ul><p>after you&#x27;ve deployed your instance of DataHub.</p><p>Note that the version of the API available via the <code>datahub-frontend-react</code> container is protected by Cookie-based
Authentication, whereas the API living at the <code>metadata-service</code> is not behind any Authentication by default.</p><p>In the coming weeks and months, we will be continuing to build out and improve the GraphQL API. Do note that it is still
subject to frequent change, so please plan for this as you build on top of it.</p><h5 class="anchor anchorWithStickyNavbar_LWe7" id="language-support">Language Support<a href="#language-support" class="hash-link" aria-label="Direct link to Language Support" title="Direct link to Language Support"></a></h5><p>To issue a GraphQL query programmatically, you can make use of a GraphQL client library. For a full list, see
<a href="https://graphql.org/code/" target="_blank" rel="noopener noreferrer">GraphQL Code Libraries, Tools, &amp; Services</a>.</p><p>Questions, concerns, feedback? Something you&#x27;d like to see added to the GraphQL API? Let us know on Slack!</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="restli-api">Rest.li API<a href="#restli-api" class="hash-link" aria-label="Direct link to Rest.li API" title="Direct link to Rest.li API"></a></h3><p>You can access basic documentation on the API endpoints by opening the <code>/restli/docs</code> endpoint in the browser.</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">python -c &quot;import webbrowser; webbrowser.open(&#x27;http://localhost:8080/restli/docs&#x27;, new=2)&quot;</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>*<!-- -->Please note that because DataHub is in a period of rapid development, the APIs below are subject to change.</p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="sample-api-calls">Sample API Calls<a href="#sample-api-calls" class="hash-link" aria-label="Direct link to Sample API Calls" title="Direct link to Sample API Calls"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="ingesting-aspects">Ingesting Aspects<a href="#ingesting-aspects" class="hash-link" aria-label="Direct link to Ingesting Aspects" title="Direct link to Ingesting Aspects"></a></h4><p>To ingest individual aspects into DataHub, you can use the following CURL:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token function" style="color:rgb(130, 170, 255)">curl</span><span class="token plain"> --location --request POST </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;http://localhost:8080/aspects?action=ingestProposal&#x27;</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">--header </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;X-RestLi-Protocol-Version: 2.0.0&#x27;</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">--header </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;Content-Type: application/json&#x27;</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">--data-raw </span><span class="token string" style="color:rgb(195, 232, 141)">&#x27;{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token string" style="color:rgb(195, 232, 141)"> &quot;proposal&quot; : {</span><br></span><span class="t
the aspect name, and a JSON-serialized aspect, which corresponds to the PDL schema defined for the aspect.</p><p>For more examples of serialized aspect payloads, see <a href="https://github.com/datahub-project/datahub/blob/master/metadata-ingestion/examples/mce_files/bootstrap_mce.json" target="_blank" rel="noopener noreferrer">bootstrap_mce.json</a>.</p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="ingesting-entities-legacy">Ingesting Entities (Legacy)<a href="#ingesting-entities-legacy" class="hash-link" aria-label="Direct link to Ingesting Entities (Legacy)" title="Direct link to Ingesting Entities (Legacy)"></a></h4><blockquote><p>Note - we are deprecating support for ingesting Entities via Snapshots. Please see <strong>Ingesting Aspects</strong> above for the latest
guidance around ingesting metadata into DataHub without defining or changing the legacy snapshot models. (e.g. using ConfigEntityRegistry)</p></blockquote><p>The Entity Snapshot Ingest endpoints allow you to ingest multiple aspects about a particular entity at the same time.</p><h5 class="anchor anchorWithStickyNavbar_LWe7" id="create-a-user">Create a user<a href="#create-a-user" class="hash-link" aria-label="Direct link to Create a user" title="Direct link to Create a user"></a></h5><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">curl &#x27;http://localhost:8080/entities?action=ingest&#x27; -X POST --data &#x27;{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;entity&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;value&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;com.linkedin.metadata.snapshot.CorpUserSnapshot&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;urn&quot;:&quot;urn:li:corpuser:footbarusername&quot;,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;aspects&quot;:[</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> {</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;com.linkedin.identity.CorpUserInfo&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;active&quot;:true,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;displayName&quot;:&quot;Foo Bar&quot;,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;fullName&quot;:&quot;Foo Bar&quot;,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;email&quot;:&quot;fbar@linkedin.com&quot;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> ]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">}&#x27;</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><h5 class="anchor anchorWithStickyNavbar_LWe7" id="create-a-group">Create a group<a href="#create-a-group" class="hash-link" aria-label="Direct link to Create a group" title="Direct link to Create a group"></a></h5><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--p
to add a tag to a Dataset, you can use the following CURL:</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">curl &#x27;http://localhost:8080/entities?action=ingest&#x27; -X POST --data &#x27;{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;entity&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;value&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;com.linkedin.metadata.snapshot.DatasetSnapshot&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;urn&quot;:&quot;urn:li:dataset:(urn:li:dataPlatform:foo,bar,PROD)&quot;,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;aspects&quot;:[</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> {</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;com.linkedin.common.GlobalTags&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;tags&quot;:[</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> {</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;tag&quot;:&quot;urn:li:tag:Engineering&quot;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> ]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> ]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">}&#x27;</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>And to add the tag to a field in a particular Dataset&#x27;s schema, you can use a CURL to update the EditableSchemaMetadata Aspect:</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">curl &#x27;http://localhost:8080/entities?action=ingest&#x27; -X POST --data &#x27;{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;entity&quot;:{</spa
To soft delete an entire Entity, you can use the special &quot;Status&quot; aspect. Note that soft deletion means that
an entity will not be discoverable via Search or Browse, but its entity page will still be viewable.</p><p>For example, to delete a particular chart:</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">curl &#x27;http://localhost:8080/entities?action=ingest&#x27; -X POST --data &#x27;{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;entity&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;value&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;com.linkedin.metadata.snapshot.ChartSnapshot&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;aspects&quot;:[</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> {</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;com.linkedin.common.Status&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;removed&quot;: true</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> ],</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;urn&quot;:&quot;urn:li:chart:(looker,baz1)&quot;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">}&#x27;</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>To re-enable the Entity, you can make a similar request:</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">curl &#x27;http://localhost:8080/entities?action=ingest&#x27; -X POST --data &#x27;{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;entity&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;value&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;com.linkedin.metadata.snapshot.ChartSnapshot&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;aspects&quot;:[</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> {</span><br></span><s
latest guidance.</p></blockquote><p>The Entity Snapshot Get APIs allow to retrieve the latest version of each aspect associated with an Entity.</p><p>In general, when reading entities by primary key (urn), you will use the general-purpose <code>entities</code> endpoints. To fetch by primary key (urn), you&#x27;ll
issue a query of the following form:</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">curl &#x27;http://localhost:8080/entities/&lt;url-encoded-entity-urn&gt;&#x27;</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><h5 class="anchor anchorWithStickyNavbar_LWe7" id="get-a-corpuser">Get a CorpUser<a href="#get-a-corpuser" class="hash-link" aria-label="Direct link to Get a CorpUser" title="Direct link to Get a CorpUser"></a></h5><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">curl &#x27;http://localhost:8080/entities/urn%3Ali%3Acorpuser%3Afbar&#x27;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;value&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;com.linkedin.metadata.snapshot.CorpUserSnapshot&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;urn&quot;:&quot;urn:li:corpuser:fbar&quot;,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;aspects&quot;:[</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> {</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;com.linkedin.metadata.key.CorpUserKey&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;username&quot;:&quot;fbar&quot;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> },</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> {</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;com.linkedin.identity.CorpUserInfo&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;active&quot;:true,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;fullName&quot;:&quot;Foo Bar&quot;,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;displayName&quot;:&quot;Foo Bar&quot;,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;email&quot;:&quot;fbar@linkedin.com&quot;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bf
aspect is the key for the union.</p><p>For example, to fetch the latest version of a Dataset&#x27;s &quot;schemaMetadata&quot; aspect, you could issue the following query:</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">curl &#x27;http://localhost:8080/aspects/urn%3Ali%3Adataset%3A(urn%3Ali%3AdataPlatform%3Afoo%2Cbar%2CPROD)?aspect=schemaMetadata&amp;version=0&#x27;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;version&quot;:0,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;aspect&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;com.linkedin.schema.SchemaMetadata&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;created&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;actor&quot;:&quot;urn:li:corpuser:fbar&quot;,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;time&quot;:0</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> },</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;platformSchema&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;com.linkedin.schema.KafkaSchema&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;documentSchema&quot;:&quot;{\&quot;type\&quot;:\&quot;record\&quot;,\&quot;name\&quot;:\&quot;MetadataChangeEvent\&quot;,\&quot;namespace\&quot;:\&quot;com.linkedin.mxe\&quot;,\&quot;doc\&quot;:\&quot;Kafka event for proposing a metadata change for an entity.\&quot;,\&quot;fields\&quot;:[{\&quot;name\&quot;:\&quot;auditHeader\&quot;,\&quot;type\&quot;:{\&quot;type\&quot;:\&quot;record\&quot;,\&quot;name\&quot;:\&quot;KafkaAuditHeader\&quot;,\&quot;namespace\&quot;:\&quot;com.linkedin.avro2pegasus.events\&quot;,\&quot;doc\&quot;:\&quot;Header\&quot;}}]}&quot;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> },</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;lastModified&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;actor&quot;:&quot;urn:li:corpuser:fbar&quot;,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;time&quot;:0</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> },</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;schemaName&quot;:&quot;FooEvent&quot;,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;fields&quot;:[</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> {</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;fieldPath&quot;:&quot;foo&quot;,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;description&quot;:&quot;Bar&quot;,</span><br></span><span clas
use the <code>/aspects</code> endpoint. The V2 APIs are unique in that they return a new type of payload: an &quot;Enveloped Aspect&quot;. This is essentially a serialized aspect along with
some system metadata. The serialized aspect can be in any form, though we currently default to escaped Rest.li-compatible JSON.</p><p>Callers of the V2 Aspect APIs will be expected to deserialize the aspect payload in the way they see fit. For example, they may bind the deserialized JSON object
into a strongly typed Rest.li RecordTemplate class (which is what datahub-frontend does). The benefit of doing it this way is thaet we remove the necessity to
use Rest.li Unions to represent an object which can take on multiple payload forms. It also makes adding and removing aspects from the model easier, a process
which could theoretically be done at runtime as opposed to at deploy time.</p><p>To fetch a set of Timeseries Aspects that fall into a particular time range, you can use the following query template:</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">curl -X POST &#x27;http://localhost:8080/aspects?action=getTimeseriesAspectValues&#x27; \</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">--data &#x27;{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;urn&quot;: &quot;&lt;urn&gt;&quot;,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;entity&quot;: &quot;&lt;entity-name&gt;&quot;,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;aspect&quot;: &quot;&lt;time-series-aspect-name&gt;&quot;,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;startTimeMillis&quot;: &quot;&lt;your-start-time-ms&gt;&quot;,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;endTimeMillis&quot;: &quot;&lt;your-end-time-ms&gt;&quot;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">}&#x27;</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>For example, to fetch &quot;datasetProfile&quot; timeseries aspects for a dataset with urn <code>urn:li:dataset:(urn:li:dataPlatform:foo,barUp,PROD)</code>
that were reported after July 26, 2021 and before July 28, 2021, you could issue the following query:</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain">curl -X POST &#x27;http://localhost:8080/aspects?action=getTimeseriesAspectValues&#x27; \</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">--data &#x27;{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;urn&quot;: &quot;urn:li:dataset:(urn:li:dataPlatform:redshift,global_dev.larxynx_carcinoma_data_2020,PROD)&quot;,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;entity&quot;: &quot;dataset&quot;,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;aspect&quot;: &quot;datasetProfile&quot;,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;startTimeMillis&quot;: 1625122800000,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;endTimeMillis&quot;: 1627455600000</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">}&#x27;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;value&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;limit&quot;:10000,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;aspectName&quot;:&quot;datasetProfile&quot;,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;endTimeMillis&quot;:1627455600000,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;startTimeMillis&quot;:1625122800000,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;entityName&quot;:&quot;dataset&quot;,</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;values&quot;:[</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> {</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;aspect&quot;:{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> &quot;value&quot;:&quot;{\&quot;timestampMillis\&quot;:1626912000000,\&quot;fieldProfiles\&quot;:[{\&quot;uniqueProportion\&quot;:1.0,\&quot;sampleValues\&quot;:[\&quot;123MMKK12\&quot;,\&quot;13KDFMKML\&quot;,\&quot;123NNJJJL\&quot;],\&quot;fieldPath\&quot;:\&quot;id\&quot;,\&quot;nullCount\&quot;:0,\&quot;nullProportion\&quot;:0.0,\&quot;uniqueCount\&quot;:3742},{\&quot;uniqueProportion\&quot;:1.0,\&quot;min\&quot;:\&quot;1524406400000\&quot;,\&quot;max\&quot;:\&quot;1624406400000\&quot;,\&quot;sampleValues\&quot;:[\&quot;1640023230002\&quot;,\&quot;1640343012207\&quot;,\&quot;16303412330117\&quot;],\&quot;mean\&quot;:\&quot;1555406400000\&quot;,\&quot;fieldPath\&quot;:\&quot;date\&quot;,\&quot;nullCount\&quot;:0,\&quot;nullProportion\&quot;:0.0,\&quot;uniqueCount\&quot;:3742},{\&quot;uniqueProportion\&quot;:0.037,\&quot;min\&quot;:\&quot;21\&quot;,\&quot;median\&quot;:\&quot;68\&quot;,\&quot;max\&quot;:\&quot;92\&quot;,\&quot;sampleValues\&quot;:[\&quot;45\&quot;,\&quot;65\&quot;,\&quot;81\&quot;],\&quot;mean\&quot;:\&quot;65\&quot;,\&quot;distinctValueFrequencies\&quot;:[{\&quot;value\&quot;:\&quot;12\&quot;,\&quot;f
This represents the &quot;common name&quot; for the entity which can be used in browsing, searching, and more. By default, DataHub ships with the following entities:</p><p>By convention, all entity PDLs live under <code>metadata-models/src/main/pegasus/com/linkedin/metadata/snapshot</code></p><p><em>2. How do I find the valid set of Aspect names?</em></p><p>Aspects are named inside of PDL schemas. Each aspect will be annotated with the @Aspect annotation, which will include a &quot;name&quot; field inside.
This represents the &quot;common name&quot; for the entity which can be used in browsing, searching, and more.</p><p>By convention, all entity PDLs live under <code>metadata-models/src/main/pegasus/com/linkedin/metadata/common</code> or <code>metadata-models/src/main/pegasus/com/linkedin/metadata/&lt;entity-name&gt;</code>. For example,
the dataset-specific aspects are located under <code>metadata-models/src/main/pegasus/com/linkedin/metadata/dataset</code>.</p><p><em>3. How do I find the valid set of Relationship names?</em></p><p>All relationships are defined on foreign-key fields inside Aspect PDLs. They are reflected by fields bearing the @Relationship annotation. Inside this annotation
is a &quot;name&quot; field that defines the standardized name of the Relationship to be used when querying.</p><p>By convention, all entity PDLs live under <code>metadata-models/src/main/pegasus/com/linkedin/metadata/common</code> or <code>metadata-models/src/main/pegasus/com/linkedin/metadata/&lt;entity-name&gt;</code>. For example,
the dataset-specific aspects are located under <code>metadata-models/src/main/pegasus/com/linkedin/metadata/dataset</code>.</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=metadata-service/README">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/metadata-service/README.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-44.9-25.1-87.4-65.5-111.1a67.67 67.67 0 00-34.3-9.3H572.4l6-122.9c1.4-29.7-9.1-57.9-29.5-79.4A106.62 106.62 0 00471 99.9c-52 0-98 35-111.8 85.1l-85.9 311H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h601.3c9.2 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7-.2-12.6-2-25.1-5.6-37.1zM184 852V568h81v284h-81zm636.4-353l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 22.4-13.2 42.6-33.6 51.8H329V564.8l99.5-360.5a44.1 44.1 0 0142.2-32.3c7.6 0 15.1 2.2 21.1 6.7 9.9 7.4 15.2 18.6 14.6 30.5l-9.6 198.4h314.4C829 418.5 840 436.9 840 456c0 16.5-7.2 32.1-19.6 43z"></path></svg></span></button><button class="feedbackButton_UgQs"><span role="img" aria-label="dislike" class="anticon anticon-dislike"><svg viewBox="64 64 896 896" focusable="false" data-icon="dislike" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M885.9 490.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 00-26.5-5.4H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h129.3l85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zM184 456V172h81v284h-81zm627.2 160.4H496.8l9.6 198.4c.6 11.9-4.7 23.1-14.6 30.5-6.1 4.5-13.6 6.8-21.1 6.7a44.28 44.28 0 01-42.2-32.3L329 459.2V172h415.4a56.85 56.85 0 0133.6 51.8c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0119.6 43c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0119.6 43c0 9.7-2.3 18.9-6.9 27.3l-14 25.5 21.9 19a56.76 56.76 0 0119.6 43c0 19.1-11 37.5-28.8 48.4z"></path></svg></span></button></div></div></div></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/1.1.0/datahub-graphql-core"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">datahub-graphql-core</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/1.1.0/metadata-jobs/mae-consumer-job"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">metadata-jobs:mae-consumer-job</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents tab
<script src="/assets/js/runtime~main.934c8cf3.js"></script>
<script src="/assets/js/main.909d1814.js"></script>
</body>
</html>