Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,7 @@ We also introduced the [Hardware Benchmark](https://benchmark.clickhouse.com/har
- [x] Polars
- [x] OctoSQL
- [x] VictoriaLogs
- [x] Hologres

By default, all tests are run on c6a.4xlarge VM in AWS with 500 GB gp2.

Expand Down
20 changes: 20 additions & 0 deletions hologres/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Hologres is an all-in-one real-time data warehouse engine that is compatible with PostgreSQL. It supports online analytical processing (OLAP) and ad hoc analysis of PB-scale data. Hologres supports online data serving at high concurrency and low latency.

To evaluate the performance of Hologres, follow these guidelines to set up and execute the benchmark tests.

1. **Instance Purchase**:
Refer to the [Alibaba Cloud Hologres TPC-H Testing Documentation](https://www.alibabacloud.com/help/en/hologres/user-guide/test-plan?spm=a2c63.p38356.help-menu-113622.d_2_14_0_0.54e14f70oTAEXO) for details on purchasing Hologres and ECS instances. Both instances must be purchased within the same region. For example, you can choose instances from Zone J in the Hangzhou region.

2. **Benchmark Execution**:
Once the instances are set up, prepare your ECS instance by executing the `benchmark.sh` script. The script requires the following parameters:
- `ak`: Access Key
- `sk`: Secret Key
- `host_name`: Hostname of the Hologres instance
- `port`: Port of the Hologres instance

You can create your Access Key (ak, sk) by following the instructions in the [RAM User Guide](https://www.alibabacloud.com/help/en/ram/user-guide/create-an-accesskey-pair?spm=a3c0i.29367734.6737026690.14.7a797d3fJmRhXM).

3. **Sample Execution**:
```bash
./benchmark.sh ak sk host_name 80
```
60 changes: 60 additions & 0 deletions hologres/benchmark.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
#!/bin/bash

# Set input parameters
PG_USER="$1"
PG_PASSWORD="$2"
HOST_NAME=$3
PORT=$4

DATABASE="hits"

# Install dependencies
sudo yum update -y
sudo yum install postgresql-server -y
sudo yum install postgresql-contrib -y

# Set the file name and download link
FILENAME="hits.tsv"

# Check if the file exists
if [ ! -f "$FILENAME" ]; then
echo "The file $FILENAME does not exist. Starting to download..."
wget --no-verbose --continue 'https://datasets.clickhouse.com/hits_compatible/hits.tsv.gz'
gzip -d hits.tsv.gz
chmod 777 ~ hits.tsv
if [ $? -eq 0 ]; then
echo "File download completed!"
else
echo "The download failed. Please check the URL or the network connection. "
exit 1
fi
else
echo "The file $FILENAME already exists. Skipping the download."
fi

# create database and create table
PGUSER=$PG_USER PGPASSWORD=$PG_PASSWORD psql -h $HOST_NAME -p $PORT -d postgres -t -c "DROP DATABASE IF EXISTS $DATABASE"
sleep 15 # sleep for 15 seconds
PGUSER=$PG_USER PGPASSWORD=$PG_PASSWORD psql -h $HOST_NAME -p $PORT -d postgres -t -c "CREATE DATABASE $DATABASE"
sleep 15 # sleep for 15 seconds
PGUSER=$PG_USER PGPASSWORD=$PG_PASSWORD psql -h $HOST_NAME -p $PORT -d $DATABASE -t < create.sql
sleep 15 # sleep for 15 seconds

# split data
echo "Starting to split the file..."
split -l 10000000 hits.tsv hits_part_

# load data
echo "Starting to load data..."
time (
for file in hits_part_*; do
PGUSER=$PG_USER PGPASSWORD=$PG_PASSWORD psql -h $HOST_NAME -p $PORT -d $DATABASE -t -c '\timing' -c "\\copy hits FROM '$file'"
done )

# run clickbench test with queries
echo "Starting to run queries..."

./run.sh $PG_USER $PG_PASSWORD $HOST_NAME $PORT $DATABASE 2>&1 | tee log_queries_$DATABASE.txt

cat log_queries_$DATABASE.txt | grep -oP 'Time: \d+\.\d+ ms' | sed -r -e 's/Time: ([0-9]+\.[0-9]+) ms/\1/' |
awk '{ if (i % 3 == 0) { printf "[" }; printf $1 / 1000; if (i % 3 != 2) { printf "," } else { print "]," }; ++i; }' | tee result_queries_$DATABASE.txt
121 changes: 121 additions & 0 deletions hologres/create.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
DROP table if EXISTS hits;
CREATE TABLE hits
(
WatchID BIGINT NOT NULL,
JavaEnable INT NOT NULL,
Title TEXT NOT NULL,
GoodEvent INT NOT NULL,
EventTime timestamptz NOT NULL,
EventDate timestamptz NOT NULL,
CounterID INT NOT NULL,
ClientIP INT NOT NULL,
RegionID INT NOT NULL,
UserID BIGINT NOT NULL,
CounterClass INT NOT NULL,
OS INT NOT NULL,
UserAgent INT NOT NULL,
URL TEXT NOT NULL,
Referer TEXT NOT NULL,
IsRefresh INT NOT NULL,
RefererCategoryID INT NOT NULL,
RefererRegionID INT NOT NULL,
URLCategoryID INT NOT NULL,
URLRegionID INT NOT NULL,
ResolutionWidth INT NOT NULL,
ResolutionHeight INT NOT NULL,
ResolutionDepth INT NOT NULL,
FlashMajor INT NOT NULL,
FlashMinor INT NOT NULL,
FlashMinor2 TEXT NOT NULL,
NetMajor INT NOT NULL,
NetMinor INT NOT NULL,
UserAgentMajor INT NOT NULL,
UserAgentMinor TEXT NOT NULL,
CookieEnable INT NOT NULL,
JavascriptEnable INT NOT NULL,
IsMobile INT NOT NULL,
MobilePhone INT NOT NULL,
MobilePhoneModel TEXT NOT NULL,
Params TEXT NOT NULL,
IPNetworkID INT NOT NULL,
TraficSourceID INT NOT NULL,
SearchEngineID INT NOT NULL,
SearchPhrase TEXT NOT NULL,
AdvEngineID INT NOT NULL,
IsArtifical INT NOT NULL,
WindowClientWidth INT NOT NULL,
WindowClientHeight INT NOT NULL,
ClientTimeZone INT NOT NULL,
ClientEventTime timestamptz NOT NULL,
SilverlightVersion1 INT NOT NULL,
SilverlightVersion2 INT NOT NULL,
SilverlightVersion3 INT NOT NULL,
SilverlightVersion4 INT NOT NULL,
PageCharset TEXT NOT NULL,
CodeVersion INT NOT NULL,
IsLink INT NOT NULL,
IsDownload INT NOT NULL,
IsNotBounce INT NOT NULL,
FUniqID BIGINT NOT NULL,
OriginalURL TEXT NOT NULL,
HID INT NOT NULL,
IsOldCounter INT NOT NULL,
IsEvent INT NOT NULL,
IsParameter INT NOT NULL,
DontCountHits INT NOT NULL,
WithHash INT NOT NULL,
HitColor TEXT NOT NULL,
LocalEventTime timestamptz NOT NULL,
Age INT NOT NULL,
Sex INT NOT NULL,
Income INT NOT NULL,
Interests INT NOT NULL,
Robotness INT NOT NULL,
RemoteIP INT NOT NULL,
WindowName INT NOT NULL,
OpenerName INT NOT NULL,
HistoryLength INT NOT NULL,
BrowserLanguage TEXT NOT NULL,
BrowserCountry TEXT NOT NULL,
SocialNetwork TEXT NOT NULL,
SocialAction TEXT NOT NULL,
HTTPError INT NOT NULL,
SendTiming INT NOT NULL,
DNSTiming INT NOT NULL,
ConnectTiming INT NOT NULL,
ResponseStartTiming INT NOT NULL,
ResponseEndTiming INT NOT NULL,
FetchTiming INT NOT NULL,
SocialSourceNetworkID INT NOT NULL,
SocialSourcePage TEXT NOT NULL,
ParamPrice BIGINT NOT NULL,
ParamOrderID TEXT NOT NULL,
ParamCurrency TEXT NOT NULL,
ParamCurrencyID INT 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 INT NOT NULL,
RefererHash BIGINT NOT NULL,
URLHash BIGINT NOT NULL,
CLID INT NOT NULL,
PRIMARY KEY (
CounterID,
EventDate,
UserID,
EventTime,
WatchID
)
) WITH (
distribution_key='UserID',
segment_key='EventTime',
clustering_key='CounterID,EventDate,UserID,EventTime,WatchID',
bitmap_columns='advengineid, counterid, isrefresh, isdownload, islink,refererhash,dontcounthits,urlhash'
);
1 change: 1 addition & 0 deletions hologres/freecache.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SELECT hg_admin_command('freecache');
2 changes: 2 additions & 0 deletions hologres/prepare.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
VACUUM hits;
ANALYZE hits;
43 changes: 43 additions & 0 deletions hologres/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;
58 changes: 58 additions & 0 deletions hologres/results/128core.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
{
"system": "Hologres",
"date": "2025-05-21",
"machine": "16 CU",
"cluster_size": 8,
"tags": [
"managed",
"PostgreSQL compatible",
"column-oriented"
],
"load_time": 321,
"data_size": 19923251230,
"result": [
[0.200416,0.065979,0.018724],
[0.091093,0.021522,0.018513],
[0.113267,0.021928,0.020564],
[0.093743,0.02033,0.025053],
[0.13627,0.068549,0.066047],
[0.286671,0.131856,0.126948],
[0.090226,0.018593,0.018884],
[0.096455,0.020777,0.019963],
[0.166384,0.144269,0.08159],
[0.220452,0.103766,0.0953],
[0.143972,0.03618,0.031931],
[0.143136,0.036803,0.038698],
[0.258057,0.11785,0.109818],
[0.330193,0.178884,0.157638],
[0.408758,0.122565,0.151418],
[0.168366,0.055936,0.057439],
[0.429207,0.331269,0.334562],
[0.278222,0.243465,0.228009],
[0.979158,0.748187,0.788534],
[0.077484,0.015684,0.022219],
[0.305593,0.026173,0.020405],
[0.364327,0.025624,0.024306],
[0.579937,0.026864,0.027952],
[0.876137,0.048044,0.049257],
[0.273008,0.116704,0.04663],
[0.184577,0.117629,0.122771],
[0.198478,0.049778,0.069377],
[0.410839,0.030764,0.028845],
[1.926,0.875615,0.802255],
[0.318147,0.235507,0.227222],
[0.247218,0.066038,0.070967],
[0.372834,0.108745,0.111291],
[0.74956,0.58827,0.634527],
[1.15019,0.86232,0.851895],
[1.2923,0.948734,0.950828],
[1.64079,1.52869,1.58315],
[0.1828,0.039328,0.030409],
[0.105002,0.028956,0.035281],
[0.085786,0.033011,0.027931],
[0.114458,0.096552,0.044727],
[0.094894,0.029659,0.028727],
[0.101223,0.030141,0.096246],
[0.082924,0.025755,0.026889]
]
}
58 changes: 58 additions & 0 deletions hologres/results/32core.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
{
"system": "Hologres",
"date": "2025-05-21",
"machine": "16 CU",
"cluster_size": 2,
"tags": [
"managed",
"PostgreSQL compatible",
"column-oriented"
],
"load_time": 388,
"data_size": 18778181002,
"result": [
[0.282573,0.028957,0.019191],
[0.146115,0.021455,0.019169],
[0.204898,0.020812,0.019544],
[0.172966,0.018729,0.01821],
[0.289541,0.209281,0.206787],
[0.730968,0.460731,0.474964],
[0.134764,0.018417,0.017179],
[0.150145,0.02559,0.020199],
[0.355695,0.232613,0.262594],
[0.419869,0.348998,0.278793],
[0.272162,0.051735,0.049574],
[0.323122,0.059689,0.058203],
[0.854693,0.512541,0.547821],
[0.884888,0.590925,0.551612],
[0.788478,0.513826,0.523426],
[0.400769,0.229311,0.277545],
[1.35409,1.2621,1.30281],
[1.04948,0.921265,0.948718],
[3.25453,2.67629,2.64682],
[0.133699,0.016152,0.011796],
[0.968598,0.018343,0.017788],
[1.12402,0.022856,0.024907],
[1.99158,0.028709,0.02853],
[2.5307,0.209944,0.220423],
[0.505117,0.104443,0.110544],
[0.410594,0.13651,0.128364],
[0.500404,0.148795,0.133115],
[1.16866,0.028315,0.027627],
[5.06283,4.59897,4.56041],
[0.783734,0.689335,0.662676],
[0.813865,0.21345,0.205459],
[0.839294,0.370376,0.369428],
[3.28857,2.77875,2.48516],
[4.16414,3.09401,3.10267],
[3.63808,3.27424,3.1127],
[2.32921,1.75203,1.71754],
[0.170515,0.053787,0.05543],
[0.121088,0.02743,0.025122],
[0.122832,0.027876,0.028975],
[0.190735,0.082272,0.083935],
[0.1364,0.030913,0.025754],
[0.134725,0.02802,0.025896],
[0.141512,0.024893,0.023588]
]
}
Loading