
Alexander
17.02.2017
14:14:10
О, спасибо, Алексей!

Konstantin
17.02.2017
14:51:01
товарищи, а почему format TSVWithNames и CSVWithNames могут выдавать файл без заголовков?

Sergey
17.02.2017
15:00:52
Коллеги, а есть отдельный пункт где-нибудь про то, почему не все строки могут вставляться?
Батч говорит, что вставляет по 500к строк, а в БД их вставляется по 100-200к

Google

Igor
17.02.2017
15:10:39

Kirill
17.02.2017
15:16:24
ch не сможет распоковать только половину "строк", там в блоке данных колонка за колонкой идут (в батче), так что причину нужно искать до ch

Igor
17.02.2017
15:16:40
поэтому либо батч нагло врет, либо прокся где-нибудь между батчем и кх режет
ну, либо это бага в КХ :) очень большая и грустная

Sergey
17.02.2017
15:20:18
Это странно, т.к. в 2 другие таблицы этот же батч успешно пишет, поэтому и возник вопрос. Попробую поискать причины этого поведения

f1yegor
18.02.2017
10:26:08
@maxlapshin ^
но в целом вроде такой же подход как у тебя

Maksim
18.02.2017
15:32:49
Спасибо

f1yegor
19.02.2017
09:22:46
@milovidov_an а сейчас есть возможность узнать сколько занимает индекс для различных таблиц в памяти?
select * from system.parts limit
primary_key_bytes_in_memory: 310
primary_key_bytes_in_memory_allocated: 74048

Google

f1yegor
19.02.2017
09:23:05
правильно?
select database, table, sum(primary_key_bytes_in_memory), sum(primary_key_bytes_in_memory_allocated) from system.parts group by database, table;

Dmitry
19.02.2017
10:52:53
не подскажите, нет ли какой функции как dictGetT('dict_name', 'attr_name', id), только мне нужно вытащить сразу несколько имен, т.е. не один id, а сразу по списку?
или можно как-то делать запрос к словарю, вроде select name from dict_name where id in (1,2,3)

papa
19.02.2017
16:07:41
arrayMap(k->getDict(..k), [1,2,3])

Dmitry
19.02.2017
16:09:14
а с точки зрения производительности это нормально?

Igor
19.02.2017
16:27:28
словарь один фиг в оперативке хранится

Dmitry
19.02.2017
16:47:16
хорошо, спасибо

papa
19.02.2017
17:22:29

Dmitry
19.02.2017
17:22:52
спасибо

Dmitry
20.02.2017
01:02:18
Нас 400!

Shine
20.02.2017
01:02:47
это надо отметить
выкаткой апдейтов и делитов )

Олег
20.02.2017
05:11:53
Доброе утро. Читаю я тут документацию по AggregatingMergeTree, да по ReplacingMergeTree и думаю: то ли лыжи не едут…
Написано, что оба дерева не доводят своё дело до конца: для оптимизации пообъединяют данные, но когда-нибудь потом, пока держите вот недособранные.
Правильно я понимаю, что предлагаемый способ работы с этим — создавать цепочки view, первая — materialized, работающая на {Aggregating,Replacing}MergeTree, вторая — не materialized, берущая данные из первой и догрупировывающая как следует?

Alexander
20.02.2017
07:32:26
Второе вью для Aggregated не имеет смысла. Все равно же считаются суммы какие-то, то есть в конечном запросе есть группировка
Для Replacing -- зависит от того, что потом дальше с ним делать

Алина
20.02.2017
09:45:18
доброе утро
подскажите, как писать поле Date при использовании формата вставки JSONEachRow
пример:
create table testone.table_date (
s String,
d Date
) ENGINE = Memory;
insert into testone.table_date format JSONEachRow { "d": 1243567543, "s": "hello"}
ошибка: Code: 27, e.displayText() = DB::Exception: Cannot parse input: expected " before: 1243567543, "s": "hello"}\n: (at row 1), e.what() = DB::Exception

Igor
20.02.2017
09:47:38
"2017-01-01" например


Геннадий
20.02.2017
09:47:50
Здравсвуйте, а не подскажете где можно посмотреть почему clickhouse-server не стартует? в stderr ничего нет, в clickhouse-server.err.log тоже, systemctl пишет
● clickhouse-server.service - LSB: Yandex clickhouse-server daemon
Loaded: loaded (/etc/init.d/clickhouse-server; bad; vendor preset: enabled)
Active: active (exited) since Mon 2017-02-20 04:45:48 EST; 1min 50s ago
Docs: man:systemd-sysv-generator(8)
Process: 32032 ExecStop=/etc/init.d/clickhouse-server stop (code=exited, status=0/SUCCESS)
Process: 32048 ExecStart=/etc/init.d/clickhouse-server start (code=exited, status=0/SUCCESS)
Feb 20 04:45:47 clickhouse1 su[32088]: pam_unix(su:session): session opened for user clickhouse by (uid=0)
Feb 20 04:45:48 clickhouse1 su[32105]: Successful su for clickhouse by root
Feb 20 04:45:48 clickhouse1 su[32105]: + ??? root:clickhouse
Feb 20 04:45:48 clickhouse1 su[32105]: pam_unix(su:session): session opened for user clickhouse by (uid=0)
Feb 20 04:45:48 clickhouse1 su[32117]: Successful su for clickhouse by root
Feb 20 04:45:48 clickhouse1 su[32117]: + ??? root:clickhouse
Feb 20 04:45:48 clickhouse1 su[32117]: pam_unix(su:session): session opened for user clickhouse by (uid=0)
Feb 20 04:45:48 clickhouse1 clickhouse-server[32048]: Start clickhouse-server service: DONE
Feb 20 04:45:48 clickhouse1 systemd[1]: Started LSB: Yandex clickhouse-server daemon.
Feb 20 04:46:11 clickhouse1 systemd[1]: Started LSB: Yandex clickhouse-server daemon.


Igor
20.02.2017
09:47:52
Date - это не DateTIme, туда нельзя запихнуть unix timestamp )
впрочем, даже в случае с DateTime не уверен, что там unix timestamp бы сожрался. В таком случае формат "2017-02-20 12:34:56"

Google

Mikhail
20.02.2017
09:49:18

Igor
20.02.2017
09:49:45


Геннадий
20.02.2017
09:50:35
а он у меня всегда так работал

Igor
20.02.2017
09:51:00
там недавно был какой-то глобальный переезд с юзера metrika на юзера clickhouse, мб сломалось чего

Геннадий
20.02.2017
09:51:41
похоже я в конфиге ошибся, пробовал заинклюдить remote_servers
откатил, всё заработало
но больше то интересно получить какое то объяснение от CH
почему он не смог запуститься

Алина
20.02.2017
09:53:10

Геннадий
20.02.2017
11:07:51
а всё, видимо я плохо смотрел, в /var/log/clickhouse-server/clickhouse-server.err.log пишет ошибку запуска

f1yegor
20.02.2017
11:28:30
как можно оценить сколько записей хранится в одном index_granularity блоке? а то у меня запрос выгребает точно 10 записей, условие where совпадает с первичным ключем полностью, а Processed 54.91 thousand rows. я так подозреваю это 54к строчек в одном блоке?

Dmitry
20.02.2017
11:32:21
А данные вибираются из скольки партиций?

f1yegor
20.02.2017
11:32:50
двух
я сейчас проверил кейс с предаггрегацией данных, становится конечно быстрее, но <10ms не получается.

Evgeny
20.02.2017
12:54:09
"That way data are more compressable"

f1yegor
20.02.2017
12:56:20
ок, спасибо
в этой же строке правильно " Data is sorted by primary key. That way data is more compressable." видно я колебался)

Алексей
20.02.2017
16:01:01
поэксперементировал с словарями в монге. выяснилось что ошибка с
2017.02.20 15:58:51.040516 [ 6 ] <Error> HTTPHandler: Code: 293, e.displayText() = DB::Exception: Cannot authenticate in MongoDB: server returned response for 'authenticate' command that has field 'ok' missing or having wrong value, e.what() = DB::Exception, Stack trace:
возникает только начиная с 1.1.54127. на 1.1.54112 словари подгружаются. но сильно трейсят.

prll
20.02.2017
16:15:26

Google

Алексей
20.02.2017
16:15:35
глядя на https://github.com/yandex/ClickHouse/compare/v1.1.54112-stable...v1.1.54127-stable?diff=split&name=v1.1.54127-stable
думается мне что
https://github.com/yandex/ClickHouse/commit/599308aef03bdfcf49778845dc69d2403b0b08ea
могло быть не лучшей идей.
хотя я тот еще чтец с++

prll
20.02.2017
16:28:21

Алексей
20.02.2017
16:28:36
авторизация настроена только по SHA
user pass заполнены


prll
20.02.2017
22:09:23
Доброе утро. Читаю я тут документацию по AggregatingMergeTree, да по ReplacingMergeTree и думаю: то ли лыжи не едут…
Написано, что оба дерева не доводят своё дело до конца: для оптимизации пообъединяют данные, но когда-нибудь потом, пока держите вот недособранные.
Правильно я понимаю, что предлагаемый способ работы с этим — создавать цепочки view, первая — materialized, работающая на {Aggregating,Replacing}MergeTree, вторая — не materialized, берущая данные из первой и догрупировывающая как следует?
Да, именно так.
авторизация настроена только по SHA
этот тип авторизации еще не поддерживается.
есть два варианта - быстрый: завтра будет готов патч который позволит собрать clickhouse с внешней новой poco - и скорее всего заработает.
и долгий - с обновлением встроенной poco

Константин
21.02.2017
06:29:02
Добрый день! Скажите, имея сейчас один сервер КХ, можно ли на его основе сделать кластер не теряя данные? И можно ли по ходу работы масштабировать кластер?

Алина
21.02.2017
10:04:00
Добрый день
Подскажите, какого типа должно быть поле dateDetection, чтобы при
create table testone.test (
dateDetection Int64,
defaultDate Date DEFAULT toDate(dateDetection)
) ENGINE = Memory
в defaultDate записывались правильные данные, а не "0000-00-00"

Igor
21.02.2017
10:04:51
а что в dateDetection, unix timestamp?

Алина
21.02.2017
10:05:45
да

Igor
21.02.2017
10:07:01
не вижу проблем с Int64
хотя UInt32 выглядел бы логичнее, надолго хватить должно еще
:) create database testone
:) create table testone.test (
dateDetection Int64,
defaultDate Date DEFAULT toDate(dateDetection)
) ENGINE = Memory
;
:) insert into testone.test (dateDetection) VALUES (1487664736)
:) select * from testone.test
1487664736 2017-02-21
у вас получается 0000-00-00, возможно, потому что вы при вставке таки вставляете что-то в defaultDate?

Алина
21.02.2017
10:08:49
если вставлять так:
insert into testone.test format JSONEachRow {"dateDetection": "1487664735"}
, то всё становится плохо

Igor
21.02.2017
10:10:59
и правда
https://github.com/yandex/ClickHouse/issues/75
TSV/CSV при этом работают норм

Google

Mikhail
21.02.2017
10:15:25
всем привет. Делаю относительно сложный insert select с group by, который сильно не влезает в память, и не могу побороть DB::Exception: Memory limit (for query) exceeded.
На сервере 32GB памяти, только CH
основные настройки:
│ max_memory_usage │ 25000000000 │ 1 │
│ max_bytes_before_external_group_by │ 10000000000 │ 1 │
│ max_bytes_before_external_sort │ 10000000000 │ 1 │
│ max_threads │ 8 │ 1 │
вот, что накопал в логах перед ошибкой
2017.02.21 13:02:31.482351 [ 21 ] <Trace> ParallelAggregatingBlockInputStream: Will merge 1546 temporary files of size 76261.6 MiB co
mpressed, 291198 MiB uncompressed.
видимо, проблема на уровне мерджа получившегося результата. А как на это повлиять?
aggregation_memory_efficient_merge_threads - это в ту сторону?
Но у него нет описания нигде :(

Алина
21.02.2017
10:37:51

Mikhail
21.02.2017
10:40:51
aggregation_memory_efficient_merge_threads = 1, кажется, помогло. Но в группе оказалось описание этого параметра, и оно противоположное, что параметр нужен был для workaround какой-то баги, которая вроде исправлена. А на самом деле, получается, все это не совсем так.

Александр
21.02.2017
11:18:37
Подскажите, пожалуйста, как правильно добавить MATERIALIZED столбец на Distributed таблицу?
Если просто добавить MATERIALIZED столбец на все таблицы шарда, то он становится доступным на таблицах шарда, но недоступен на Distributed. При пересоздании таблицы Distributed as шард перестает работать вставка

Irina
21.02.2017
11:30:50
Mikhail Petrov, у меня аналогичная ошибка с памятью. Memory limit (for query). Сисетмные настройки изменяла аналогично, но запрос все равно не тянет. Подскажите как еще можно избежать этого исключения?

Mikhail
21.02.2017
11:32:48
я пока не понял, что делать. Проблема ясна, это процесс мерджа результатов внешней группировки.
aggregation_memory_efficient_merge_threads =1 исправляет ошибку, но кажется, что мердж становится в разы медленнее, и с ним я продолжать работу пока не стал.
попробовал уже max_memory_usage = 3 * max_bytes_before_external_group_by - все равно на стадии мерджа почти мгновенно память растет до лимита и запрос падает.