← 开源
delta-io

delta

An open-source storage framework that enables building a Lakehouse architecture with compute engines including Spark, PrestoDB, Flink, Trino, and Hive and APIs

InfrastructureData systemsScala
在 GitHub 打开
增长势头
+124 小时新增 Star+0.0%
9.04k
Star
2.20k
Fork
+5
本周
100
贡献者
创建于 2019-04-22 · 更新于 2026-10-15 · 今日第 4443 名
主要开发者

delta-io/delta 排名第 4,443,有 9,045 个星标。

同类别比较

delta-io/delta 排名第 4,443,此处有 8 个同类条目;activeloopai/deeplake 排名第 4,441。

同类别比较
名称排名指标
NVIDIA/cudf4,429
语言:
C++
星标数:
9,776
分叉数:
1,130
简介:
cuDF - GPU DataFrame Library
arogozhnikov/einops4,433
语言:
Python
星标数:
9,622
分叉数:
403
简介:
Flexible and powerful tensor operations for readable and reliable code (for pytorch, jax, TF and others)
replicate/cog4,438
语言:
Go
星标数:
9,490
分叉数:
699
简介:
Containers for machine learning
activeloopai/deeplake4,441
语言:
C++
星标数:
9,252
分叉数:
725
简介:
Deeplake is AI Data Runtime for Agents. It provides serverless postgres with a multimodal datalake, enabling scalable retrieval and training.
intel/ipex-llm4,451
语言:
Python
星标数:
8,846
分叉数:
1,432
简介:
Accelerate local LLM inference and finetuning (LLaMA, Mistral, ChatGLM, Qwen, DeepSeek, Mixtral, Gemma, Phi, MiniCPM, Qwen-VL, MiniCPM-V, etc.) on Intel XPU (e.g., local PC with iGPU and NPU, discrete GPU such as Arc, Flex and Max); seamlessly integrate with llama.cpp, Ollama, HuggingFace, LangChain, LlamaIndex, vLLM, DeepSpeed, Axolotl, etc.
mage-ai/mage-ai4,452
语言:
Python
星标数:
8,830
分叉数:
991
简介:
🧙 Build, run, and manage data pipelines for integrating and transforming data.
nebuly-ai/optimate4,465
语言:
Python
星标数:
8,328
分叉数:
612
简介:
A collection of libraries to optimise AI model performances
coroot/coroot4,472
语言:
Go
星标数:
7,974
分叉数:
408
简介:
Coroot is an open-source observability and APM tool with AI-powered Root Cause Analysis. It combines metrics, logs, traces, continuous profiling, and SLO-based alerting with predefined dashboards and inspections.
关键参数与规格
关键参数与规格
参数值
语言Scala
类别Infrastructure
子类别Data systems
关键词Data processing, Databases, Datasets
星标数9,045
分叉数2,201
贡献者100
创建日期2019-04-22
更新日期2026-10-15
1 天星标数1
7 天星标数5
排名4,443
上次排名7,269
排名变化2,826
7 天星标排名5,358
上次 7 天星标排名5,867
7 天星标排名变化509
总星标排名1,599
上次总星标排名1,598
总星标排名变化-1
README 摘录

Delta Lake is an open-source storage framework that enables building a Lakehouse architecture with compute engines including Spark, PrestoDB, Flink, Trino, and Hive and APIs for Scala, Java, Rust, Ruby, and Python. See the Delta Lake Documentation for details. See the Quick Start Guide to get started with Scala, Java and Python. Note, this repo is one of many Delta Lake repositories in the delta. io organizations including delta, delta-rs, delta-sharing, kafka-delta-ingest, and website. The

following are some of the more popular Delta Lake integrations, refer to delta. io/integrations for the complete list: Apache Spark™: This connector allows Apache Spark™ to read from and write to Delta Lake. Apache Flink (Preview): This connector allows Apache Flink to write to Delta Lake. PrestoDB: This connector allows PrestoDB to read from Delta Lake. Trino: This connector allows Trino to read from and write to Delta Lake. Delta Standalone: This library allows Scala and Java-based projects

(including Apache Flink, Apache Hive, Apache Beam, and PrestoDB) to read from and write to Delta Lake. Apache Hive: This connector allows Apache Hive to read from Delta Lake. Delta Rust API: This library allows Rust (with Python and Ruby bindings) low level access to Delta tables and is intended to be used with data processing frameworks like datafusion, ballista, rust-dataframe, vega, etc. Table of Contents Latest binaries API Documentation Compatibility API Compatibility Data Storage Compatibility Roadmap Building Transaction

Protocol Requirements for Underlying Storage Systems Concurrency Control Reporting issues Contributing License Community Latest Binaries See the online documentation for the latest release. API Documentation Scala API docs Java API docs Python API docs Compatibility Delta Standalone library is a single-node Java library that can be used to read from and write to Delta tables. Specifically, this library provides APIs to interact with a table’s metadata in the transaction log, implementing the Delta Transaction Log Protocol to achieve

the transactional guarantees of the Delta Lake format. API Compatibility There are two types of APIs provided by the Delta Lake project. Direct Java/Scala/Python APIs - The classes and methods documented in the API docs are considered as stable public APIs. All other classes, interfaces, methods that may be directly accessible in code are considered internal, and they are subject to change across releases. Spark-based APIs - You can read Delta tables through the / (i. Options to these APIs

will remain stable within a major release of Delta Lake (e. See the online documentation for the releases and their compatibility with Apache Spark versions. Data Storage Compatibility Delta Lake guarantees backward compatibility for all Delta Lake tables (i. , newer versions of Delta Lake will always be able to read tables written by older versions of Delta Lake). However, we reserve the right to break forward compatibility as new features are introduced to the transaction protocol (i. , an older version

of Delta Lake may not be able to read a table produced by a newer version). Breaking changes in the

常见问题

记录了多少星标和分叉?

delta-io/delta 有 9,045 个星标和 2,201 个分叉。

仓库排名是多少?

delta-io/delta 排名第 4,443。

记录的语言和类别是什么?

delta-io/delta 有 9,045 个星标,语言为 Scala,类别为 Infrastructure。

哪个仓库排名最接近?

delta-io/delta 与 activeloopai/deeplake 比较,后者排名第 4,441,有 9,252 个星标。

README

Delta Lake is an open-source storage framework that enables building a Lakehouse architecture with compute engines including Spark, PrestoDB, Flink, Trino, and Hive and APIs for Scala, Java, Rust, Ruby, and Python.

The following are some of the more popular Delta Lake integrations, refer to delta.io/integrations for the complete list:

  • Apache Spark™: This connector allows Apache Spark™ to read from and write to Delta Lake.
  • Apache Flink (Preview): This connector allows Apache Flink to write to Delta Lake.
  • PrestoDB: This connector allows PrestoDB to read from Delta Lake.
  • Trino: This connector allows Trino to read from and write to Delta Lake.
  • Delta Standalone: This library allows Scala and Java-based projects (including Apache Flink, Apache Hive, Apache Beam, and PrestoDB) to read from and write to Delta Lake.
  • Apache Hive: This connector allows Apache Hive to read from Delta Lake.
  • Delta Rust API: This library allows Rust (with Python and Ruby bindings) low level access to Delta tables and is intended to be used with data processing frameworks like datafusion, ballista, rust-dataframe, vega, etc.

Table of Contents

Latest Binaries

See the online documentation for the latest release.

API Documentation

Compatibility

Delta Standalone library is a single-node Java library that can be used to read from and write to Delta tables. Specifically, this library provides APIs to interact with a table’s metadata in the transaction log, implementing the Delta Transaction Log Protocol to achieve the transactional guarantees of the Delta Lake format.

API Compatibility

There are two types of APIs provided by the Delta Lake project.

  • Direct Java/Scala/Python APIs - The classes and methods documented in the API docs are considered as stable public APIs. All other classes, interfaces, methods that may be directly accessible in code are considered internal, and they are subject to change across releases.
  • Spark-based APIs - You can read Delta tables through the DataFrameReader/Writer (i.e. spark.read, df.write, spark.readStream and df.writeStream). Options to these APIs will remain stable within a major release of Delta Lake (e.g., 1.x.x).
  • See the online documentation for the releases and their compatibility with Apache Spark versions.

Data Storage Compatibility

Delta Lake guarantees backward compatibility for all Delta Lake tables (i.e., newer versions of Delta Lake will always be able to read tables written by older versions of Delta Lake). However, we reserve the right to break forward compatibility as new features are introduced to the transaction protocol (i.e., an older version of Delta Lake may not be able to read a table produced by a newer version).

Breaking changes in the protocol are indicated by incrementing the minimum reader/writer version in the Protocol action.

Roadmap

Transaction Protocol

Delta Transaction Log Protocol document provides a specification of the transaction protocol.

Requirements for Underlying Storage Systems

Delta Lake ACID guarantees are predicated on the atomicity and durability guarantees of the storage system. Specifically, we require the storage system to provide the following.

  1. Atomic visibility: There must be a way for a file to be visible in its entirety or not visible at all.
  2. Mutual exclusion: Only one writer must be able to create (or rename) a file at the final destination.
  3. Consistent listing: Once a file has been written in a directory, all future listings for that directory must return that file.

See the online documentation on Storage Configuration for details.

Concurrency Control

Delta Lake ensures serializability for concurrent reads and writes. Please see Delta Lake Concurrency Control for more details.

Reporting issues

We use GitHub Issues to track community reported issues. You can also contact the community for getting answers.

Contributing

We welcome contributions to Delta Lake. See our CONTRIBUTING.md for more details.

We also adhere to the Delta Lake Code of Conduct.

Building

Delta Lake is compiled using SBT. Ensure that your Java version is at least 17 (you can verify with java -version).

To compile, run

build/sbt compile

To generate artifacts, run

build/sbt package

To execute tests, run

build/sbt test

To execute a single test suite, run

build/sbt spark/'testOnly org.apache.spark.sql.delta.optimize.OptimizeCompactionSQLSuite'

To execute a single test within and a single test suite, run

build/sbt spark/'testOnly *.OptimizeCompactionSQLSuite -- -z "optimize command: on partitioned table - all partitions"'

Refer to SBT docs for more commands.

Running python tests locally

Setup Environment

Install Conda (Skip if you already installed it)

Follow Conda Download to install Anaconda.

Create an environment from environment file

Follow Create Environment From Environment file to create a Conda environment from /python/environment.yml and activate the newly created delta_python_tests environment.

# Note the `--file` argument should be a fully qualified path. Using `~` in file
# path doesn't work. Example valid path: `/Users/macuser/delta/python/environment.yml`

conda env create --name delta_python_tests --file=/python/environment.yml`

JDK Setup

Build needs JDK 11. Make sure to setup JAVA_HOME that points to JDK 11.

Running tests

conda activate delta_python_tests
python3 /python/run-tests.py

IntelliJ Setup

IntelliJ is the recommended IDE to use when developing Delta Lake. To import Delta Lake as a new project:

  1. Clone Delta Lake into, for example, ~/delta.
  2. In IntelliJ, select File > New Project > Project from Existing Sources... and select ~/delta.
  3. Under Import project from external model select sbt. Click Next.
  4. Under Project JDK specify a valid Java 11 JDK and opt to use SBT shell for project reload and builds.
  5. Click Finish.
  6. In your terminal, run build/sbt clean package. Make sure you use Java 11. The build will generate files that are necessary for Intellij to index the repository.

Setup Verification

After waiting for IntelliJ to index, verify your setup by running a test suite in IntelliJ.

  1. Search for and open DeltaLogSuite
  2. Next to the class declaration, right click on the two green arrows and select Run 'DeltaLogSuite'

Troubleshooting

If you see errors of the form

Error:(46, 28) object DeltaSqlBaseParser is not a member of package io.delta.sql.parser
import io.delta.sql.parser.DeltaSqlBaseParser._
...
Error:(91, 22) not found: type DeltaSqlBaseParser
    val parser = new DeltaSqlBaseParser(tokenStream)

then follow these steps:

  1. Ensure you are using Java 11. You can set this using
export JAVA_HOME=`/usr/libexec/java_home -v 11`
  1. Compile using the SBT CLI: build/sbt clean compile.
  2. Go to File > Project Structure... > Modules > delta-spark.
  3. In the right panel under Source Folders remove any target folders, e.g. target/scala-2.12/src_managed/main [generated]
  4. Click Apply and then re-run your test.

License

Apache License 2.0, see LICENSE.

Community

There are two mediums of communication within the Delta Lake community.

排名相邻
同类项目