@clickhouse_ru

Страница 421 из 723
Kirill
13.02.2018
19:31:21
Создаете нужную вам таблицу как обычно, а уже на нее навешиваете view

Dmitry
13.02.2018
19:33:24
Если не часто писать будете то проблем быть не должно
Т.е. без нагрузки можно вполне себе писать по 10 раз в секунду, оно быстро само соптимизируется?

Kirill
13.02.2018
19:34:13
нет, копите сообщения и пишите их раз в 10 секунд

Google
Kirill
13.02.2018
19:38:19
Alex
13.02.2018
19:38:46
а зачем же тогда мне вообще view если у меня уже есть готовая таблица?)

Kirill
13.02.2018
19:39:31
а зачем же тогда мне вообще view если у меня уже есть готовая таблица?)
view создаст "тригер" по которому будет запись в эту таблицу

Yuran
13.02.2018
19:49:34
Я сделяль небольшой (и глючный) UI для кликхауса и разместил его на временном домене: https://yuriynasretdinov.github.io/ . По сравнению с tabix, он ничего не умеет, но зато он сильно проще и быстро работает. Вот, что оно сейчас умеет (в будущем будет больше): 1. Показывать список баз и таблиц 2. Быстрый предпросмотр содержимого таблицы 3. (костыльно сделанная) Фильтрация по столбцам, на сервере и на клиенте (чтобы отфильтровать на сервере, нужно нажать "Apply filter") 4. Сортировка на клиенте 5. Возможность прочитать большие значения (по double click на колонке) 6. Показ примерного количества строк в таблице и её размера на диске 7. Возможность сформировать ссылку на таблицу с уже применными фильтрами (достаточно скопировать URL из бразуера после применения фильтрации на сервере)

Сделано оно буквально на коленке, но, может быть, кому-нибудь пригодится

Igor
13.02.2018
20:15:08
ps: tabix сейчас, в текущей версии, это сборник костылей, быд.кода, и фичь - полученных от прототипа)

Александр
13.02.2018
21:02:26
Эм... А distributed таблица на 8 шардов так и должна себя вести? http://img.facedsid.ru/h4heh.jpg

Два одинаковых запроса подряд. Один вернул данные, другой ничего не вернул.

Сервера версии: 1.1.54343, в error.log ничего нет.

И вот опять. Два запроса подряд - 0 строк. Третий запрос вернул данные http://img.facedsid.ru/tujmk.jpg

Таблица абсолютно новая, в ней всего 8 строк.

Google
papa
13.02.2018
21:06:48
ну во-первых желательно их найти, т.е. count(), hostName() as h group by h,

а во-вторых это точно шарды а не реплики?

Александр
13.02.2018
21:07:09
Вот сейчас и буду искать

Да, это 100% distributed, без репликации

CREATE TABLE IF NOT EXISTS local_log ON CLUSTER statements ( eventTime DateTime, eventDate Date, eventOrder UInt64, eventType String, eventID String, originID String, action String, eventMessage String, eventLevel String, eventTag Nested( Name String, Value String ) ) ENGINE = MergeTree(eventDate, (eventType, eventID, originID, action), 8192);

CREATE TABLE IF NOT EXISTS log ON CLUSTER statements AS local_log ENGINE = Distributed(statements, cursometr, local_log, sipHash64(eventID))

Нашел на каком шарде лежит. tail -f лог кликхауса и делаю запрос на другом шарде select * from log. Первый запрос ничего не вернул и в логе на том шарде на котором данные - пусто. Второй запрос вернул данные и появились записи в логе.

papa
13.02.2018
21:12:17
а сам кластер statements нормально объявлен?

Александр
13.02.2018
21:12:19
Вот сам кластер http://img.facedsid.ru/w4me2.jpg

papa
13.02.2018
21:13:19
что-то я вижу 4 шарда и две реплики

это с некоторой вероятностью означает что у вас запрос в distributed улетает на случайную из них

а т.к. нет репликации, то и данных нет

Александр
13.02.2018
21:14:25
*рука-лицо*

Сори, время уже плавит меня. Сейчас попробую репликацию добавить.

@orantius спасибо большое! :) Все завелось! Я и забыл, что у меня репликация включена...

?
13.02.2018
21:43:37
а подскажите какие есть функции в КХ для работы с урлами? например домен чистый вытащить

нашел доку )

strange
14.02.2018
00:16:28
Разобрался, почему debuild некорректно работает с distcc и g++: ошибок нет, но все компилируется на локалхосте. Dpkg при сборке добавляет к gcc параметр -spec, а distcc считает, что этот параметр уникален для локалхоста и собирает только на нем. Cmake такого не делает, поскольку без dpkg работает, а clang этот параметр не нужен

https://pastebin.com/NxNjDsY0 ну и в исходниках distcc подтверждение

Kirill
14.02.2018
05:14:41
Не мог вчера понять чего ж стэйбл не собирается там где собирался, оказалось use_embedded_compiler=1 стоит
С этим флагом он пытается еще и компилятор собрать, у меня, например, в этом случае не находит lld/Driver/Driver.h, а вы как-нибудь порешали эту проблему?

Google
prll
14.02.2018
06:35:30
поставить liblld-5.0-dev libclang-5.0-dev liblld-5.0

но лучше собирать в pbuilder и все само поставится

Kirill
14.02.2018
06:36:28
OK, тогда нужно https://clickhouse.yandex/docs/en/development/build.html обновить

Oleg
14.02.2018
07:01:08
Коллеги, добрый день. Есть проблема с подключением внешнего словаря по ODBC

конфиг

<dictionary> <name>dict_table</name> <source> <odbc> <db>PARTMGR</db> <table>MV_ACQUIRERS</table> <connection_string>DSN=DB</connection_string> </odbc> </source> <lifetime> <min>290</min> <max>320</max> </lifetime> <layout> <complex_key_hashed /> </layout> <structure> <key> <attribute> <name>FIELD1</name> <type>String</type> </attribute> </key> <attribute> <name>FIELD2</name> <type>String</type> <null_value></null_value> </attribute> </structure> </dictionary>

запрос select dictGetString('dict_table','FIELD2',tuple('02222111')); Возвращает только первый символ

prll
14.02.2018
07:09:04
А сколько их всего ? может быть два и они utf ?

Oleg
14.02.2018
07:14:52
Их 50 и они UTF

strange
14.02.2018
07:18:30
Александр
14.02.2018
07:20:49
Эх...сколько же боли доставляет "Not found column ... in block". Может кто подскажет что не так с этим запросом? Конкретно вот этот работает и выдает все что нужно: https://img.facedsid.ru/p7ba9.jpg Но вот select avg(count) from (^^запрос выше^^) выдает "Not found column plus(offset, toDateTime('2018-02-14 00:17:26')) in block. There are only columns: offset"

strange
14.02.2018
07:28:16
@proller как думаете, если машины для сборки идентичны и спек-файлы идентичны, имеет смысл pr в distcc на параметр для исключений? Или может проще в dpkg научить флаги добавлять вместо -spec?

Или не париться и перейти на clang

Или научиться собирать пакеты после cmake :)

Александр
14.02.2018
07:49:35
А если убрать toDateTime, так выполняется?
Неа, кричит, что не может плюсовать UInt64 и строку

Tima
14.02.2018
07:50:55
Неа, кричит, что не может плюсовать UInt64 и строку
А где там плюсование числа и строки?

Dmitriy
14.02.2018
07:51:20
Доброго времени суток. Подскажите по докеру, если кто знимался, как накрутить Dockerfile, чтобы можно было сразу создавать нужную таблицу. пробовал вот так FROM yandex/clickhouse-server COPY config.xml /etc/clickhouse-server/config.xml USER root RUN /usr/bin/clickhouse-server --config=/etc/clickhouse-server/config.xml & RUN sleep 10 && /usr/bin/clickhouse --client --host $HOSTNAME --query="CREATE TABLE admanic.events ( id String, origin_id String, datetime DateTime, date Date) ENGINE = MergeTree(date, (date, datetime), 8192)" но в ответ Code: 210. DB::NetException: Connection refused: (7fd8a1cee26f:9000, 172.17.0.5)

Александр
14.02.2018
07:51:43
offset + toDateTime() as eventTime

Tima
14.02.2018
07:54:03
offset + toDateTime() as eventTime
Попробуйте убрать из выражения toDateTime или приведите его к timestamp

Google
prll
14.02.2018
07:56:16
@proller как думаете, если машины для сборки идентичны и спек-файлы идентичны, имеет смысл pr в distcc на параметр для исключений? Или может проще в dpkg научить флаги добавлять вместо -spec?
А кто гарантирует идентичность ? по хорошему нужно содержание этих файлов передавать и на удаленной стороне путь на временный подменять, очень сложно получается

Проще отключить эти spec

Александр
14.02.2018
07:56:38
Попробуйте убрать из выражения toDateTime или приведите его к timestamp
Не помогло. Все равно ругается "Not found column plus(offset, 1518556646) in block. There are only columns: offset."

strange
14.02.2018
07:58:19
Проще отключить эти spec
Ну, установка из одного образа с одинаковыми параметрами. Впрочем, если можно отключить и не свалиться с ошибками - пойду изучать вопрос

Чото принципиально хочется научиться собирать кх быстро )

Dmitriy
14.02.2018
07:59:11
Tima попробую. но 10 сек должно хватать. руками пробовал, как часы отрабатывает. сейчас попробую накрутить

Александр
14.02.2018
08:01:25
Я из arrayJoin беру offset, это кол-во секунд которые надо добавить к какому то времени

И вот эта сумма селектится как as eventTime

как раз offset + asDateTime(...) as eventTime

prll
14.02.2018
08:02:22
Ну, установка из одного образа с одинаковыми параметрами. Впрочем, если можно отключить и не свалиться с ошибками - пойду изучать вопрос
Этот параметр добавляет сборщик дебиана, если собирать руками - его нет и ничего не ломается

Vladimir
14.02.2018
08:03:11
всем привет. оч нужно сделать реплицируемую мат.вьюху с POPULATE, но очень не хочется, чтобы этот популейт на каждой реплике собирался. идея такая: запустить на одной реплике создание вьюхи с популейтом, а на остальных - без него. вопрос: подтянутся ли данные в остальные реплики? или идея не сработает?

ну или так. что будет затратнее по ресурсам и времени: собрать популейт на реплике или отсинкать данные через репликацию?

Dmitriy
14.02.2018
08:10:53
@emakarov т.е. вовремя сборки не инициализируется сеть вообще?

Evgeny
14.02.2018
08:11:27
я возможно не очень понял ваш вопрос, но когда идет билд image-а, то это просто сборка (компиляция)

Dmitriy
14.02.2018
08:13:47
вопрос как создать в кликхаусе при билде таблицу. мне нужен image готовый к работе. так что бы в нем была уже таблица. и если вдруг таблица меняется то я делаю новый image и тегирую его что типа версия такаято.

Evgeny
14.02.2018
08:14:22
а вам персистентность таблицы не нужна?

Dmitriy
14.02.2018
08:15:25
на этапе разработки нет.

Google
Evgeny
14.02.2018
08:16:17
как вариант- создавать таблицу при старте докера

Lamobot
14.02.2018
08:16:57
Обычно это делается через entrypoint.sh скрипт. Можно посмотреть примеры в образах докера mysql

Evgeny
14.02.2018
08:17:20
да

Evgeny
14.02.2018
08:17:48
что то типа ENTRYPOINT start_image.sh

Lamobot
14.02.2018
08:18:48
Или вариант второй берете КХ, создаете там таблицу, и копируете файлы БД с этого КХ в ваш образ для докера.

Dmitriy
14.02.2018
08:21:09
@emakarov @Lamobot спасибо. буду разбиратся, если получится отпишусь

Ivan
14.02.2018
08:47:15
Добрый день, Словили такой баг - https://github.com/yandex/ClickHouse/issues/1569 Создали файл с версию но не получилось: <Error> Application: DB::Exception: Cannot create table from metadata file /opt/clickhouse/metadata/af_0//events_partition.sql, error: DB::Exception: Bad version file: /opt/clickhouse//data/af_0/events_partition/format_version.txt, stack trace:

Maxim
14.02.2018
12:55:43
Добрый день! Есть кх с двумя шардами. Случился сбой и пришлось перезагрузить оба шарда нештатно. После перезагрузки появились невалидные файлы для отправки на вторую шарду. Удалили их, кх на обеих машинах перестал показывать какие-либо ошибки в логах. Но при попытке сделать выборку через distributed таблицу запрос подвисает. В логах обеих машин видно, что выборка в локальных таблицах выполнена успешно. Но сам запрос висит и в логе на 2018.02.14 13:25:11.350311 [ 24 ] <Trace> Aggregator: Merging aggregated data

2018.02.14 13:59:54.491397 [ 10 ] <Debug> executeQuery: (from 192.168.0.167:64596) /*TABIX_QUERY_ID_n6Km99Za*/ SELECT event_date, count(*) FROM logs GROUP by event_date 2018.02.14 13:59:54.492533 [ 10 ] <Debug> db1.local_logs (SelectExecutor): Key condition: unknown 2018.02.14 13:59:54.492571 [ 10 ] <Debug> db1.local_logs (SelectExecutor): Date condition: unknown 2018.02.14 13:59:54.492638 [ 10 ] <Debug> db1.local_logs (SelectExecutor): Selected 54 parts by date, 54 parts by key, 56550 marks to read from 54 ranges 2018.02.14 13:59:54.496910 [ 10 ] <Trace> db1.local_logs (SelectExecutor): Reading approx. 463257600 rows 2018.02.14 13:59:54.497028 [ 10 ] <Trace> InterpreterSelectQuery: FetchColumns -> WithMergeableState 2018.02.14 13:59:54.497292 [ 10 ] <Trace> InterpreterSelectQuery: WithMergeableState -> Complete 2018.02.14 13:59:54.497886 [ 10 ] <Debug> executeQuery: Query pipeline: Expression Expression MergingAggregated Union Materializing ParallelAggregating Expression × 8 MergeTreeThread Remote 2018.02.14 13:59:54.498003 [ 10 ] <Trace> Aggregator: Reading blocks of partially aggregated data. 2018.02.14 13:59:54.498179 [ 11 ] <Trace> ParallelAggregatingBlockInputStream: Aggregating 2018.02.14 13:59:54.501508 [ 12 ] <Trace> Aggregator: Aggregation method: key16 2018.02.14 13:59:54.501695 [ 13 ] <Trace> Aggregator: Aggregation method: key16 2018.02.14 13:59:54.505799 [ 14 ] <Trace> Aggregator: Aggregation method: key16 2018.02.14 13:59:54.508333 [ 15 ] <Trace> Aggregator: Aggregation method: key16 2018.02.14 13:59:54.509333 [ 16 ] <Trace> Aggregator: Aggregation method: key16 2018.02.14 13:59:54.513334 [ 17 ] <Trace> Aggregator: Aggregation method: key16 2018.02.14 13:59:54.517307 [ 18 ] <Trace> Aggregator: Aggregation method: key16 2018.02.14 13:59:54.525435 [ 19 ] <Trace> Aggregator: Aggregation method: key16 2018.02.14 13:59:55.463203 [ 11 ] <Trace> ParallelAggregatingBlockInputStream: Aggregated. 61956904 to 361 rows (from 118.173 MiB) in 0.965 sec. (64207412.060 rows/sec., 122.466 MiB/sec.) 2018.02.14 13:59:55.463243 [ 11 ] <Trace> ParallelAggregatingBlockInputStream: Aggregated. 56036878 to 329 rows (from 106.882 MiB) in 0.965 sec. (58072348.423 rows/sec., 110.764 MiB/sec.) 2018.02.14 13:59:55.463258 [ 11 ] <Trace> ParallelAggregatingBlockInputStream: Aggregated. 54260619 to 324 rows (from 103.494 MiB) in 0.965 sec. (56231569.008 rows/sec., 107.253 MiB/sec.) 2018.02.14 13:59:55.463283 [ 11 ] <Trace> ParallelAggregatingBlockInputStream: Aggregated. 70576528 to 376 rows (from 134.614 MiB) in 0.965 sec. (73140133.262 rows/sec., 139.504 MiB/sec.) 2018.02.14 13:59:55.463298 [ 11 ] <Trace> ParallelAggregatingBlockInputStream: Aggregated. 57603855 to 361 rows (from 109.871 MiB) in 0.965 sec. (59696243.929 rows/sec., 113.862 MiB/sec.) 2018.02.14 13:59:55.463310 [ 11 ] <Trace> ParallelAggregatingBlockInputStream: Aggregated. 60996813 to 341 rows (from 116.342 MiB) in 0.965 sec. (63212446.940 rows/sec., 120.568 MiB/sec.) 2018.02.14 13:59:55.463323 [ 11 ] <Trace> ParallelAggregatingBlockInputStream: Aggregated. 49998323 to 329 rows (from 95.364 MiB) in 0.965 sec. (51814450.367 rows/sec., 98.828 MiB/sec.) 2018.02.14 13:59:55.463336 [ 11 ] <Trace> ParallelAggregatingBlockInputStream: Aggregated. 51574409 to 338 rows (from 98.370 MiB) in 0.965 sec. (53447785.745 rows/sec., 101.944 MiB/sec.) 2018.02.14 13:59:55.463350 [ 11 ] <Trace> ParallelAggregatingBlockInputStream: Total aggregated. 463004329 rows (from 883.111 MiB) in 0.965 sec. (479822389.734 rows/sec., 915.189 MiB/sec.) 2018.02.14 13:59:55.463360 [ 11 ] <Trace> Aggregator: Merging aggregated data

Вот такой лог. Если из каждой таблицы local_logs выбирать на сервере напрямую, то все ок

Mike
14.02.2018
14:06:03
Господа, есть вопрос. Делаем запрос в котором groupArray и много arrayFilter, данных несколько сот миллионов строчек, запрос работает около минуты. И вот что сранно, судя по htop какая-то часть хорошо распараллеливается потому что все ядра нагружены, но буквально на 1-5 сек, а потом видно что работает только один поток на одном ядре.

Собственно запрос по мотивам доклада @miptgirl про воронки

Страница 421 из 723