Size: a a a

ClickHouse не тормозит

2020 September 15

AT

Al T in ClickHouse не тормозит
Лукойл существует
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Sergey M
😭
А Оле Лукойе существует?))
для такой задачи если записей миллирды и это не разовая задача, то надо искать какой-то другой подход и скорее всего программировать какие-нибудь хитрые деревья, т.е. тупой NestedLoop и BTree слишком медленны
источник

SM

Sergey M in ClickHouse не тормозит
Ладно тогда другой вопрос
with в CH может возвращать только одно значение
возможно ли запросить из двух таблиц в одном запросе без join'ов? т.к. джойнить их не на что
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Sergey M
Ладно тогда другой вопрос
with в CH может возвращать только одно значение
возможно ли запросить из двух таблиц в одном запросе без join'ов? т.к. джойнить их не на что
select (select groupArray(number) from numbers(10)) a, (select dummy from system.one) b
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
with (select (select groupArray(number) from numbers(10)) a, (select dummy from system.one) b) as xxx select xxx
источник

SM

Sergey M in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
select (select groupArray(number) from numbers(10)) a, (select dummy from system.one) b
Интересненько
Спасибо
Думаю это сможет мне как-то помочь
источник

D

Dj in ClickHouse не тормозит
Sergey M
Ребят не подскажете
каким образом можно сделать типо
join on startsWith(tb1.big_str, tb2.litl_str)

Cross join не подходит - слишком много данных
без эвристики не обойтись. всмотритесь в данные. у нас например это были "пути" и мы смогли используя иерархические словари джойнить
источник

ТИ

Татьяна Исекеева... in ClickHouse не тормозит
всем здравствовать)
подскажите, пожалуйста, есть ли возможность вставить в поле int значение с ведущими нулями?
источник

D

Dj in ClickHouse не тормозит
Татьяна Исекеева
всем здравствовать)
подскажите, пожалуйста, есть ли возможность вставить в поле int значение с ведущими нулями?
они там на самом деле есть, но вам их не видно...
источник

PL

Piotr Liakhavets in ClickHouse не тормозит
Sergey M
Ребят не подскажете
каким образом можно сделать типо
join on startsWith(tb1.big_str, tb2.litl_str)

Cross join не подходит - слишком много данных
Если вариков длин не много - можно попробовать через хэши
Ещё (тут не уверен по имплементации в кх) но asof механика - тот же сорт-мерж делает
На самый край - два дампа отсортированных а дальше проходить их самописным мержем...
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Татьяна Исекеева
всем здравствовать)
подскажите, пожалуйста, есть ли возможность вставить в поле int значение с ведущими нулями?
в смысле format TSV или JSONEachRow? Да, возможно. Но через конвертацию строки в число.
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
скоростной парсер КХ специально заточен понимать 0 специальным образом
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
парсер экономит кучу бабок на электричестве  за счет микрооптимизации при парсинге TSV 0\t\0\t\0
источник

ТИ

Татьяна Исекеева... in ClickHouse не тормозит
спасибо)
источник
2020 September 16

M

Maksimus Ulibikus in ClickHouse не тормозит
Ребята привет.

Очень хочу настроить Nginx-log-collector от Авито. Но там SQL схема только для кластера ClickHouse. Помогите пожалуйста составить схему для одного хоста ClickHouse. Ресурсов на кластер просто нет.

Вот схема https://github.com/avito-tech/nginx-log-collector/blob/master/etc/examples/clickhouse/table_schema.sql#L27
источник

DM

Dmitriy Maslennikov in ClickHouse не тормозит
CREATE DATABASE IF NOT EXISTS nginx;

 CREATE TABLE nginx.access_log
(
   event_datetime DateTime,
   event_date Date,
   server_name LowCardinality(String),
   remote_user String,
   http_x_real_ip UInt32,
   remote_addr UInt32,
   status UInt16,
   scheme LowCardinality(String),
   request_method LowCardinality(String),
   request_uri String,
   request_args String,
   server_protocol LowCardinality(String),
   body_bytes_sent UInt64,
   request_bytes UInt64,
   http_referer String,
   http_user_agent LowCardinality(String),
   request_time Float32,
   upstream_response_time Array(Float32),
   hostname LowCardinality(String),
   host LowCardinality(String),
   upstream_addr LowCardinality(String)
)
ENGINE = MergeTree()
PARTITION BY toMonday(event_date)
ORDER BY (hostname, request_uri, event_date)

CREATE TABLE nginx.error_log
(
   event_datetime DateTime,
   event_date Date,
   server_name LowCardinality(String),
   http_referer String,
   pid UInt32,
   sid UInt32,
   tid UInt64,
   host LowCardinality(String),
   client String,
   request String,
   message String,
   login String,
   upstream String,
   subrequest String,
   hostname LowCardinality(String)
)
ENGINE = MergeTree()
PARTITION BT toMonday(event_date)
ORDER BY (server_name, request, event_date)
источник

M

Maksimus Ulibikus in ClickHouse не тормозит
Dmitriy Maslennikov
CREATE DATABASE IF NOT EXISTS nginx;

 CREATE TABLE nginx.access_log
(
   event_datetime DateTime,
   event_date Date,
   server_name LowCardinality(String),
   remote_user String,
   http_x_real_ip UInt32,
   remote_addr UInt32,
   status UInt16,
   scheme LowCardinality(String),
   request_method LowCardinality(String),
   request_uri String,
   request_args String,
   server_protocol LowCardinality(String),
   body_bytes_sent UInt64,
   request_bytes UInt64,
   http_referer String,
   http_user_agent LowCardinality(String),
   request_time Float32,
   upstream_response_time Array(Float32),
   hostname LowCardinality(String),
   host LowCardinality(String),
   upstream_addr LowCardinality(String)
)
ENGINE = MergeTree()
PARTITION BY toMonday(event_date)
ORDER BY (hostname, request_uri, event_date)

CREATE TABLE nginx.error_log
(
   event_datetime DateTime,
   event_date Date,
   server_name LowCardinality(String),
   http_referer String,
   pid UInt32,
   sid UInt32,
   tid UInt64,
   host LowCardinality(String),
   client String,
   request String,
   message String,
   login String,
   upstream String,
   subrequest String,
   hostname LowCardinality(String)
)
ENGINE = MergeTree()
PARTITION BT toMonday(event_date)
ORDER BY (server_name, request, event_date)
Огромнейшее спасибо )
источник

DM

Dmitriy Maslennikov in ClickHouse не тормозит
если ресурсов мало, то в конце еще
источник

DM

Dmitriy Maslennikov in ClickHouse не тормозит
TTL timestamp + toIntervalMonth(1)
источник

DM

Dmitriy Maslennikov in ClickHouse не тормозит
чтобы логи автоудалялись через месяц
источник