Giter VIP home page Giter VIP logo

bonobo's Introduction

Bonobo

Bonobo is a query engine that uses the Arrow type system and aims for maximum compatibility with the Substrait specification. It is capable of:

  • Creating plans via SQL or a Dataframe API
  • Serializing plans to and from Substrait
  • Manipulating/Splitting/Validating query plans

Bonobo does not, by design, implement execution kernels for any plan relations or expressions. Instead, Bonobo aims to make it simple to delegate plans to any Substrait-compatible backends for distributed execution.

Install

go get github.com/joellubi/bonobo

Roadmap

Bonobo is still in early stages of development. Features are being added quickly and the API is subject to change.

For a feature to be considered implemented it should:

  • Be supported using the Dataframe API
  • Implement both serialization and deserialization to/from Substrait proto

Features:

  • Logical Relations
    • ReadRel
      • NamedTable
      • VirtualTable
      • ExtensionTable
      • LocalFiles
      • Filter
      • Project
    • FilterRel
    • FetchRel
    • AggregateRel
    • SortRel
    • JoinRel
    • ProjectRel
    • SetRel
    • ExtensionSingleRel
    • ExtensionMultiRel
    • ExtensionLeafRel
    • CrossRel
    • ReferenceRel
    • WriteRel
    • DdlRel
  • Physical Relations (TBD whether they will be supported)
  • Expressions
    • Literal
    • FieldReference
    • ScalarFunction
    • WindowFunction
    • IfThen
    • SwitchExpression
    • SingularOrList
    • MultiOrList
    • Cast
    • Subquery
    • Nested
  • Extensions
    • Simple Extensions
      • Type
      • Type Variation
      • Function
        • Scalar Function
        • Aggregate Function
        • Window Function
      • Type Syntax Parsing
    • Advanced Extensions
    • Capabilities
  • SQL Support
    • Query Clauses
      • SELECT
      • FROM
      • WHERE
      • GROUP BY
      • ORDER BY
      • PARTITION BY
      • LIMIT
      • JOIN
      • OVER
      • UNION
    • Binary Operators
    • Parenthesis
    • Expression Aliases
    • Identifier Aliases
    • Table Subqueries
    • Scalar Subqueries
    • Functions

bonobo's People

Contributors

joellubi avatar

Stargazers

 avatar  avatar

Watchers

 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.