Alexey Milovidov macht ClickHouse und weiĂ es natĂŒrlich in- und auswendig. EinschlieĂlich der Art und Weise, wie es zusĂ€tzlich zu seinem Standard und allen bekannten Funktionen verwendet werden kann.
Und heute wird er ĂŒber diese ungewöhnlichen Verwendungsmöglichkeiten sprechen und vielleicht nicht einmal zum Speichern und Verarbeiten von Daten.
ClickHouse fĂŒr Hardwaretests
Wenn ClickHouse ĂŒber freie Server verfĂŒgt, ist es am einfachsten, es fĂŒr Hardwaretests zu verwenden. Da der Testdatensatz dieselben Daten aus der Produktion von Yandex enthĂ€lt, nur anonymisiert - und sie stehen auĂerhalb zum Testen zur VerfĂŒgung. Ich habe auf der Saint HighLoad ++ 2019 in St. Petersburg darĂŒber gesprochen, wie man gute anonymisierte Daten aufbereitet .
Wir installieren ClickHouse unter Linux (x86_64, AArch64) oder Mac OS. Wie kann man es machen? - Wir sammeln es fĂŒr jede Commit- und Pull-Anfrage. ClickHouse Build Check zeigt uns alle Details aller möglichen Builds:
â gcc clang , debug, , x86, ARM Mac OS. ClickHouse : CPU, . â , .
, . 30 ClickHouse. ClickHouse, .
:
:
â . , , , SPECint SPEC. ClickHouse , .
ClickHouse
, ClickHouse â + . - . ClickHouse, code.txt:
, , , C++ . shell- , . , , , â , â , «return false».
1,665 . . , LC_ALL=C, 0,376 , 5 . - .
? , clickhouse-local, .
- , , â clickhouse-local SQL . , ( , â TabSeparated), . 0.103 â 3,7â16 ( , ).
- , GitHub Archive â , GitHub, , issue, , -. https://www.gharchive.org/ ( 890 ):
- , ClickHouse local:
time clickhouse-local --query "SELECT * FROM
file('*.json.gz', TSV, 'data String')
WHERE JSONExtractString(data, 'actor', 'login') = 'alexey-milovidov'
LIMIT 10" | jq
file, *.json.gz â TSV, string. JSON JSONâ 'actor', â 'login' , « » â 10 GitHub.
, 890 1,3 . . , 10 , . , , , GitHub.
clickhouse-local --query "SELECT count() FROM
file('*.json.gz', TSV, 'data String')
WHERE JSONExtractString(data, 'actor', 'login') = 'alexey-milovidov'"
SELECT COUNT... , . , dstat:
, 530 / â ( RAID HDD).
ClickHouse local 980 . ClickHouse url â file https://.../*.json.gz, .
ClickHouse, :
file.
glob patterns. glob patterns (, .)
gzip, xz zstd . gz .
JSON. , JSON, . - , .
. , . , .
.
, , . â MergeTree. : , SELECT clickhouse-client. â , protobuf JSON :
clickhouse-local --input-format Protobuf --format-schema -
--output-format JSONEachRow ...
Serverless ClickHouse
ClickHouse serverless-. , ClickHouse - Google Cloud Run: https://mybranch.dev/posts/clickhouse-on-cloud-run/ (Alex Reid). ClickHouse .
, , tab separated (TSV) comma separated (CSV). CustomSeparated, , .
CustomSeparated:
format_custom_escaping_rule
format_custom_field_delimiter
format_custom_row_before/between/after_delimiter
format_custom_result_before/after_delimiter
, . â . , CSV, JSON, CSV. , . | . , ..
â Template:
format_template_resultset
format_template_row
format_template_rows_between_delimiter
, , , . XML, .
Regexp:
format_regexp
format_regexp_escaping_rule
format_regexp_skip_unmatched
clickhouse-local awk. , Regexp subpatterns, subpattern . . â , , .
ClickHouse
â ClickHouse. Mongo, . ClickHouse, â .
, , , â . 'message' String. JSON, JSON . â , , 'actor.login', JSON â . ClickHouse , ALTER :
, actor_login , SELECT , â . :
ALTER TABLE logs UPDATE actor_login = actor_login
, .
MySQL
ClickHouse MySQL. : , , , , ( , ), SELECT 15 :
: MySQL , MySQL , â 15 . , MySQL ?
5 41 â ! ClickHouse - â MySQL ClickHouse . MySQL â ?
â . ClickHouse ââ (20577 13772), MySQL â (44744), collation ( ) GROUP BY. , , :
, . ClickHouse , . . MySQL ClickHouse . MySQL :
, . SELECT:
6 , â , , , . MySQL ClickHouse . MySQL , MySQL ClickHouse-, ClickHouse. Distributed , , ClickHouse- ClickHouse, , MySQL.
, - ( ClickHouse). :
, â MergeTree . SELECT:
, SELECT 0,6 . , â ClickHouse!
ClickHouse MySQL. MySQL ClickHouse , , , MySQL. ClickHouse:
ClickHouse . , odbc PostgreSQL, url â REST-. :
: ClickHouse postgresql, PostgreSQL PostgreSQL. .
ClickHouse
ClickHouse CatBoost. , modelEvaluate.
. : , , : , , . â , , . ClickHouse CatBoost, .
ClickHouse. â , . , , , GROUP BY:
State:
SELECT stochasticLogisticRegressionState(...
k . AggregateFunction(stochasticLogisticRegression(01, 00, 10, 'Adam'), ...), . applyMLModel:
. , , :
ClickHouse
, ClickHouse â , . , . , , pagerank:
, , , . , Amos Bird. , open-source. .
UDF ClickHouse
, ClickHouse (user defined functions). . , cache- executable, . stdin , stdout . , .
Python, , â , â ClickHouse, user defined function.
: UDF roadmap 2021 .
ClickHouse GPU Application Server
Zhang2014 â ClickHouse Application Server. Zhang2014 pull request, HTTP- (SELECT INSERT). POST - , - GET , , SELECT .
ClickHouse â , - , , , - . , ClickHouse - . production!