Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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/31572981058/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 chdb-dataframe/results/20260812/c6a.metal.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"system": "chDB (DataFrame)",
"date": "2026-08-12",
"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.687,
"concurrent_error_ratio": 0,
"result": [
[72.101, 0.003, 0.003],
[72.488, 0.026, 0.026],
[72.105, 0.034, 0.034],
[71.992, 0.033, 0.034],
[72.018, 0.088, 0.089],
[72.046, 0.103, 0.107],
[72.354, 0.025, 0.023],
[71.842, 0.031, 0.032],
[72.289, 0.319, 0.36],
[73.029, 0.377, 0.377],
[72.488, 0.493, 0.495],
[72.037, 0.174, 0.203],
[72.351, 0.233, 0.228],
[72.575, 0.528, 0.53],
[72.321, 0.154, 0.156],
[72.22, 0.118, 0.116],
[72.126, 0.281, 0.281],
[71.807, 0.209, 0.21],
[72.37, 0.517, 0.522],
[72.052, 0.042, 0.035],
[72.067, 0.087, 0.087],
[72.163, 0.097, 0.085],
[72.722, 0.166, 0.152],
[72.762, 0.802, 0.783],
[72.075, 0.056, 0.056],
[71.959, 0.04, 0.039],
[72.206, 0.055, 0.055],
[72.188, 0.131, 0.128],
[72.792, 0.456, 0.453],
[72.051, 0.069, 0.061],
[72.018, 0.212, 0.208],
[72.258, 0.195, 0.205],
[73.096, 1.042, 0.987],
[72.477, 0.468, 0.466],
[72.518, 0.48, 0.459],
[72.452, 0.104, 0.099],
[72.277, 0.131, 0.127],
[72.07, 0.101, 0.103],
[72.332, 0.1, 0.099],
[71.92, 0.122, 0.129],
[72.157, 0.11, 0.109],
[71.948, 0.103, 0.099],
[72.087, 0.072, 0.072]
]
}

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]
]
}

60 changes: 60 additions & 0 deletions polars-dataframe/results/20260812/c6a.metal.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"system": "Polars (DataFrame)",
"date": "2026-08-12",
"machine": "c6a.metal",
"cluster_size": 1,
"proprietary": "no",
"hardware": "cpu",
"tuned": "no",
"tags": ["column-oriented","dataframe","in-memory"],
"load_time": 4,
"data_size": 58970980436,
"concurrent_qps": 4.877,
"concurrent_error_ratio": 0,
"result": [
[58.178, 0.003, 0.003],
[58.113, 0.008, 0.01],
[58.298, 0.008, 0.009],
[58.258, 0.015, 0.015],
[58.3, 0.121, 0.118],
[58.283, 0.213, 0.21],
[58.294, 0.011, 0.012],
[58.201, 0.028, 0.028],
[58.709, 0.49, 0.478],
[58.583, 0.441, 0.434],
[58.226, 0.102, 0.098],
[58.331, 0.115, 0.11],
[58.629, 0.198, 0.197],
[58.753, 0.465, 0.46],
[58.563, 0.223, 0.22],
[58.512, 0.193, 0.193],
[58.931, 0.692, 0.68],
[59.016, 0.719, 0.695],
[59.234, 1.181, 1.143],
[58.141, 0.014, 0.015],
[58.27, 0.107, 0.109],
[58.299, 0.168, 0.167],
[58.645, 0.328, 0.31],
[58.529, 0.261, 0.3],
[58.362, 0.049, 0.051],
[58.123, 0.05, 0.052],
[58.307, 0.102, 0.093],
[58.62, 0.249, 0.253],
[59.123, 0.952, 0.954],
[58.311, 0.049, 0.048],
[58.611, 0.23, 0.24],
[58.59, 0.279, 0.274],
[59.936, 1.46, 1.423],
[59.169, 0.863, 0.848],
[59.158, 0.947, 0.969],
[58.506, 0.159, 0.162],
[58.243, 0.093, 0.091],
[58.352, 0.081, 0.07],
[58.435, 0.046, 0.044],
[58.291, 0.094, 0.079],
[58.317, 0.071, 0.069],
[58.264, 0.056, 0.053],
[58.153, 0.043, 0.043]
]
}

Loading