Skip to content
Merged
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
45 changes: 45 additions & 0 deletions firebolt-parquet-partitioned/benchmark.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#!/bin/bash

# Download the partitioned hits parquet files
echo "Downloading dataset..."
rm -rf data
mkdir -p data
seq 0 99 | xargs -P100 -I{} bash -c 'wget -P data --continue --progress=dot:giga https://datasets.clickhouse.com/hits_compatible/athena_partitioned/hits_{}.parquet'

# Start the container
sudo apt-get install -y docker.io jq
sudo docker run -dit --name firebolt-core --rm \
--ulimit memlock=8589934592:8589934592 \
--security-opt seccomp=unconfined \
-p 127.0.0.1:3473:3473 \
-v /firebolt-core/volume \
-v ./data/:/firebolt-core/clickbench \
ghcr.io/firebolt-db/firebolt-core:preview-rc

# Wait until Firebolt is ready
for _ in {1..600}
do
curl -sS "http://localhost:3473/" --data-binary "SELECT 'Firebolt is ready';" > /dev/null && break
sleep 1
done

# Create the database and external table
echo "Creating external table..."
curl -sS "http://localhost:3473/?enable_multi_query_requests=true" --data-binary "DROP DATABASE IF EXISTS clickbench;CREATE DATABASE clickbench;"
curl -sS "http://localhost:3473/?database=clickbench&enable_multi_query_requests=true" --data-binary @create.sql

# Print statistics
DATA_SIZE=$(du -bcs data/hits_*.parquet 2>/dev/null | grep total | awk '{print $1}')
if [ -z "$DATA_SIZE" ]; then
DATA_SIZE=$(du -cs data/hits_*.parquet | grep total | awk '{print $1}')
fi
echo "Load time: 0"
echo "Data size: $DATA_SIZE"

# Run the benchmark
echo "Running the benchmark..."
./run.sh

# Stop the container and remove the data
sudo docker container stop firebolt-core
rm -rf data
113 changes: 113 additions & 0 deletions firebolt-parquet-partitioned/create.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
-- External table reading directly from partitioned Parquet files
-- No data ingestion, queries run directly on Parquet
CREATE EXTERNAL TABLE hits
(
"WatchID" BIGINT NOT NULL,
"JavaEnable" INTEGER NOT NULL,
"Title" TEXT NOT NULL,
"GoodEvent" INTEGER NOT NULL,
"EventTime" BIGINT NOT NULL,
"EventDate" INTEGER NOT NULL,
"CounterID" INTEGER NOT NULL,
"ClientIP" INTEGER NOT NULL,
"RegionID" INTEGER NOT NULL,
"UserID" BIGINT NOT NULL,
"CounterClass" INTEGER NOT NULL,
"OS" INTEGER NOT NULL,
"UserAgent" INTEGER NOT NULL,
"URL" TEXT NOT NULL,
"Referer" TEXT NOT NULL,
"IsRefresh" INTEGER NOT NULL,
"RefererCategoryID" INTEGER NOT NULL,
"RefererRegionID" INTEGER NOT NULL,
"URLCategoryID" INTEGER NOT NULL,
"URLRegionID" INTEGER NOT NULL,
"ResolutionWidth" INTEGER NOT NULL,
"ResolutionHeight" INTEGER NOT NULL,
"ResolutionDepth" INTEGER NOT NULL,
"FlashMajor" INTEGER NOT NULL,
"FlashMinor" INTEGER NOT NULL,
"FlashMinor2" TEXT NOT NULL,
"NetMajor" INTEGER NOT NULL,
"NetMinor" INTEGER NOT NULL,
"UserAgentMajor" INTEGER NOT NULL,
"UserAgentMinor" VARCHAR(255) NOT NULL,
"CookieEnable" INTEGER NOT NULL,
"JavascriptEnable" INTEGER NOT NULL,
"IsMobile" INTEGER NOT NULL,
"MobilePhone" INTEGER NOT NULL,
"MobilePhoneModel" TEXT NOT NULL,
"Params" TEXT NOT NULL,
"IPNetworkID" INTEGER NOT NULL,
"TraficSourceID" INTEGER NOT NULL,
"SearchEngineID" INTEGER NOT NULL,
"SearchPhrase" TEXT NOT NULL,
"AdvEngineID" INTEGER NOT NULL,
"IsArtifical" INTEGER NOT NULL,
"WindowClientWidth" INTEGER NOT NULL,
"WindowClientHeight" INTEGER NOT NULL,
"ClientTimeZone" INTEGER NOT NULL,
"ClientEventTime" BIGINT NOT NULL,
"SilverlightVersion1" INTEGER NOT NULL,
"SilverlightVersion2" INTEGER NOT NULL,
"SilverlightVersion3" INTEGER NOT NULL,
"SilverlightVersion4" INTEGER NOT NULL,
"PageCharset" TEXT NOT NULL,
"CodeVersion" INTEGER NOT NULL,
"IsLink" INTEGER NOT NULL,
"IsDownload" INTEGER NOT NULL,
"IsNotBounce" INTEGER NOT NULL,
"FUniqID" BIGINT NOT NULL,
"OriginalURL" TEXT NOT NULL,
"HID" INTEGER NOT NULL,
"IsOldCounter" INTEGER NOT NULL,
"IsEvent" INTEGER NOT NULL,
"IsParameter" INTEGER NOT NULL,
"DontCountHits" INTEGER NOT NULL,
"WithHash" INTEGER NOT NULL,
"HitColor" CHAR NOT NULL,
"LocalEventTime" BIGINT NOT NULL,
"Age" INTEGER NOT NULL,
"Sex" INTEGER NOT NULL,
"Income" INTEGER NOT NULL,
"Interests" INTEGER NOT NULL,
"Robotness" INTEGER NOT NULL,
"RemoteIP" INTEGER NOT NULL,
"WindowName" INTEGER NOT NULL,
"OpenerName" INTEGER NOT NULL,
"HistoryLength" INTEGER NOT NULL,
"BrowserLanguage" TEXT NOT NULL,
"BrowserCountry" TEXT NOT NULL,
"SocialNetwork" TEXT NOT NULL,
"SocialAction" TEXT NOT NULL,
"HTTPError" INTEGER 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" INTEGER NOT NULL,
"SocialSourcePage" TEXT NOT NULL,
"ParamPrice" BIGINT NOT NULL,
"ParamOrderID" TEXT NOT NULL,
"ParamCurrency" TEXT NOT NULL,
"ParamCurrencyID" INTEGER NOT NULL,
"OpenstatServiceName" TEXT NOT NULL,
"OpenstatCampaignID" TEXT NOT NULL,
"OpenstatAdID" TEXT NOT NULL,
"OpenstatSourceID" TEXT NOT NULL,
"UTMSource" TEXT NOT NULL,
"UTMMedium" TEXT NOT NULL,
"UTMCampaign" TEXT NOT NULL,
"UTMContent" TEXT NOT NULL,
"UTMTerm" TEXT NOT NULL,
"FromTag" TEXT NOT NULL,
"HasGCLID" INTEGER NOT NULL,
"RefererHash" BIGINT NOT NULL,
"URLHash" BIGINT NOT NULL,
"CLID" INTEGER NOT NULL
)
URL = 'file:///firebolt-core/clickbench'
OBJECT_PATTERN = 'hits_*.parquet'
TYPE = PARQUET;
43 changes: 43 additions & 0 deletions firebolt-parquet-partitioned/queries.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
SELECT COUNT(*) FROM hits;
SELECT COUNT(*) FROM hits WHERE "AdvEngineID" <> 0;
SELECT SUM("AdvEngineID"), COUNT(*), AVG("ResolutionWidth") FROM hits;
SELECT AVG("UserID") FROM hits;
SELECT COUNT(DISTINCT "UserID") FROM hits;
SELECT COUNT(DISTINCT "SearchPhrase") FROM hits;
SELECT MIN(DATE '1970-01-01' + "EventDate"), MAX(DATE '1970-01-01' + "EventDate") FROM hits;
SELECT "AdvEngineID", COUNT(*) FROM hits WHERE "AdvEngineID" <> 0 GROUP BY "AdvEngineID" ORDER BY COUNT(*) DESC;
SELECT "RegionID", COUNT(DISTINCT "UserID") AS u FROM hits GROUP BY "RegionID" ORDER BY u DESC LIMIT 10;
SELECT "RegionID", SUM("AdvEngineID"), COUNT(*) AS c, AVG("ResolutionWidth"), COUNT(DISTINCT "UserID") FROM hits GROUP BY "RegionID" ORDER BY c DESC LIMIT 10;
SELECT "MobilePhoneModel", COUNT(DISTINCT "UserID") AS u FROM hits WHERE "MobilePhoneModel" <> '' GROUP BY "MobilePhoneModel" ORDER BY u DESC LIMIT 10;
SELECT "MobilePhone", "MobilePhoneModel", COUNT(DISTINCT "UserID") AS u FROM hits WHERE "MobilePhoneModel" <> '' GROUP BY "MobilePhone", "MobilePhoneModel" ORDER BY u DESC LIMIT 10;
SELECT "SearchPhrase", COUNT(*) AS c FROM hits WHERE "SearchPhrase" <> '' GROUP BY "SearchPhrase" ORDER BY c DESC LIMIT 10;
SELECT "SearchPhrase", COUNT(DISTINCT "UserID") AS u FROM hits WHERE "SearchPhrase" <> '' GROUP BY "SearchPhrase" ORDER BY u DESC LIMIT 10;
SELECT "SearchEngineID", "SearchPhrase", COUNT(*) AS c FROM hits WHERE "SearchPhrase" <> '' GROUP BY "SearchEngineID", "SearchPhrase" ORDER BY c DESC LIMIT 10;
SELECT "UserID", COUNT(*) FROM hits GROUP BY "UserID" ORDER BY COUNT(*) DESC LIMIT 10;
SELECT "UserID", "SearchPhrase", COUNT(*) FROM hits GROUP BY "UserID", "SearchPhrase" ORDER BY COUNT(*) DESC LIMIT 10;
SELECT "UserID", "SearchPhrase", COUNT(*) FROM hits GROUP BY "UserID", "SearchPhrase" LIMIT 10;
SELECT "UserID", extract(minute FROM to_timestamp("EventTime") AT TIME ZONE 'UTC') AS m, "SearchPhrase", COUNT(*) FROM hits GROUP BY "UserID", m, "SearchPhrase" ORDER BY COUNT(*) DESC LIMIT 10;
SELECT "UserID" FROM hits WHERE "UserID" = 435090932899640449;
SELECT COUNT(*) FROM hits WHERE "URL" LIKE '%google%';
SELECT "SearchPhrase", MIN("URL"), COUNT(*) AS c FROM 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 hits WHERE "Title" LIKE '%Google%' AND "URL" NOT LIKE '%.google.%' AND "SearchPhrase" <> '' GROUP BY "SearchPhrase" ORDER BY c DESC LIMIT 10;
SELECT * FROM hits WHERE "URL" LIKE '%google%' ORDER BY "EventTime" LIMIT 10;
SELECT "SearchPhrase" FROM hits WHERE "SearchPhrase" <> '' ORDER BY "EventTime" LIMIT 10;
SELECT "SearchPhrase" FROM hits WHERE "SearchPhrase" <> '' ORDER BY "SearchPhrase" LIMIT 10;
SELECT "SearchPhrase" FROM hits WHERE "SearchPhrase" <> '' ORDER BY "EventTime", "SearchPhrase" LIMIT 10;
SELECT "CounterID", AVG(length("URL")) AS l, COUNT(*) AS c FROM 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 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 hits;
SELECT "SearchEngineID", "ClientIP", COUNT(*) AS c, SUM("IsRefresh"), AVG("ResolutionWidth") FROM hits WHERE "SearchPhrase" <> '' GROUP BY "SearchEngineID", "ClientIP" ORDER BY c DESC LIMIT 10;
SELECT "WatchID", "ClientIP", COUNT(*) AS c, SUM("IsRefresh"), AVG("ResolutionWidth") FROM hits WHERE "SearchPhrase" <> '' GROUP BY "WatchID", "ClientIP" ORDER BY c DESC LIMIT 10;
SELECT "WatchID", "ClientIP", COUNT(*) AS c, SUM("IsRefresh"), AVG("ResolutionWidth") FROM hits GROUP BY "WatchID", "ClientIP" ORDER BY c DESC LIMIT 10;
SELECT "URL", COUNT(*) AS c FROM hits GROUP BY "URL" ORDER BY c DESC LIMIT 10;
SELECT 1, "URL", COUNT(*) AS c FROM hits GROUP BY 1, "URL" ORDER BY c DESC LIMIT 10;
SELECT "ClientIP", "ClientIP" - 1, "ClientIP" - 2, "ClientIP" - 3, COUNT(*) AS c FROM hits GROUP BY "ClientIP", "ClientIP" - 1, "ClientIP" - 2, "ClientIP" - 3 ORDER BY c DESC LIMIT 10;
SELECT "URL", COUNT(*) AS PageViews FROM hits WHERE "CounterID" = 62 AND "EventDate" >= 16617 AND "EventDate" <= 16647 AND "DontCountHits" = 0 AND "IsRefresh" = 0 AND "URL" <> '' GROUP BY "URL" ORDER BY PageViews DESC LIMIT 10;
SELECT "Title", COUNT(*) AS PageViews FROM hits WHERE "CounterID" = 62 AND "EventDate" >= 16617 AND "EventDate" <= 16647 AND "DontCountHits" = 0 AND "IsRefresh" = 0 AND "Title" <> '' GROUP BY "Title" ORDER BY PageViews DESC LIMIT 10;
SELECT "URL", COUNT(*) AS PageViews FROM hits WHERE "CounterID" = 62 AND "EventDate" >= 16617 AND "EventDate" <= 16647 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 hits WHERE "CounterID" = 62 AND "EventDate" >= 16617 AND "EventDate" <= 16647 AND "IsRefresh" = 0 GROUP BY "TraficSourceID", "SearchEngineID", "AdvEngineID", Src, Dst ORDER BY PageViews DESC LIMIT 10 OFFSET 1000;
SELECT "URLHash", DATE '1970-01-01' + "EventDate" AS d, COUNT(*) AS PageViews FROM hits WHERE "CounterID" = 62 AND "EventDate" >= 16617 AND "EventDate" <= 16647 AND "IsRefresh" = 0 AND "TraficSourceID" IN (-1, 6) AND "RefererHash" = 3594120000172545465 GROUP BY "URLHash", d ORDER BY PageViews DESC LIMIT 10 OFFSET 100;
SELECT "WindowClientWidth", "WindowClientHeight", COUNT(*) AS PageViews FROM hits WHERE "CounterID" = 62 AND "EventDate" >= 16617 AND "EventDate" <= 16647 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', to_timestamp("EventTime") AT TIME ZONE 'UTC') AS M, COUNT(*) AS PageViews FROM hits WHERE "CounterID" = 62 AND "EventDate" >= 16630 AND "EventDate" <= 16631 AND "IsRefresh" = 0 AND "DontCountHits" = 0 GROUP BY DATE_TRUNC('minute', to_timestamp("EventTime") AT TIME ZONE 'UTC') ORDER BY DATE_TRUNC('minute', to_timestamp("EventTime") AT TIME ZONE 'UTC') LIMIT 10 OFFSET 1000;
58 changes: 58 additions & 0 deletions firebolt-parquet-partitioned/results/c6a.2xlarge.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
{
"system": "Firebolt (Parquet, partitioned)",
"date": "2026-02-21",
"machine": "c6a.2xlarge",
"cluster_size": 1,
"proprietary": "yes",
"hardware": "cpu",
"tuned": "no",
"tags": ["C++","column-oriented","PostgreSQL compatible","ClickHouse derivative","stateless"],
"load_time": 0,
"data_size": 14737666736,
"result": [
[0.126, 0.035, 0.032],
[2.767, 0.21, 0.17],
[5, 0.385, 0.407],
[3.795, 0.322, 0.344],
[4.019, 0.823, 0.832],
[4.035, 1.284, 1.22],
[2.375, 0.248, 0.242],
[2.978, 0.204, 0.203],
[4.58, 1.058, 1.057],
[8.548, 1.571, 1.533],
[6.067, 0.708, 0.726],
[6.15, 0.843, 0.815],
[3.889, 1.148, 1.112],
[8.002, 1.83, 1.831],
[4.045, 1.331, 1.339],
[3.55, 0.88, 0.85],
[7.865, 2.318, 2.339],
[7.68, 2.062, 2.061],
[11.135, 5.985, 5.868],
[2.638, 0.239, 0.244],
[13.354, 3.622, 3.514],
[16.79, 4.136, 4.246],
[29.131, 7.152, 7.384],
[56.78, 26.975, 28.113],
[8.12, 1.139, 1.122],
[3.756, 0.876, 0.853],
[8.105, 1.162, 1.188],
[14.327, 4.552, 4.393],
[11.282, 5.92, 6.268],
[2.473, 0.281, 0.268],
[9.257, 1.604, 1.603],
[14.437, 1.898, 1.874],
[12.969, 3.877, 3.947],
[13.089, 4.926, 6.605],
[12.991, 5.209, 5.07],
[3.279, 1.16, 1.13],
[0.081, 0.007, 0.007],
[0.01, 0.007, 0.013],
[0.076, 0.007, 0.009],
[0.01, 0.009, 0.008],
[0.091, 0.01, 0.009],
[0.112, 0.008, 0.007],
[0.014, 0.006, 0.008]
]
}

58 changes: 58 additions & 0 deletions firebolt-parquet-partitioned/results/c6a.4xlarge.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
{
"system": "Firebolt (Parquet, partitioned)",
"date": "2026-02-21",
"machine": "c6a.4xlarge",
"cluster_size": 1,
"proprietary": "yes",
"hardware": "cpu",
"tuned": "no",
"tags": ["C++","column-oriented","PostgreSQL compatible","ClickHouse derivative","stateless"],
"load_time": 0,
"data_size": 14737666736,
"result": [
[0.095, 0.021, 0.022],
[2.625, 0.141, 0.13],
[4.897, 0.263, 0.256],
[3.678, 0.257, 0.254],
[3.794, 0.534, 0.533],
[3.926, 0.88, 0.871],
[2.347, 0.168, 0.161],
[2.881, 0.144, 0.135],
[4.332, 0.677, 0.633],
[8.407, 0.952, 0.938],
[6.081, 0.495, 0.467],
[6.101, 0.537, 0.535],
[3.858, 0.747, 0.757],
[7.817, 1.188, 1.174],
[3.987, 0.851, 0.891],
[3.444, 0.674, 0.528],
[7.756, 1.439, 1.348],
[7.592, 1.241, 1.297],
[10.67, 3.12, 3.109],
[2.62, 0.212, 0.21],
[13.042, 3.176, 3.148],
[16.628, 3.496, 3.48],
[28.996, 6.472, 6.497],
[56.151, 16.802, 17.43],
[8.208, 0.83, 0.825],
[3.793, 0.584, 0.601],
[8.202, 0.841, 0.842],
[14.347, 3.874, 3.881],
[11.219, 4.394, 4.39],
[2.508, 0.195, 0.179],
[9.475, 1.07, 1.011],
[14.535, 1.293, 1.288],
[12.514, 2.331, 2.219],
[12.937, 4.11, 4.093],
[12.914, 4.086, 3.975],
[3.249, 0.691, 0.699],
[0.093, 0.009, 0.008],
[0.013, 0.009, 0.006],
[0.066, 0.007, 0.007],
[0.012, 0.008, 0.007],
[0.103, 0.009, 0.01],
[0.154, 0.007, 0.007],
[0.009, 0.006, 0.007]
]
}

58 changes: 58 additions & 0 deletions firebolt-parquet-partitioned/results/c6a.large.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
{
"system": "Firebolt (Parquet, partitioned)",
"date": "2026-02-21",
"machine": "c6a.large",
"cluster_size": 1,
"proprietary": "yes",
"hardware": "cpu",
"tuned": "no",
"tags": ["C++","column-oriented","PostgreSQL compatible","ClickHouse derivative","stateless"],
"load_time": 0,
"data_size": 14737666736,
"result": [
[0.188, 0.119, 0.117],
[2.757, 0.636, 0.651],
[4.744, 1.288, 1.175],
[3.614, 1.03, 1.06],
[4.829, 4.127, 3.446],
[6.139, 4.659, 4.618],
[2.764, 0.933, 0.984],
[2.557, 0.868, 0.712],
[6.128, 4.83, 5.133],
[14.435, 13.821, 14.073],
[7.356, 2.526, 2.253],
[6.587, 2.972, 2.841],
[6.032, 4.142, 4.016],
[14.871, 13.488, 14.391],
[6.201, 5.777, 5.391],
[4.484, 3.943, 3.798],
[15.492, 12.855, 14.973],
[12.501, 12.097, 12.091],
[31.548, 31.264, 31.055],
[2.591, 0.696, 0.671],
[13.663, 15.33, 17.546],
[20.59, 20.592, 19.15],
[32.476, 28.058, 28.966],
[100.714, 100.629, 100.349],
[8.182, 5.176, 4.401],
[3.799, 3.476, 3.521],
[8.22, 4.051, 4.216],
[22.756, 22.879, 18.617],
[31.159, 26.677, 19.493],
[2.478, 0.788, 0.802],
[9.91, 7.034, 6.25],
[18.295, 18.419, 18.142],
[50.51, 49.577, 48.871],
[46.359, 5.844, 8.007],
[46.659, 5.828, 45.294],
[4.419, 3.538, 3.516],
[0.152, 0.01, 0.01],
[0.014, 0.01, 0.009],
[0.144, 0.011, 0.01],
[0.014, 0.009, 0.009],
[0.148, 0.013, 0.012],
[0.14, 0.011, 0.012],
[0.018, 0.01, 0.01]
]
}

Loading