diff --git a/chyt/README.md b/chyt/README.md new file mode 100644 index 000000000..001130a9e --- /dev/null +++ b/chyt/README.md @@ -0,0 +1,14 @@ +#### CHYT powered by ClickHouse + +1. Install YTsaurus cluster. Visit [YTsaurus Getting started webpage](https://ytsaurus.tech/docs/en/overview/try-yt) +2. Configure CPU, RAM and instance count of your benchmark clique using [CLI](https://ytsaurus.tech/docs/en/user-guide/data-processing/chyt/cliques/start) or YTsaurus UI (Menu -> Cliques). +3. After installation export nessasary parameters +```console +export YT_USE_HOSTS=0 +export CHYT_ALIAS=*ch_public +``` +In this case we will use default clique ``*ch_public``, but you can create your own. Also you need to export path to proxy using +```console +export YT_PROXY=path to your proxy +``` +4. Now you can run benchmark by starting the ``run.sh`` script. It will create```//home/hits``` table, fill it with data from ClickBench dataset repository, sort it and run benchmark queries diff --git a/chyt/benchmark.sh b/chyt/benchmark.sh new file mode 100755 index 000000000..5e42a91a6 --- /dev/null +++ b/chyt/benchmark.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +export YT_USE_HOSTS=0 +export CHYT_ALIAS=*ch_public + +echo "----------------" +# Create table +echo "Creating table" +time yt clickhouse execute "$(cat create.sql)" --alias $CHYT_ALIAS --proxy $YT_PROXY +echo "----------------" + +echo "----------------" +# Fill table +echo "Filling table" +time yt clickhouse execute "$(cat fill_data.sql)" --alias $CHYT_ALIAS --proxy $YT_PROXY +echo "----------------" + +echo "----------------" +# Sort table +echo "Sorting table" +time yt sort --src //home/hits --dst //home/hits --sort-by "CounterID" --sort-by "EventDate" --sort-by "UserID" --sort-by "EventTime" --sort-by "WatchID" --proxy $YT_PROXY +echo "----------------" + +echo "----------------" +# Run benchmark +echo "Starting benchmark" +./run.sh +echo "----------------" + diff --git a/chyt/create.sql b/chyt/create.sql new file mode 100644 index 000000000..273f7c89e --- /dev/null +++ b/chyt/create.sql @@ -0,0 +1,109 @@ +CREATE TABLE IF NOT EXISTS "//home/hits" +( + WatchID BIGINT NOT NULL, + JavaEnable SMALLINT NOT NULL, + Title TEXT NOT NULL, + 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 NOT NULL, + Referer TEXT NOT NULL, + 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 NOT NULL, + 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 NOT NULL, + Params TEXT NOT NULL, + IPNetworkID INTEGER NOT NULL, + TraficSourceID SMALLINT NOT NULL, + SearchEngineID SMALLINT NOT NULL, + SearchPhrase TEXT NOT NULL, + 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 NOT NULL, + CodeVersion INTEGER NOT NULL, + IsLink SMALLINT NOT NULL, + IsDownload SMALLINT NOT NULL, + IsNotBounce SMALLINT NOT NULL, + FUniqID BIGINT NOT NULL, + OriginalURL TEXT NOT NULL, + 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 NOT NULL, + BrowserCountry TEXT NOT NULL, + SocialNetwork TEXT NOT NULL, + SocialAction TEXT NOT NULL, + 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 NOT NULL, + ParamPrice BIGINT NOT NULL, + ParamOrderID TEXT NOT NULL, + ParamCurrency TEXT NOT NULL, + ParamCurrencyID SMALLINT 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 SMALLINT NOT NULL, + RefererHash BIGINT NOT NULL, + URLHash BIGINT NOT NULL, + CLID INTEGER NOT NULL +) +ENGINE = YtTable(); diff --git a/chyt/fill_data.sql b/chyt/fill_data.sql new file mode 100644 index 000000000..a7f26b8f8 --- /dev/null +++ b/chyt/fill_data.sql @@ -0,0 +1 @@ +INSERT INTO "//home/hits" SELECT * FROM url('https://datasets.clickhouse.com/hits_compatible/hits.tsv.gz', 'TSV') diff --git a/chyt/queries.sql b/chyt/queries.sql new file mode 100644 index 000000000..5e8bebce4 --- /dev/null +++ b/chyt/queries.sql @@ -0,0 +1,43 @@ +SELECT COUNT(*) FROM '//home/hits' +SELECT COUNT(*) FROM '//home/hits' WHERE AdvEngineID != 0 +SELECT SUM(AdvEngineID), COUNT(*), AVG(ResolutionWidth) FROM '//home/hits'; +SELECT AVG(UserID) FROM '//home/hits'; +SELECT COUNT(DISTINCT UserID) FROM '//home/hits'; +SELECT COUNT(DISTINCT SearchPhrase) FROM '//home/hits'; +SELECT MIN(EventDate), MAX(EventDate) FROM '//home/hits'; +SELECT AdvEngineID, COUNT(*) FROM '//home/hits' WHERE AdvEngineID != 0 GROUP BY AdvEngineID ORDER BY COUNT(*) DESC; +SELECT RegionID, COUNT(DISTINCT UserID) AS u FROM '//home/hits' GROUP BY RegionID ORDER BY u DESC LIMIT 10; +SELECT RegionID, SUM(AdvEngineID), COUNT(*) AS c, AVG(ResolutionWidth), COUNT(DISTINCT UserID) FROM '//home/hits' GROUP BY RegionID ORDER BY c DESC LIMIT 10; +SELECT MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM '//home/hits' WHERE MobilePhoneModel != '' GROUP BY MobilePhoneModel ORDER BY u DESC LIMIT 10; +SELECT MobilePhone, MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM '//home/hits' WHERE MobilePhoneModel != '' GROUP BY MobilePhone, MobilePhoneModel ORDER BY u DESC LIMIT 10; +SELECT SearchPhrase, COUNT(*) AS c FROM '//home/hits' WHERE SearchPhrase != '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; +SELECT SearchPhrase, COUNT(DISTINCT UserID) AS u FROM '//home/hits' WHERE SearchPhrase != '' GROUP BY SearchPhrase ORDER BY u DESC LIMIT 10; +SELECT SearchEngineID, SearchPhrase, COUNT(*) AS c FROM '//home/hits' WHERE SearchPhrase != '' GROUP BY SearchEngineID, SearchPhrase ORDER BY c DESC LIMIT 10; +SELECT UserID, COUNT(*) FROM '//home/hits' GROUP BY UserID ORDER BY COUNT(*) DESC LIMIT 10; +SELECT UserID, SearchPhrase, COUNT(*) FROM '//home/hits' GROUP BY UserID, SearchPhrase ORDER BY COUNT(*) DESC LIMIT 10; +SELECT UserID, SearchPhrase, COUNT(*) FROM '//home/hits' GROUP BY UserID, SearchPhrase LIMIT 10; +SELECT UserID, extract(minute FROM EventTime) AS m, SearchPhrase, COUNT(*) FROM '//home/hits' GROUP BY UserID, m, SearchPhrase ORDER BY COUNT(*) DESC LIMIT 10; +SELECT UserID FROM '//home/hits' WHERE UserID = 435090932899640449; +SELECT COUNT(*) FROM '//home/hits' WHERE URL LIKE '%google%'; +SELECT SearchPhrase, MIN(URL), COUNT(*) AS c FROM '//home/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 '//home/hits' WHERE Title LIKE '%Google%' AND URL NOT LIKE '%.google.%' AND SearchPhrase != '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; +SELECT * FROM '//home/hits' WHERE URL LIKE '%google%' ORDER BY EventTime LIMIT 10; +SELECT SearchPhrase FROM '//home/hits' WHERE SearchPhrase != '' ORDER BY EventTime LIMIT 10; +SELECT SearchPhrase FROM '//home/hits' WHERE SearchPhrase != '' ORDER BY SearchPhrase LIMIT 10; +SELECT SearchPhrase FROM '//home/hits' WHERE SearchPhrase != '' ORDER BY EventTime, SearchPhrase LIMIT 10; +SELECT CounterID, AVG(length(URL)) AS l, COUNT(*) AS c FROM '//home/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 '//home/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 '//home/hits'; +SELECT SearchEngineID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM '//home/hits' WHERE SearchPhrase != '' GROUP BY SearchEngineID, ClientIP ORDER BY c DESC LIMIT 10; +SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM '//home/hits' WHERE SearchPhrase != '' GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10; +SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM '//home/hits' GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10; +SELECT URL, COUNT(*) AS c FROM '//home/hits' GROUP BY URL ORDER BY c DESC LIMIT 10; +SELECT 1, URL, COUNT(*) AS c FROM '//home/hits' GROUP BY 1, URL ORDER BY c DESC LIMIT 10; +SELECT ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3, COUNT(*) AS c FROM '//home/hits' GROUP BY ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3 ORDER BY c DESC LIMIT 10; +SELECT URL, COUNT(*) AS PageViews FROM '//home/hits' WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND DontCountHits = 0 AND IsRefresh = 0 AND URL != '' GROUP BY URL ORDER BY PageViews DESC LIMIT 10; +SELECT Title, COUNT(*) AS PageViews FROM '//home/hits' WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND DontCountHits = 0 AND IsRefresh = 0 AND Title != '' GROUP BY Title ORDER BY PageViews DESC LIMIT 10; +SELECT URL, COUNT(*) AS PageViews FROM '//home/hits' WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' 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 '//home/hits' WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' 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 '//home/hits' WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' 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 '//home/hits' WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' 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', EventTime) AS M, COUNT(*) AS PageViews FROM '//home/hits' WHERE CounterID = 62 AND EventDate >= '2013-07-14' AND EventDate <= '2013-07-15' AND IsRefresh = 0 AND DontCountHits = 0 GROUP BY DATE_TRUNC('minute', EventTime) ORDER BY DATE_TRUNC('minute', EventTime) LIMIT 10 OFFSET 1000; diff --git a/chyt/results/yt.192GB_YC.json b/chyt/results/yt.192GB_YC.json new file mode 100644 index 000000000..f3a79b1c6 --- /dev/null +++ b/chyt/results/yt.192GB_YC.json @@ -0,0 +1,60 @@ + +{ + "system": "CHYT", + "date": "2024-09-16", + "machine": "192GB", + "cluster_size": "serverless", + "comment": "", + + "tags": ["C++", "column-oriented", "ClickHouse derivative", "managed", "YT"], + + "load_time": 0, + "data_size": 11991598975, + + "result": [[2.372610368, 0.177555991, 0.167831612], +[1.89569562, 0.163561879, 0.125731783], +[0.397375625, 0.143236637, 0.142898217], +[0.159063975, 0.219494644, 0.142977358], +[2.445798601, 2.463385924, 2.45236644], +[1.642306904, 1.120649371, 1.186680465], +[0.145678347, 0.134829491, 0.111869894], +[0.137467588, 0.131913797, 0.121479928], +[1.038950099, 0.841041871, 0.815657075], +[0.888393242, 0.901503487, 0.850001405], +[0.300008495, 0.295253981, 0.262494617], +[0.332864706, 0.316992408, 0.284549721], +[1.282832704, 1.211279681, 1.203357621], +[1.870151975, 1.879827686, 2.061536338], +[1.464882239, 1.392805612, 1.37117606], +[0.669433287, 0.62684469, 0.609748707], +[2.725962414, 2.440456367, 2.563546639], +[0.697352241, 0.716481149, 0.71570874], +[3.955110766, 3.943280412, 3.893673244], +[0.184934938, 0.148157406, 0.12426291], +[2.520929897, 0.419806388, 0.429551375], +[0.444997613, 0.434422441, 0.429956294], +[1.996560203, 0.628015168, 0.585114861], +[14.824231605, 2.397589198, 2.2803815], +[0.252897684, 0.257396369, 0.25015462], +[0.213346949, 0.223027753, 0.22175948], +[0.232342357, 0.225393963, 0.231525915], +[0.619598816, 0.589334994, 0.60943], +[4.611859865, 4.729652665, 4.405050704], +[0.50550661, 0.520710299, 0.492502187], +[0.640109449, 0.626248477, 0.616935419], +[1.158579925, 1.048573371, 1.122588651], +[7.386813284, 5.736833249, 6.593178508], +[6.643162826, 6.72984338, 6.644774073], +[6.720191035, 6.74018319, 6.750590849], +[1.113060311, 1.08857216, 1.104773142], +[1.866018689, 0.26290965, 0.248918084], +[0.299527902, 0.115307374, 0.115341251], +[0.132207052, 0.138025382, 0.119330326], +[0.995906952, 0.355747083, 0.352949324], +[1.127008209, 0.128025554, 0.097888539], +[0.211839809, 0.099082926, 0.096308393], +[0.12547587, 0.100394788, 0.078670296] +] + +} + diff --git a/chyt/results/yt.360GB_YC.json b/chyt/results/yt.360GB_YC.json new file mode 100644 index 000000000..ff566f998 --- /dev/null +++ b/chyt/results/yt.360GB_YC.json @@ -0,0 +1,60 @@ + +{ + "system": "CHYT", + "date": "2024-09-16", + "machine": "360GB", + "cluster_size": "serverless", + "comment": "", + + "tags": ["C++", "column-oriented", "ClickHouse derivative", "managed", "YT"], + + "load_time": 0, + "data_size": 11991598975, + + "result": [[0.128183824, 0.094088621, 0.09780898], +[0.110835469, 0.105759888, 0.094570234], +[0.129915728, 0.102583752, 0.103870001], +[0.103502534, 0.103226616, 0.103748437], +[2.109089084, 2.083779273, 2.112884608], +[1.020183734, 0.973862835, 0.940307535], +[0.096076448, 0.101914965, 0.096355669], +[0.102592734, 0.101062682, 0.102341893], +[0.805407437, 0.786196311, 0.778091253], +[0.827499106, 0.799945852, 0.790301742], +[0.23059338, 0.222442364, 0.212345667], +[0.235147388, 0.227044594, 0.224793301], +[0.770579808, 0.760533881, 0.778474308], +[1.159523393, 1.14649681, 1.134973884], +[0.853472293, 0.836768906, 0.809505901], +[0.473811343, 0.526539064, 0.555403265], +[1.706818407, 1.69311605, 1.563099254], +[0.414241724, 0.43466755, 0.432693477], +[3.420935664, 3.57643173, 3.385704175], +[0.099313286, 0.118718491, 0.108467089], +[0.293844253, 0.275250081, 0.270439116], +[0.312499051, 0.300432862, 0.284370244], +[0.367348574, 0.34577317, 0.353885312], +[1.496499058, 1.432554378, 1.35307467], +[0.18977799, 0.159872566, 0.160621156], +[0.158556102, 0.1485595, 0.149953303], +[0.155616606, 0.160443596, 0.164656278], +[0.48669893, 0.462240426, 0.447592216], +[2.609391381, 2.654156135, 2.628059019], +[0.333486019, 0.290188037, 0.298685464], +[0.386230763, 0.361219358, 0.397969611], +[0.692538712, 0.680270727, 0.650636814], +[4.357208473, 4.367277664, 4.278229464], +[4.045840235, 4.137789511, 4.212205446], +[4.107636932, 4.007328571, 4.128450318], +[0.931051726, 0.889028639, 0.896324353], +[1.175944096, 0.185351735, 0.159400516], +[0.315863193, 0.10706978, 0.097494635], +[0.10664377, 0.092488926, 0.090972588], +[0.561070017, 0.289356023, 0.290414027], +[0.497854143, 0.095818995, 0.09152957], +[0.11312576, 0.082238359, 0.081518631], +[0.082093051, 0.063105245, 0.072934379] +] + +} + diff --git a/chyt/results/yt.48GB_YC.json b/chyt/results/yt.48GB_YC.json new file mode 100644 index 000000000..9a9d234d7 --- /dev/null +++ b/chyt/results/yt.48GB_YC.json @@ -0,0 +1,60 @@ + +{ + "system": "CHYT", + "date": "2024-09-16", + "machine": "48GB", + "cluster_size": "serverless", + "comment": "", + + "tags": ["C++", "column-oriented", "ClickHouse derivative", "managed", "YT"], + + "load_time": 0, + "data_size": 11991598975, + + "result": [[3.323745106, 0.2942903, 0.271301798], +[0.312924416, 0.264656752, 0.238654926], +[0.459599731, 0.306721968, 0.296475232], +[0.317078416, 0.328189466, 0.32501447], +[0.750401083, 0.673357724, 0.735771166], +[1.53436618, 1.041000861, 1.039448803], +[0.259237133, 0.255315819, 0.281416323], +[0.274661836, 0.278049293, 0.276374029], +[1.027784599, 0.95990619, 1.129556508], +[1.106883344, 1.091561193, 1.056000332], +[0.570347016, 0.516959185, 0.5225468], +[0.58629529, 0.572216352, 0.578965097], +[1.076077847, 1.032543958, 0.999577577], +[1.521436174, 1.374792286, 1.314170719], +[1.24617223, 1.198073098, 1.179756387], +[0.917243328, 0.932530834, 0.92129245], +[3.65168725, 2.788414841, 2.622715898], +[1.965630058, 1.956963752, 1.951728791], +[5.132242533, 5.021368724, 4.977939969], +[0.27912817, 0.264962324, 0.26183738], +[4.501755888, 1.245032131, 1.156997755], +[1.322217124, 1.279723347, 1.268070169], +[3.48587094, 2.08693057, 2.015538527], +[19.970684767, 12.438672482, 12.133780265], +[0.703532571, 0.65012515, 0.619545643], +[0.563957529, 0.583093899, 0.603095175], +[0.654469205, 0.623432966, 0.624757001], +[1.373752227, 1.304533072, 1.291098197], +[13.776795862, 13.623118011, 13.387414612], +[1.546773611, 1.527799515, 1.512205855], +[1.049213826, 0.992678227, 0.978125555], +[1.326214577, 1.36437251, 1.33385781], +[7.081947626, 6.068111442, 5.820324524], +[3.813898228, 3.77103128, 3.734463421], +[3.693405268, 3.687269967, 3.690191053], +[1.588735169, 1.576688589, 1.582255422], +[0.146706831, 0.135136583, 0.136241382], +[0.160983211, 0.12245256, 0.119639382], +[0.138438438, 0.117595865, 0.111599774], +[0.219307078, 0.200030827, 0.193274236], +[0.579707303, 0.134099577, 0.114164185], +[0.118052321, 0.099798099, 0.104955192], +[0.10522091, 0.08711818, 0.086669605] +] + +} + diff --git a/chyt/results/yt.720GB_YC.json b/chyt/results/yt.720GB_YC.json new file mode 100644 index 000000000..78a2fa8e5 --- /dev/null +++ b/chyt/results/yt.720GB_YC.json @@ -0,0 +1,60 @@ + +{ + "system": "CHYT", + "date": "2024-09-16", + "machine": "720GB", + "cluster_size": "serverless", + "comment": "", + + "tags": ["C++", "column-oriented", "ClickHouse derivative", "managed", "YT"], + + "load_time": 0, + "data_size": 11991598975, + + "result": [[3.728176129, 0.111446159, 0.092740264], +[0.124095411, 0.095519789, 0.08743254], +[0.391634659, 0.116562472, 0.111131798], +[0.135439137, 0.110554131, 0.118556782], +[2.281313406, 2.154300475, 2.297623673], +[1.34382935, 0.914271989, 0.95627489], +[0.095962221, 0.099456492, 0.105758522], +[0.105668994, 0.101430551, 0.10610903], +[1.172700105, 0.934775468, 0.954090358], +[0.983006878, 0.975161, 0.935153712], +[0.225334254, 0.19190128, 0.190389964], +[0.248955744, 0.204569919, 0.195825075], +[0.752559994, 0.684850997, 0.750718453], +[1.017771104, 0.972454854, 0.981277422], +[0.930829411, 0.796514243, 0.772408029], +[0.571207838, 0.544347354, 0.563739184], +[1.610232323, 1.571874517, 1.582005803], +[0.323007056, 0.3234728, 0.321399866], +[3.232991894, 3.113561813, 3.345042999], +[0.832893621, 0.107764546, 0.099509927], +[1.339227838, 0.184122343, 0.189725438], +[0.2154399, 0.199617275, 0.205961873], +[1.190795475, 0.287426861, 0.282998428], +[8.292632834, 1.092072269, 1.013079464], +[0.15682655, 0.142388112, 0.134971217], +[0.136334865, 0.127320276, 0.132419171], +[0.160237218, 0.140126946, 0.139600303], +[1.974210367, 0.444041826, 0.413592027], +[1.712819044, 1.696295555, 1.624335687], +[0.242105121, 0.223380566, 0.226808207], +[0.428850355, 0.369303347, 0.363824457], +[0.699214995, 0.648548768, 0.718478543], +[4.063897518, 4.037015945, 4.032429747], +[4.417709773, 4.278018402, 4.260015307], +[4.240755971, 4.370282231, 4.381416634], +[0.992793581, 0.937418967, 0.928292734], +[14.769961965, 0.31493703, 0.28832601], +[3.163101726, 0.100759575, 0.090286655], +[0.110698183, 0.085373766, 0.083235365], +[3.461970007, 0.658148797, 0.585226038], +[0.525628038, 0.082757603, 0.074704752], +[0.114084688, 0.074520868, 0.076918021], +[0.095832728, 0.074042226, 0.073923995] +] + +} + diff --git a/chyt/results/yt.96GB_YC.json b/chyt/results/yt.96GB_YC.json new file mode 100644 index 000000000..ec1a1ea84 --- /dev/null +++ b/chyt/results/yt.96GB_YC.json @@ -0,0 +1,60 @@ + +{ + "system": "CHYT", + "date": "2024-09-16", + "machine": "96GB", + "cluster_size": "serverless", + "comment": "", + + "tags": ["C++", "column-oriented", "ClickHouse derivative", "managed", "YT"], + + "load_time": 0, + "data_size": 11991598975, + + "result": [[2.471259715, 0.199839973, 0.200456033], +[0.198322613, 0.180301822, 0.166997825], +[0.381432364, 0.201805734, 0.194220853], +[0.213357113, 0.193979525, 0.200634596], +[2.625439389, 2.505730924, 2.529854787], +[1.576058025, 1.280920709, 1.223270119], +[0.171142642, 0.166233556, 0.164499882], +[0.168026361, 0.184756345, 0.165741604], +[1.131538089, 0.977023682, 1.006746097], +[1.072994165, 1.091072241, 1.057296423], +[0.419794124, 0.415341583, 0.38935034], +[0.459095228, 0.422239926, 0.410755629], +[1.607037636, 1.602545484, 1.645780481], +[2.697780067, 2.465152203, 2.597049561], +[1.940087995, 1.851773721, 1.775751208], +[0.880758114, 0.810117753, 0.820614233], +[3.597412513, 3.556292705, 3.508897357], +[1.288738994, 1.157553044, 1.104145644], +[6.690308601, 6.306428638, 6.322326641], +[0.218766414, 0.1700616, 0.169250038], +[3.498425954, 0.742422225, 0.697959473], +[0.772290647, 0.733756387, 0.752310197], +[2.231595849, 1.099861933, 1.052790355], +[12.397674462, 4.59925201, 3.913462248], +[0.378310603, 0.357781251, 0.366110553], +[0.327743378, 0.338332627, 0.328129676], +[0.353715387, 0.365124844, 0.343564182], +[0.815803413, 0.793727037, 0.764698591], +[7.983413497, 8.09378247, 8.013545227], +[0.891150907, 0.859702942, 0.86791017], +[0.925172733, 0.889672466, 0.905915801], +[1.555307935, 1.499698119, 1.536692851], +[13.001895757, 12.195884384, 14.830402143], +[10.400858909, 10.491411467, 10.546708583], +[10.34810976, 10.367676112, 10.474390948], +[1.506961793, 1.448041566, 1.435765628], +[0.96342901, 0.205919439, 0.185556146], +[0.209021232, 0.142352538, 0.125832246], +[0.127121381, 0.125168827, 0.115052555], +[0.624206144, 0.337707801, 0.320670556], +[0.551670194, 0.122561002, 0.110560459], +[0.115415459, 0.098525689, 0.112574794], +[0.102314331, 0.083252211, 0.089584168] +] + +} + diff --git a/chyt/run.sh b/chyt/run.sh new file mode 100755 index 000000000..6011dc5cd --- /dev/null +++ b/chyt/run.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +TRIES=3 +QUERY_NUM=1 +TOTAL_LINES=$(wc -l < queries.sql) +cat queries.sql | while read query; do + echo -n "[" + for i in $(seq 1 $TRIES); do + RES=$(yt clickhouse execute "$query" --alias $CHYT_ALIAS --proxy $YT_PROXY --format JSON | jq .statistics.elapsed 2>&1) + [[ "$?" == "0" ]] && echo -n "${RES}" || echo -n "null" + [[ "$i" != $TRIES ]] && echo -n ", " + done + if [[ $QUERY_NUM == $TOTAL_LINES ]] + then echo "]" + else + echo "]," + fi + QUERY_NUM=$((QUERY_NUM + 1)) +done