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

Dmitry
13.02.2018
19:33:24

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

Alex
13.02.2018
19:38:03

Google

Kirill
13.02.2018
19:38:19

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

Kirill
13.02.2018
19:39:31

Alex
13.02.2018
19:41:04

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

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 :)

Tima
14.02.2018
07:45:55

Александр
14.02.2018
07:49:35

Tima
14.02.2018
07:50:55

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

Google

prll
14.02.2018
07:56:16
Проще отключить эти spec

Александр
14.02.2018
07:56:38


Tima
14.02.2018
07:57:35
Доброго времени суток.
Подскажите по докеру, если кто знимался,
как накрутить 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)
Очевидно что не успевает стартануть сервер. Напишите на баше цикл, который спит 5 секунду и пробует создать таблицу. И чтобы цикл повторялся, пока команда создания таблице не выполнится успешно


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

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

Tima
14.02.2018
07:59:33

Александр
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, но очень не хочется, чтобы этот популейт на каждой реплике собирался.
идея такая: запустить на одной реплике создание вьюхи с популейтом, а на остальных - без него.
вопрос: подтянутся ли данные в остальные реплики? или идея не сработает?
ну или так. что будет затратнее по ресурсам и времени: собрать популейт на реплике или отсинкать данные через репликацию?


Evgeny
14.02.2018
08:09:35
Доброго времени суток.
Подскажите по докеру, если кто знимался,
как накрутить 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)
в момент сборки образа нет доступа к сети

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
да

Kirill
14.02.2018
08:17:24

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 про воронки