ClickHouse/doc/benchmark.html
2016-06-01 03:46:30 +03:00

1814 lines
54 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8' />
<title>Performance comparison of analytical DBMS</title>
<style type='text/css'>
@font-face {
font-family:'Yandex Sans Display Web';
src:url(https://yastatic.net/adv-www/_/H63jN0veW07XQUIA2317lr9UIm8.eot);
src:url(https://yastatic.net/adv-www/_/H63jN0veW07XQUIA2317lr9UIm8.eot?#iefix) format('embedded-opentype'),
url(https://yastatic.net/adv-www/_/sUYVCPUAQE7ExrvMS7FoISoO83s.woff2) format('woff2'),
url(https://yastatic.net/adv-www/_/v2Sve_obH3rKm6rKrtSQpf-eB7U.woff) format('woff'),
url(https://yastatic.net/adv-www/_/PzD8hWLMunow5i3RfJ6WQJAL7aI.ttf) format('truetype'),
url(https://yastatic.net/adv-www/_/lF_KG5g4tpQNlYIgA0e77fBSZ5s.svg#YandexSansDisplayWeb-Regular) format('svg');
font-weight:400;
font-style:normal;
font-stretch:normal
}
body {
background-color: #EEE;
font-family: Arial, sans-serif;
font-size: 14px;
}
h1, h2 {
margin: 3px;
font-family: 'Yandex Sans Display Web', Arial, sans-serif;
}
p {
line-height: 20px;
white-space: pre-wrap;
}
a {
text-decoration: none;
color: #06F;
}
a:hover {
text-decoration: underline;
color: #F40;
}
.island {
background-color: #FFF;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05), 0 8px 25px -5px rgba(0, 0, 0, 0.1);
/* border-radius: 5px;*/
padding: 10px;
width: 90%;
margin: 10px auto 10px auto;
}
.title {
font-size: 40px;
font-weight: normal;
text-align: center;
margin: 0;
}
.subtitle {
font-size: 50px;
font-weight: normal;
text-align: center;
margin: 0;
}
.signature {
text-align: right;
margin: 0;
}
.terminal {
font-family: Monospace;
font-size: 9pt;
color: #B2B2B2;
background-color: #000;
padding: 3px;
border: 1px solid #AAA;
white-space: pre-wrap;
}
.text-example {
font-family: Monospace;
font-size: 9pt;
background-color: #FEC;
padding: 3px;
border: 1px solid #DDD;
white-space: pre-wrap;
}
.inline-example {
font-family: Monospace;
font-size: 9pt;
background-color: #FEC;
}
.informer {
width: 1000px;
margin: 20px auto 10px auto;
text-align: right;
}
.show-example {
display: none;
}
.show-hide-link {
color: #06C;
border-bottom: 1px dotted #06C;
}
.show-hide-link:hover {
color: #F40;
border-bottom: 1px dotted #F40;
cursor: pointer;
}
.head-anchor {
float: right;
color: #AAA;
}
.head-anchor:hover {
text-decoration: none;
}
.comparison_table {
background-color: #EEE;
}
td {
padding: 2px 5px 1px 5px;
}
th {
padding: 5px 5px 5px 5px;
}
.query_cell {
width: 300px;
white-space: pre;
overflow-x: hidden;
}
.query_cell:hover {
width: auto;
background-color: #FEC;
position: absolute;
padding: 3px;
margin: -11px 0 0 -3px;
overflow-x: auto;
white-space: normal;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1), 0 8px 25px -5px rgba(0, 0, 0, 0.25);
}
.number_cell {
text-align: right;
}
.comparison_table td {
background-color: #FFF;
}
.comparison_table th {
background-color: #F8F8F8;
}
#selectors {
font-size: 20px;
font-family: 'Yandex Sans Display Web', Arial, sans-serif;
margin: 5px;
}
#selectors p span {
border: 1px solid #DDD;
background-color: #EEE;
padding: 1px 5px 1px 5px;
cursor: pointer;
}
#selectors p span.selected {
border: 1px solid #F60;
background-color: #F80;
}
#selectors p span.disabled {
color: #AAA;
cursor: default;
}
.bar {
background-color: #6AF;
margin-top: 1px;
}
#diagram table tr td {
border-left: 1px solid #EEE;
border-top: 1px solid #EEE;
background-color: #F8F8F8;
}
#diagram table tr td:last-child {
border-right: 1px solid #EEE;
}
#diagram table tr:last-child td {
border-bottom: 1px solid #EEE;
}
</style>
</head>
<body>
<script type="text/javascript">
function getParams() {
var matches = document.cookie.match(/yandex_login=([\w\-]+)/);
return (matches && matches.length == 2) ? { "login": matches[1] } : {};
}
</script>
<!-- Yandex.Metrika counter -->
<script src="https://mc.yandex.ru/metrika/watch.js" type="text/javascript"></script>
<script type="text/javascript">
try { var yaCounter18343495 = new Ya.Metrika({id:18343495,
webvisor:true,
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
trackHash:true,
params: getParams()});
} catch(e) { }
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/18343495" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
<script type="text/javascript">
var queries =
[
{
"query": "SELECT count() FROM hits",
"comment": "",
},
{
"query": "SELECT count() FROM hits WHERE AdvEngineID != 0",
"comment": "",
},
{
"query": "SELECT sum(AdvEngineID), count(), avg(ResolutionWidth) FROM hits",
"comment": "",
},
{
"query": "SELECT sum(UserID) FROM hits",
"comment": "",
},
{
"query": "SELECT uniq(UserID) FROM hits",
"comment": "",
},
{
"query": "SELECT uniq(SearchPhrase) FROM hits",
"comment": "",
},
{
"query": "SELECT min(EventDate), max(EventDate) FROM hits",
"comment": "",
},
{
"query": "SELECT AdvEngineID, count() FROM hits WHERE AdvEngineID != 0 GROUP BY AdvEngineID ORDER BY count() DESC",
"comment": "",
},
{
"query": "SELECT RegionID, uniq(UserID) AS u FROM hits GROUP BY RegionID ORDER BY u DESC LIMIT 10",
"comment": "",
},
{
"query": "SELECT RegionID, sum(AdvEngineID), count() AS c, avg(ResolutionWidth), uniq(UserID) FROM hits GROUP BY RegionID ORDER BY c DESC LIMIT 10",
"comment": "",
},
{
"query": "SELECT MobilePhoneModel, uniq(UserID) AS u FROM hits WHERE MobilePhoneModel != '' GROUP BY MobilePhoneModel ORDER BY u DESC LIMIT 10",
"comment": "",
},
{
"query": "SELECT MobilePhone, MobilePhoneModel, uniq(UserID) AS u FROM hits WHERE MobilePhoneModel != '' GROUP BY MobilePhone, MobilePhoneModel ORDER BY u DESC LIMIT 10",
"comment": "",
},
{
"query": "SELECT SearchPhrase, count() AS c FROM hits WHERE SearchPhrase != '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10",
"comment": "",
},
{
"query": "SELECT SearchPhrase, uniq(UserID) AS u FROM hits WHERE SearchPhrase != '' GROUP BY SearchPhrase ORDER BY u DESC LIMIT 10",
"comment": "",
},
{
"query": "SELECT SearchEngineID, SearchPhrase, count() AS c FROM hits WHERE SearchPhrase != '' GROUP BY SearchEngineID, SearchPhrase ORDER BY c DESC LIMIT 10",
"comment": "",
},
{
"query": "SELECT UserID, count() FROM hits GROUP BY UserID ORDER BY count() DESC LIMIT 10",
"comment": "",
},
{
"query": "SELECT UserID, SearchPhrase, count() FROM hits GROUP BY UserID, SearchPhrase ORDER BY count() DESC LIMIT 10",
"comment": "",
},
{
"query": "SELECT UserID, SearchPhrase, count() FROM hits GROUP BY UserID, SearchPhrase LIMIT 10",
"comment": "",
},
{
"query": "SELECT UserID, toMinute(EventTime) AS m, SearchPhrase, count() FROM hits GROUP BY UserID, m, SearchPhrase ORDER BY count() DESC LIMIT 10",
"comment": "",
},
{
"query": "SELECT UserID FROM hits WHERE UserID = 12345678901234567890",
"comment": "",
},
{
"query": "SELECT count() FROM hits WHERE URL LIKE '%metrika%'",
"comment": "",
},
{
"query": "SELECT SearchPhrase, any(URL), count() AS c FROM hits WHERE URL LIKE '%metrika%' AND SearchPhrase != '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10",
"comment": "",
},
{
"query": "SELECT SearchPhrase, any(URL), any(Title), count() AS c, uniq(UserID) FROM hits WHERE Title LIKE '%Яндекс%' AND URL NOT LIKE '%.yandex.%' AND SearchPhrase != '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10",
"comment": "",
},
{
"query": "SELECT * FROM hits WHERE URL LIKE '%metrika%' ORDER BY EventTime LIMIT 10",
"comment": "",
},
{
"query": "SELECT SearchPhrase FROM hits WHERE SearchPhrase != '' ORDER BY EventTime LIMIT 10",
"comment": "",
},
{
"query": "SELECT SearchPhrase FROM hits WHERE SearchPhrase != '' ORDER BY SearchPhrase LIMIT 10",
"comment": "",
},
{
"query": "SELECT SearchPhrase FROM hits WHERE SearchPhrase != '' ORDER BY EventTime, SearchPhrase LIMIT 10",
"comment": "",
},
{
"query": "SELECT CounterID, avg(length(URL)) AS l, count() AS c FROM hits WHERE URL != '' GROUP BY CounterID HAVING c > 100000 ORDER BY l DESC LIMIT 25",
"comment": "",
},
{
"query": "SELECT domainWithoutWWW(Referer) AS key, avg(length(Referer)) AS l, count() AS c, any(Referer) FROM hits WHERE Referer != '' GROUP BY key HAVING c > 100000 ORDER BY l DESC LIMIT 25",
"comment": "",
},
{
"query": "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",
"comment": "",
},
{
"query": "SELECT SearchEngineID, ClientIP, count() AS c, sum(Refresh), avg(ResolutionWidth) FROM hits WHERE SearchPhrase != '' GROUP BY SearchEngineID, ClientIP ORDER BY c DESC LIMIT 10",
"comment": "",
},
{
"query": "SELECT WatchID, ClientIP, count() AS c, sum(Refresh), avg(ResolutionWidth) FROM hits WHERE SearchPhrase != '' GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10",
"comment": "",
},
{
"query": "SELECT WatchID, ClientIP, count() AS c, sum(Refresh), avg(ResolutionWidth) FROM hits GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10",
"comment": "",
},
{
"query": "SELECT URL, count() AS c FROM hits GROUP BY URL ORDER BY c DESC LIMIT 10",
"comment": "",
},
{
"query": "SELECT 1, URL, count() AS c FROM hits GROUP BY 1, URL ORDER BY c DESC LIMIT 10",
"comment": "",
},
{
"query": "SELECT ClientIP AS x, x - 1, x - 2, x - 3, count() AS c FROM hits GROUP BY x, x - 1, x - 2, x - 3 ORDER BY c DESC LIMIT 10",
"comment": "",
},
{
"query": "SELECT URL, count() AS PageViews FROM hits WHERE CounterID = 34 AND EventDate >= toDate('2013-07-01') AND EventDate <= toDate('2013-07-31') AND NOT DontCountHits AND NOT Refresh AND notEmpty(URL) GROUP BY URL ORDER BY PageViews DESC LIMIT 10",
"comment": "",
},
{
"query": "SELECT Title, count() AS PageViews FROM hits WHERE CounterID = 34 AND EventDate >= toDate('2013-07-01') AND EventDate <= toDate('2013-07-31') AND NOT DontCountHits AND NOT Refresh AND notEmpty(Title) GROUP BY Title ORDER BY PageViews DESC LIMIT 10",
"comment": "",
},
{
"query": "SELECT URL, count() AS PageViews FROM hits WHERE CounterID = 34 AND EventDate >= toDate('2013-07-01') AND EventDate <= toDate('2013-07-31') AND NOT Refresh AND IsLink AND NOT IsDownload GROUP BY URL ORDER BY PageViews DESC LIMIT 1000",
"comment": "",
},
{
"query": "SELECT TraficSourceID, SearchEngineID, AdvEngineID, ((SearchEngineID = 0 AND AdvEngineID = 0) ? Referer : '') AS Src, URL AS Dst, count() AS PageViews FROM hits WHERE CounterID = 34 AND EventDate >= toDate('2013-07-01') AND EventDate <= toDate('2013-07-31') AND NOT Refresh GROUP BY TraficSourceID, SearchEngineID, AdvEngineID, Src, Dst ORDER BY PageViews DESC LIMIT 1000",
"comment": "",
},
{
"query": "SELECT URLHash, EventDate, count() AS PageViews FROM hits WHERE CounterID = 34 AND EventDate >= toDate('2013-07-01') AND EventDate <= toDate('2013-07-31') AND NOT Refresh AND TraficSourceID IN (-1, 6) AND RefererHash = halfMD5('http://yandex.ru/') GROUP BY URLHash, EventDate ORDER BY PageViews DESC LIMIT 100",
"comment": "",
},
{
"query": "SELECT WindowClientWidth, WindowClientHeight, count() AS PageViews FROM hits WHERE CounterID = 34 AND EventDate >= toDate('2013-07-01') AND EventDate <= toDate('2013-07-31') AND NOT Refresh AND NOT DontCountHits AND URLHash = halfMD5('http://yandex.ru/') GROUP BY WindowClientWidth, WindowClientHeight ORDER BY PageViews DESC LIMIT 10000;",
"comment": "",
},
{
"query": "SELECT toStartOfMinute(EventTime) AS Minute, count() AS PageViews FROM hits WHERE CounterID = 34 AND EventDate >= toDate('2013-07-01') AND EventDate <= toDate('2013-07-02') AND NOT Refresh AND NOT DontCountHits GROUP BY Minute ORDER BY Minute;",
"comment": "",
}
]
var results =
[
{
"system": "ClickHouse",
"version": "1.1.53960",
"data_size": 10000000,
"time": "2016-06-01 03:00:00",
"comments": "FORMAT Null",
"result":
[
[0.098, 0.003, 0.003],
[0.062, 0.003, 0.003],
[0.137, 0.009, 0.009],
[0.198, 0.008, 0.008],
[0.132, 0.031, 0.031],
[0.195, 0.049, 0.047],
[0.057, 0.007, 0.006],
[0.035, 0.004, 0.004],
[0.314, 0.125, 0.123],
[0.326, 0.131, 0.131],
[0.211, 0.027, 0.026],
[0.166, 0.029, 0.028],
[0.199, 0.091, 0.090],
[0.310, 0.103, 0.107],
[0.269, 0.101, 0.105],
[0.130, 0.084, 0.083],
[0.400, 0.210, 0.224],
[0.213, 0.116, 0.114],
[0.653, 0.346, 0.347],
[0.112, 0.006, 0.006],
[0.403, 0.073, 0.072],
[0.544, 0.107, 0.097],
[1.095, 0.206, 0.215],
[4.084, 0.226, 0.211],
[0.309, 0.037, 0.039],
[0.173, 0.032, 0.032],
[0.363, 0.038, 0.038],
[0.391, 0.115, 0.110],
[0.524, 0.177, 0.171],
[0.533, 0.462, 0.469],
[0.544, 0.112, 0.096],
[0.525, 0.136, 0.132],
[0.770, 0.533, 0.567],
[0.590, 0.343, 0.332],
[0.650, 0.329, 0.321],
[0.165, 0.124, 0.128],
[0.297, 0.152, 0.143],
[0.299, 0.051, 0.052],
[0.327, 0.051, 0.044],
[0.514, 0.244, 0.224],
[0.166, 0.014, 0.013],
[0.165, 0.014, 0.013],
[0.080, 0.012, 0.012]
]
},
{
"system": "ClickHouse",
"version": "1.1.53960",
"data_size": 100000000,
"time": "2016-06-01 03:00:00",
"comments": "FORMAT Null",
"result":
[
[0.297, 0.011, 0.011],
[0.173, 0.009, 0.008],
[0.274, 0.065, 0.064],
[0.552, 0.046, 0.045],
[0.485, 0.097, 0.096],
[0.625, 0.211, 0.204],
[0.164, 0.047, 0.044],
[0.056, 0.009, 0.009],
[0.966, 0.427, 0.435],
[0.970, 0.508, 0.512],
[0.620, 0.168, 0.165],
[0.655, 0.187, 0.188],
[0.839, 0.671, 0.594],
[1.278, 0.715, 0.730],
[1.136, 0.746, 0.848],
[0.896, 0.822, 0.727],
[2.244, 2.051, 2.151],
[1.423, 0.994, 1.118],
[5.364, 5.835, 4.869],
[0.492, 0.035, 0.033],
[1.958, 0.762, 0.762],
[2.307, 1.133, 0.952],
[4.023, 1.566, 1.579],
[12.380, 1.013, 1.049],
[1.069, 0.215, 0.217],
[0.568, 0.178, 0.181],
[1.137, 0.222, 0.224],
[2.321, 1.300, 1.296],
[1.945, 1.110, 1.116],
[4.662, 4.349, 4.351],
[1.424, 0.677, 0.683],
[2.274, 1.000, 1.005],
[5.888, 5.778, 5.651],
[3.546, 3.396, 3.206],
[3.830, 3.272, 3.285],
[1.403, 1.216, 1.220],
[0.239, 0.099, 0.099],
[0.121, 0.038, 0.039],
[0.123, 0.037, 0.037],
[0.330, 0.178, 0.174],
[0.161, 0.011, 0.012],
[0.127, 0.010, 0.009],
[0.066, 0.003, 0.002]
]
},
{
"system": "ClickHouse",
"version": "1.1.53960",
"data_size": 1000000000,
"time": "2016-06-01 03:00:00",
"comments": "FORMAT Null",
"result":
[
[0.736, 0.084, 0.086],
[0.166, 0.062, 0.062],
[1.636, 0.620, 0.622],
[4.059, 0.496, 0.454],
[4.452, 0.647, 0.630],
[5.754, 1.623, 1.598],
[0.585, 0.459, 0.430],
[0.333, 0.065, 0.066],
[6.629, 3.061, 3.059],
[7.397, 3.728, 3.654],
[4.735, 1.387, 1.371],
[4.880, 1.573, 1.579],
[8.207, 6.079, 5.905],
[12.185, 7.838, 7.939],
[9.307, 7.258, 7.036],
[8.354, 6.628, 6.481],
[23.478, 22.395, 22.063],
[12.803, 11.751, 11.803],
[55.293, 58.516, 64.852],
[4.631, 0.326, 0.311],
[25.448, 6.983, 7.039],
[29.963, 8.089, 7.921],
[55.319, 14.871, 14.900],
[93.672, 10.103, 10.021],
[11.645, 1.929, 1.861],
[5.032, 1.555, 1.516],
[11.389, 1.944, 1.926],
[26.910, 13.622, 12.017],
[24.575, 10.534, 10.419],
[41.138, 40.540, 40.499],
[11.705, 6.073, 6.052],
[25.480, 10.174, 9.975],
[73.837, 73.347, 71.904],
[44.535, 36.164, 36.079],
[42.585, 35.988, 36.361],
[10.238, 9.709, 9.315],
[0.536, 0.288, 0.284],
[0.320, 0.136, 0.140],
[0.364, 0.106, 0.108],
[0.897, 0.558, 0.532],
[0.412, 0.025, 0.025],
[0.416, 0.020, 0.021],
[0.169, 0.012, 0.011]
]
},
{
"system": "Vertica",
"version": "7.1.1",
"data_size": 10000000,
"time": "",
"comments": "",
"result":
[
[0.015899, 0.012807, 0.012184],
[0.035133, 0.021397, 0.018946],
[0.060938, 0.034013, 0.037085],
[0.051492, 0.021746, 0.022661],
[0.150695, 0.144041, 0.143313],
[0.412724, 0.276505, 0.27558],
[0.039736, 0.021215, 0.025029],
[0.049819, 0.045784, 0.049303],
[0.248834, 0.222963, 0.217386],
[0.43366, 0.437333, 0.4883],
[0.106483, 0.094236, 0.092362],
[0.122424, 0.10004, 0.100646],
[0.952346, 0.963712, 0.994094],
[0.64299, 0.647605, 0.644699],
[0.606994, 0.552117, 0.563657],
[0.221643, 0.205149, 0.216158],
[0.789877, 0.848421, 0.869198],
[0.439601, 0.438257, 0.424207],
[1.51968, 1.351311, 1.495538],
[0.038791, 0.03504, 0.050796],
[0.847444, 0.412624, 0.413898],
[0.491446, 0.474577, 0.484147],
[1.693912, 1.166251, 1.236441],
[1.905181, 1.257361, 1.437238],
[0.36171, 0.263338, 0.28958],
[0.46795, 0.515716, 0.443451],
[0.28467, 0.248823, 0.251787],
[2.326452, 2.152684, 2.073438],
[2.953462, 2.324174, 2.845123],
[0.631466, 0.822281, 0.873889],
[0.446697, 0.320824, 0.304922],
[0.489312, 0.417575, 0.440902],
[2.178985, 2.094694, 2.164159],
[1.375479, 1.331646, 1.360907],
[1.347677, 1.354772, 1.344533],
[0.429637, 0.43564, 0.436279],
[3.297413, 3.177341, 3.194704],
[0.835327, 0.743157, 0.746247],
[0.248143, 0.20795, 0.218004],
[1.495476, 1.322633, 1.374602],
[0.187092, 0.12099, 0.127517],
[0.148605, 0.109589, 0.107272],
[0.148173, 0.12809, 0.133435]
]
},
{
"system": "Vertica",
"version": "7.1.1",
"data_size": 100000000,
"time": "",
"comments": "",
"result":
[
[0.044914, 0.033471, 0.029564],
[0.124784, 0.044458, 0.04813],
[0.253575, 0.167392, 0.166981],
[0.267045, 0.060595, 0.059291],
[0.901021, 0.881088, 1.032132],
[1.284296, 0.991411, 1.011576],
[0.149862, 0.068061, 0.067217],
[0.148711, 0.083089, 0.078208],
[1.847624, 1.836724, 1.892968],
[4.278373, 4.313527, 4.564084],
[0.358281, 0.266623, 0.288294],
[0.42072, 0.38109, 0.371086],
[5.294134, 4.280055, 4.179055],
[8.849077, 8.744801, 8.750143],
[4.469753, 4.203493, 4.319043],
[1.542069, 1.506466, 1.605814],
[8.230461, 8.129543, 8.521089],
[5.063301, 5.177715, 4.989504],
[21.097494, 21.113905, 20.863796],
[0.238975, 0.163524, 0.162261],
[3.681673, 3.664944, 3.738555],
[3.996372, 3.875857, 3.897112],
[5.086255, 5.00034, 5.019747],
[5.105649, 4.51027, 4.780023],
[6.028593, 6.027804, 5.998026],
[4.324348, 4.357931, 4.451637],
[6.011405, 6.01204, 6.006612],
[13.744667, 14.174568, 14.053413],
[9.533647, 9.626582, 9.551671],
[2.652615, 2.689042, 2.617271],
[1.881931, 1.808578, 1.80198],
[3.926782, 3.813766, 3.806481],
[19.214651, 19.52602, 19.544008],
[27.55101, 27.641466, 28.128856],
[27.687275, 27.525594, 27.338331],
[4.989802, 5.243158, 4.861738],
[2.471475, 2.239634, 2.270449],
[0.814507, 0.733751, 0.760994],
[0.280513, 0.230994, 0.231817],
[1.479762, 1.293106, 1.277735],
[0.163974, 0.12314, 0.127756],
[0.148318, 0.112932, 0.107095],
[0.069868, 0.071664, 0.065618]
]
},
{
"system": "Vertica",
"version": "7.1.1",
"data_size": 1000000000,
"time": "",
"comments": "",
"result":
[
[0.09516, 0.094485, 0.092024],
[0.816135, 0.446083, 0.453634],
[2.11051, 1.773246, 1.791243],
[2.120462, 1.033154, 1.020443],
[8.149946, 7.740829, 7.659704],
[26.119083, 25.611287, 25.675649],
[1.035186, 0.818121, 0.822225],
[0.816869, 0.506568, 0.51574],
[13.108386, 13.20647, 13.556902],
[40.935852, 39.508237, 39.034314],
[3.183196, 2.862235, 2.86959],
[3.967054, 3.658079, 3.557328],
[30.73868, 30.722098, 31.301074],
[76.889072, 76.027064, 77.056729],
[32.033544, 31.866097, 32.772241],
[11.350141, 11.177469, 11.064054],
[74.059265, 73.061888, 73.041769],
[52.895306, 52.588376, 52.671085],
[186.891072, 184.998125, 185.913578],
[2.208113, 1.871682, 1.87381],
[21.705589, 21.595201, 21.415026],
[21.080841, 20.856408, 20.696303],
[45.916174, 45.351723, 45.433121],
[47.051243, 35.723046, 35.694351],
[53.209629, 53.406901, 53.069656],
[52.737858, 52.784361, 52.617806],
[53.430247, 53.206678, 53.309617],
[372.194119, 371.545597, 370.507236],
[76.594315, 76.464039, 76.319749],
[24.274602, 24.263616, 24.198579],
[14.400851, 13.927733, 13.747829],
[30.679117, 28.09498, 27.203538],
[210.606242, 214.108745, 214.521569],
[289.044749, 291.983512, 289.419234],
[289.46641, 290.132895, 289.4922],
[43.7288, 43.325352, 43.19419],
[5.028182, 4.798986, 4.728277],
[1.145844, 1.035948, 1.017571],
[0.398542, 0.3224, 0.324956],
[5.497337, 5.271507, 5.329618],
[0.210421, 0.162334, 0.161671],
[0.201661, 0.140586, 0.135319],
[0.178466, 0.162246, 0.159834]
]
},
{
"system": "Vertica (x3)",
"version": "7.0.0-0",
"data_size": 1000000000,
"time": "",
"comments": "",
"result":
[
[3.328, 0.397, 0.382],
[2.889, 0.24, 0.219],
[5.667, 0.781, 0.79],
[5.163, 0.58, 0.545],
[10.743, 7.414, 7.554],
[44.021, 43.629, 42.651],
[3.045, 0.416, 0.419],
[2.987, 0.366, 0.387],
[16.039, 13.626, 13.646],
[23.93, 21.818, 21.376],
[7.084, 2.683, 2.763],
[9.39, 3.176, 3.085],
[41.674, 42.039, 42.239],
[138.331, 136.452, 137.238],
[68.416, 67.551, 67.478],
[12.463, 10.125, 9.974],
[188.023, 186.817, 186.116],
[172.149, 170.75, 171.178],
[489.181, 488.154, 489.749],
[5.466, 0.916, 0.891],
[24.91, 18.009, 17.985],
[25.49, 18.525, 18.803],
[39.856, 17.993, 18.436],
[128.041, 9.876, 9.599],
[31.162, 30.831, 30.708],
[33.871, 32.901, 33.198],
[31.26, 30.795, 30.982],
[97.13, 93.233, 93.352],
[123.941, 123.625, 123.509],
[10.032, 9.418, 9.431],
[19.05, 9.184, 8.907],
[22.433, 19.726, 19.764],
[171.142, 162.149, 162.224],
[286.116, 283.672, 282.848],
[281.98, 278.234, 280.236],
[30.897, 30.486, 30.338],
[11.785, 11.42, 11.262],
[2.188, 1.739, 1.782],
[1.754, 1.582, 1.852],
[25.553, 24.89, 24.753],
[0.853, 0.324, 0.304],
[0.656, 0.368, 0.332],
[0.436, 0.356, 0.31]
]
},
{
"system": "Vertica (x6)",
"version": "7.0.0-0",
"data_size": 1000000000,
"time": "",
"comments": "",
"result":
[
[2.203, 0.392, 0.421],
[2.201, 0.336, 0.36],
[3.669, 0.704, 0.624],
[3.512, 0.516, 0.501],
[7.482, 5.696, 5.812],
[43.298, 48.75, 42.419],
[2.285, 0.411, 0.396],
[2.111, 0.454, 0.447],
[12.751, 10.454, 10.447],
[16.751, 15.247, 16.011],
[4.789, 2.06, 2.023],
[6.015, 2.207, 2.273],
[42.854, 41.299, 42.517],
[50.338, 48.5, 48.569],
[27.033, 25.38, 25.336],
[8.766, 6.73, 6.584],
[63.644, 64.514, 63.864],
[56.751, 56.018, 56.263],
[151.68, 149.595, 150.832],
[3.249, 0.701, 0.639],
[25.006, 18.019, 17.994],
[27.427, 18.74, 18.759],
[23.331, 9.915, 10.314],
[92.277, 6.708, 6.496],
[16.708, 15.827, 16.021],
[18.68, 18.99, 18.492],
[16.39, 16, 16.023],
[50.455, 48.204, 49.54],
[64.871, 64.565, 63.996],
[5.638, 5.103, 5.086],
[14.41, 6.785, 6.714],
[22.602, 14.089, 13.952],
[106.629, 105.692, 103.34],
[301.935, 293.388, 295.326],
[299.916, 290.717, 297.424],
[21.476, 21.447, 21.519],
[7.853, 7.158, 7.353],
[2.087, 1.573, 1.543],
[2.536, 1.788, 1.912],
[11.355, 10.46, 9.62],
[1.008, 0.401, 0.434],
[1.358, 0.373, 0.422],
[0.841, 0.438, 0.442]
]
},
{
"system": "InfiniDB",
"version": "Enterprise 3.6.23",
"data_size": 10000000,
"time": "",
"comments": "",
"result":
[
[1.15, 0.17, 0.16],
[0.31, 0.17, 0.16],
[0.47, 0.31, 0.30],
[null, null, null],
[0.97, 0.87, 0.92],
[6.14, 6.56, 5.43],
[0.35, 0.25, 0.26],
[0.22, 0.17, 0.16],
[1.19, 0.94, 1.02],
[1.34, 1.37, 1.33],
[0.51, 0.39, 0.39],
[0.45, 0.40, 0.38],
[8.06, 8.02, 8.02],
[8.43, 8.83, 8.89],
[8.21, 8.31, 8.42],
[1.73, 1.76, 1.78],
[18.95, 17.76, 19.98],
[12.59, 13.64, 12.24],
[37.04, 35.00, 36.76],
[0.25, 0.14, 0.13],
[2.28, 0.81, 0.86],
[0.61, 0.63, 0.57],
[3.02, 1.15, 1.17],
[12.44, 1.19, 1.19],
[8.92, 8.83, 9.07],
[8.15, 8.11, 8.11],
[10.39, 10.18, 10.33],
[5.70, 5.70, 5.82],
[13.77, 15.06, 13.88],
[8.57, 9.29, 8.58],
[2.03, 2.02, 2.00],
[3.18, 3.31, 3.26],
[20.23, 19.45, 20.16],
[183.55, 156.42, 124.94],
[160.14, 164.08, 162.15],
[3.49, 1.67, 1.71],
[23.03, 21.05, 21.21],
[3.14, 1.70, 1.65],
[1.64, 1.27, 1.23],
[82.86, 72.81, 77.55],
[0.32, 0.18, 0.18],
[0.28, 0.18, 0.19],
[3.43, 1.61, 1.53]
]
},
{
"system": "InfiniDB",
"version": "Enterprise 3.6.23",
"data_size": 100000000,
"time": "",
"comments": "",
"result":
[
[2.07,0.34,0.35],
[0.76,0.3,0.31],
[1.45,1.23,1.24],
[null, null, null],
[4.18,3.89,3.85],
[26.32,28.07,23.96],
[1.36,1.04,1.03],
[0.56,0.32,0.3],
[5.14,4.54,4.51],
[7.83,8.18,8.0],
[1.96,1.4,1.45],
[1.75,1.52,1.46],
[23.72,23.01,23.87],
[30.74,30.86,28.36],
[25.55,24.76,24.41],
[11.66,11.59,11.67],
[80.45,85.49,116.21],
[52.27,50.76,48.3],
[null, null, null],
[4.31,0.24,0.16],
[130.37,7.24,7.78],
[66.62,10.19,10.2],
[32.34,19.66,19.59],
[288.38,58.86,7.35],
[57.88,57.95,57.82],
[47.32,52.59,47.03],
[73.32,65.1,73.43],
[50.6,51.5,50.93],
[89.16,85.75,87.26],
[61.97,60.49,62.13],
[10.3,10.4,10.31],
[21.11,20.86,20.99],
[157.67,151.81,153.5],
[null, null, null],
[null, null, null],
[11.86,11.08,11.13],
[12.35,12.49,12.36],
[3.11,3.12,3.14],
[1.03,0.89,0.9],
[34.01,45.75,50.3],
[0.21,0.23,0.24],
[0.23,0.21,0.23],
[0.14,0.15,0.17]
]
},
{
"system": "MonetDB",
"version": "",
"data_size": 10000000,
"time": "",
"comments": "",
"result":
[
[0.003851, 0.003389, 0.003633],
[0.400058, 0.045117, 0.007999],
[0.207544, 0.022219, 0.033007],
[null, null, null],
[0.873236, 0.61427, 0.564001],
[3.1, 2.8, 2.9],
[0.191616, 0.004704, 0.008579],
[0.056658, 0.049444, 0.035463],
[5.8, 5.8, 6.4],
[5.8, 8.4, 8.5],
[0.458164, 0.319166, 0.413914],
[0.344021, 0.314183, 0.348057],
[6.1, 13.3, 6.1],
[5.8, 5.6, 5.5],
[54.9, 70.0, 58.4],
[0.886465, 0.711899, 0.7329],
[5.8, 5.9, 5.9],
[5.8, 5.9, 6.0],
[20.2, 19.7, 21.0],
[0.331309, 0.000618, 0.085817],
[2.0, 0.056549, 0.09292],
[0.053756, 0.050622, 0.054916],
[2.2, 0.069379, 0.066628],
[13.0, 0.511351, 0.484708],
[0.137787, 0.030937, 0.030501],
[0.039574, 0.027741, 0.025684],
[0.046094, 0.043038, 0.039139],
[4.1, 2.7, 2.7],
[null, null, null],
[1.1, 0.940847, 0.921118],
[17.7, 18.2, 17.5],
[2.0, 0.236466, 0.236223],
[1.3, 1.3, 1.3],
[138.0, 140.0, 173.0],
[null, null, null],
[null, null, null],
[169.0, 175.0, null],
[261.0, 257.0, 268.0],
[3.1, 0.513628, 0.464017],
[262.0, 252.0, 257.0],
[0.524173, 0.066989, 0.123604],
[0.305343, 0.030736, 0.048725],
[2.3, 1.9, 1.9]
]
},
{
"system": "MonetDB",
"version": "",
"data_size": 100000000,
"time": "",
"comments": "",
"result":
[
[0.028886,0.003581,0.003829],
[2.7,0.139637,0.060264],
[1.1,0.146556,0.146063],
[null, null, null],
[7.5,5.6,5.4],
[15.5,12.7,11.5],
[1.0,0.038566,0.036837],
[0.687604,0.026271,0.030261],
[195.0,214.0,null],
[254.0,267.0,265.0],
[22.9,20.0,20.8],
[20.4,20.8,23.3],
[97.0,115.0,null],
[111.0,84.0,58.8],
[656.0,null,null],
[6.8,6.9,6.7],
[264.0,234.0,208.0],
[222.0,279.0,null],
[1173.0,null,null],
[3.9,0.000787,0.032566],
[27.4,1.7,2.1],
[4.0,2.6,2.6],
[null,null,null],
[209.0,155,143],
[10.5,5.7,40.9],
[4.8,4.7,4.7],
[85.0,4.7,5.7],
[52.4,30.3,29.1],
[null, null, null],
[null, null, null],
[12.7,11.2,11.4],
[392.0,370.0,null],
[3.2,1.8,1.8],
[41.9,37.0,40.7],
[null, null, null],
[null, null, null],
[null, null, null],
[6.4,2.3,2.1],
[3.6,1.0,1.1],
[1.5,1.2,1.3],
[7.2,4.6,4.9],
[2.8,0.050916,0.04148],
[3.0,0.045935,0.047277],
[2.5,0.049119,0.04828]
]
},
{
"system": "Infobright",
"version": "CE 4.0.7",
"data_size": 10000000,
"time": "",
"comments": "",
"result":
[
[0.00, 0.00, 0.00],
[0.40, 0.38, 0.39],
[0.10, 0.00, 0.00],
[null, null, null],
[2.83, 1.91, 1.95],
[9.16, 1.65, 1.70],
[0.03, 0.00, 0.00],
[0.46, 0.40, 0.41],
[4.13, 2.97, 3.43],
[5.12, 4.46, 4.15],
[1.98, 1.24, 1.36],
[1.58, 1.26, 1.27],
[13.37, 30.81, 29.76],
[32.59, 30.22, 13.00],
[12.93, 11.39, 30.46],
[2.98, 3.05, 2.96],
[9.90, 20.86, 25.17],
[10.38, 10.19, 10.28],
[162.43, 164.35, 169.28],
[1, 0,22, 0,24],
[47.80, 4.40, 4.47],
[4.83, 1.15, 1.14],
[43.82, 2.14, 2.16],
[6.14, 4.39, 4.35],
[0.41, 0.41, 0.41],
[0.80, 0.80, 0.80],
[0.41, 0.41, 0.40],
[10.39, 10.12, 9.88],
[139.25, 79.33, 78.92],
[145.8, 146.2, 144.97],
[3.34, 2.02, 2.06],
[3.68, 3.05, 3.02],
[14.76, 14.82, 14.76],
[77.49, 91.4, 90.9],
[75.37, 83.55, 63.55],
[10.80, 10.52, 10.67],
[23.77, 9.47, 9.30],
[50.21, 3.37, 3.36],
[1.26, 0.77, 0.76],
[98.25, 104.6, 94.29],
[2.04, 0.47, 0.54],
[1.36, 0.42, 0.41],
[4.58, 4.01, 3.98]
]
},
{
"system": "Hive",
"version": "0.11, ORC File",
"data_size": 10000000,
"time": "",
"comments": "",
"result":
[
[47.388, 44.55, 43.513],
[25.332, 22.592, 22.629],
[27.558, 23.861, 24.986],
[26.148, 23.564, 23.508],
[35.237, 31.445, 32.552],
[34.063, 29.607, 29.268],
[25.999, 22.443, 22.559],
[38.784, 37.082, 37.652],
[49.973, 47.282, 46.027],
[54.759, 50.301, 51.858],
[42.793, 39.001, 38.998],
[42.858, 38.928, 40.035],
[55.967, 53.253, 53.053],
[58.068, 54.393, 53.189],
[58.359, 53.181, 54.164],
[63.096, 58.614, 60.153],
[73.175, 70.386, 69.204],
[35.511, 31.512, 31.482],
[109.132, 107.333, 106.376],
[17.948, 14.47, 14.154],
[27.452, 24.527, 24.674],
[41.792, 40.17, 40.052],
[45.079, 42.12, 43.438],
[50.847, 46.004, 45.95],
[31.007, 26.473, 26.277],
[30.985, 27.724, 27.357],
[32.747, 28.329, 27.439],
[62.932, 57.159, 59.233],
[63.563, 63.375, 63.307],
[74.663, 67.206, 68.586],
[58.017, 52.364, 53.155],
[62.907, 60.202, 59.653],
[127.206, 124.701, 123.291],
[89.931, 87.6, 87.325],
[98.879, 89.299, 90.377],
[63.792, 61.127, 61.517],
[44.325, 39.995, 39.979],
[43.852, 40.178, 40.131],
[44.493, 40.17, 40.171],
[36.108, 36.293, 36.241],
[43.025, 39.168, 40.042],
[42.914, 40.129, 39.135],
[33.91, 34.161, 34.191]
]
},
{
"system": "Hive",
"version": "0.11, ORC File",
"data_size": 100000000,
"time": "",
"comments": "",
"result":
[
[110.676,105.13,107.358],
[55.195,36.435,32.201],
[39.991,35.143,35.085],
[44.465,34.131,34.032],
[110.69,105.953,107.343],
[68.119,64.831,64.269],
[37.809,33.021,33.13],
[53.788,51.261,48.653],
[87.479,85.062,85.039],
[106.577,102.879,101.705],
[60.4,53.498,53.516],
[61.275,53.698,53.577],
[87.924,82.999,82.867],
[94.281,86.991,87.084],
[91.05,87.267,87.731],
[132.697,132.306,130.91],
[141.357,147.059,140.75],
[60.884,57.376,57.367],
[237.554,234.361,234.271],
[34.019,21.834,21.08],
[41.195,36.443,35.979],
[60.385,54.888,56.541],
[67.257,58.995,59.828],
[87.697,88.521,89.324],
[53.796,50.592,50.118],
[68.786,63.993,62.886],
[60.715,56.14,55.303],
[112.58,107.297,106.493],
[115.068,110.622,109.541],
[136.36,133.102,135.896],
[113.348,100.032,99.905],
[124.002,117.366,109.524],
[301.77,324.867,294.034],
[233.937,272.053,238.167],
[241.283,228.198,246.999],
[120.684,118.948,118.18],
[70.292,55.211,55.076],
[63.4,52.093,52.895],
[67.483,53.704,54.814],
[60.588,52.321,53.356],
[62.644,51.812,53.23],
[69.068,53.234,52.853],
[46.67,46.041,45.95]
]
},
{
"system": "MySQL",
"version": "5.5.32, MyISAM",
"data_size": 10000000,
"time": "",
"comments": "",
"result":
[
[0.01, 0.01, 0.01],
[21.55, 18.91, 18.28],
[22.71, 19.86, 20.53],
[21.3, 18.93, 19.25],
[26.77, 25.74, 25.65],
[29.14, 26.92, 26.53],
[7.47, 7.38, 7.23],
[20.56, 18.84, 18.41],
[27.53, 25.14, 24.45],
[30.08, 26.07, 26.75],
[22.93, 19.82, 20.23],
[21.79, 19.75, 19.64],
[51.3, 42.27, 46.45],
[43.75, 42.38, 42.36],
[43.76, 48.66, 46.8],
[106.76, 106.53, 105.32],
[172.51, 181.59, 177.7],
[189.92, 166.09, 172.03],
[185.61, 181.38, 206.92],
[20.3, 19.24, 18.49],
[21.43, 20.03, 19.99],
[21.88, 20.06, 20.3],
[25.51, 20.72, 20.58],
[24.14, 20.04, 19.29],
[21.65, 19.11, 19.0],
[22.44, 20.35, 20.02],
[21.41, 19.96, 19.91],
[27.15, 26.28, 25.32],
[135.45, 134.31, 133.12],
[107.44, 106.26, 106.16],
[40.47, 36.67, 37.07],
[39.2, 36.86, 37.22],
[134.5, 130.75, 133.55],
[1057.45, 1075.29, 928.38],
[867.64, 1023.33, 1063.4],
[111.01, 109.86, 109.34],
[1160.03, 23.32, 23.08],
[1109.2, 14.24, 14.38],
[1086.92, 7.29, 6.63],
[31.74, 31.79, null],
[1074.29, 5.51, 5.43],
[1069.16, 5.6, 5.3],
[652.84, 4.84, 4.57]
]
},
{
"system": "MySQL",
"version": "5.5.32, MyISAM",
"data_size": 100000000,
"time": "",
"comments": "",
"result":
[
[0.01,0.01,0.01],
[220.39,234.32,305.28],
[220.45,198.31,198.37],
[207.6,190.59,188.35],
[275.96,250.84,246.93],
[292.17,254.14,251.06],
[75.51,76.11,74.98],
[203.94,184.14,180.82],
[287.28,252.52,249.48],
[299.44,282.02,271.33],
[218.71,197.51,195.94],
[220.1,197.17,199.88],
[929.45,869.74,739.53],
[null, null, null],
[1196.42, null, null],
[null, null, null],
[null, null, null],
[null, null, null],
[null, null, null],
[447.72,199.09,185.82],
[582.73,196.73,195.8],
[582.54,205.89,199.15],
[568.75,217.15,209.65],
[562.72,206.77,203.19],
[602.47,186.8,186.62],
[565.26,199.44,199.24],
[657.78,202.53,196.95],
[675.84,250.11,248.9],
[null, null, null],
[1061.89,1054.6,],
[993.89,918.67,],
[604.48,553.33,],
[null, null, null],
[null, null, null],
[null, null, null],
[null, null, null],
[null, null, null],
[873.29, null, null],
[null, null, null],
[null, null, null],
[null, null, null],
[null, null, null],
[0.67,0.0,0.0]
]
},
{
"system": "MemSQL",
"version": "3.2, column store",
"data_size": 10000000,
"time": "2015-04-05",
"comments": "",
"result":
[
[0.01, 0.01, 0.01],
[0.29, 0.26, 0.25],
[0.48, 0.45, 0.39],
[0.75, 0.63, 0.62],
[1.03, 0.97, 0.89],
[2.76, 2.65, 2.57],
[0.36, 0.32, 0.32],
[0.29, 0.24, 0.24],
[1.71, 1.51, 1.47],
[1.91, 1.69, 1.67],
[0.83, 0.66, 0.65],
[0.88, 0.70, 0.70],
[2.55, 2.59, 2.32],
[null, null, null],
[4.36, 2.34, 2.39],
[1.23, 1.09, 1.09],
[3.26, 3.18, 2.81],
[2.76, 2.58, 2.58],
[5.23, 4.74, 4.45],
[null, null, null],
[5.12, 4.62, 4.81],
[5.43, 4.91, 4.90],
[7.32, 6.18, 6.14],
[22.61, 17.85, 17.89],
[1.04, 0.77, 0.75],
[0.93, 0.77, 0.90],
[1.04, 0.75, 0.76],
[2.84, 2.41, 2.31],
[18.64, 18.19, 18.38],
[5.78, 5.68, 5.67],
[2.24, 1.90, 1.85],
[2.65, 2.22, 2.22],
[8.82, 8.32, 8.01],
[11.30, 10.93, 11.21],
[11.22, 10.73, 10.72],
[1.60, 1.46, 1.45],
[1.86, 1.75, 1.83],
[1.16, 1.10, 1.11],
[0.54, 0.44, 0.44],
[3.79, 3.59, 3.58],
[null, null, null],
[null, null, null],
[0.37, 0.35, 0.35]
]
}
];
</script>
<script type="text/javascript">
var data_sizes =
[
{ id: "10000000", name: "10 mln." },
{ id: "100000000", name: "100 mln." },
{ id: "1000000000", name: "1 bn." }
];
var current_data_size = 100000000;
var systems = ["ClickHouse", "Vertica", "MemSQL", "InfiniDB", "MonetDB", "Infobright", "Hive", "MySQL",
"Vertica (x3)", "Vertica (x6)"];
var current_systems = ["ClickHouse", "Vertica", "InfiniDB", "Hive"];
var runs = ["first (cold cache)", "second", "third"];
var current_runs = ['0', '1'];
try {
var state = JSON.parse(window.location.hash.substring(1));
current_data_size = state[0];
current_systems = state[1];
current_runs = state[2];
} catch (e) {}
function update_hash() {
window.location.hash = JSON.stringify([ current_data_size, current_systems, current_runs ]);
}
function generate_selectors(elem) {
var html = "<p id='systems_selector'>Compare: ";
var available_systems_for_current_data_size = results.
filter(function(run) { return run.data_size == current_data_size; }).
map(function(run) { return run.system; });
for (var i in systems) {
var selected = current_systems.indexOf(systems[i]) != -1;
var available = available_systems_for_current_data_size.indexOf(systems[i]) != -1;
html += "<span class='" +
(selected && available ? "selected" : "") +
(available ? "" : " disabled") +
"'>" + systems[i] + "</span> ";
}
html += "</p>";
html += "<p id='data_size_selector'>";
html += "Dataset size: ";
for (var i in data_sizes) {
html += "<span class='" + (data_sizes[i].id == current_data_size ? "selected" : "") + "' data-size-id='" + data_sizes[i].id + "'>" + data_sizes[i].name + "</span> ";
}
html += "</p>";
html += "<p id='runs_selector'>";
html += "Run number: ";
for (var i in runs) {
html += "<span class='" + (current_runs.indexOf(i) != -1 ? "selected" : "") + "' data-run-id='" + i + "'>" + runs[i] + "</span> ";
}
html += "</p>";
elem.html(html);
$('#systems_selector span:not(.disabled)').click(function(event) {
var target = $(event.target || event.srcElement);
if (target.hasClass("selected") && current_systems.length == 1) {
return;
}
target.toggleClass("selected");
current_systems = $.map($('#systems_selector span'), function(elem) {
return $(elem).hasClass("selected") ? $(elem).html() : null }).filter(function(x) { return x; });
update_hash();
generate_selectors(elem);
generate_comparison_table();
generate_diagram();
});
$('#data_size_selector span').click(function(event) {
var target = $(event.target || event.srcElement);
current_data_size = target.attr("data-size-id");
update_hash();
generate_selectors(elem);
generate_comparison_table();
generate_diagram();
});
$('#runs_selector span').click(function(event) {
var target = $(event.target || event.srcElement);
if (target.hasClass("selected") && current_runs.length == 1) {
return;
}
target.toggleClass("selected");
current_runs = $.map($('#runs_selector span'), function(elem) {
return $(elem).hasClass("selected") ? $(elem).attr("data-run-id") : null }).filter(function(x) { return x; });
update_hash();
generate_selectors(elem);
generate_comparison_table();
generate_diagram();
});
};
function format_number_cell(value, ratio) {
var html = "";
var redness = (ratio - 1) / ratio;
var blackness = ratio < 10 ? 0 : ((ratio - 10) / ratio / 2);
var color = !value ? "#FFF" :
ratio == 1 ?
("rgba(0, 255, 0, 1)") :
("rgba(" + ~~(255 * (1 - blackness)) + ", 0, 0, " + redness + ")");
html += "<td class='number_cell' style='background-color: " + color + "'>";
html += value ?
(ratio == 1 ? "" : ("x" + ratio.toFixed(2))) + "&nbsp;<span style='color: #888;'>(" + value.toFixed(3) + "&nbsp;s.)</span>" :
"—";
html += "</td>";
return html;
}
/* Отношения времени выполнения запроса к лучшему времени по системам:
* номер системы -> номер запуска -> номер запроса -> отношение.
*/
var ratios = [];
function generate_comparison_table() {
ratios = [];
var filtered_results = results.filter(function(x) {
return x.data_size == current_data_size && current_systems.indexOf(x.system) != -1; });
var html = "";
html += "<table class='comparison_table'>";
html += "<tr>";
html += "<th></th>";
html += "<th style='text-align: left;'>Query</th>";
for (j in filtered_results) {
html += "<th colspan='" + current_runs.length + "'>" + filtered_results[j].system +
(filtered_results[j].version ? " (" + filtered_results[j].version + ")" : "") + "</th>";
}
html += "</tr>";
for (i in queries) {
html += "<tr>";
html += "<td><input id='query_checkbox" + i + "' type='checkbox' " +
($('#query_checkbox' + i).length == 0 || $('#query_checkbox' + i).is(':checked') ? "checked" : "") + " /></td>";
html += "<td><div class='query_cell'>" + queries[i].query + "</div></td>";
// Вычислим максимальное и минимальное время выполнения по системам, для каждого из трёх прогонов.
var minimums = [0, 0, 0], maximums = [0, 0, 0];
for (j in filtered_results) {
for (current_run_idx in current_runs) {
var k = current_runs[current_run_idx];
var value = filtered_results[j].result[i][k];
if (value && (!minimums[k] || value < minimums[k])) {
minimums[k] = value;
// Меньше 10 мс. не различаем.
if (minimums[k] < 0.01) {
minimums[k] = 0.01;
}
}
if (value > maximums[k]) {
maximums[k] = value;
}
}
}
for (j in filtered_results) {
if (!ratios[j]) {
ratios[j] = [];
}
for (current_run_idx in current_runs) {
var k = current_runs[current_run_idx];
var value = filtered_results[j].result[i][k];
var ratio = value / minimums[k];
ratios[j][k] = ratios[j][k] || [];
if (ratio && ratio <= 1) {
ratio = 1;
}
ratios[j][k].push(ratio);
html += format_number_cell(value, ratio);
}
}
html += "</tr>";
}
if (current_systems.length > 1) {
html += "<tr>";
html += "<td rowspan='2'></td>";
html += "<td rowspan='2'><div class='query_cell'>Geometric mean of ratios</div></td>";
for (j in filtered_results) {
for (k in current_runs) {
html += "<th id='totals" + j + "_" + k + "' class='number_cell' style='text-align: center; background-color: #FFF; font-weight: bold;'></th>";
}
}
html += "</tr>";
html += "<tr>";
for (j in filtered_results) {
html += "<th id='absolute_totals" + j + "' colspan='" + current_runs.length + "' class='number_cell' style='text-align: center; background-color: #FFF; font-weight: bold;'></th>";
}
html += "</tr>";
}
html += "</table>";
$('#comparison_table').html(html);
for (i in queries) {
$('#query_checkbox' + i).click(function() { calculate_totals(); generate_diagram(); } );
}
calculate_totals();
}
function calculate_totals() {
if (current_systems.length <= 1) return;
var filtered_results = results.filter(function(x) {
return x.data_size == current_data_size && current_systems.indexOf(x.system) != -1; });
var total_ratios = [];
for (j in filtered_results) {
for (current_run_idx in current_runs) {
var k = current_runs[current_run_idx];
var current_ratios = ratios[j][k].filter(
function(x, i) { return x && $("#query_checkbox" + i).is(':checked'); })
var ratio = Math.pow(
current_ratios.reduce(
function(acc, cur) { return acc * cur; },
1),
1 / current_ratios.length);
total_ratios[j] = total_ratios[j] || 1;
total_ratios[j] *= ratio;
$("#totals" + j + "_" + k).attr("data-ratio", ratio).html("x" + ratio.toFixed(2));
}
}
for (j in filtered_results) {
var total_ratio = Math.pow(total_ratios[j], 1 / current_runs.length);
$("#absolute_totals" + j).attr("data-ratio", total_ratio).html("x" + total_ratio.toFixed(2));
}
}
function generate_diagram() {
var html = "";
var filtered_results = results.filter(function(x) {
return x.data_size == current_data_size && current_systems.indexOf(x.system) != -1; });
var max_ratio = 1;
var min_ratio = 0;
var max_total_ratio = 1;
var min_total_ratio = 0;
for (j in filtered_results) {
for (current_run_idx in current_runs) {
var k = current_runs[current_run_idx];
var ratio = +$("#totals" + j + "_" + k).attr("data-ratio");
if (ratio > max_ratio) {
max_ratio = ratio;
}
if (!min_ratio || ratio < min_ratio) {
min_ratio = ratio;
}
}
var total_ratio = +$("#absolute_totals" + j).attr("data-ratio");
if (total_ratio > max_total_ratio) {
max_total_ratio = total_ratio;
}
if (!min_total_ratio || total_ratio < min_total_ratio) {
min_total_ratio = total_ratio;
}
}
html += "<table style='width: 100%'>";
for (j in filtered_results) {
var total_ratio = +$("#absolute_totals" + j).attr("data-ratio");
html += "<tr>";
html += "<td style='text-align: right;'><b>" + filtered_results[j].system + "</b>" +
(filtered_results[j].version ? "<br />(" + filtered_results[j].version.replace(/ /g, '&nbsp;') + ")" : "") + "</td>";
html += "<td style='width: 100%; padding-right: 20px;'>";
for (current_run_idx in current_runs) {
var k = current_runs[current_run_idx];
var ratio = +$("#totals" + j + "_" + k).attr("data-ratio");
var percents = (ratio * 100 / max_ratio).toFixed(2);
if (!ratio) {
ratio = +$("#absolute_totals" + j).attr("data-ratio");
percents = (ratio * 100 / max_total_ratio).toFixed(2);
}
html += "<div class='bar' style='width: " + percents + "%;'>&nbsp;</div>";
}
html += "</td>";
html += "<td style='text-align: right; font-weight: bold;'>" + (total_ratio / min_total_ratio).toFixed(2) + "</td>";
html += "</tr>";
}
html += "</table>";
$('#diagram').html(html);
}
</script>
<script type="text/javascript">
function getParams() {
var matches = document.cookie.match(/yandex_login=([\w\-]+)/);
return (matches && matches.length == 2) ? { "login": matches[1] } : {};
}
</script>
<!-- Yandex.Metrika counter -->
<script src="https://mc.yandex.ru/metrika/watch.js" type="text/javascript"></script>
<script type="text/javascript">
try { var yaCounter18343495 = new Ya.Metrika({id:18343495,
webvisor:true,
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
trackHash:true,
params: getParams()});
} catch(e) { }
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/18343495" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
<script type="text/javascript" src="https://yandex.st/jquery/1.7.2/jquery.min.js"></script>
<div class='island'>
<h1 class='title not-for-contents'>Performance comparison of analytical DBMS</h1>
</div>
<div class='island'>
<div id='selectors'></div>
<h2>Relative query processing time (lower is better):</h2>
<div id='diagram' style='width: 100%;'></div>
<br />
<h2>Full results:</h2>
<div id='comparison_table'></div>
</div>
<script type="text/javascript">
generate_selectors($('#selectors'));
generate_comparison_table();
generate_diagram();
</script>
</body>
</html>