Skip to main content

Python APIs for using LakeSoul

Project description

LakeSoul LF AI & Data Sandbox Project

OpenSSF Best Practices

Maven Test Flink CDC Test Build

中文介绍

2025.09: LakeSoul has released newest version 3.0.0, check out our release note

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 supports multiple computing engines to read and write lake warehouse table data, including Spark, Flink, Presto, and PyTorch, and supports multiple computing modes such as batch, stream, MPP, and AI. LakeSoul supports storage systems such as HDFS and S3.

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 uses Rust to implement the native metadata layer and IO layer, and provides C/Java/Python interfaces to support the connecting of multiple computing frameworks such as big data and AI.

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.

LakeSoul supports multi-workspace and RBAC. LakeSoul uses Postgres's RBAC and row-level security policies to implement permission isolation for metadata. Together with Hadoop users and groups, physical data isolation can be achieved. LakeSoul's permission isolation is effective for SQL/Java/Python jobs.

LakeSoul supports automatic disaggregated size-tiered multi-level compaction, automatic table life cycle maintenance, automatic data asset statistics, and automatic redundant data cleaning, reducing operation costs and improving usability.

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

  • Data Science and AI
    • Native Python Reader (without PySpark)
    • PyTorch Dataset and distributed training
  • 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
    • Automatic Disaggregated Compaction Service
  • 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
    • Multi Workspaces and RBAC
  • 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)
  • 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
      • Compatibility with Presto Native Execution(with Velox)
      • Apache Doris
  • Cloud and Native IO (#66)
    • Object storage IO optimization
    • Native vectorized merge on read
    • Multi-layer storage classes support with local-disk data cache

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

lakesoul-1.0.2-cp310-cp310-manylinux_2_28_x86_64.whl (35.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

lakesoul-1.0.2-cp39-cp39-manylinux_2_28_x86_64.whl (35.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

lakesoul-1.0.2-cp38-cp38-manylinux_2_28_x86_64.whl (35.9 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

File details

Details for the file lakesoul-1.0.2-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lakesoul-1.0.2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6db8111f5b4d34110125d559dcadf78c01394627b451aa66b776e3e1218afd3e
MD5 2d6d56649e486421f1c86b60364d1892
BLAKE2b-256 77fe70f749d122a6694c4e8da2ec1affd066225f0c06cc5e5116eeced4b91c36

See more details on using hashes here.

Provenance

The following attestation bundles were made for lakesoul-1.0.2-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: python-ci.yml on lakesoul-io/LakeSoul

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lakesoul-1.0.2-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lakesoul-1.0.2-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ac011652def9167a39a31a1bf071b73c37243c39f1c2317da8956f3b9f97d17a
MD5 f9c7c3e19796e7c96ea4f5ff1dd729eb
BLAKE2b-256 d4b441f65bb217afe38d78a1650e6e0ed73f85b84d55a6f6d67618720e0d16b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for lakesoul-1.0.2-cp39-cp39-manylinux_2_28_x86_64.whl:

Publisher: python-ci.yml on lakesoul-io/LakeSoul

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lakesoul-1.0.2-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lakesoul-1.0.2-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1f51fc44439b5dd6b752edef764928377014958c8aa0b38e7b1df88ac2a3e57f
MD5 5d14d311816d37ef2d47682068bb57ad
BLAKE2b-256 b0047d20452aa8df711ea0bfedfb276ec8f6d4fddf197d02a2dbe2e1974a5440

See more details on using hashes here.

Provenance

The following attestation bundles were made for lakesoul-1.0.2-cp38-cp38-manylinux_2_28_x86_64.whl:

Publisher: python-ci.yml on lakesoul-io/LakeSoul

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page