Git Product home page Git Product logo

zhouping-git / lakesoul Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lakesoul-io/lakesoul

0.0 0.0 0.0 22.9 MB

LakeSoul is an end-to-end, realtime and cloud native Lakehouse framework with fast data ingestion, concurrent update and incremental data analytics on cloud storages for both BI and AI applications.

License: Apache License 2.0

Shell 0.77% Python 2.13% Java 28.16% Scala 59.82% Rust 9.11% Dockerfile 0.01%

lakesoul's Introduction

中文介绍

LakeSoul

LakeSoul is a cloud-native Lakehouse framework developed by DMetaSoul team, and supports scalable metadata management, ACID transactions, efficient and flexible upsert operation, schema evolution, and unified streaming & batch processing. LakeSoul Arch

LakeSoul implements incremental upserts for both row and column and allows concurrent updates. LakeSoul uses LSM-Tree like structure to support updates on hash partitioning table with primary key, and achieve very high write throughput (30MB/s/core) on cloud object store like S3 while providing optimized merge on read performance. LakeSoul scales metadata management and achieves ACID control by using PostgreSQL. LakeSoul provides tools to ingest CDC and log streams automatically in a zero-ETL style.

More detailed features please refer to our doc page: Documentations

Maven Test Flink CDC Test

Quick Start

Follow the Quick Start to quickly set up a test env.

Tutorials

Please find tutorials in doc site: Tutorials

Usage Documentations

Please find usage documentations in doc site: Usage Doc

快速开始

教程

使用文档

Feature Roadmap

  • Meta Management (#23)
    • Multiple Level Partitioning: Multiple range partition and at most one hash partition
    • Concurrent write with auto conflict resolution
    • MVCC with read isolation
    • Write transaction (two-stage commit) through Postgres Transaction
    • Schema Evolution: Column add/delete supported
  • Table operations
    • LSM-Tree style upsert for hash partitioned table
    • Merge on read for hash partition with upsert delta file
    • Copy on write update for non hash partitioned table
    • Compaction
  • Data Warehousing
    • CDC stream ingestion with auto ddl sync
    • Incremental and Snapshot Query
      • Snapshot Query (#103)
      • Incremental Query (#103)
      • Incremental Streaming Source (#130)
      • Flink Stream/Batch Source
    • Materialized View
      • Incremental MV Build
      • Auto query rewrite
  • Spark Integration
    • Table/Dataframe API
    • SQL support with catalog except upsert
    • Query optimization
      • Shuffle/Join elimination for operations on primary key
    • Merge UDF (Merge operator)
    • Merge Into SQL support
      • Merge Into SQL with match on Primary Key (Merge on read)
      • Merge Into SQL with match on non-pk
      • Merge Into SQL with match condition and complex expression (Merge on read when match on PK) (depends on #66)
    • Multiple Spark Versions Support
      • Support Spark 3.3, 3.2 and 3.1
  • Flink Integration and CDC Ingestion (#57)
    • Table API
      • Stream Sink
      • Batch Sink
      • Batch/Stream source
      • Stream Source as ChangeLog Stream
    • Flink CDC
      • Exactly Once Sink
      • Auto Schema Change (DDL) Sync
      • Auto Table Creation (depends on #78)
      • Support multiple source tables with different schemas (#84)
  • Hive Integration
    • Export to Hive partition after compaction
    • Apache Kyuubi (Hive JDBC) Integration
  • Realtime Data Warehousing
    • CDC ingestion
    • Time Travel (Snapshot read)
    • Snapshot rollback
    • MPP Engine Integration (depends on #66)
      • Presto
      • Apache Doris
  • Cloud and Native IO (#66)
    • Object storage IO optimization
    • Native merge on read
    • Multi-layer storage classes support with data tiering

Community guidelines

Community guidelines

Feedback and Contribution

Please feel free to open an issue or dicussion if you have any questions.

Join our slack user group

Contact Us

Email us at [email protected].

Opensource License

LakeSoul is opensourced under Apache License v2.0.

lakesoul's People

Contributors

asakiny avatar bakey avatar ceng23333 avatar dependabot[bot] avatar dmetasoul-opensource avatar dmetasoul01 avatar f-phantam avatar intelligencegear avatar javyxu avatar lypnaruto avatar moresun avatar xuchen-plus avatar yangzh-v2 avatar yuchanghui 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.