Skip to content
Closed
31 changes: 29 additions & 2 deletions chdb-dataframe/install
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,38 @@
set -e

sudo apt-get update -y
sudo apt-get install -y python3-pip python3-venv
sudo apt-get install -y python3-pip python3-venv unzip

if [ ! -d myenv ]; then
python3 -m venv myenv
fi
# shellcheck disable=SC1091
source myenv/bin/activate
pip install --quiet pandas pyarrow chdb fastapi uvicorn

# Everything except chdb still comes from PyPI.
pip install --quiet pandas pyarrow fastapi uvicorn

# chdb: install a specific chdb-core CI build instead of the PyPI `chdb`
# release, to benchmark an unreleased build. The artifact is
# chdb-io/chdb-core's linux-x86_64 build, mirrored by nightly.link so the
# benchmark machine can fetch it without a GitHub token. It ships a
# cp39-abi3 wheel that imports as `chdb` (server.py is unchanged), next to
# libchdb tarballs and debug info we don't need.
CHDB_ARTIFACT_URL="${CHDB_ARTIFACT_URL:-https://nightly.link/chdb-io/chdb-core/actions/runs/31375897647/chdb-artifacts-linux-x86_64.zip}"
rm -rf chdb-artifact chdb-artifact.zip
curl -fSL --retry 3 -o chdb-artifact.zip "$CHDB_ARTIFACT_URL"
# Flatten (-j): wheels sit at the zip root or under dist/ depending on the build.
unzip -q -o -j chdb-artifact.zip '*.whl' -d chdb-artifact

# The full wheel, not chdb_core_lite.
wheel=$(ls chdb-artifact/chdb_core-*.whl 2>/dev/null | grep -v _lite | head -n1)
if [ -z "$wheel" ]; then
echo "install: no chdb_core wheel found in artifact:" >&2
ls -la chdb-artifact/ >&2 || true
exit 1
fi
echo "install: installing $wheel"
pip install --quiet "$wheel"

# Fail at install (not query) time if the wheel is broken or lacks chdb.
python3 -c "import chdb; print('chdb', chdb.__version__)"
60 changes: 60 additions & 0 deletions chdb-dataframe/results/20260808/c6a.metal.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"system": "chDB (DataFrame)",
"date": "2026-08-08",
"machine": "c6a.metal",
"cluster_size": 1,
"proprietary": "no",
"hardware": "cpu",
"tuned": "no",
"tags": ["C++","column-oriented","ClickHouse derivative","embedded","stateless","Python","dataframe","in-memory","lukewarm-cold-run"],
"load_time": 18,
"data_size": 81770409884,
"concurrent_qps": 2.503,
"concurrent_error_ratio": 0,
"result": [
[71.519, 0.357, 0.057],
[71.903, 0.415, 0.088],
[71.805, 0.038, 0.04],
[71.794, 0.035, 0.035],
[72.034, 0.088, 0.089],
[71.551, 0.112, 0.11],
[71.378, 0.031, 0.028],
[71.28, 0.406, 0.1],
[72.727, 0.818, 0.832],
[72.337, 0.899, 0.883],
[71.655, 1.292, 0.908],
[71.843, 0.725, 0.384],
[72.306, 0.952, 0.648],
[73.298, 2.036, 1.716],
[71.837, 0.605, 0.285],
[71.744, 0.184, 0.181],
[71.655, 0.307, 0.313],
[71.804, 0.232, 0.235],
[72.869, 0.532, 0.531],
[71.566, 0.408, 0.087],
[71.947, 0.553, 0.226],
[71.899, 0.478, 0.15],
[71.938, 0.525, 0.218],
[72.936, 1.675, 1.321],
[71.546, 0.449, 0.112],
[71.438, 0.43, 0.103],
[71.761, 0.446, 0.12],
[71.789, 0.548, 0.23],
[73.656, 1.567, 1.226],
[71.859, 0.064, 0.064],
[72.29, 0.896, 0.564],
[72.276, 0.635, 0.301],
[72.702, 1.007, 0.99],
[71.904, 0.792, 0.793],
[72.292, 0.815, 0.795],
[71.54, 0.19, 0.189],
[71.994, 0.642, 0.315],
[72.023, 0.568, 0.252],
[71.669, 0.575, 0.242],
[71.857, 0.565, 0.254],
[71.816, 0.618, 0.3],
[71.978, 0.589, 0.26],
[71.753, 0.552, 0.242]
]
}

60 changes: 60 additions & 0 deletions chdb-dataframe/results/20260810/c6a.metal.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"system": "chDB (DataFrame)",
"date": "2026-08-10",
"machine": "c6a.metal",
"cluster_size": 1,
"proprietary": "no",
"hardware": "cpu",
"tuned": "no",
"tags": ["C++","column-oriented","ClickHouse derivative","embedded","stateless","Python","dataframe","in-memory","lukewarm-cold-run"],
"load_time": 18,
"data_size": 81770409884,
"concurrent_qps": 4.728,
"concurrent_error_ratio": 0,
"result": [
[71.955, 0.004, 0.003],
[72.016, 0.024, 0.024],
[71.882, 0.04, 0.033],
[71.962, 0.031, 0.032],
[72.333, 0.085, 0.079],
[72.37, 0.103, 0.099],
[72.715, 0.025, 0.024],
[71.994, 0.03, 0.029],
[72.301, 0.347, 0.324],
[72.374, 0.362, 0.376],
[72.809, 0.477, 0.509],
[72.358, 0.189, 0.169],
[71.732, 0.222, 0.221],
[72.772, 0.512, 0.514],
[71.921, 0.152, 0.144],
[72.25, 0.121, 0.118],
[71.882, 0.277, 0.273],
[72.259, 0.209, 0.21],
[72.955, 0.515, 0.515],
[71.833, 0.034, 0.036],
[72.117, 0.086, 0.084],
[72.127, 0.093, 0.093],
[71.723, 0.163, 0.165],
[72.672, 0.814, 0.758],
[72.207, 0.062, 0.057],
[71.923, 0.04, 0.039],
[72.567, 0.056, 0.055],
[72.448, 0.117, 0.11],
[72.959, 0.452, 0.456],
[72.234, 0.058, 0.058],
[72.216, 0.208, 0.203],
[72.693, 0.198, 0.201],
[73.159, 1.07, 1.084],
[72.48, 0.472, 0.468],
[72.792, 0.467, 0.467],
[72.03, 0.11, 0.106],
[72.431, 0.13, 0.124],
[72.185, 0.098, 0.096],
[72.097, 0.101, 0.105],
[71.862, 0.122, 0.129],
[72.045, 0.109, 0.103],
[72.105, 0.099, 0.101],
[72.143, 0.075, 0.077]
]
}

60 changes: 60 additions & 0 deletions polars-dataframe/results/20260810/c6a.metal.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"system": "Polars (DataFrame)",
"date": "2026-08-10",
"machine": "c6a.metal",
"cluster_size": 1,
"proprietary": "no",
"hardware": "cpu",
"tuned": "no",
"tags": ["column-oriented","dataframe","in-memory"],
"load_time": 5,
"data_size": 58970980436,
"concurrent_qps": 4.772,
"concurrent_error_ratio": 0,
"result": [
[58, 0.003, 0.002],
[58.501, 0.009, 0.011],
[58.228, 0.011, 0.011],
[58.11, 0.015, 0.015],
[58.369, 0.132, 0.125],
[58.5, 0.22, 0.224],
[58.034, 0.011, 0.011],
[58.191, 0.027, 0.03],
[58.881, 0.476, 0.489],
[58.95, 0.533, 0.521],
[58.439, 0.101, 0.099],
[58.374, 0.107, 0.107],
[58.432, 0.199, 0.207],
[58.586, 0.427, 0.415],
[58.633, 0.275, 0.288],
[58.432, 0.21, 0.228],
[59.096, 0.71, 0.709],
[58.845, 0.622, 0.626],
[59.486, 1.135, 1.138],
[58.123, 0.015, 0.015],
[58.511, 0.123, 0.12],
[58.546, 0.169, 0.163],
[58.465, 0.296, 0.282],
[58.413, 0.243, 0.227],
[58.229, 0.047, 0.049],
[58.448, 0.049, 0.046],
[58.17, 0.077, 0.081],
[58.523, 0.261, 0.247],
[59.31, 0.983, 0.984],
[58.34, 0.041, 0.038],
[58.492, 0.245, 0.243],
[58.604, 0.269, 0.268],
[59.775, 1.496, 1.433],
[59.35, 1.114, 1.071],
[59.216, 0.85, 0.828],
[58.7, 0.205, 0.201],
[58.387, 0.087, 0.087],
[58.289, 0.072, 0.071],
[58.376, 0.041, 0.043],
[58.301, 0.096, 0.082],
[58.305, 0.078, 0.074],
[58.337, 0.052, 0.048],
[58.198, 0.041, 0.044]
]
}

Loading