Skip to main content

CrowDB TPC Loader

Generate TPC-H or TPC-DS Parquet, upload it to CROWDB Iceberg, and register complete tables through the REST Catalog. The loader creates 8 TPC-H or 24 TPC-DS tables. It does not run benchmark SQL queries or claim TPC certification.

Install

Python 3.10–3.12 is required. After the first PyPI release:

python3 -m venv .venv
. .venv/bin/activate
python -m pip install crowdb-tpc-loader

Until PyPI publication, install from a checkout with python -m pip install --only-binary=:all: -e .. The first TPC-H run may download tpchgen-cli 3.0.0; TPC-DS may download DuckDB's tpcds extension. Use --no-download and provide these components ahead of time for an offline run.

Load

Start crowdb/crowdb-iceberg:latest and export the ICEBERG_URI and ICEBERG_TOKEN values printed by docker exec <container> crowdb-monitor credentials show --format env. Keep the token private. Use a new namespace for each run:

crowdb-tpc-loader load --benchmark tpch --sf 0.01 \
  --namespace tpch_demo --report-file ./tpch-demo.json
crowdb-tpc-loader load --benchmark tpcds --sf 0.01 \
  --namespace tpcds_demo --report-file ./tpcds-demo.json

The loader validates the entire generated dataset before creating a table. It writes different tables concurrently, with 8 workers by default. Use --upload-workers N to control concurrent Iceberg table writes (1–24). Each table's files are uploaded and registered in one snapshot, with a durable report checkpoint before each remote side effect. One table's failure does not roll back tables that already succeeded. The report identifies committed, unregistered, and uncertain files; see recovery before retrying. An existing table stops the default load; --on-exists skip leaves it unchanged without verifying it.

For local Parquet only, use crowdb-tpc-loader generate --benchmark tpch --sf 0.01 --output-dir ./tpch-001.

Check the result

Run the read-only verifier from a checkout after loading:

python scripts/verify_crowdb.py ./tpch-demo.json --require-complete --iceberg-scan

With DuckDB's iceberg and httpfs extensions, attach the REST Catalog using its token and query tpch_demo.region or run TPC-H Q1 against tpch_demo.lineitem. The website guide has the SQL. A published latest image and the local DuckDB 1.5.6 CLI passed an SF 0.01 TPC-H import, independent table verification, and Q1 read on October 1, 2026. This is an integration check, not a performance result. See compatibility and the test record.

Develop and publish

python -m pip install --only-binary=:all: -e '.[dev,sql-test]'
ruff check src tests scripts
ruff format --check src tests scripts
python -m pytest
python -m build
python -m twine check dist/*

CI runs lint, format, tests, and package checks. Publishing is manual through the PyPI workflow from a release/v<version> branch after configuring PyPI Trusted Publishing. See testing for optional real generator and CROWDB runs. The package is Apache-2.0; third-party generators and libraries keep their own licenses.

To publish 0.1.0:

  1. In PyPI, create a pending Trusted Publisher for project crowdb-tpc-loader: GitHub owner buzzcrow, repository crowdb-tpc-loader, workflow publish.yml, environment pypi. Create the pypi environment in GitHub.
  2. After CI is green, create and push branch release/v0.1.0 from the commit to publish.
  3. In GitHub Actions, open Publish to PyPI, click Run workflow, select branch release/v0.1.0, then run it. The workflow verifies the branch name against the package version, reruns checks, builds distributions, and publishes through OIDC. No PyPI API token is stored in GitHub.
  4. Confirm the files on PyPI, then test python -m pip install --no-cache-dir crowdb-tpc-loader==0.1.0 in a clean environment and run crowdb-tpc-loader --version.

Metadata

Release files for crowdb-tpc-loader 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for crowdb-tpc-loader 0.1.0
File Size Uploaded
crowdb_tpc_loader-0.1.0.tar.gz 78.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for crowdb-tpc-loader 0.1.0
File Interpreter ABI Platform
crowdb_tpc_loader-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 134.0 kB

Release files / crowdb_tpc_loader-0.1.0.tar.gz

Download URL crowdb_tpc_loader-0.1.0.tar.gz
Size 78.0 kB
Tags Source
SHA-256 checksum
How to use checksums
116506208ee86e63f38ca949ec090aa2115cf7cb1c29754c681cad7119949796
BLAKE2b-256 checksum
How to use checksums
3018de6b660f16800872fc25529855b90c4ee63c5b73f0ed0a6bd0b190318697
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 1, 2026.

Transparency log

Release files / crowdb_tpc_loader-0.1.0-py3-none-any.whl

Download URL crowdb_tpc_loader-0.1.0-py3-none-any.whl
Size 56.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
82fe689281b9b90bfa76e9efe4091a37db8e36f61c62ebbd2f3997aa9eab50c3
BLAKE2b-256 checksum
How to use checksums
79811e8db1cd1cd9230f3ec5774884439f01e5e1840f8ee0207210313fbd3f50
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 1, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page