Skip to content

Netflix/metacat

This branch is up to date with master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

gtretteneroGiorgio Trettenero
and
Giorgio Trettenero
Jan 14, 2025
60e81db · Jan 14, 2025
Oct 25, 2021
Apr 12, 2023
Dec 13, 2023
Dec 13, 2023
Jan 9, 2024
Jul 9, 2024
Oct 30, 2024
Jan 14, 2025
Jan 9, 2024
Dec 6, 2024
Dec 9, 2024
Jan 9, 2024
Jan 9, 2024
Jan 9, 2024
Aug 28, 2024
Jan 9, 2024
Jan 9, 2024
Jan 9, 2024
Jan 9, 2024
Dec 9, 2024
Jan 14, 2025
Sep 17, 2024
Aug 28, 2024
Jan 9, 2024
Jan 9, 2024
Jan 9, 2024
Oct 25, 2021
Aug 28, 2024
Dec 5, 2016
Jun 24, 2021
Mar 19, 2016
Mar 19, 2016
Aug 28, 2024
Jun 10, 2024
Dec 13, 2023
Dec 13, 2023
Dec 13, 2023
Mar 23, 2016
Oct 28, 2021

Repository files navigation

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