
?Zloool?
05.04.2017
11:11:07
Чутка ошибся с количеством данных, речь идет о 20+гб данныз, не влезут в оперативку
т.к. таблица для внутреннего пользования и использовать ее будут редко, нет смысла под нее покупать железо, в оперативку которого это все влезет

Mike
05.04.2017
11:15:42
Всем добрый день, подскажите плиз, куда посмотреть. При вставке данных в replicatedmergetree в логах реплик только одного шарда появляются вот такие вот записи "<Warning> store.store_log_local (StorageReplicatedMergeTree, CleanupThread): Couldn't remove 20170404_20170404_635_635_0 from ZooKeeper: no node" - при этом количество данных в репликах правильное и вообще количество данных правильно и нужное. в логах реплик второго шарда - тишина
конфигурация 2х2 (2 шарда по 2 реплики)

Alex
05.04.2017
11:41:19

Google

Роман
05.04.2017
12:41:01

Stepan
05.04.2017
12:43:35
+1 , тоже очень волнует этот вопрос

Maksim
05.04.2017
12:45:45
скажите плиз как сгруппировать по дню данные?

Vitaliy
05.04.2017
12:46:44

Роман
05.04.2017
12:48:03
*ограничены

Sergey
05.04.2017
12:48:25
Добрый день! Подскажите, кто-то собирал ODBC-драйвер под RHEL/Centos 6 ?

Maksim
05.04.2017
12:48:39
а что значит DB::Exception: Limit for result rows exceeded: read 2227 rows, maximum: 500
где это ограничение стоит ?

Igor
05.04.2017
12:50:06
в вашем драйвере, судя по всему
в querystring http-запроса в кликхаус max_result_rows=500 не передается?

Google

Igor
05.04.2017
12:51:37
если нет, то в конфиге сервера

Vitaliy
05.04.2017
12:51:38

Роман
05.04.2017
12:52:03
понял, спасибо большое

Maksim
05.04.2017
12:52:29
а не подскажите как размер таблицы узнать ?

Igor
05.04.2017
13:10:11
Доброе утро, скажите пожалуйста как посмотреть через запрос размер таблиц ?
SELECT * FROM system.parts WHERE active AND table = '...'
там столбец есть с кол-вом байт
его можно еще через formatReadableSize(x) прогнать
SELECT sum(bytes) FROM system.parts WHERE active AND database = 'db_name' AND table = 'table_name'

Maksim
05.04.2017
13:16:08

papa
05.04.2017
13:32:48
зависит от типа таблицы, но в целом да.

Nikita
05.04.2017
14:54:37
в тестах/доке не нахожу: а можно как-то mutlipart/form-data передать запрос и файл с внешними данными? беспокоюсь только что запрос может быть слишком длинный и не влезет в query string (установлен ли в CH лимит, кстати?)
про лимит вопрос снимаю, в доке нашел про 16кб

Alexey
05.04.2017
19:24:20
Насколько я помню, параметры (в том числе запрос) нет возможности передать в mutlipart/form-data. То есть, если передаются внешние таблицы, то запрос придётся указать в параметре URL.

Roman
06.04.2017
09:30:04
Помогите разобраться. Необходимо получать сумму значений в зависимости от фильтров. Т.к. фильтры вставляются в запрос на лету, то он выглядит следующим образом
SELECT sum(column)
FROM table
WHERE
Date = today()
AND ($val = 1 OR Field = $val)
AND ($val2 = 1 OR Field2 = $val2)
Если $val = 1 - значит фильтровать данные не нужно. По идее, условие сразу должно вернуть true и не влиять на производительность запроса. Но это влияние есть и оно весьма заметно.
Есть у кого-то идеи, как это можно оптимизировать?

ᴬˡᵉˣᵉᵞ
06.04.2017
10:04:52
Через IF не пробовали?

Roman
06.04.2017
10:08:50
пробовал
без разницы

Виктор
06.04.2017
10:12:46
А, вы ожидаете, что Field = $val не будет вычисляться
Сейчас такое не реализовано, оптимизатора запросов по факту почти нет, к сожалению.
Производительность проседает так как выражение все равно будет вычисляться

Google

Виктор
06.04.2017
10:13:30
Просто убирайте весь этот AND

Roman
06.04.2017
10:15:18
Не могу убрать AND, т.к. запрос посылается из графаны и там он может быть только в одном варианте.

Виктор
06.04.2017
10:18:16
А этот $val как задается?
Может, туда тупо писать "Field = value" ?

Roman
06.04.2017
10:19:25
это template значение, которое подставляется в запросы. В нем может лежать идентификатор, например

Dmitriy
06.04.2017
10:23:04
Привет всем.
Подскажите кто нибудь рассматривал\пробовал\использует cehp в качестве сторажда под CH ?
У нас есть 2х10Gb сеть, на себя от себя.
Вообще как такой вариант?
Данных где-то около 10-20ТБ в месяц приходит.
выборки из данных в рамках недели до двух месяцев.


papa
06.04.2017
12:21:57
Помогите разобраться. Необходимо получать сумму значений в зависимости от фильтров. Т.к. фильтры вставляются в запрос на лету, то он выглядит следующим образом
SELECT sum(column)
FROM table
WHERE
Date = today()
AND ($val = 1 OR Field = $val)
AND ($val2 = 1 OR Field2 = $val2)
Если $val = 1 - значит фильтровать данные не нужно. По идее, условие сразу должно вернуть true и не влиять на производительность запроса. Но это влияние есть и оно весьма заметно.
Есть у кого-то идеи, как это можно оптимизировать?
clickhouse
вычисляет все аргументы and/or, все аргументы if, итд. т.к. они векторизуются и вычисляются пачками и потом пачками над ними выполняются последующие функции. мы такие вещи оптимизируем перед генерацией запроса: вычисляем выражения, известные статически, выбразываем бесполезные условия, итд. правда в вашем запросе это не помогло бы, т.к. в зависимости от строки таблицы каждое из условий может оказаться значимым, это можно только при выполнении оптимизировать.


Alexey
06.04.2017
13:27:39

Dmitry
06.04.2017
13:41:49
что-то мне кажется, что это паршивая затея

Mike
06.04.2017
13:45:05
https://www.sebastien-han.fr/blog/2012/08/26/ceph-benchmarks/

Maksim
06.04.2017
13:47:39
ребят может кто подскажет как бэкап сделать всей базы?
в mysql это делалось обычным mysqldump. тут только по одной таблице?

Dmitriy
06.04.2017
14:20:05

Vitaliy
06.04.2017
14:28:58

Maksim
06.04.2017
14:30:00

Vladislav
06.04.2017
14:34:03
а MySQL ты как бекапил? не с реплики?

Maksim
06.04.2017
14:34:59
у нас отдельный сервер mysql для статистики. написали скрипт бэкапов на s3. делается sql пакуется в gzip заливается в облако. плохо?

Igor
06.04.2017
14:38:09
проще правда через freeze partition

Google

Maksim
06.04.2017
14:38:59
freeze partition неплохо да. я вот не пойму до сих пор через select делается дамп и уже 25 гигов. а партициями там вообще мало места занимает. там все данные?

Igor
06.04.2017
14:39:29

Maksim
06.04.2017
14:42:23
вот data папка 464 мб. а если выгрузить в tsv то получится 21 гб ))

Igor
06.04.2017
14:43:06
https://clickhouse.yandex/reference_ru.html#Отличительные%20возможности%20ClickHouse
второй пункт

Maksim
06.04.2017
14:44:25
класс. то есть тогда писать скриптик надо - получаем список таблиц в базе данных. делаем партишены. пакуем в архивы закидываем бэкап куда необходимо?
по другому никак?

Alexey
06.04.2017
14:46:25
Обычный SELECT без GROUP BY, ORDER BY и т. п. использует небольшое ограниченное количество памяти. Он не формирует результат в памяти, а отдаёт его клиенту потоково.

Andrey
06.04.2017
14:48:03
Ребят, подскажите по tutorial.
Там есть такой запрос:
SELECT
DestCityName,
sum(Year = 2014) AS c2014,
sum(Year = 2015) AS c2015,
c2015 / c2014 AS diff
FROM ontime
WHERE Year IN (2014, 2015)
GROUP BY DestCityName
HAVING c2014 > 10000 AND c2015 > 1000 AND diff > 1
ORDER BY diff DESC
в нем в функцию sum передается условие как я понял, но не указывается что суммировать. Как он работает? В доках про условия внутри функции sum ни слова(

Igor
06.04.2017
14:48:32
может там sumIf должен быть
в доке это описано вот тут
https://clickhouse.yandex/reference_ru.html#Комбинатор%20-If.%20Условные%20агрегатные%20функции

Andrey
06.04.2017
14:49:42
да, это более логично. Видимо до этого шага в tutorial никто не доходил))))

Igor
06.04.2017
14:49:51
дайте ссылку плиз
хотя не надо, нашел, ща поправлю

Maksim
06.04.2017
14:52:47
native 13 gb tsv 22 gb. какой самый компатный ? может есть формат который оставляет родную струтуру в 4xx mb ?)

Igor
06.04.2017
14:53:51
ну сожмите результат Native в gzip тот же, например, да и все

Alexey
06.04.2017
14:57:07

Igor
06.04.2017
14:58:13
аа, извините

Andrey
06.04.2017
14:58:21

Maksim
06.04.2017
15:05:22

Google

Igor
06.04.2017
15:06:30
> Если вы указали в URL compress=1, то сервер будет сжимать отправляемые вам данные.

Maksim
06.04.2017
15:07:31
clickhouse-client -q 'SELECT * FROM statistics.banner_history_segments FORMAT Native' > dump2.bin
понял
ребят это шок)) компрессор чудо
7 секунд чтобы собрать все данные и положить в архив в файлик)
если кому интересно как я делал бэкап
curl 'http://localhost:8123/?database=statistics&compress=1' -d 'SELECT * FROM banner_history_segments FORMAT Native' > data.bin
gzip -c data.bin > dump.gzip
22 млн записей. 7 секунд создание файл + 7 секунд gzip