/go-pinot-api

A Go Library for interacting with the Apache Pinot Controller

Primary LanguageGoMIT LicenseMIT

Contributors Forks Stargazers Issues MIT License LinkedIn API Coverage Codacy Badge Codacy Badge


go-pinot-api

A Go Library for interacting with the Apache Pinot Controller
Explore the docs »

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

A library for interacting with Apache Pinot Controllers via the Controller REST API.

(back to top)

Built With

  • Go

(back to top)

Getting Started

Installation

go get github.com/azaurus1/go-pinot-api

(back to top)

Usage

Creating a user:

user := pinotModel.User{
  Username:  "user",
  Password:  "password",
  Component: "BROKER",
  Role:      "admin",
}

userBytes, err := json.Marshal(user)
if err != nil {
  log.Panic(err)
}

// Create User
createResp, err := client.CreateUser(userBytes)
if err != nil {
  log.Panic(err)
}

Creating a schema:

f, err := os.Open(schemaFilePath)
if err != nil {
  log.Panic(err)
}

defer f.Close()

var schema pinotModel.Schema
err = json.NewDecoder(f).Decode(schema)
if err != nil {
  log.Panic(err)
}

_, err = client.CreateSchema(schema)
if err != nil {
	log.Panic(err)
}

For more examples, please refer to the Documentation

(back to top)

Roadmap

  • User Management
  • Schema Management
  • Table Management
  • Segment Management
  • Tenant Management
  • Cluster Management
  • Instance Management
  • Task Management

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

See the Contributing Guide

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Contact

Liam Aikin - liamaikin@gmail.com

Project Link: https://github.com/azaurus1/go-pinot-api

(back to top)

Acknowledgments

(back to top)