Skip to content

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

Notifications You must be signed in to change notification settings

clouddea/LakeSoul

 
 

Repository files navigation

LakeSoul

LF AI & Data Sandbox Project

OpenSSF Best Practices

Maven Test Flink CDC Test Build

中文介绍

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

LakeSoul was originally created by DMetaSoul company and was donated to Linux Foundation AI & Data as a sandbox project since May 2023.

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 achieves very high write throughput while providing optimized merge on read performance (refer to Performance Benchmarks). LakeSoul scales metadata management and achieves ACID control by using PostgreSQL.

LakeSoul supports concurrent batch or streaming read and write. Both read and write supports CDC semantics, and together with auto schema evolution and exacly-once guarantee, constructing realtime data warehouses is made easy.

More detailed features please refer to our doc page: Documentations

Quick Start

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

Tutorials

Please find tutorials in doc site:

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
  • Data Science
    • Native Python Reader (without PySpark)
  • 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)
  • Flink Integration and CDC Ingestion (#57)
    • Table API
      • Batch/Stream Sink
      • Batch/Stream source
      • Stream Source/Sink for ChangeLog Stream Semantics
      • Exactly Once Source and Sink
    • Flink CDC
      • Auto Schema Change (DDL) Sync
      • Auto Table Creation (depends on #78)
      • Support sink 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
    • Automatic global compaction service
    • MPP Engine Integration (depends on #66)
      • Presto/Trino
  • 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 Discord server for discussions.

Contact Us

Email us at lakesoul-technical-discuss@lists.lfaidata.foundation.

Opensource License

LakeSoul is opensourced under Apache License v2.0.

About

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.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • Scala 44.5%
  • Java 41.3%
  • Rust 9.0%
  • Python 2.4%
  • Shell 0.7%
  • JavaScript 0.5%
  • Other 1.6%