-
Notifications
You must be signed in to change notification settings - Fork 230
feat(arc): add ClickBench results for Arc on c6a.4xlarge #634
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
xe-nvdk
wants to merge
6
commits into
ClickHouse:main
Choose a base branch
from
Basekick-Labs:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+494
−0
Open
Changes from 2 commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
29e86a5
adding arc values
xe-nvdk a433b23
we missed one query, now is complete
xe-nvdk 01b692e
fixing run.sh and re run, just in case both benchmark in pro m3 max a…
xe-nvdk b663892
disabling query caching and re ran the benchmarks
xe-nvdk 7a40588
updating repo to match the current for arc
xe-nvdk b934055
Merge branch 'main' into main
xe-nvdk File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
#!/bin/bash | ||
# Arc ClickBench Complete Benchmark Script | ||
# This script installs Arc, loads data, and runs the benchmark | ||
|
||
set -e | ||
|
||
# Install Python and dependencies | ||
echo "Installing dependencies..." | ||
pip3 install duckdb requests | ||
|
||
# Download and prepare dataset | ||
echo "Downloading ClickBench dataset..." | ||
wget --continue 'https://datasets.clickhouse.com/hits_compatible/hits.parquet' | ||
rschu1ze marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
||
echo "Dataset size:" | ||
ls -lh hits.parquet | ||
|
||
# Count rows | ||
echo "Counting rows..." | ||
python3 << 'EOF' | ||
import duckdb | ||
conn = duckdb.connect() | ||
count = conn.execute("SELECT COUNT(*) FROM read_parquet('hits.parquet')").fetchone()[0] | ||
print(f"Dataset rows: {count:,}") | ||
EOF | ||
|
||
# Run benchmark | ||
echo "Running ClickBench queries..." | ||
./run.sh 2>&1 | tee log.txt | ||
|
||
# Format results | ||
echo "Formatting results..." | ||
cat log.txt | \ | ||
grep -E '^\d+\.\d+|null' | \ | ||
awk 'BEGIN {print "["} | ||
{ | ||
if (NR % 3 == 1) printf " ["; | ||
printf "%s", $1; | ||
if (NR % 3 == 0) print "],"; | ||
else printf ", "; | ||
} | ||
END {print "]"}' | ||
|
||
echo "Benchmark complete!" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
-- Arc uses DuckDB to query Parquet files directly | ||
-- Schema is inferred from the Parquet file structure | ||
-- This file documents the schema for reference | ||
|
||
CREATE TABLE hits | ||
( | ||
WatchID BIGINT NOT NULL, | ||
JavaEnable SMALLINT NOT NULL, | ||
Title TEXT, | ||
GoodEvent SMALLINT NOT NULL, | ||
EventTime TIMESTAMP NOT NULL, | ||
EventDate Date NOT NULL, | ||
CounterID INTEGER NOT NULL, | ||
ClientIP INTEGER NOT NULL, | ||
RegionID INTEGER NOT NULL, | ||
UserID BIGINT NOT NULL, | ||
CounterClass SMALLINT NOT NULL, | ||
OS SMALLINT NOT NULL, | ||
UserAgent SMALLINT NOT NULL, | ||
URL TEXT, | ||
Referer TEXT, | ||
IsRefresh SMALLINT NOT NULL, | ||
RefererCategoryID SMALLINT NOT NULL, | ||
RefererRegionID INTEGER NOT NULL, | ||
URLCategoryID SMALLINT NOT NULL, | ||
URLRegionID INTEGER NOT NULL, | ||
ResolutionWidth SMALLINT NOT NULL, | ||
ResolutionHeight SMALLINT NOT NULL, | ||
ResolutionDepth SMALLINT NOT NULL, | ||
FlashMajor SMALLINT NOT NULL, | ||
FlashMinor SMALLINT NOT NULL, | ||
FlashMinor2 TEXT, | ||
NetMajor SMALLINT NOT NULL, | ||
NetMinor SMALLINT NOT NULL, | ||
UserAgentMajor SMALLINT NOT NULL, | ||
UserAgentMinor VARCHAR(255) NOT NULL, | ||
CookieEnable SMALLINT NOT NULL, | ||
JavascriptEnable SMALLINT NOT NULL, | ||
IsMobile SMALLINT NOT NULL, | ||
MobilePhone SMALLINT NOT NULL, | ||
MobilePhoneModel TEXT, | ||
Params TEXT, | ||
IPNetworkID INTEGER NOT NULL, | ||
TraficSourceID SMALLINT NOT NULL, | ||
SearchEngineID SMALLINT NOT NULL, | ||
SearchPhrase TEXT, | ||
AdvEngineID SMALLINT NOT NULL, | ||
IsArtifical SMALLINT NOT NULL, | ||
WindowClientWidth SMALLINT NOT NULL, | ||
WindowClientHeight SMALLINT NOT NULL, | ||
ClientTimeZone SMALLINT NOT NULL, | ||
ClientEventTime TIMESTAMP NOT NULL, | ||
SilverlightVersion1 SMALLINT NOT NULL, | ||
SilverlightVersion2 SMALLINT NOT NULL, | ||
SilverlightVersion3 INTEGER NOT NULL, | ||
SilverlightVersion4 SMALLINT NOT NULL, | ||
PageCharset TEXT, | ||
CodeVersion INTEGER NOT NULL, | ||
IsLink SMALLINT NOT NULL, | ||
IsDownload SMALLINT NOT NULL, | ||
IsNotBounce SMALLINT NOT NULL, | ||
FUniqID BIGINT NOT NULL, | ||
OriginalURL TEXT, | ||
HID INTEGER NOT NULL, | ||
IsOldCounter SMALLINT NOT NULL, | ||
IsEvent SMALLINT NOT NULL, | ||
IsParameter SMALLINT NOT NULL, | ||
DontCountHits SMALLINT NOT NULL, | ||
WithHash SMALLINT NOT NULL, | ||
HitColor CHAR NOT NULL, | ||
LocalEventTime TIMESTAMP NOT NULL, | ||
Age SMALLINT NOT NULL, | ||
Sex SMALLINT NOT NULL, | ||
Income SMALLINT NOT NULL, | ||
Interests SMALLINT NOT NULL, | ||
Robotness SMALLINT NOT NULL, | ||
RemoteIP INTEGER NOT NULL, | ||
WindowName INTEGER NOT NULL, | ||
OpenerName INTEGER NOT NULL, | ||
HistoryLength SMALLINT NOT NULL, | ||
BrowserLanguage TEXT, | ||
BrowserCountry TEXT, | ||
SocialNetwork TEXT, | ||
SocialAction TEXT, | ||
HTTPError SMALLINT NOT NULL, | ||
SendTiming INTEGER NOT NULL, | ||
DNSTiming INTEGER NOT NULL, | ||
ConnectTiming INTEGER NOT NULL, | ||
ResponseStartTiming INTEGER NOT NULL, | ||
ResponseEndTiming INTEGER NOT NULL, | ||
FetchTiming INTEGER NOT NULL, | ||
SocialSourceNetworkID SMALLINT NOT NULL, | ||
SocialSourcePage TEXT, | ||
ParamPrice BIGINT NOT NULL, | ||
ParamOrderID TEXT, | ||
ParamCurrency TEXT, | ||
ParamCurrencyID SMALLINT NOT NULL, | ||
OpenstatServiceName TEXT, | ||
OpenstatCampaignID TEXT, | ||
OpenstatAdID TEXT, | ||
OpenstatSourceID TEXT, | ||
UTMSource TEXT, | ||
UTMMedium TEXT, | ||
UTMCampaign TEXT, | ||
UTMContent TEXT, | ||
UTMTerm TEXT, | ||
FromTag TEXT, | ||
HasGCLID SMALLINT NOT NULL, | ||
RefererHash BIGINT NOT NULL, | ||
URLHash BIGINT NOT NULL, | ||
CLID INTEGER NOT NULL | ||
); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
-- ClickBench Queries for Arc | ||
-- Original: https://github.com/ClickHouse/ClickBench | ||
-- Adapted for Arc's DuckDB engine (table name: clickbench.hits) | ||
|
||
SELECT COUNT(*) FROM clickbench.hits; | ||
SELECT COUNT(*) FROM clickbench.hits WHERE AdvEngineID <> 0; | ||
SELECT SUM(AdvEngineID), COUNT(*), AVG(ResolutionWidth) FROM clickbench.hits; | ||
SELECT AVG(UserID) FROM clickbench.hits; | ||
SELECT COUNT(DISTINCT UserID) FROM clickbench.hits; | ||
SELECT COUNT(DISTINCT SearchPhrase) FROM clickbench.hits; | ||
SELECT MIN(EventDate), MAX(EventDate) FROM clickbench.hits; | ||
SELECT AdvEngineID, COUNT(*) FROM clickbench.hits WHERE AdvEngineID <> 0 GROUP BY AdvEngineID ORDER BY COUNT(*) DESC; | ||
SELECT RegionID, COUNT(DISTINCT UserID) AS u FROM clickbench.hits GROUP BY RegionID ORDER BY u DESC LIMIT 10; | ||
SELECT RegionID, SUM(AdvEngineID), COUNT(*) AS c, AVG(ResolutionWidth), COUNT(DISTINCT UserID) FROM clickbench.hits GROUP BY RegionID ORDER BY c DESC LIMIT 10; | ||
SELECT MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM clickbench.hits WHERE MobilePhoneModel <> '' GROUP BY MobilePhoneModel ORDER BY u DESC LIMIT 10; | ||
SELECT MobilePhone, MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM clickbench.hits WHERE MobilePhoneModel <> '' GROUP BY MobilePhone, MobilePhoneModel ORDER BY u DESC LIMIT 10; | ||
SELECT SearchPhrase, COUNT(*) AS c FROM clickbench.hits WHERE SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; | ||
SELECT SearchPhrase, COUNT(DISTINCT UserID) AS u FROM clickbench.hits WHERE SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY u DESC LIMIT 10; | ||
SELECT SearchEngineID, SearchPhrase, COUNT(*) AS c FROM clickbench.hits WHERE SearchPhrase <> '' GROUP BY SearchEngineID, SearchPhrase ORDER BY c DESC LIMIT 10; | ||
SELECT UserID, COUNT(*) FROM clickbench.hits GROUP BY UserID ORDER BY COUNT(*) DESC LIMIT 10; | ||
SELECT UserID, SearchPhrase, COUNT(*) FROM clickbench.hits GROUP BY UserID, SearchPhrase ORDER BY COUNT(*) DESC LIMIT 10; | ||
SELECT UserID, SearchPhrase, COUNT(*) FROM clickbench.hits GROUP BY UserID, SearchPhrase LIMIT 10; | ||
SELECT UserID, extract(minute FROM CAST(to_timestamp(EventTime) AS TIMESTAMP)) AS m, SearchPhrase, COUNT(*) FROM clickbench.hits GROUP BY UserID, m, SearchPhrase ORDER BY COUNT(*) DESC LIMIT 10; | ||
SELECT UserID FROM clickbench.hits WHERE UserID = 435090932899640449; | ||
SELECT COUNT(*) FROM clickbench.hits WHERE URL LIKE '%google%'; | ||
SELECT SearchPhrase, MIN(URL), COUNT(*) AS c FROM clickbench.hits WHERE URL LIKE '%google%' AND SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; | ||
SELECT SearchPhrase, MIN(URL), MIN(Title), COUNT(*) AS c, COUNT(DISTINCT UserID) FROM clickbench.hits WHERE Title LIKE '%Google%' AND URL NOT LIKE '%.google.%' AND SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; | ||
SELECT * FROM clickbench.hits WHERE URL LIKE '%google%' ORDER BY EventTime LIMIT 10; | ||
SELECT SearchPhrase FROM clickbench.hits WHERE SearchPhrase <> '' ORDER BY EventTime LIMIT 10; | ||
SELECT SearchPhrase FROM clickbench.hits WHERE SearchPhrase <> '' ORDER BY SearchPhrase LIMIT 10; | ||
SELECT SearchPhrase FROM clickbench.hits WHERE SearchPhrase <> '' ORDER BY EventTime, SearchPhrase LIMIT 10; | ||
SELECT CounterID, AVG(length(URL)) AS l, COUNT(*) AS c FROM clickbench.hits WHERE URL <> '' GROUP BY CounterID HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25; | ||
SELECT REGEXP_REPLACE(Referer, '^https?://(?:www\.)?([^/]+)/.*$', '\1') AS k, AVG(length(Referer)) AS l, COUNT(*) AS c, MIN(Referer) FROM clickbench.hits WHERE Referer <> '' GROUP BY k HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25; | ||
SELECT SUM(ResolutionWidth), SUM(ResolutionWidth + 1), SUM(ResolutionWidth + 2), SUM(ResolutionWidth + 3), SUM(ResolutionWidth + 4), SUM(ResolutionWidth + 5), SUM(ResolutionWidth + 6), SUM(ResolutionWidth + 7), SUM(ResolutionWidth + 8), SUM(ResolutionWidth + 9), SUM(ResolutionWidth + 10), SUM(ResolutionWidth + 11), SUM(ResolutionWidth + 12), SUM(ResolutionWidth + 13), SUM(ResolutionWidth + 14), SUM(ResolutionWidth + 15), SUM(ResolutionWidth + 16), SUM(ResolutionWidth + 17), SUM(ResolutionWidth + 18), SUM(ResolutionWidth + 19), SUM(ResolutionWidth + 20), SUM(ResolutionWidth + 21), SUM(ResolutionWidth + 22), SUM(ResolutionWidth + 23), SUM(ResolutionWidth + 24), SUM(ResolutionWidth + 25), SUM(ResolutionWidth + 26), SUM(ResolutionWidth + 27), SUM(ResolutionWidth + 28), SUM(ResolutionWidth + 29), SUM(ResolutionWidth + 30), SUM(ResolutionWidth + 31), SUM(ResolutionWidth + 32), SUM(ResolutionWidth + 33), SUM(ResolutionWidth + 34), SUM(ResolutionWidth + 35), SUM(ResolutionWidth + 36), SUM(ResolutionWidth + 37), SUM(ResolutionWidth + 38), SUM(ResolutionWidth + 39), SUM(ResolutionWidth + 40), SUM(ResolutionWidth + 41), SUM(ResolutionWidth + 42), SUM(ResolutionWidth + 43), SUM(ResolutionWidth + 44), SUM(ResolutionWidth + 45), SUM(ResolutionWidth + 46), SUM(ResolutionWidth + 47), SUM(ResolutionWidth + 48), SUM(ResolutionWidth + 49), SUM(ResolutionWidth + 50), SUM(ResolutionWidth + 51), SUM(ResolutionWidth + 52), SUM(ResolutionWidth + 53), SUM(ResolutionWidth + 54), SUM(ResolutionWidth + 55), SUM(ResolutionWidth + 56), SUM(ResolutionWidth + 57), SUM(ResolutionWidth + 58), SUM(ResolutionWidth + 59), SUM(ResolutionWidth + 60), SUM(ResolutionWidth + 61), SUM(ResolutionWidth + 62), SUM(ResolutionWidth + 63), SUM(ResolutionWidth + 64), SUM(ResolutionWidth + 65), SUM(ResolutionWidth + 66), SUM(ResolutionWidth + 67), SUM(ResolutionWidth + 68), SUM(ResolutionWidth + 69), SUM(ResolutionWidth + 70), SUM(ResolutionWidth + 71), SUM(ResolutionWidth + 72), SUM(ResolutionWidth + 73), SUM(ResolutionWidth + 74), SUM(ResolutionWidth + 75), SUM(ResolutionWidth + 76), SUM(ResolutionWidth + 77), SUM(ResolutionWidth + 78), SUM(ResolutionWidth + 79), SUM(ResolutionWidth + 80), SUM(ResolutionWidth + 81), SUM(ResolutionWidth + 82), SUM(ResolutionWidth + 83), SUM(ResolutionWidth + 84), SUM(ResolutionWidth + 85), SUM(ResolutionWidth + 86), SUM(ResolutionWidth + 87), SUM(ResolutionWidth + 88), SUM(ResolutionWidth + 89) FROM clickbench.hits; | ||
SELECT SearchEngineID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM clickbench.hits WHERE SearchPhrase <> '' GROUP BY SearchEngineID, ClientIP ORDER BY c DESC LIMIT 10; | ||
SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM clickbench.hits WHERE SearchPhrase <> '' GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10; | ||
SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM clickbench.hits GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10; | ||
SELECT URL, COUNT(*) AS c FROM clickbench.hits GROUP BY URL ORDER BY c DESC LIMIT 10; | ||
SELECT 1, URL, COUNT(*) AS c FROM clickbench.hits GROUP BY 1, URL ORDER BY c DESC LIMIT 10; | ||
SELECT ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3, COUNT(*) AS c FROM clickbench.hits GROUP BY ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3 ORDER BY c DESC LIMIT 10; | ||
SELECT URL, COUNT(*) AS PageViews FROM clickbench.hits WHERE CounterID = 62 AND EventDate >= 15887 AND EventDate <= 15917 AND DontCountHits = 0 AND IsRefresh = 0 AND URL <> '' GROUP BY URL ORDER BY PageViews DESC LIMIT 10; | ||
SELECT Title, COUNT(*) AS PageViews FROM clickbench.hits WHERE CounterID = 62 AND EventDate >= 15887 AND EventDate <= 15917 AND DontCountHits = 0 AND IsRefresh = 0 AND Title <> '' GROUP BY Title ORDER BY PageViews DESC LIMIT 10; | ||
SELECT URL, COUNT(*) AS PageViews FROM clickbench.hits WHERE CounterID = 62 AND EventDate >= 15887 AND EventDate <= 15917 AND IsRefresh = 0 AND IsLink <> 0 AND IsDownload = 0 GROUP BY URL ORDER BY PageViews DESC LIMIT 10 OFFSET 1000; | ||
SELECT TraficSourceID, SearchEngineID, AdvEngineID, CASE WHEN (SearchEngineID = 0 AND AdvEngineID = 0) THEN Referer ELSE '' END AS Src, URL AS Dst, COUNT(*) AS PageViews FROM clickbench.hits WHERE CounterID = 62 AND EventDate >= 15887 AND EventDate <= 15917 AND IsRefresh = 0 GROUP BY TraficSourceID, SearchEngineID, AdvEngineID, Src, Dst ORDER BY PageViews DESC LIMIT 10 OFFSET 1000; | ||
SELECT URLHash, EventDate, COUNT(*) AS PageViews FROM clickbench.hits WHERE CounterID = 62 AND EventDate >= 15887 AND EventDate <= 15917 AND IsRefresh = 0 AND TraficSourceID IN (-1, 6) AND RefererHash = 3594120000172545465 GROUP BY URLHash, EventDate ORDER BY PageViews DESC LIMIT 10 OFFSET 100; | ||
SELECT WindowClientWidth, WindowClientHeight, COUNT(*) AS PageViews FROM clickbench.hits WHERE CounterID = 62 AND EventDate >= 15887 AND EventDate <= 15917 AND IsRefresh = 0 AND DontCountHits = 0 AND URLHash = 2868770270353813622 GROUP BY WindowClientWidth, WindowClientHeight ORDER BY PageViews DESC LIMIT 10 OFFSET 10000; | ||
SELECT DATE_TRUNC('minute', CAST(to_timestamp(EventTime) AS TIMESTAMP)) AS M, COUNT(*) AS PageViews FROM clickbench.hits WHERE CounterID = 62 AND EventDate >= 15900 AND EventDate <= 15901 AND IsRefresh = 0 AND DontCountHits = 0 GROUP BY DATE_TRUNC('minute', CAST(to_timestamp(EventTime) AS TIMESTAMP)) ORDER BY DATE_TRUNC('minute', CAST(to_timestamp(EventTime) AS TIMESTAMP)) LIMIT 10 OFFSET 1000; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
{ | ||
"system": "Arc", | ||
"date": "2025-10-06", | ||
"machine": "c6a.4xlarge", | ||
"cluster_size": 1, | ||
"proprietary": "no", | ||
"tuned": "no", | ||
"tags": [ | ||
"Python", | ||
"time-series", | ||
"DuckDB", | ||
"Parquet", | ||
"columnar" | ||
], | ||
"load_time": null, | ||
"data_size": 14000000000, | ||
"result": [ | ||
[0.0629, 0.0598, 0.0608], | ||
[0.0846, 0.0847, 0.0870], | ||
[0.0886, 0.0850, 0.0869], | ||
[0.3330, 0.3097, 0.3117], | ||
[0.5360, 0.5253, 0.5369], | ||
[0.0719, 0.0667, 0.0683], | ||
[0.0707, 0.0639, 0.0664], | ||
[0.4331, 0.4264, 0.4353], | ||
[0.5384, 0.5285, 0.5439], | ||
[0.1479, 0.1467, 0.1504], | ||
[0.1673, 0.1661, 0.1702], | ||
[0.5553, 0.5317, 0.5478], | ||
[0.8851, 0.8675, 0.8841], | ||
[0.6008, 0.5933, 0.5953], | ||
[0.3836, 0.3883, 0.3997], | ||
[1.0420, 1.0142, 1.0319], | ||
[0.7809, 0.7817, 0.7917], | ||
[4.0727, 4.0546, 4.0838], | ||
[0.0785, 0.0657, 0.0713], | ||
[0.9383, 0.9126, 0.9463], | ||
[0.8508, 0.8467, 0.8630], | ||
[1.7010, 1.6834, 1.6993], | ||
[0.4882, 0.5006, 0.5127], | ||
[0.2008, 0.1981, 0.2025], | ||
[0.3001, 0.2953, 0.3082], | ||
[0.1578, 0.1428, 0.1532], | ||
[1.0059, 0.9957, 1.0063], | ||
[8.9958, 8.9663, 9.0972], | ||
[0.0864, 0.0836, 0.0895], | ||
[0.5734, 0.5647, 0.5789], | ||
[0.6826, 0.6796, 0.6868], | ||
[2.0105, 1.9684, 2.0174], | ||
[2.3311, 2.3487, 2.3659], | ||
[2.4429, 2.4123, 2.4523], | ||
[0.5371, 0.5371, 0.5749], | ||
[0.1468, 0.1520, 0.1659], | ||
[0.1236, 0.1239, 0.1307], | ||
[0.1006, 0.0944, 0.0969], | ||
[0.2723, 0.2529, 0.2566], | ||
[0.0663, 0.0685, 0.0730], | ||
[0.0676, 0.0631, 0.0659], | ||
[0.1677, 0.1708, 0.1898], | ||
[0.1378, 0.1370, 0.1500] | ||
] | ||
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
{ | ||
"system": "Arc", | ||
"date": "2025-10-05", | ||
"machine": "m3_max", | ||
"cluster_size": 1, | ||
"proprietary": "no", | ||
"tuned": "no", | ||
"tags": [ | ||
"Python", | ||
"time-series", | ||
"DuckDB", | ||
"Parquet", | ||
"columnar" | ||
], | ||
"load_time": null, | ||
"data_size": 14000000000, | ||
"result": [ | ||
[0.0420, 0.0403, 0.0804], | ||
[0.0623, 0.0558, 0.0601], | ||
[0.0775, 0.0634, 0.0644], | ||
[0.2134, 0.2150, 0.2183], | ||
[0.2833, 0.2864, 0.2914], | ||
[0.0486, 0.0470, 0.0491], | ||
[0.0446, 0.0421, 0.0443], | ||
[0.2822, 0.2661, 0.2739], | ||
[0.3496, 0.3433, 0.3483], | ||
[0.1016, 0.0995, 0.1058], | ||
[0.1242, 0.1121, 0.1200], | ||
[0.2946, 0.2923, 0.3035], | ||
[0.5051, 0.4858, 0.5037], | ||
[0.3370, 0.3467, 0.3785], | ||
[0.2549, 0.2513, 0.2640], | ||
[0.7513, 0.6500, 0.7538], | ||
[0.5833, 0.5640, 0.5757], | ||
[1.8692, 1.8193, 1.8426], | ||
[0.0692, 0.0749, 0.0764], | ||
[0.8728, 0.6665, 0.6845], | ||
[0.5656, 0.5566, 0.5897], | ||
[1.1862, 1.1310, 1.1831], | ||
[0.3373, 0.3221, 0.3284], | ||
[0.1317, 0.1342, 0.1368], | ||
[0.1968, 0.1941, 0.1949], | ||
[0.0918, 0.0956, 0.1025], | ||
[0.7141, 0.6861, 0.7442], | ||
[8.3151, 8.0191, 8.0986], | ||
[0.0824, 0.0756, 0.0810], | ||
[0.3594, 0.3357, 0.3442], | ||
[0.3840, 0.3830, 0.3946], | ||
[2.1044, 1.0679, 1.2545], | ||
[1.1666, 1.1622, 1.2095], | ||
[1.1709, 1.1823, 1.2135], | ||
[0.3138, 0.3118, 0.3147], | ||
[0.0887, 0.0887, 0.0894], | ||
[0.0922, 0.0896, 0.0918], | ||
[0.0654, 0.0630, 0.0691], | ||
[0.1427, 0.1444, 0.1499], | ||
[0.0514, 0.0450, 0.0498], | ||
[0.0480, 0.0453, 0.0473], | ||
[0.0947, 0.0879, 0.0925], | ||
[0.0877, 0.0872, 0.0955] | ||
] | ||
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
#!/bin/bash | ||
# Arc ClickBench Benchmark Runner | ||
# This script was used to generate the benchmark results | ||
|
||
TRIES=3 | ||
PARQUET_FILE="hits.parquet" | ||
|
||
python3 << 'EOF' | ||
import duckdb | ||
import time | ||
import multiprocessing | ||
from pathlib import Path | ||
|
||
PARQUET_FILE = Path("hits.parquet") | ||
|
||
# Connect to DuckDB | ||
conn = duckdb.connect() | ||
|
||
# Configure optimizations | ||
rschu1ze marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
cpu_count = multiprocessing.cpu_count() | ||
conn.execute(f"SET threads TO {cpu_count}") | ||
conn.execute("SET enable_object_cache TO true") | ||
|
||
# Create view from parquet | ||
conn.execute(f"CREATE SCHEMA IF NOT EXISTS clickbench") | ||
conn.execute(f"CREATE VIEW clickbench.hits AS SELECT * FROM read_parquet('{PARQUET_FILE}')") | ||
|
||
# Read queries | ||
with open('queries.sql') as f: | ||
content = f.read() | ||
|
||
queries = [] | ||
for query in content.split(';'): | ||
query = query.strip() | ||
if query and not query.startswith('--'): | ||
queries.append(query) | ||
|
||
# Run each query 3 times | ||
for i, query_sql in enumerate(queries, 1): | ||
for run in range(3): | ||
try: | ||
start = time.perf_counter() | ||
conn.execute(query_sql).fetchall() | ||
elapsed = time.perf_counter() - start | ||
print(f"{elapsed:.4f}") | ||
except Exception as e: | ||
print("null") | ||
EOF |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
{ | ||
"system": "Arc", | ||
"proprietary": "no", | ||
"tuned": "no", | ||
"tags": ["Python", "time-series", "DuckDB", "Parquet", "columnar"] | ||
} |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.