hezhaozhao-git / OpenMLDB1

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

Home Page:https://openmldb.ai

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

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.
- UDF support

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 Airflow
  • Automatic feature extraction
  • A 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

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!

About

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

https://openmldb.ai

License:Apache License 2.0


Languages

Language:C++ 75.8%Language:Java 15.4%Language:Scala 4.4%Language:Python 2.5%Language:Shell 0.7%Language:CMake 0.6%Language:SWIG 0.3%Language:Makefile 0.1%Language:LLVM 0.1%Language:Dockerfile 0.0%Language:Jsonnet 0.0%Language:JavaScript 0.0%