Giter VIP home page Giter VIP logo

divk123 / optimus Goto Github PK

View Code? Open in Web Editor NEW

This project forked from raystack/optimus

0.0 0.0 0.0 4.23 MB

Optimus is an easy-to-use, reliable, and performant workflow orchestrator for data transformation, data modeling, pipelines, and data quality management.

Home Page: https://odpf.github.io/optimus

License: Apache License 2.0

Dockerfile 0.01% Makefile 0.22% Go 91.25% Python 8.51% Shell 0.02%

optimus's Introduction

Optimus

Coverage Status test workflow build workflow

Optimus helps your organization to build & manage data pipelines with ease.

Features

  • BigQuery
    • Schedule SQL transformation
    • Query compile time templating (variables, loop, if statements, macros, etc)
    • Table creation
    • BigQuery View creation
    • Automatic dependency resolution: In BigQuery if a query references tables/views as source, jobs required to create these tables will be added as dependencies automatically and optimus will wait for them to finish first.
    • Cross tenant dependency: Optimus is a multi-tenant service, if there are two tenants registered, serviceA and serviceB then service B can write queries referencing serviceA as source and Optimus will handle this dependency as well
    • Dry run query: Before SQL query is scheduled for transformation, during deployment query will be dry-run to make sure it passes basic sanity checks
    • Sink BigQuery tables to Kafka [using additional plugins]
  • Extensibility to support Python transformation
  • Git based specification management
  • REST/GRPC based specification management
  • Multi-tenancy
  • Pluggable transformation

Getting Started

Optimus has two components, Optimus service that is the core orchestrator installed on server side, and a CLI binary used to interact with this service.

Compiling from source

Prerequisites

Optimus requires the following dependencies:

  • Golang (version 1.16 or above)
  • Git

Run the following commands to compile optimus from source

git clone [email protected]:odpf/optimus.git
cd optimus
make build

Use the following command to run

./optimus version

Optimus service can be started with

./optimus serve

serve command has few required configurations that needs to be set for it to start. Configuration can either be stored in .optimus.yaml file or set as environment variable. Read more about it in getting started.

Installing via brew

You can install Optimus using homebrew on macOS:

brew install odpf/taps/optimus
optimus version

Stability and Compatibility

Optimus is currently undergoing heavy development with frequent, breaking API changes.

โญ Current major version is zero (v0.x.x) to accommodate rapid development and fast iteration while getting early feedback from users (feedback on APIs are appreciated). The public API could change without a major version update before v1.0.0 release.

Credits

This project exists thanks to all the contributors.

License

Optimus is Apache 2.0 licensed.

optimus's People

Contributors

kushsharma avatar rootcss avatar scortier avatar mauliksoneji avatar arinda-arif avatar vianhazman avatar ravisuhag avatar sravankorumilli avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.