Skip to content

A command line client for Apache Hive metastore implemented in Rust

License

Notifications You must be signed in to change notification settings

DeaconDesperado/nektar

Repository files navigation

Nektar

A fast and lightweight command line interface for the Apache Hive metastore.

Motivation

Hive's metastore is ubiquitous in many big data deployments, whether the deployment in question makes use of the Hive execution engine or not. It is a common component that provides table virtualization for other distributed processing engines such as Flink, Spark and Trino.

More modern analytic table formats such as Iceberg and Hudi leverage Hive's metastore to some extent for the serving and storage layer of their metadata. Cloud data catalogs such as GCP's DataProc Metastore and AWS's Glue Data Catalog also implement the metastore interface.

Typically, operations against the metastore are done via these engines' catalog procedures, or in SQL DDL using the Hive Cli itself. There are limited options for calling the metastore's endpoints themselves directly. This project provides a lightweight command line interface to the metastore's Thrift endpoints directly, to allow lower-level debugging of metastore payloads without JVM startup overhead.

Usage

Install via cargo install or download a binary directly from releases.

A fast, lightweight CLI for Hive Metastore

Usage: nektar [OPTIONS] <METASTORE_URL> <COMMAND>

Commands:
  get-table                     Get a single table by database and table name
  get-catalog                   Get a single catalog by name
  get-catalogs                  Get a list of all catalogs in metastore
  get-partitions                Get the partitions of a table
  get-partition-names-by-parts  Get the partitions of a table by partition value
  get-databases                 Get all databases in the metastore
  create-catalog                Create a catalog
  create-table                  Create a table from a table definition file
  list-tables                   Get tables in database with optional glob on name
  drop-table                    Drop a single table by database and table name
  help                          Print this message or the help of the given subcommand(s)

Arguments:
  <METASTORE_URL>  Thrift metastore endpoint, eg: host.com:9083

Options:
      --format <FORMAT>  [default: json] [possible values: json, yaml]
  -h, --help             Print help
  -V, --version          Print version

About

A command line client for Apache Hive metastore implemented in Rust

Resources

License

Stars

Watchers

Forks

Packages

No packages published