
Wolf
24.09.2018
12:45:33
Проверю на счёт места через хардлинки

Ivan
24.09.2018
13:03:44
Добрый день! Скажите, есть ли какие-нибудь рекомендации по выполнению бекапа КХ, кроме тех что указаны в документации. В частности, интересуют методы создания, и последующей передачи данных на удаленный сервер. Очень уж не хочется переносить терабайт по rsync. Спасибо.

Stanislav
24.09.2018
13:05:29
Его и так и так переносить...

Slava
24.09.2018
13:25:59
всем, привет, скажите есть ли какой-нибудь способ заставить сервера джонинить таблицу локально, чтобы не отправлять таблицу на доагрегацию на первую ноду?

Google

Slava
24.09.2018
13:26:20
то есть как-то разлить одну таблицу везде, чтобы на нодах была минимальная доагрегация

Yuriy
24.09.2018
13:31:02
Удивительно. Я пересоздал таблицу, указав явно PARTITION BY, какие поля суммировать и как сортировать:
ENGINE = SummingMergeTree(
(col1, col2...)
) PARTITION BY toYYYYMM(EventDate) Order BY (EventDate, EventTime, Account)
И внезапно, у меня всё заработало. SummingMergeTree начал суммировать. Неужели КХ как-то иначе партицирует данные по-умолчанию? Но нет же, в доках сказано: по месяцам. Я потом смотрел в system.partitions и видел, что у меня ровно один партишен - по месяцу. Может быть какой-то баг в 18.12?


Denis
24.09.2018
13:33:42
Удивительно. Я пересоздал таблицу, указав явно PARTITION BY, какие поля суммировать и как сортировать:
ENGINE = SummingMergeTree(
(col1, col2...)
) PARTITION BY toYYYYMM(EventDate) Order BY (EventDate, EventTime, Account)
И внезапно, у меня всё заработало. SummingMergeTree начал суммировать. Неужели КХ как-то иначе партицирует данные по-умолчанию? Но нет же, в доках сказано: по месяцам. Я потом смотрел в system.partitions и видел, что у меня ровно один партишен - по месяцу. Может быть какой-то баг в 18.12?
покажите show create table от старой и от новой таблиц, а то вы рассказываете чудеса, что core функциональность не работает.

Yuriy
24.09.2018
13:33:53
сейчас

Denis
24.09.2018
13:36:31

Slava
24.09.2018
13:37:24

Denis
24.09.2018
13:39:36
а ну кстати можно наверное join с табличной функцией remote сделать

Slava
24.09.2018
13:41:20

Denis
24.09.2018
13:42:22

Slava
24.09.2018
13:42:41

Denis
24.09.2018
13:43:13
ну тогда я бы сделал реплику на всех нодах

Google

Slava
24.09.2018
13:43:43

Denis
24.09.2018
13:46:37

Slava
24.09.2018
13:48:26

Mikhail
24.09.2018
13:53:58
Привет. Возможно ли в КХ создавать материализованные представления с удалённым (remote) источником данных?

Denis
24.09.2018
13:56:35

Mikhail
24.09.2018
13:57:22

Alexey
24.09.2018
13:58:09
Появилась текстовая расшифровка доклада "Разработчики остались неизвестны": https://habr.com/company/yandex/blog/423905/

Denis
24.09.2018
13:58:24
Спасибо
но правда можно сделать вот так, создать distributed которая смотрит на удаленные, и сделать MV to distributed

Kirill
24.09.2018
14:02:06
Приветы. Ребят, помогите понять как будет отпартиционирован вью если это ENGINE = ReplacingMergeTree PARTITION BY tuple()?
он не будет отпартиционирован вовсе?

Tatiana
24.09.2018
14:07:02

Kirill
24.09.2018
14:24:20
скажите, а CH может продолбать данные частично из батча, если пушить в него по 200 строк за раз в виде tsv?

Kirill
24.09.2018
14:24:39

Kirill
24.09.2018
14:25:07
т.е. либо он весь батч запишет, либо ничего?

Kirill
24.09.2018
14:28:46
не построчно

Yuriy
24.09.2018
14:35:18
Denny А вру. В пересозданной таблице тоже не работает. Оно заработало т.к. я в Order BY указал не все поля, увы. Указывая PARTIION BY, CH требует перечислить в энжине только поля для суммирования и в дополнение указать еще и ORDER BY, где я и ошибся.
Но всё же попытался задокументировать все свои шаги: https://gist.github.com/azzz/c2618fe6b62a782896cdb13edb45e7a3
Вот тут с юаем даже: https://monosnap.com/file/PkqMvtxrPldpRl2h4MREwUihjN8keQ
Вот три первых строки. Ну они же должны быть сгруппированы

Tatiana
24.09.2018
14:46:37

Vladimir
24.09.2018
14:46:54
Всем привет! Добавили в таблицу новые значения поля enum на всем кластере, сделали альтер на всех нодах, но все равно в логах кликхауса видим ошибки вида Type mismatch for column - и он говорит что Enum8 еще видит старый, хотя везде новый в таблицах в describe table. Такое кто-нибудь встречал? Нужно рестартить что ли зуукипер или сам кликхаус-сервер?

Google

Yuriy
24.09.2018
14:47:08
Tatiana Так у меня же вот:
) ENGINE = SummingMergeTree(
EventDate,
(EventTime, Node, Account, PullZone, Domain),
8192
)
т.е. нет там полей, да
но документация пишет, что будут смержены все числовые поля, не попадающие в ПК
и оно реально мержит. Но не все. Вот запущу OPTIMIZE FINAL и первые две сроки смержатся, будет новая с значением 21. А почему третья туда не сплюсуется - нипанятна

Denis
24.09.2018
14:55:16
Да, данные пишутся блоком
вот как на днях объяснил Алексей, атомарность только на партицию, поэтому если 100 строк из 200 будут в одну партицию то они могут быть записаны, а следующие 100 уже нет.

Дмитрий
24.09.2018
14:57:31
Всем привет еще раз, продублирую свое сообщение может кто ответит, столкнулся с неожиданной проблемой, cоздаю View ReplicatedMergeTree, и данные в ней и в таблице не совпадают. Может кто сталкивался? На что обратить внимание? В логах ничего подозрительного не заметил. Сам запрос:
CREATE MATERIALIZED VIEW test.test_view
ENGINE = ReplicatedMergeTree(
'/clickhouse/tables/{shard}/test_view', '{replica}',
event_date,
(user_id, event_date),
8192
) POPULATE AS

Vladimir
24.09.2018
15:01:38
всем привет, а не подскажете, в какую часть конфига добавлять native_insert_adapt_block_structure? не нашёл документации по этой настройке
https://github.com/yandex/ClickHouse/issues/2838

Kirill
24.09.2018
15:15:48

Alexey
24.09.2018
15:18:37
Подскажите пожалуйста,
Есть табличка:
клиент, номер заказа и дата заказа
На выходе нужно получить:
Клиент, массив с датами заказов

Mariya
24.09.2018
15:20:02

Tima
24.09.2018
15:20:26

Alexey
24.09.2018
15:20:44

Sergey
24.09.2018
16:07:04
Тому, кто посоветовал Redash, большое спасибо, - идеальная штука для того, чтобы делать Dashboards для менеджеров.


Arturs
24.09.2018
16:07:26
Всем привет, столкнулся со странным поведением вьюх.
Дано: Clickhouse Version: 18.12.17
users table (ReplacingMergeTree):
┌─name────────────────┬─type───────────────┬─default_type─┬─default_expression──────────┐
│ user_id │ UInt64 │ │ │
│ affiliation_id │ String │ │ │
│ email │ String │ │ │
│ full_name │ String │ │ │
│ role_id │ UInt64 │ │ │
│ role_name │ String │ │ │
│ responsible_user_id │ UInt64 │ │ │
│ organization_id │ UInt64 │ │ │
│ organization_name │ String │ │ │
│ country_id │ String │ │ │
│ status │ String │ │ │
│ group_ids │ String │ │ │
│ created_at │ DateTime │ │ │
│ updated_at │ DateTime │ │ │
│ deleted_at │ Nullable(DateTime) │ │ │
│ record_date │ Date │ │ │
│ email_id │ UInt64 │ MATERIALIZED │ sipHash64(lowerUTF8(email)) │
└─────────────────────┴────────────────────┴──────────────┴─────────────────────────────┘
Минимальная рафинированая вьюха
tmp_users_1 view:
CREATE VIEW IF NOT EXISTS
tmp_users_1
AS
SELECT
user_id AS user_id,
affiliation_id AS affiliation_id
FROM
users;
SELECT count() from tmp_users_1; # Реазультат есть, 100500
SELECT count() from tmp_users_1 where affiliation_id = 'nbcu' # работает, 100000
SELECT count() from tmp_users_1 where affiliation_id = 'some-random-string'; # возвращает 0, так и должно быть
SELECT count() from tmp_users_1 where affiliation_id = 'nbcu' # ВСЕ ПРОПАЛО, этот и все последующие запросы возвращают 0, похоже предыдущий запрос все портит
опс, форматирование таблицы слетело, простите


Tatiana
24.09.2018
16:19:44


Arturs
24.09.2018
16:20:59
Tatiana спасибо, попробую

Denis
24.09.2018
19:18:43

Yuriy
24.09.2018
19:28:57
@den_crane хммм. А может быть, кстати, да, блин. Не даром Update не умеет обновлять значения в полях под ПК. Может и CLEAR COLUMN значение-то и изменяет, но где-то в каком-то индексе не обновляет. Вот блин
хотя у этого чувачка вот работает как-то же https://github.com/kshvakov/ClickHouse-CPP-Meetup

Google

Yuriy
24.09.2018
19:30:28
О, так это же статья @kshvakov
@kshvakov а почему у тебя SummingMergeTree суммирует записи после CLEAR COLUMN, а у меня - нет? ?

Denis
24.09.2018
19:31:24
нет, не воспроизводится, что-то другое
drop table cctest
CREATE TABLE cctest(a UInt64 default c, b UInt64, c UInt64) ENGINE=SummingMergeTree partition by tuple() order by a;
insert into cctest values (99,1,0), (98,1,0);
select * from cctest final;
ALTER TABLE cctest CLEAR COLUMN a IN PARTITION tuple()
optimize table cctest partition tuple() final
select * from cctest

Yuriy
24.09.2018
19:32:58
хм. ?

Igor
24.09.2018
20:03:04
Есть пара вопросов по конфигурированию КХ вместе с docker swarm и zookeeper:
1) Это осмысленно делать?
2) Это возможно?

Denis
24.09.2018
20:22:12
вот так похоже воспроизводится
CREATE TABLE cctest(a UInt64 default c, v String, b UInt64, c UInt64) ENGINE=SummingMergeTree partition by tuple() order by (a,v);
insert into cctest values (99,'',1,0),(99,'v',1,0), (98,'',1,0), (98,'v',1,0) ;
select * from cctest final;
ALTER TABLE cctest CLEAR COLUMN a IN PARTITION tuple()
optimize table cctest partition tuple() final
select * from cctest
https://github.com/yandex/ClickHouse/issues/3207

Denis
24.09.2018
20:24:15

Igor
24.09.2018
20:24:45
ок. хорошо(

Denis
24.09.2018
20:26:18
а что вы хотели получить от сворма?

Kirill
24.09.2018
20:42:41
вот так похоже воспроизводится
CREATE TABLE cctest(a UInt64 default c, v String, b UInt64, c UInt64) ENGINE=SummingMergeTree partition by tuple() order by (a,v);
insert into cctest values (99,'',1,0),(99,'v',1,0), (98,'',1,0), (98,'v',1,0) ;
select * from cctest final;
ALTER TABLE cctest CLEAR COLUMN a IN PARTITION tuple()
optimize table cctest partition tuple() final
select * from cctest
https://github.com/yandex/ClickHouse/issues/3207
А если ORDER BY (v, a) - все ОК, над посмотреть почему так

Yuriy
25.09.2018
04:47:43

Wolf
25.09.2018
04:59:54

Igor
25.09.2018
05:15:30
И удобное скейлирование

Wolf
25.09.2018
05:24:09
ну если вы понимаете как сварм работает почему как говорится нет

Igor
25.09.2018
05:34:07
Вопрос в том, сильно ли это будет легче, чем без него? Как я понимаю, КХ в любом случае будет ждать конфиги с инфой о нодах для репликации и при добавлении новой ноды, конфиги надо будет переписать, что точно не свормом делать.

Wolf
25.09.2018
05:45:29
Эм а почему не свормом ? Для реплики конфиге не надо менять там по сути за это отвечает запись в зк

tufedtm
25.09.2018
06:26:12
запускаю ch-server и tabix в докере
в разных контейнера
создаю базу и таблицу (Log) в ней через tabix
volumes прокинут
файлы на хосте появляются
перезапускаю контейнер, файлы в контейнере появляются
но tabix не видит базу
так же и в обычном запросе по http (?query=...)
в чем может быть проблема?
clickhouse:
image: yandex/clickhouse-server
ports:
- 8123:8123
volumes:
- ${DATA_PATH_HOST}/clickhouse:${DATA_PATH_CH}
tabix:
image: spoonest/clickhouse-tabix-web-client
ports:
- 1234:80

Google

tufedtm
25.09.2018
06:28:13
create database qwe;
;;
create TABLE qwe.rty (
asd Int16
) engine = Log
;;
insert into rty VALUES (1)
;;
SELECT * from rty

Igor
25.09.2018
06:36:06

Wolf
25.09.2018
06:36:38
там нет никакой связи с конфигом зукипера это просто записть в зк , причем тут его конфиг ?

Alexey
25.09.2018
06:44:47
Подскажите пожалуйста - есть массив с датами, нужно рассчитать среднее время в днях между датами в массиве.

Ivan
25.09.2018
06:52:01

Alexey
25.09.2018
06:52:29

Алексей
25.09.2018
07:04:56
Доброго времени суток. У одного из наших клиентов, эксплуатирущего clickhouse возникала проблема с исчерпанием inode по причине большого колличества мелких файлов в базе. Как подобное можно предотвратить?

Ivan
25.09.2018
07:05:10
С соседними, они по возрастающей идут
WITH [toDate('2018-09-01'), toDate('2018-09-03'), today()] AS dates
SELECT
arrayDifference(arrayMap(x -> toUInt32(x), dates)) AS differences,
arrayReduce('avg', differences) AS avg
FORMAT TSV
[0,2,22] 8

Alexey
25.09.2018
07:07:07

Михаил
25.09.2018
07:08:03
Привет. А есть чат по logs api?

Ivan
25.09.2018
07:08:48

Konstantin
25.09.2018
07:10:48
Эффективнее сразу в базу стримить или накапливать в каком нибудь csv?