Lakebench
Evaluate lakehouse architectures through the workloads they execute.
Lakebench runs defined data workloads against configurable lakehouse architectures on Kubernetes. It measures how the assembled system behaves, where time and resources are consumed, and how results change when architectural choices or operating conditions change.
Rather than benchmarking individual components in isolation, Lakebench evaluates the behaviour of the architecture as a whole.
Why Lakebench?
A lakehouse is a composition of technologies. Its behaviour depends on how those technologies work together, the workload being executed and the infrastructure underneath them.
Component benchmarks cannot tell you how the complete architecture will behave when ingesting, transforming, analyzing and maintaining data.
Lakebench provides a repeatable way to investigate three questions:
- How does the architecture behave? Execute a defined workload and measure its outcomes, processing stages and resource consumption.
- Where are the constraints? Examine where execution time is spent and which system resources contribute to observed behaviour.
- What changes when the architecture changes? Repeat the workload with different supported components, configurations or operating conditions and compare the evidence.
Lakebench produces measurements and supporting context. It does not automatically determine the best architecture or establish production suitability.
How Lakebench Works
Every Lakebench experiment brings together four elements:
Workload: The data, processing, queries and outcomes that exercise the architecture.
Architecture: The supported composition of processing engines, table formats, catalogs and query engines.
System: The Kubernetes, compute, network and storage environment on which the architecture runs.
Execution conditions: The scale, resource allocations, execution mode and other controls under which the workload executes.
Together, these produce evidence of how the workload behaved.
Workload x Architecture x System x Execution conditions -> Evidence
Lakebench automates supported deployment and execution activities, collects measurements and produces reports for examining the results.
Workloads
Lakebench currently provides two synthetic workloads.
Customer 360
Customer 360 exercises a retail analytics workload. Customer interactions are ingested, validated, transformed and aggregated into analytical datasets that are queried for business insights.
It exercises the architecture through data preparation, transformation, aggregation and analytical querying.
Financial Crime / AML
The financial-crime workload exercises transaction-monitoring data processing using synthetic financial transactions.
It combines ingestion, transformation, detection and analytical activity to examine both processing behaviour and detection outcomes.
Its purpose is to evaluate how the architecture executes the workload, not to establish the effectiveness of a production AML detection system.
The two workloads exercise different data-processing behaviours while using the same underlying architectural composition model.
Running an Experiment
Lakebench supports a workflow that:
- Defines the workload, architecture and execution configuration.
- Deploys the required supported components onto Kubernetes.
- Generates synthetic workload data.
- Executes the workload.
- Collects measurements and produces results.
- Supports subsequent investigation and comparison.
Install
pip install lakebench-k8s
Binaries that need no Python are on GitHub Releases.
Run
lakebench init --endpoint http://your-s3-endpoint:80 # writes lakebench.yaml
export LAKEBENCH_S3_ACCESS_KEY=...
export LAKEBENCH_S3_SECRET_KEY=...
lakebench admin install --component all lakebench.yaml # once per cluster
lakebench plan lakebench.yaml # what the run needs (read-only)
lakebench run lakebench.yaml --generate --yes # deploy, generate, run workload
lakebench report lakebench.yaml # print results
lakebench destroy lakebench.yaml # remove what this deployment created
initwrites a minimal configuration.--recipe <name>selects an architectural composition;--workload financialselects the AML workload. There are 11 supported recipes.lakebench config recipeslists them.admin installplaces shared cluster components (Spark Operator, Stackable operators for Hive recipes, scratch StorageClass). Run once per cluster.planchecks whether the cluster has room for the workload. It changes nothing.--generatefills the bronze bucket with synthetic data. Without it,runrefuses (exit 4).--yesletsrundeploy the namespace and components. Without it, runlakebench deployfirst.destroyremoves only what this deployment created. It asks for confirmation unless--yesis passed.
The full walkthrough is Getting Started.
Understanding Results
Lakebench records how the workload executed under the specified conditions.
Depending on the workload and available instrumentation, this can include:
- Workload outcomes and correctness.
- Execution time and processing-stage behaviour.
- Throughput and resource efficiency.
- Query or detection performance.
- Compute, memory and storage observations.
Results describe observed behaviour under particular conditions. They are not universal performance claims.
Comparing results requires understanding what changed between runs and whether their execution conditions and workload semantics are equivalent.
lakebench report prints a summary and the path to the HTML report.
--render writes a fresh copy; --format json or csv for scripts.
Prerequisites
Lakebench requires a supported Kubernetes environment and access to compatible storage. It does not provision the underlying infrastructure.
Host tooling:
kubectlandhelmon PATH.
Kubernetes:
- Kubernetes 1.26+.
- Permission to create a namespace.
Storage:
- S3-compatible object storage with an endpoint URL, access key and secret
key. Validated on FlashBlade and Garage; expected to work on AWS S3,
MinIO and other S3-compatible stores.
lakebench config storagechecks yours.
Cluster capacity:
- Room for the workload. Scale 1 batch needs about 41 cores and 544 GB.
Requirements grow with scale and differ by workload and execution mode.
lakebench planchecks the cluster; Sizing has every combination.
The Prerequisites page lists every check and its fix.
Documentation
- Getting Started: install, first run, teardown
- Documentation index: full navigation
- Configuration: every YAML field
- CLI Reference: every command and flag
- Workloads: Customer 360 and AML
- Recipes: supported architectural compositions
- Results & Comparison: measurements and interpretation
- Upgrading to 1.7: every breaking change from 1.6
License
Apache 2.0
Metadata
Release files for lakebench-k8s 1.7.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| lakebench_k8s-1.7.1.tar.gz | 2.0 MB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lakebench_k8s-1.7.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.7 MB
Release files / lakebench_k8s-1.7.1.tar.gz
| Download URL | lakebench_k8s-1.7.1.tar.gz |
|---|---|
| Size | 2.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5e6d6e33ad32015149f7a59784d53bb32bcd4c9c84d8f03f6a6b6f40da0b24a4
|
|
BLAKE2b-256 checksum How to use checksums |
c81f5f029ee635ad5c822fdd93e36b797267ae6b2675263cc4b86e9839ed0c2b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / lakebench_k8s-1.7.1-py3-none-any.whl
| Download URL | lakebench_k8s-1.7.1-py3-none-any.whl |
|---|---|
| Size | 1.7 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7468d277e0f5251ea42ad4a1cfcd6f015a9920c730e22a086dd7a34cfed94f5c
|
|
BLAKE2b-256 checksum How to use checksums |
5c4a67529d652a68da907d2bd21acdd0b044f76ddf3739e01dedc2ab60203727
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logSecurity for lakebench-k8s 1.7.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for lakebench_k8s-1.7.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.