
Tatiana
19.09.2018
14:23:35

Dmitry
19.09.2018
14:23:52

Tatiana
19.09.2018
14:25:24

Michal
19.09.2018
14:25:58

Google

Michal
19.09.2018
14:27:05
В КХ если агрументы функции отсуствуют или = константе, то функция вычисляется один раз.
Поэтому rand умеет принимать агрументы :)

molo4ko
19.09.2018
14:34:08
Too large array size while reading from ZooKeeper
такое вываливается на старте и сервер останавливается
нужно ноду дропать руками?

Alexey
19.09.2018
14:38:41

Yaroslav
19.09.2018
14:39:17
Спасибо

Alexey
19.09.2018
14:42:10


molo4ko
19.09.2018
14:43:35
это вообще неиспользуемая таблица, в нее писали последний раз месяца два назад
непонятно, почему началось какое-то движение там
zk ls:
WatchedEvent state:SyncConnected type:None path:null
2018-09-19 14:42:43,714 [myid:] - WARN [main-SendThread(localhost:2181):ClientCnxn$SendThread@1168] - Session 0xc004dc897660047 for server localhost/127.0.0.1:2181, unexpected error, closing socket connection and attempting reconnect
java.io.IOException: Packet len18875288 is out of range!
at org.apache.zookeeper.ClientCnxnSocket.readLength(ClientCnxnSocket.java:113)
at org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:79)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:366)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1145)
WATCHER::
WatchedEvent state:Disconnected type:None path:null
Exception in thread "main" org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /clickhouse/tables/0/table_foo_replicated/log
at org.apache.zookeeper.KeeperException.create(KeeperException.java:102)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:54)
at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1541)
at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1569)
at org.apache.zookeeper.ZooKeeperMain.processZKCmd(ZooKeeperMain.java:732)
at org.apache.zookeeper.ZooKeeperMain.processCmd(ZooKeeperMain.java:600)
at org.apache.zookeeper.ZooKeeperMain.run(ZooKeeperMain.java:363)
at org.apache.zookeeper.ZooKeeperMain.main(ZooKeeperMain.java:291)


Alexey
19.09.2018
14:46:38
Вот это - проблемная нода: /clickhouse/tables/0/table_foo_replicated/log
У ней накопилось слишком много детей, потому что у таблицы table_foo_replicated есть заброшенная реплика.
> это вообще неиспользуемая таблица, в нее писали последний раз месяца два назад
Не могу ничего сказать. Лог обновляется только при записи в таблицу.

Denis
19.09.2018
14:48:40

Александр
19.09.2018
14:49:56

Google

Alexey
19.09.2018
14:50:26

Александр
19.09.2018
14:51:05

molo4ko
19.09.2018
14:52:40

Alexey
19.09.2018
14:52:51
а что значит “заброшенная”? если я просто выведу машину из кластера, этого недостаточно?
Да, раньше было недостаточно. Потому что, если сервер исчез - наверное он может подняться. И случай, когда сервер исчез навсегда, от этого не отличается. В ZooKeeper остаётся запись о реплике, и для реплики накапливаются логи.
Недавно сделали доработку на эту тему: https://github.com/yandex/ClickHouse/blob/master/CHANGELOG_RU.md#%D0%A3%D0%BB%D1%83%D1%87%D1%88%D0%B5%D0%BD%D0%B8%D1%8F-1
И теперь проблем с заброшенными репликами нет :)


Marsel
19.09.2018
15:04:56
Привет! Можете подсказать merge() и union слишком различаются по производительности? При union'е распараллеливается запрос или нет?

Alexey
19.09.2018
15:05:57
И тот и другой распараллеливаются.
Для маленького числа (несколько) таблиц разницы либо не будет, либо UNION ALL будет быстрее. Для большого количества таблиц лучше merge.

Marsel
19.09.2018
15:06:42
Спасибо!

Светлана
19.09.2018
15:10:09

Dmitry
19.09.2018
15:34:20
Кто-нибудь может подсказать, когда добавят табличную функцию MySQL ?
Для SELECTа из MySQL

Александр
19.09.2018
15:46:08

Dmitry
19.09.2018
15:46:39

Александр
19.09.2018
15:46:58

Dmitry
19.09.2018
15:47:22
У нас относительно свежий КХ (18.10), в нем нет её
Не хотелось бы обновляться просто так

papa
19.09.2018
15:49:02
есть табличная функция mysql, есть engine mysql

Tima
19.09.2018
15:49:21
У нас относительно свежий КХ (18.10), в нем нет её
Уточните чего у вас нет? Уже давно естсь такое
CREATE TABLE users ( _id String, username Strin) ENGINE = MySQL('localhost:3306', 'admin_stat', 'users', 'root', '')
И делать селекты из users как из обычной КХ таблицы

Dmitry
19.09.2018
15:49:39
Табличной функции

Denis
19.09.2018
15:51:23
Релиз ClickHouse 1.1.54337, 2018-01-18
Добавлены табличные функции mysql и odbc и соответствующие движки таблиц MySQL, ODBC для обращения к удалённым базам данных. Функциональность в состоянии "бета".
select * from system.table_functions where lower(name) like '%mysql%'

Google

Dmitry
19.09.2018
15:52:09
О, спасибо. Я смотрел в system.functions

Alexey
19.09.2018
16:02:25

Dmitry
19.09.2018
16:14:04
Ок, тогда такой вопрос. Использую табличную функцию mysql и получаю
SELECT *
FROM mysql('url:port', 'dbname', 'tablename', 'user', 'password')
Received exception from server (version 18.10.54405):
Code: 90. DB::Exception: Received from URL, IP DB::Exception: Empty list of columns passed.
0 rows in set. Elapsed: 0.080 sec.
Что за лист колонок? В доках https://clickhouse.yandex/docs/ru/single/#mysql_1 про это ничего не сказано.

Иван
19.09.2018
16:24:39
Всем привет, появилась проблема при запросах с табличной функцией odbc
Code: 33, e.displayText() = DB::Exception: Cannot read all data. Bytes read: 239145. Bytes expected: 67905586., e.what() = DB::Exception
Пробывал на MSSQL, PostgreSQL. Вроде началось после 18.12.17, никто не сталкивался?

Slava
19.09.2018
16:26:55
всем, привет. Сталкивались ли вы с проблемами таймаутов в запросах? Делаю запрос из нативного клиента и он выполняется за 560+ секунд
тоже самое из питона валится по таймауту, хотя они выставлены в корректные значения

Edya
19.09.2018
16:47:34
Коллеги, подскажите, как правильно, задать последовательность ключей при создании MergeTree.
Есть три потенциальные колонки для ключа со следующими кардиналитити (кол-во уникальных значений/ общее кол-во строк):
col1 - 0.001
col2 - 0.005
col3 - 0.010
Как правильнее будет сделать для большинства кейсов (в запросах могут присутсвовать все ключи или только некоторые с равной вероятностью).
1. (col1, col2, col3) так?
2. (col3, col2, col1) или так?

molo4ko
19.09.2018
16:48:56
как правильно оживлять таблицы, для которых пропали данные в зк?

Рулон
19.09.2018
17:12:50
А по перфомансу string и fixed string сильно разные?
И еще e num)

Slava
19.09.2018
17:21:32

Alexander
19.09.2018
18:07:58

Иван
19.09.2018
18:11:37
select id from odbc('DSN=mssql;UID=xxx;PWD=yyy;', orders) заметил что если писать select * то запрос работает

Alexander
19.09.2018
18:14:46
А если попробовать не табличную функцию, а создать таблицу с таким движком?

Иван
19.09.2018
18:16:57
С каким движком?

Michal
19.09.2018
18:22:00

Alexander
19.09.2018
18:22:31
ODBC, такой есть, параметры как у табличной функции. Создаётся через create table, в конце ENGINE = ODBC(...)

Иван
19.09.2018
18:22:39
Вообщем сломались запросы с явным указанием колонок, и обмануть с помощью подзапроса тоже не получается select id from (select * from odbc(...))

Google

Alexander
19.09.2018
18:28:29
Да, так и есть. В любом случае проверю табличную функцию.

Michal
19.09.2018
18:30:23

Edya
19.09.2018
18:31:21
Спасибо

Michal
19.09.2018
18:35:00
Спасибо
Тут в документации есть про выбор PK: https://clickhouse.yandex/docs/ru/operations/table_engines/mergetree/#_5

Evgeniy
19.09.2018
18:35:25
А уже появилась возможность создавать пользовательские кастомные функции (udf user define function) ?
Или весь странный кастом выносить в апп слой, например если нужна алгебра на OpenCl GPU

Иван
19.09.2018
18:40:01

Alexander
19.09.2018
18:41:35
Ок

Michal
19.09.2018
18:41:48

Алексей
19.09.2018
19:07:41

Michal
19.09.2018
19:10:03

Алексей
19.09.2018
19:11:37

Michal
19.09.2018
19:22:16

Алексей
19.09.2018
19:22:34

Alexander
19.09.2018
20:40:29

Alexandr
19.09.2018
21:19:26
Мы недавно начали использовать версию 18.14.12 вместо 1.1.54388 на 1/3 кластера и заметили увеличенное количество ошибок вида
Memory limit (total) exceeded: would use 30.00 GiB (attempt to allocate chunk of 2097152 bytes), maximum: 30.00 GiB
когда мы вставляем в ClickHouse
Подскажите пожалуйста, в новой версии или в предыдущей - могло ли измениться значительно потребление памяти или другая причина почему мы ловим такие ошибки?
Ошибки видны только на 1/3 кластера где новая версия, старые 2/3 кластера нету таких ошибок
@milovidov_an @kochetovnicolai

molo4ko
19.09.2018
21:20:15
а у этого на текуший момент какой статус?
https://github.com/yandex/ClickHouse/issues/520
вот этот совет отсюда (https://groups.google.com/forum/#!topic/clickhouse/uq9891JyV7M) все еще актуален? кх 12.14
Write <background_pool_size>4</background_pool_size> at /profiles/default in users.xml file and restart the server.
что-то сегодня у меня одни сплошные проблемы, и я все транслирую сюда)

Alexey
19.09.2018
22:09:32

Alexandr
19.09.2018
22:10:26
какой лучший способ посмотреть исторически сколько запросов выполнялось? возможно ли через query_log?

Alexey
19.09.2018
22:12:45

Google

Alexey
19.09.2018
22:13:18

Alexandr
19.09.2018
22:13:27
The allocator has been replaced: jemalloc is now used instead of tcmalloc. In some scenarios, this increases speed up to 20%. However, there are queries that have slowed by up to 20%. Memory consumption has been reduced by approximately 10% in some scenarios, with improved stability. With highly competitive loads, CPU usage in userspace and in system shows just a slight increase. #2773
Могло ли это повлиять отрицательно на размер потребляемой памяти?
разный аллокатор согласно system.build_options


Alexey
19.09.2018
22:15:17
The allocator has been replaced: jemalloc is now used instead of tcmalloc. In some scenarios, this increases speed up to 20%. However, there are queries that have slowed by up to 20%. Memory consumption has been reduced by approximately 10% in some scenarios, with improved stability. With highly competitive loads, CPU usage in userspace and in system shows just a slight increase. #2773
Могло ли это повлиять отрицательно на размер потребляемой памяти?
Это не может повлиять на величину отслеживаемой потребляемой памяти, так как она не зависит от аллокатора. Может повлиять на RSS, который содержит также куски памяти, которые алокатор кэширует, а не отдаёт системе (оставляет в "куче"). В остальном, jemalloc чуть-чуть менее прожорлив, чем tcmalloc.

Alexandr
19.09.2018
22:16:39
понятно, спасибо
буду благодарен за запрос как посмотреть количество одновременно выполняющихся запросов хронологически

Alexey
19.09.2018
22:16:41
select query_start_time + arrayJoin(range(toUInt64(ceil(query_duration_ms / 1000)))) AS time, count() FROM system.query_log WHERE event_time >= '2015-07-31 11:14:00' AND event_time < '2015-07-31 11:16:00' AND event_date = '2015-07-31' AND type IN (2, 4) GROUP BY time ORDER BY time

molo4ko
19.09.2018
22:18:49
причем они (оффсеты) повторяются периодически
и background_pool_size выставил в 4, ничего не поменялось

Alexey
19.09.2018
22:22:18

Alexandr
19.09.2018
22:22:32
@milovidov_an в среднем новая версия имеет меньшее количество выполняющихся запросов чем старая, процентов так на 20%
но это не совсем объясняет как оно негативно влияет на ту ошибку про память

Alexey
19.09.2018
22:23:36


molo4ko
19.09.2018
22:28:28
Я не нашёл вашего предыдущего сообщения с описанием ошибки. А в каком контексте это возникает?
Посмотрел логи повнимательнее - последовательность примерно такая:
// это все в одном треде логируется
(MergerMutator): Merging 8 parts: from 20180919_20180919_432419_432419_0 to 20180918_20180919_432426_432426_0 into tmp_merge_20180918_20180919_432419_432426_1
(MergerMutator): Selected MergeAlgorithm: Horizontal
(MergerMutator): Merge sorted 288 rows
(Data): Undoing transaction. Removing parts: 20180918_20180919_432419_432426_1
(StorageReplicatedMergeTree): DB::StorageReplicatedMergeTree::queueTask()::<lambda(DB::StorageReplicatedMergeTree::LogEntryPtr&)>: Code: 999, e.displayText() = Coordination::Exception: Transaction failed (No node): Op #4, path: /clickhouse/tables/1/table_replicated/replicas/node2/parts/20180918_20180919_432419_432426_1, e.what() = Coordination::Exception
// дальше такая ошибка из другого треда
InterserverIOHTTPHandler: Code: 24, e.displayText() = DB::Exception: Cannot write to ostream at offset 4032160
и так по кругу
оффсеты повторяются время от времени, как и имена src/dest кусков для мержа
зукипер?


Alexandr
19.09.2018
22:31:48
@milovidov_an потребление памяти запросами не выглядит так что доходит до 30 GiB, всего лишь 7 GiB суммарно в течении интервала
а что за проблема с неправильным подсчетом памяти? есть детали / github issue

Alexey
19.09.2018
22:43:05
https://github.com/yandex/ClickHouse/issues/3143