Code Monkey home page Code Monkey logo

openmldb's Introduction

build status docker pulls slack discuss codecov release license gitee maven central maven central pypi

English version | 中文版

OpenMLDB is an open-source machine learning database that provides a full-stack FeatureOps solution for production.

1. Our Philosophy

In the process of artificial intelligence (AI) engineering, 95% of the time and effort is consumed by data processing, data verification and other data related workloads. In order to tackle this problem, 1% tech giants will spend thousands of hours on building in-house data platforms to address AI engineering challenges such as online-offline consistency, data correctness, and data processing efficiency. The other 99% small and medium-sized enterprise purchase expensive SaaS tools and data governance services.

OpenMLDB is an open-source machine learning database that is committed to solving the data governance challenge of AI engineering in a closed loop. OpenMLDB has been deployed in hundreds of real-world enterprise applications. OpenMLDB gives priority to open-source the capability of feature engineering using SQL, which provides a production-ready full-stack feature engineering solution (aka FeatureOps).

2. A Full-Stack FeatureOps Solution for Production

MLOps provides a set of practices to develop, deploy, and maintain machine learning models in production efficiently and reliably. As a key link, FeatureOps is responsible for feature engineering, bridging the DataOps and ModelOps. A closed-loop FeatureOps solution should cover all aspects of feature engineering, including functionalities (such as feature store, feature extraction, feature serving, feature sharing) and production (such as low latency, high throughput, fault recovery, high availability, monitoring). OpenMLDB provides a full-stack FeatureOps solution for production with great ease of use, so that feature engineering development returns to its essence: focusing on the development of high-quality feature extraction scripts only and be no longer bound by engineering challenges.

image-20211103103052253

The figure above shows the workflow of FeatureOps based on OpenMLDB. From offline feature development to online serving, it only consists of three steps:

  1. The offline development of feature extraction using SQL
  2. The deployment of SQL scripts with one click only, switching the system from the offline to online mode
  3. Online feature extraction and serving by connecting with real-time data streams

3. Highlights

The Unified Online-Offline Execution Engine: Offline and real-time online feature extraction use a unified execution engine, thus online-offline consistency is inherently guaranteed.

SQL-Centric Development and Management: Feature extraction script development, deployment, and maintenance are all based on SQL with great ease of use.

Customized Optimization for Feature Extraction: Offline feature extraction is performed based on a tailored Spark version that is particularly optimized for batch-based feature processing. Online feature extraction provides tens of milliseconds latency under high throughput pressure, which fully meets the online performance requirements.

Production-Ready: OpenMLDB has been implementing important production features for large-scale applications, including fault recovery, high availability, seamless scale-out, smooth upgrade, monitoring, heterogeneous memory support, and so on.

4. FAQ

  1. What are use cases of OpenMLDB?

    At present, it is mainly positioned as a full-stack FeatureOps solution for machine learning applications. Its pipeline consists of offline and online feature extraction, feature storage, feature serving, feature sharing, and so on. On the other hand, OpenMLDB contains an efficient and fully functional time-series database, which is used in finance, IoT and other fields.

  2. How does OpenMLDB evolve?

    OpenMLDB originated from the commercial product of 4Paradigm (a leading artificial intelligence service provider). In 2021, the core team has abstracted, enhanced and developed community-friendly features based on the commercial product; and then makes it publicly available as an open-source project to benefit more enterprises to achieve successful digital transformations at low cost. Before OpenMLDB was open-source, it had been successfully deployed in hundreds of real-world applications together with 4Paradigm's other commercial products.

  3. Is OpenMLDB a feature store?

    OpenMLDB covers all the functions of a feature store, but provides a more complete full-stack FeatureOps solution, which includes feature store, development using SQL, a tailored Spark distribution for offline feature extraction, highly optimized indexing for real-time online feature extraction, feature serving, and other production features (such as monitoring, high-availability, fault recovery and so on). Furthermore, OpenMLDB is also used as a high performance time-series database besides FeatureOps.

  4. Why does OpenMLDB choose SQL as the programming language for users?

    SQL has the elegant syntax but yet powerful expression ability. SQL based programming experience flattens the learning curve of using OpenMLDB, and further makes it easier for collaboration and sharing. In addition, based on the experience of developing and deploying hundreds of real-world applications using OpenMLDB, it shows that SQL has complete functions in the expression of feature extraction and has withstood the test of practice for a long time.

5. Build & Install

👉 Read more

6. QuickStart

Cluster and Standalone Versions

OpenMLDB has introduced two deployment versions, which are cluster version and standalone version. The cluster version is suitable for large-scale applications, which provides the scalability and high-availability. On the other hand, the lightweight standalone version running on a single node is ideal for small businesses and demonstration. The cluster and standalone versions have the same functionalities but with different limitations for particular functions. Please refer to this document for details.

Getting Started with OpenMLDB

👉 OpenMLDB QuickStart

7. Use Cases

We are making efforts to build a list of real-world use cases based on OpenMLDB to demonstrate how it can fit into your business. Please stay tuned.

Application Tools Brief Introduction
New York City Taxi Trip Duration OpenMLDB, LightGBM This is a challenge from Kaggle to predict the total ride duration of taxi trips in New York City. You can read more detail here. It demonstrates using the open-source tools OpenMLDB + LightGBM to build an end-to-end machine learning applications easily.

8. Documentation

We have released the Chinese version of the full documentation, you can find it here:

We are working on the English documentation, and it will be released very soon.

9. Roadmap

Version Est. release date Highlight features
0.5.0 2022 Q1 - Monitoring APIs and tools for online serving
- Efficient queries over a fairly long period of time by window functions
- Kafka/Pulsar connector support for online data sources
- The online storage engine supports external storage devices.

Furthermore, there are a few important features on the development roadmap but have not been scheduled yet. We appreciate any feedbacks on those features.

  • A cloud-native OpenMLDB
  • Adaptors to open-source machine learning lifecycle management platforms, such as MLflow and Airflow
  • Fast recovery based on Intel® Optane™ Persistent Memory
  • Automatic feature extraction
  • Lightweight OpenMLDB for edge computing

10. Contributors

We really appreciate the contribution from our community.

Let's clap hands for our community contributors 👏

11. Community

12. Publications & Blogs

We are building a user list to collect feedback from the community. We really appreciate it if you can provide your use cases, comments, or any feedback when using OpenMLDB. We want to hear from you!

openmldb's People

Contributors

tobegit3hub avatar wuyou10206 avatar jingchen2222 avatar aceforeverd avatar imotai avatar zekai427 avatar elasticlog avatar dl239 avatar vagetablechicken avatar yjrobin avatar dependabot[bot] avatar huilinwu2 avatar keyu813 avatar yabg-shuai666 avatar lumianph avatar zhanghaohit avatar magnetowang avatar peizhaoyou avatar xuman2019 avatar altale avatar nicholas-sr avatar luyuxiao211 avatar huqianshan avatar nautaa avatar superzhaozheng avatar shawn-happy avatar nhankiet avatar mahengyang avatar shouren avatar ashish-patwal avatar

Watchers

James Cloos avatar  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.