Skip to content
Open
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
7 changes: 7 additions & 0 deletions clickhouse-trash-schema/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Trash Schema Benchmark

The same as ClickBench, but the `hits` table is split into a hundred tables with two columns each: `id` and one of the original columns. `hits` becomes a view that joins all of them by `id`, so every query has to join a hundred tables.

This models data science and AI workloads where there is often a large dataset of objects (images, comments, HTML pages) with iteratively computed properties (classification, embeddings, annotations), each stored in a separate "parallel" table sharing the same primary key. The goal is to find opportunities to optimize queries on top of such a schema.

The queries and settings are identical to ClickBench. `create.sql` defines the per-column tables sorted by `id` and the `hits` view; `split.sql` distributes the loaded data from a staging table into the per-column tables.
4 changes: 4 additions & 0 deletions clickhouse-trash-schema/benchmark.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/bash
# Thin shim — actual flow is in lib/benchmark-common.sh.
export BENCH_DOWNLOAD_SCRIPT="download-hits-parquet-partitioned"
exec ../lib/benchmark-common.sh
4 changes: 4 additions & 0 deletions clickhouse-trash-schema/check
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/bash
set -e

clickhouse-client --query "SELECT 1" >/dev/null
433 changes: 433 additions & 0 deletions clickhouse-trash-schema/create.sql

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions clickhouse-trash-schema/data-size
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/bash
set -e

clickhouse-client --query "SELECT sum(total_bytes) FROM system.tables WHERE database = 'default' AND name LIKE 'hits\_%'"
16 changes: 16 additions & 0 deletions clickhouse-trash-schema/install
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/bash
set -e

if [ ! -x /usr/bin/clickhouse ]; then
curl https://clickhouse.com/ | sh
sudo ./clickhouse install --noninteractive
fi

# Eager startup loading, same as ../clickhouse/install.
sudo mkdir -p /etc/clickhouse-server/config.d
sudo tee /etc/clickhouse-server/config.d/eager_load.yaml >/dev/null <<'EOF'
async_load_databases: false
merge_tree:
primary_key_lazy_load: 0
columns_and_secondary_indices_sizes_lazy_calculation: 0
EOF
18 changes: 18 additions & 0 deletions clickhouse-trash-schema/load
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/bin/bash
set -e

clickhouse-client < create.sql

# Symlink the parquet files into user_files, same as ../clickhouse/load.
for f in hits_*.parquet; do
sudo ln -sf "$PWD/$f" /var/lib/clickhouse/user_files/"$f"
done
sudo chown -h clickhouse:clickhouse /var/lib/clickhouse/user_files/hits_*.parquet

# row_number() OVER (), not rowNumberInAllBlocks(): the latter is per-thread and produces duplicate ids under parallel reads.
clickhouse-client --query "INSERT INTO hits_staging SELECT row_number() OVER () AS id, * FROM file('hits_*.parquet')"

clickhouse-client < split.sql

sudo rm -f /var/lib/clickhouse/user_files/hits_*.parquet
sync
43 changes: 43 additions & 0 deletions clickhouse-trash-schema/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(EventDate), MAX(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 EventTime) 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 >= '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 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 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 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 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 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 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;
8 changes: 8 additions & 0 deletions clickhouse-trash-schema/query
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/bash
# Reads a SQL query from stdin, runs it via clickhouse-client.
# Stdout: query result (default format).
# Stderr: query runtime in fractional seconds on the last line (from --time).
# Exit non-zero on error.
set -e

clickhouse-client --time --format=Pretty
106 changes: 106 additions & 0 deletions clickhouse-trash-schema/split.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
INSERT INTO hits_WatchID SELECT id, WatchID FROM hits_staging;
INSERT INTO hits_JavaEnable SELECT id, JavaEnable FROM hits_staging;
INSERT INTO hits_Title SELECT id, Title FROM hits_staging;
INSERT INTO hits_GoodEvent SELECT id, GoodEvent FROM hits_staging;
INSERT INTO hits_EventTime SELECT id, EventTime FROM hits_staging;
INSERT INTO hits_EventDate SELECT id, EventDate FROM hits_staging;
INSERT INTO hits_CounterID SELECT id, CounterID FROM hits_staging;
INSERT INTO hits_ClientIP SELECT id, ClientIP FROM hits_staging;
INSERT INTO hits_RegionID SELECT id, RegionID FROM hits_staging;
INSERT INTO hits_UserID SELECT id, UserID FROM hits_staging;
INSERT INTO hits_CounterClass SELECT id, CounterClass FROM hits_staging;
INSERT INTO hits_OS SELECT id, OS FROM hits_staging;
INSERT INTO hits_UserAgent SELECT id, UserAgent FROM hits_staging;
INSERT INTO hits_URL SELECT id, URL FROM hits_staging;
INSERT INTO hits_Referer SELECT id, Referer FROM hits_staging;
INSERT INTO hits_IsRefresh SELECT id, IsRefresh FROM hits_staging;
INSERT INTO hits_RefererCategoryID SELECT id, RefererCategoryID FROM hits_staging;
INSERT INTO hits_RefererRegionID SELECT id, RefererRegionID FROM hits_staging;
INSERT INTO hits_URLCategoryID SELECT id, URLCategoryID FROM hits_staging;
INSERT INTO hits_URLRegionID SELECT id, URLRegionID FROM hits_staging;
INSERT INTO hits_ResolutionWidth SELECT id, ResolutionWidth FROM hits_staging;
INSERT INTO hits_ResolutionHeight SELECT id, ResolutionHeight FROM hits_staging;
INSERT INTO hits_ResolutionDepth SELECT id, ResolutionDepth FROM hits_staging;
INSERT INTO hits_FlashMajor SELECT id, FlashMajor FROM hits_staging;
INSERT INTO hits_FlashMinor SELECT id, FlashMinor FROM hits_staging;
INSERT INTO hits_FlashMinor2 SELECT id, FlashMinor2 FROM hits_staging;
INSERT INTO hits_NetMajor SELECT id, NetMajor FROM hits_staging;
INSERT INTO hits_NetMinor SELECT id, NetMinor FROM hits_staging;
INSERT INTO hits_UserAgentMajor SELECT id, UserAgentMajor FROM hits_staging;
INSERT INTO hits_UserAgentMinor SELECT id, UserAgentMinor FROM hits_staging;
INSERT INTO hits_CookieEnable SELECT id, CookieEnable FROM hits_staging;
INSERT INTO hits_JavascriptEnable SELECT id, JavascriptEnable FROM hits_staging;
INSERT INTO hits_IsMobile SELECT id, IsMobile FROM hits_staging;
INSERT INTO hits_MobilePhone SELECT id, MobilePhone FROM hits_staging;
INSERT INTO hits_MobilePhoneModel SELECT id, MobilePhoneModel FROM hits_staging;
INSERT INTO hits_Params SELECT id, Params FROM hits_staging;
INSERT INTO hits_IPNetworkID SELECT id, IPNetworkID FROM hits_staging;
INSERT INTO hits_TraficSourceID SELECT id, TraficSourceID FROM hits_staging;
INSERT INTO hits_SearchEngineID SELECT id, SearchEngineID FROM hits_staging;
INSERT INTO hits_SearchPhrase SELECT id, SearchPhrase FROM hits_staging;
INSERT INTO hits_AdvEngineID SELECT id, AdvEngineID FROM hits_staging;
INSERT INTO hits_IsArtifical SELECT id, IsArtifical FROM hits_staging;
INSERT INTO hits_WindowClientWidth SELECT id, WindowClientWidth FROM hits_staging;
INSERT INTO hits_WindowClientHeight SELECT id, WindowClientHeight FROM hits_staging;
INSERT INTO hits_ClientTimeZone SELECT id, ClientTimeZone FROM hits_staging;
INSERT INTO hits_ClientEventTime SELECT id, ClientEventTime FROM hits_staging;
INSERT INTO hits_SilverlightVersion1 SELECT id, SilverlightVersion1 FROM hits_staging;
INSERT INTO hits_SilverlightVersion2 SELECT id, SilverlightVersion2 FROM hits_staging;
INSERT INTO hits_SilverlightVersion3 SELECT id, SilverlightVersion3 FROM hits_staging;
INSERT INTO hits_SilverlightVersion4 SELECT id, SilverlightVersion4 FROM hits_staging;
INSERT INTO hits_PageCharset SELECT id, PageCharset FROM hits_staging;
INSERT INTO hits_CodeVersion SELECT id, CodeVersion FROM hits_staging;
INSERT INTO hits_IsLink SELECT id, IsLink FROM hits_staging;
INSERT INTO hits_IsDownload SELECT id, IsDownload FROM hits_staging;
INSERT INTO hits_IsNotBounce SELECT id, IsNotBounce FROM hits_staging;
INSERT INTO hits_FUniqID SELECT id, FUniqID FROM hits_staging;
INSERT INTO hits_OriginalURL SELECT id, OriginalURL FROM hits_staging;
INSERT INTO hits_HID SELECT id, HID FROM hits_staging;
INSERT INTO hits_IsOldCounter SELECT id, IsOldCounter FROM hits_staging;
INSERT INTO hits_IsEvent SELECT id, IsEvent FROM hits_staging;
INSERT INTO hits_IsParameter SELECT id, IsParameter FROM hits_staging;
INSERT INTO hits_DontCountHits SELECT id, DontCountHits FROM hits_staging;
INSERT INTO hits_WithHash SELECT id, WithHash FROM hits_staging;
INSERT INTO hits_HitColor SELECT id, HitColor FROM hits_staging;
INSERT INTO hits_LocalEventTime SELECT id, LocalEventTime FROM hits_staging;
INSERT INTO hits_Age SELECT id, Age FROM hits_staging;
INSERT INTO hits_Sex SELECT id, Sex FROM hits_staging;
INSERT INTO hits_Income SELECT id, Income FROM hits_staging;
INSERT INTO hits_Interests SELECT id, Interests FROM hits_staging;
INSERT INTO hits_Robotness SELECT id, Robotness FROM hits_staging;
INSERT INTO hits_RemoteIP SELECT id, RemoteIP FROM hits_staging;
INSERT INTO hits_WindowName SELECT id, WindowName FROM hits_staging;
INSERT INTO hits_OpenerName SELECT id, OpenerName FROM hits_staging;
INSERT INTO hits_HistoryLength SELECT id, HistoryLength FROM hits_staging;
INSERT INTO hits_BrowserLanguage SELECT id, BrowserLanguage FROM hits_staging;
INSERT INTO hits_BrowserCountry SELECT id, BrowserCountry FROM hits_staging;
INSERT INTO hits_SocialNetwork SELECT id, SocialNetwork FROM hits_staging;
INSERT INTO hits_SocialAction SELECT id, SocialAction FROM hits_staging;
INSERT INTO hits_HTTPError SELECT id, HTTPError FROM hits_staging;
INSERT INTO hits_SendTiming SELECT id, SendTiming FROM hits_staging;
INSERT INTO hits_DNSTiming SELECT id, DNSTiming FROM hits_staging;
INSERT INTO hits_ConnectTiming SELECT id, ConnectTiming FROM hits_staging;
INSERT INTO hits_ResponseStartTiming SELECT id, ResponseStartTiming FROM hits_staging;
INSERT INTO hits_ResponseEndTiming SELECT id, ResponseEndTiming FROM hits_staging;
INSERT INTO hits_FetchTiming SELECT id, FetchTiming FROM hits_staging;
INSERT INTO hits_SocialSourceNetworkID SELECT id, SocialSourceNetworkID FROM hits_staging;
INSERT INTO hits_SocialSourcePage SELECT id, SocialSourcePage FROM hits_staging;
INSERT INTO hits_ParamPrice SELECT id, ParamPrice FROM hits_staging;
INSERT INTO hits_ParamOrderID SELECT id, ParamOrderID FROM hits_staging;
INSERT INTO hits_ParamCurrency SELECT id, ParamCurrency FROM hits_staging;
INSERT INTO hits_ParamCurrencyID SELECT id, ParamCurrencyID FROM hits_staging;
INSERT INTO hits_OpenstatServiceName SELECT id, OpenstatServiceName FROM hits_staging;
INSERT INTO hits_OpenstatCampaignID SELECT id, OpenstatCampaignID FROM hits_staging;
INSERT INTO hits_OpenstatAdID SELECT id, OpenstatAdID FROM hits_staging;
INSERT INTO hits_OpenstatSourceID SELECT id, OpenstatSourceID FROM hits_staging;
INSERT INTO hits_UTMSource SELECT id, UTMSource FROM hits_staging;
INSERT INTO hits_UTMMedium SELECT id, UTMMedium FROM hits_staging;
INSERT INTO hits_UTMCampaign SELECT id, UTMCampaign FROM hits_staging;
INSERT INTO hits_UTMContent SELECT id, UTMContent FROM hits_staging;
INSERT INTO hits_UTMTerm SELECT id, UTMTerm FROM hits_staging;
INSERT INTO hits_FromTag SELECT id, FromTag FROM hits_staging;
INSERT INTO hits_HasGCLID SELECT id, HasGCLID FROM hits_staging;
INSERT INTO hits_RefererHash SELECT id, RefererHash FROM hits_staging;
INSERT INTO hits_URLHash SELECT id, URLHash FROM hits_staging;
INSERT INTO hits_CLID SELECT id, CLID FROM hits_staging;
DROP TABLE hits_staging;
4 changes: 4 additions & 0 deletions clickhouse-trash-schema/start
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/bash
set -e

sudo clickhouse start
3 changes: 3 additions & 0 deletions clickhouse-trash-schema/stop
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/bash

sudo clickhouse stop || true
11 changes: 11 additions & 0 deletions clickhouse-trash-schema/template.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"system": "ClickHouse (trash schema)",
"proprietary": "no",
"hardware": "cpu",
"tuned": "no",
"tags": [
"C++",
"column-oriented",
"ClickHouse derivative"
]
}