This release is a pre-release and may not be stable for production use.
tpcgen-cli
tpcgen-cli is a high-performance, parallel command line interface for
generating TPC-H and TPC-DS data.
It generates data in multiple formats including Apache Parquet, CSV, and pipe-delimited (tbl).
This tool is more than 10x faster than the next fastest TPC-DS generator we know
of (duckdb), 4x-27x faster than the official C dsdgen, and 12x-69x faster
than the Java port used by Trino. On an 8 core AWS instance it generates data at
over 1 GB/s, faster than a single EBS volume can write. See BENCHMARKS.md for
more details on performance and benchmarking.
Try with uvx
uvx tpcgen-cli tpch parquet -s 1 --output-dir /tmp/tpch
Install with pip
python -m pip install tpcgen-cli
Examples
# TPC-H Scale Factor 1, all tables, in `tbl` (pipe-delimited) format in the `/tmp/tpch` directory
# Note: `tpcgen-cli tpch tbl` also works explicitly
tpcgen-cli tpch -s 1 --output-dir /tmp/tpch
# TPC-H Scale Factor 1, all tables, in CSV format
tpcgen-cli tpch csv -s 1 --output-dir /tmp/tpch
# TPC-DS Scale Factor 10, all tables, in Apache Parquet format,
# 10 part(itions) written to `/tmp/tpcds/<table_name>/<table_name>.<part>.parquet`
tpcgen-cli tpcds parquet -s 10 --parts 10 --output-dir /tmp/tpcds
# TPC-DS Scale Factor 100, store_sales table, in Apache Parquet format,
# 10 part(itions) written to `/tmp/tpcds/store_sales/store_sales.<part>.parquet`
tpcgen-cli tpcds parquet -s 100 --tables store_sales --parts 10 --output-dir /tmp/tpcds
# TPC-H Scale Factor 1, Per-column encodings
# (overrides Parquet writer defaults for named columns)
tpcgen-cli tpch parquet -s 1 --tables lineitem --column-encoding=l_comment=DELTA_LENGTH_BYTE_ARRAY --output-dir /tmp/tpch
# TPC-DS Scale Factor 1, all tables, in CSV format in the `/tmp/tpcds` directory
# Note: `tpcgen-cli tpcds` with no format writes `dat` (pipe-delimited) files
tpcgen-cli tpcds csv -s 1 --output-dir /tmp/tpcds
Performance
Times to create TPC-DS tables in Parquet format using tpcgen-cli and duckdb
for various scale factors on an 8 core AWS c8gn.2xlarge. See BENCHMARKS.md
for details.
| Scale Factor | tpcgen-cli |
DuckDB | DuckDB (proprietary) |
|---|---|---|---|
| 1 | 0:01.77 |
0:18.04 |
0:17.27 |
| 10 | 0:12.00 |
2:33.04 |
2:26.48 |
| 100 | 1:42.13 |
N/A (OOM) | 19:42.43 |
| 300 | 4:57.89 |
N/A (OOM) | 56:19.89 |
- DuckDB (proprietary) is the time required to create TPC-DS data in the
proprietary DuckDB format (
CALL dsdgen()). DuckDB is that time plusEXPORT DATABASE (FORMAT parquet). - At Scale Factors 100 and 300 the DuckDB export to Parquet failed on this 16 GB machine, so only the proprietary format time is reported.
Metadata
Release files for tpcgen-cli 4.0.0rc1
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 | |
|---|---|---|---|---|
| tpcgen_cli-4.0.0rc1.tar.gz | 625.5 kB | Without provenance | Details |
Built distributions (wheels)
Total release size: 77.3 MB
Release files / tpcgen_cli-4.0.0rc1.tar.gz
| Download URL | tpcgen_cli-4.0.0rc1.tar.gz |
|---|---|
| Size | 625.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
883477f1369e31bc88d48bbf9e17f0f3c751b7c571c79df44705ce64055e2ad8
|
|
BLAKE2b-256 checksum How to use checksums |
92955d60ed365d02a2f394505798ac463ab057ab86c17989ec65e758d0e3528c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.15.0
|
Release files / tpcgen_cli-4.0.0rc1-py3-none-win_amd64.whl
| Download URL | tpcgen_cli-4.0.0rc1-py3-none-win_amd64.whl |
|---|---|
| Size | 6.8 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
fdb14f617fc31478f0d8d7e1cc9e0b8f8a80dfaedb04c2c1a641b7440ad33c85
|
|
BLAKE2b-256 checksum How to use checksums |
9312123310b48991f85bba1ed27393c5f3ad86e9dd27eed452b377efb21aadcc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.15.0
|
Release files / tpcgen_cli-4.0.0rc1-py3-none-win32.whl
| Download URL | tpcgen_cli-4.0.0rc1-py3-none-win32.whl |
|---|---|
| Size | 6.2 MB |
| Tags | Python 3 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
f754370c2036be0032590739ec5a83cb8c025c15bbb0c24a3a99a9415be8924f
|
|
BLAKE2b-256 checksum How to use checksums |
b453b674326f0c79bef009f9ff271ebf0575468899e5b90f28d395328633a597
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.15.0
|
Release files / tpcgen_cli-4.0.0rc1-py3-none-musllinux_1_2_x86_64.whl
| Download URL | tpcgen_cli-4.0.0rc1-py3-none-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 5.8 MB |
| Tags | Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
3266966efcd9dd65072ecc176e81d0a57ab83735bcd56e0f13cb5f329cbafa4c
|
|
BLAKE2b-256 checksum How to use checksums |
9a5ac1da2951733b9121a1e01bb0c45cc545f35f22ffc0a7fe68000d37f1b2e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.15.0
|
Release files / tpcgen_cli-4.0.0rc1-py3-none-musllinux_1_2_i686.whl
| Download URL | tpcgen_cli-4.0.0rc1-py3-none-musllinux_1_2_i686.whl |
|---|---|
| Size | 5.8 MB |
| Tags | Linux musl 1.2+ x86-32 Python 3 |
|
SHA-256 checksum How to use checksums |
a6c495db5da7d90f8ed7c439d661d1eceacc8665d4c20d304e92988817aa7fb8
|
|
BLAKE2b-256 checksum How to use checksums |
ba8fd9faf59b077992c27fedc782cbb53a6344da2f73ffd18dcc4971f4ba4a93
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.15.0
|
Release files / tpcgen_cli-4.0.0rc1-py3-none-musllinux_1_2_armv7l.whl
| Download URL | tpcgen_cli-4.0.0rc1-py3-none-musllinux_1_2_armv7l.whl |
|---|---|
| Size | 6.2 MB |
| Tags | Linux musl 1.2+ ARMv7l Python 3 |
|
SHA-256 checksum How to use checksums |
dc98b6fbec88c631b9445f171105641b7855dcd6119a8ddf1382ba101fd4860e
|
|
BLAKE2b-256 checksum How to use checksums |
8740151942f0f9fa44976fe6f079b74d8998eba7924d7a4ec36988b8527c09b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.15.0
|
Release files / tpcgen_cli-4.0.0rc1-py3-none-musllinux_1_2_aarch64.whl
| Download URL | tpcgen_cli-4.0.0rc1-py3-none-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 5.6 MB |
| Tags | Linux musl 1.2+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
f6e675f79d9f95613290674fc83b7f814aee653af48f2a08f5f0a7540e451abe
|
|
BLAKE2b-256 checksum How to use checksums |
42bf12bd1e70bc11d3b997252f4f4318a45f5e2f815321101b1bbfb8cfd630c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.15.0
|
Release files / tpcgen_cli-4.0.0rc1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | tpcgen_cli-4.0.0rc1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 5.7 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
86b4de2b73344d0487b248ab3109f3946461a504fe69d87c0398c5b31937bef4
|
|
BLAKE2b-256 checksum How to use checksums |
618a5548816d880f9b70d2160186420ba8db7942030dc94c0c8c0ebb2b943de7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.15.0
|
Release files / tpcgen_cli-4.0.0rc1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
| Download URL | tpcgen_cli-4.0.0rc1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl |
|---|---|
| Size | 6.0 MB |
| Tags | Linux glibc 2.17+ PowerPC 64-le Python 3 |
|
SHA-256 checksum How to use checksums |
8657937a7d4d2dc8589f65af340f7c78c326518319982bac41bc035328b2451c
|
|
BLAKE2b-256 checksum How to use checksums |
a390d0f123e4de2593309b8ac5bc7a544d806cc22cfa9b7709067b2d6e46d28f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.15.0
|
Release files / tpcgen_cli-4.0.0rc1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | tpcgen_cli-4.0.0rc1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 5.9 MB |
| Tags | Linux glibc 2.17+ x86-32 Python 3 |
|
SHA-256 checksum How to use checksums |
9e74c2105636a87b4d2c8566bd2ad426a30ef4aeb8b40bf69fc6906ad01b136e
|
|
BLAKE2b-256 checksum How to use checksums |
eaf62385be2a882dac5ee2ea0b04a73b3c1b0d855aaa7d32e55750cf71dbac81
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.15.0
|
Release files / tpcgen_cli-4.0.0rc1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
| Download URL | tpcgen_cli-4.0.0rc1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl |
|---|---|
| Size | 6.2 MB |
| Tags | Linux glibc 2.17+ ARMv7l Python 3 |
|
SHA-256 checksum How to use checksums |
85dee5f60c057b89c1a43d265c7c2fc11a05ffaba5bf7c1886807d7e5a59eb2e
|
|
BLAKE2b-256 checksum How to use checksums |
b0cb937fdf2df2febc6079ba6bcb7ee7f381f8f6c1e8a494f606ff06779f14b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.15.0
|
Release files / tpcgen_cli-4.0.0rc1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | tpcgen_cli-4.0.0rc1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 5.6 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
940a9b0279eaa645c092f0927df42266eaaa2248a126ea206ff851b9e38291d2
|
|
BLAKE2b-256 checksum How to use checksums |
6df6e425a013522ce8c0dbe799a63f0960fb09b547fc217f6e398555eaf8f6dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.15.0
|
Release files / tpcgen_cli-4.0.0rc1-py3-none-macosx_11_0_arm64.whl
| Download URL | tpcgen_cli-4.0.0rc1-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 5.2 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
dd9dab32e3e8e9c5b5b49d6ecb60537e6ee8ab54b35becf9230d056dc9ce00be
|
|
BLAKE2b-256 checksum How to use checksums |
92e63cc0bb660c5dc5f3d01ce52d6cfe1a650416fb717443437e3df140234d8a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.15.0
|
Release files / tpcgen_cli-4.0.0rc1-py3-none-macosx_10_12_x86_64.whl
| Download URL | tpcgen_cli-4.0.0rc1-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 5.6 MB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
9349bbf8d5877d03b36e3858bb6f68299f350d37cbef16dd2b0c0370f70d1d4d
|
|
BLAKE2b-256 checksum How to use checksums |
7a9d4f9054f06686965b6a0f27304e5240cc58056c1067922434a5465ba70a8d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.15.0
|
Security for tpcgen-cli 4.0.0rc1
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A 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.