MCPcopy Index your code
hub / github.com/Netflix/metacat

github.com/Netflix/metacat @v1.3.2-rc.61

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.3.2-rc.61 ↗ · + Follow
3,604 symbols 11,831 edges 685 files 2,568 documented · 71% updated 21d agov1.3.2-rc.61 · 2026-06-17★ 1,68737 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Metacat

Download License Issues NetflixOSS Lifecycle

Introduction

Metacat is a unified metadata exploration API service. You can explore Hive, RDS, Teradata, Redshift, S3 and Cassandra. Metacat provides you information about what data you have, where it resides and how to process it. Metadata in the end is really data about the data. So the primary purpose of Metacat is to give a place to describe the data so that we could do more useful things with it.

Metacat focusses on solving these three problems:

  • Federate views of metadata systems.
  • Allow arbitrary metadata storage about data sets.
  • Metadata discovery

Documentation

TODO

Releases

Releases

Builds

Metacat builds are run on Travis CI here. Build Status

Getting Started

git clone git@github.com:Netflix/metacat.git
cd metacat
./gradlew clean build

Once the build is completed, the metacat WAR file is generated under metacat-war/build/libs directory. Metacat needs two basic configurations:

  • metacat.plugin.config.location: Path to the directory containing the catalog configuration. Please look at catalog samples used for functional testing.
  • metacat.usermetadata.config.location: Path to the configuration file containing the connection properties to store user metadata. Please look at this sample.

Running Locally

Take the build WAR in metacat-war/build/libs and deploy it to an existing Tomcat as ROOT.war.

The REST API can be accessed @ http://localhost:8080/mds/v1/catalog

Swagger API documentation can be accessed @ http://localhost:8080/swagger-ui/index.html

Docker Compose Example

Pre-requisite: Docker compose is installed

To start a self contained Metacat environment with some sample catalogs run the command below. This will start a docker compose cluster containing a Metacat container, a Hive Metastore Container, a Cassandra container and a PostgreSQL container.

./gradlew metacatPorts
  • metacatPorts - Prints out what exposed ports are mapped to the internal container ports. Look for the mapped port (MAPPED_PORT) to port 8080.

REST API can be accessed @ http://localhost:<MAPPED_PORT>/mds/v1/catalog

Swagger API documentation can be accessed @ http://localhost:<MAPPED_PORT>/swagger-ui/index.html

To stop the docker compose cluster:

./gradlew stopMetacatCluster

Extension points exported contracts — how you extend this code

JdbcExceptionMapper (Interface)
An interface to map JDBC SQLExceptions to Metacat Connector Exceptions. @author tgianos @author zhenl @see ConnectorExc [10 …
metacat-connector-jdbc/src/main/java/com/netflix/metacat/connector/jdbc/JdbcExceptionMapper.java
DatabaseService (Interface)
Database service. [39 implementers]
metacat-main/src/main/java/com/netflix/metacat/main/services/DatabaseService.java
CatalogThriftServiceFactory (Interface)
Thrift service factory. [38 implementers]
metacat-thrift/src/main/java/com/netflix/metacat/thrift/CatalogThriftServiceFactory.java
ConnectorPartitionService (Interface)
Interfaces for manipulating partition information for this connector. @author tgianos @since 1.0.0 [12 implementers]
metacat-common-server/src/main/java/com/netflix/metacat/common/server/connectors/ConnectorPartitionService.java
HasDefinitionMetadata (Interface)
Marker interface for objects with data metadata. [6 implementers]
metacat-common/src/main/java/com/netflix/metacat/common/dto/HasDefinitionMetadata.java
PolarisDatabaseCustomReplicaRepository (Interface)
Custom JPA repository implementation for storing PolarisDatabaseEntity. [4 implementers]
metacat-connector-polaris/src/main/java/com/netflix/metacat/connector/polaris/store/repos/PolarisDatabaseCustomReplicaRepository.java
SourceDao (Interface)
Source DAO. [3 implementers]
metacat-connector-s3/src/main/java/com/netflix/metacat/connector/s3/dao/SourceDao.java
ParentChildRelV1 (Interface)
Metacat API for managing parent child relation. @author Yingjianw [2 implementers]
metacat-client/src/main/java/com/netflix/metacat/client/api/ParentChildRelV1.java

Core symbols most depended-on inside this repo

getName
called by 296
metacat-connector-s3/src/main/java/com/netflix/metacat/connector/s3/model/Field.java
get
called by 225
metacat-connector-s3/src/main/java/com/netflix/metacat/connector/s3/dao/BaseDao.java
getDatabaseName
called by 175
metacat-common/src/main/java/com/netflix/metacat/common/QualifiedName.java
name
called by 156
metacat-connector-hive/src/main/java/com/netflix/metacat/connector/hive/iceberg/IcebergMetastoreTables.java
build
called by 147
metacat-common/src/main/java/com/netflix/metacat/common/MetacatRequestContext.java
builder
called by 136
metacat-common/src/main/java/com/netflix/metacat/common/MetacatRequestContext.java
getCatalogName
called by 132
metacat-common-server/src/main/java/com/netflix/metacat/common/server/connectors/ConnectorFactory.java
getTableName
called by 120
metacat-common-server/src/main/java/com/netflix/metacat/common/server/usermetadata/AliasService.java

Shape

Method 2,932
Class 578
Interface 74
Enum 20

Languages

Java100%

Modules by API surface

metacat-thrift/src/main/java/com/netflix/metacat/thrift/CatalogThriftHiveMetastore.java142 symbols
metacat-common-server/src/main/java/com/netflix/metacat/common/server/properties/DefaultConfigImpl.java92 symbols
metacat-common-server/src/main/java/com/netflix/metacat/common/server/properties/Config.java91 symbols
metacat-common-server/src/main/java/com/netflix/metacat/common/server/partition/parser/PartitionParser.java52 symbols
metacat-metadata-mysql/src/main/java/com/netflix/metacat/metadata/mysql/MysqlUserMetadataService.java40 symbols
metacat-common/src/main/java/com/netflix/metacat/common/QualifiedName.java38 symbols
metacat-main/src/main/java/com/netflix/metacat/main/services/impl/TableServiceImpl.java34 symbols
metacat-main/src/main/java/com/netflix/metacat/main/services/search/ElasticSearchUtilImpl.java30 symbols
metacat-common-server/src/main/java/com/netflix/metacat/common/server/partition/parser/PartitionParserTokenManager.java28 symbols
metacat-metadata-mysql/src/main/java/com/netflix/metacat/metadata/mysql/MySqlParentChildRelMetaDataService.java27 symbols
metacat-connector-hive/src/main/java/com/netflix/metacat/connector/hive/client/thrift/MetacatHiveClient.java27 symbols
metacat-connector-hive/src/main/java/com/netflix/metacat/connector/hive/client/embedded/EmbeddedHiveClient.java27 symbols

Datastores touched

(mysql)Database · 1 repos
metacatDatabase · 1 repos
aurora_dbDatabase · 1 repos
hiveDatabase · 1 repos
s3Database · 1 repos
worldDatabase · 1 repos

For agents

$ claude mcp add metacat \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page