
Andrey
08.05.2018
16:39:24
У каждого шарда в конфигурационном файле может быть указан параметр internal_replication.
Если он выставлен в true, то для записи будет выбираться первая живая реплика и данные будут писаться на неё. Этот вариант следует использовать, если Distributed таблица "смотрит" на реплицируемые таблицы. То есть, если таблица, в которую будут записаны данные, будет сама заниматься их репликацией.
Если он выставлен в false (по умолчанию), то данные будут записываться на все реплики. По сути, это означает, что Distributed таблица занимается репликацией данных самостоятельно. Это хуже, чем использование реплицируемых таблиц, так как не контролируется консистентность реплик, и они со временем будут содержать немного разные данные.
Здравствуйте! Скажите, пожалуйста, а этот параметр имеет значение по умолчанию? То есть, если его явно не прописывать.

Sergei
08.05.2018
16:48:53

Andrey
08.05.2018
16:50:04
Спасибо?

Andrew
08.05.2018
19:19:42
подскажите, пожалуйста, по словарям внешним.
не работает внешний словарь:
Code: 85, e.displayText() = DB::Exception: Format JSON is not suitable for input,
json такой
[
{
"id": 1,
"name": "ya.ru"
}
]
в JSONEachRow все получилось, а вот какой json должне быть в словаре?
конфиг словаря https://gist.github.com/andrewrbe/9c4196322a309457fd971b87725d4e93

Google

Pavel
08.05.2018
19:47:28
а почему при подневных партициях в именах партишенов добавляются обратные слеши?
\'2018-05-07\' traffic
\'2018-05-07\' traffic
\'2018-05-07\' traffic
\'2018-05-07\' traffic
\'2018-05-07\' traffic

Alexey
08.05.2018
19:55:53
Format TSVRaw
Но это вопроса не отменяет :)

Alex
08.05.2018
20:28:43
Это ошибка (лишнее квотирование) - давно хотели исправить. У @kshvakov даже был PR с исправлением, но до мержа не довели.

Igor
08.05.2018
20:33:54
Сообщество, если тут есть пользователи phpClickHouse в новой версии будут сильные изменения в классах, из за моей изначальной ошибки в namespace - придется править ваши зависимости, мое сорри ((
Билд в packagist еще не собран
https://github.com/smi2/phpClickHouse#2018-05-09

Kirill
09.05.2018
04:43:23

Michal
09.05.2018
05:26:06

Andrew
09.05.2018
05:27:29
Ок, спасибо

Michal
09.05.2018
05:29:16
Сейчас вроде бы как всё достаточно последовательно. Только большинство форматов вывода (Pretty*, Vertical, TSV etc.) по умолчанию кавычки слешами прикрывает. Что не удобно при всяких системных запросах, типа SHOW CREATE TABLE или SELECT * FROM system.parts. Но если добавлять каждый раз FORMAT TSVRaw или FORMAT VerticalRaw то жить можно.

Paul
09.05.2018
08:44:20
Коллеги, а подскажите, пожалуйста, нормально ли что я при вставке в Distributed-таблицу вижу в show processlist пароль для пользователя, которым кликхаус ходит для записи в другие шарды, в открытом виде?

Google

Kirill
09.05.2018
08:44:45

Paul
09.05.2018
08:46:14
а именно тут:
client_name: ClickHouse Distributed_cluster_user:<password_here>@10%2E3%2E0%2E20:9000,cluster_user:<password_here>@10%2E3%2E0%2E195:9000
версия сервера - 1.1.54292

prll
09.05.2018
09:08:24
Исправлено в master

Michal
09.05.2018
09:19:07
Это стоит менять, другой вопрос как это сделать более аккуратно
Поэксперементировал немного. Я был уверен что при кастомовых ключах партиционирования - всегда используется синтаксис tuple (даже при единственном ключе). И в принципе вместо удаления кавычек можно было бы добавить скобки вокруг значения, тогда CAST работал бы без проблем. Но там похоже есть некоторая непоследовательность. Сейчас сделаю gist'a чтоб показать.

Paul
09.05.2018
09:23:19

Michal
09.05.2018
10:15:50

Paul
09.05.2018
10:18:15

Michal
09.05.2018
10:53:40

prll
09.05.2018
11:12:20

Paul
09.05.2018
12:07:54

Анатолий
09.05.2018
12:34:34
Посоны, подскажите ламеру. Как присосаться при помощи табикса к базе на самом же ПК (локалхост в адресе писать?) или подскажите где инфу найти.

Wolf
09.05.2018
12:35:04
ну да локалхост

Руслан
09.05.2018
17:16:48
Вечер добрый.
Nullable(Date) не инсертится через clickhouse-client, если формат CSV. Если переделать файл и запрос на формат Values, то инсертится.
Никто не сталкивался? Может быть, я что-то неверно делаю.
Записал пример сюда https://github.com/yandex/ClickHouse/issues/79#issuecomment-386027065

Michal
10.05.2018
04:52:32

Руслан
10.05.2018
04:53:53
Спасибо, Михаил!

Гаврилов
10.05.2018
05:15:52
а не подскажете нужен ли ссд кликхаусу?
есть 2 машинки 16 ядер и hdd или 8 ядер и ссд
оперативки примерно в 2 раза больше чем данных

Google

Гаврилов
10.05.2018
05:16:50
какая машинка быстрее будет работать?

Wolf
10.05.2018
05:18:37
Смотря какие запросы, если много читаете с диска то вероятно с ссд
Если много мат операций делаете то наверно с хдд

Bulat
10.05.2018
05:40:55

Kirill
10.05.2018
06:08:55
Сейчас накидал простое API для внешних словарей, можно его поднять и ходить из ClickHouse к словарям по HTTP (формат JSONEachRow). В API пул конектов (пока хардкод https://github.com/ClickHouse-Ninja/clickhouse-dictionary-api/blob/master/clickhouse-dictionary-api.go#L31 )
https://github.com/ClickHouse-Ninja/clickhouse-dictionary-api

Michal
10.05.2018
06:52:19

Kirill
10.05.2018
07:04:38

Michal
10.05.2018
07:26:00
Кстати сейчас в голову пришла забавная идея: как источник HTTP словаря можно использовать Clickhouse :D
Типа http://localhost:8123/?query=SELECT%20*%20FROM%20mysql(...)
Ну и форматы он все свои умеет быстро читать/писать :D
Кликхаус порой напоминает этакий конструктор ЛЕГО, в которым части иногда можно соединить каким-то неожиданным способом. :)

Alex
10.05.2018
07:34:33

LeiDruid
10.05.2018
07:42:26

Kirill
10.05.2018
07:49:23

Michal
10.05.2018
07:51:43
Теоретически можно попробовать в качестве этой прослойки обеспечивающей пул соединений использовать и сам кликхаус (он умеет читать данные из MySQL при помощи табличной функции), но через протокол HTTP. Что само по себе выглядит несколько забавной конструкцией.
как-то так.

Stas
10.05.2018
08:19:25
коллеги, а в последних версиях ch все еще не научился в подзапросы внутри вьюшек?

Oleksandr
10.05.2018
09:09:44
Добрый день.
Подскажите пожалуйста, как в ch сделать срез данных, не используя агрегатный функций
select toStartOfDay(date_time) AS grouped_time, AVG(close) from am_coll.buckets
where date_time >= toDateTime('2018-05-01 00:00:00') and date_time <= toDateTime('2018-05-05 00:00:00,')
group by grouped_time order by grouped_time
в этом случае я получу среднее значение close, а я хотел бы получить значение close на 00:00:00 в периоде дат например с 2018-05-01 на 2018-05-05.
с ch первый опыт, с timeSlots как-то сложно выходит...

Michal
10.05.2018
09:53:41

Google

Oleksandr
10.05.2018
09:56:00
за сутки есть очень много данных, мне нужен именно срез, а не AVG, MIN и.т.д.
чтобы каждый на день в 00:00:00 получить срез того, что есть.
фактически первый row каждого дня

Michal
10.05.2018
09:56:04
Тем временем у Кликхауса 4000 звездочек и 600 (без одного) форков ?

Oleksandr
10.05.2018
10:01:19
на mysql, это было бы примерно так
SELECT b.timestamp, b.close
FROM am_coll.buckets b
INNER JOIN (
SELECT MIN(timestamp) first_timestamp
FROM am_coll.buckets
GROUP BY DATE(timestamp)
) sub_b ON b.first_timestamp = b.timestamp)
WHERE b.timestamp >= '2018-05-01 00:00:00') AND b.timestamp <= '2018-05-01 00:00:00');

Michal
10.05.2018
10:02:04
Если хотите без группировки и агрегатных функций - то можно например так SELECT * FROM table WHERE timestamp IN ( select toDateTime( toDate('2018-05-01') + number ) from numbers(10) ). Только если в этой секунде не будет данных то ничего не получите, а если будет больше 1 строки - то получите больше.

Ivan
10.05.2018
10:02:43
Кто нибудь реализовал GDPR на кликхаусе?

Michal
10.05.2018
10:03:05
@lavi1555 , так не честно, в вашем примере есть группироки и агрегатные функции :P

Oleksandr
10.05.2018
10:03:44
за счет функций дат

Yuri
10.05.2018
10:04:29
select * from table order by date, num limit 1 by date

Michal
10.05.2018
10:04:30
select toDate(timestamp) date, argMin(close, timestamp) from table group by date

Alex
10.05.2018
10:04:32

Michal
10.05.2018
10:10:16
http://www.timqian.com/star-history/#yandex/ClickHouse

Vasily
10.05.2018
10:10:25
SELECT * FROM table WHERE my_microtime = (SELECT MIN(my_microtime) FROM table WHERE date = '2018-01-01') limit 1
Вот такой выход еще может быть подойдет

Oleksandr
10.05.2018
10:11:01
ща подкручу, сорян

Алексей
10.05.2018
10:19:12
господа а как правильно определять наличие sse на фре ?
пока лучший вариант
grep "SSE4.2" /var/run/dmesg.boot

Oleksandr
10.05.2018
10:32:33
select date_time,close
from am_coll.buckets
where (date_time) in (
select toDateTime(date)
from am_coll.buckets
where date >= toDate('2018-05-01 00:00:00') and date <= toDate('2018-05-05 00:00:00')
group by date
)
вот так :)

Google

Oleksandr
10.05.2018
10:33:16
на выходе будет так
2018-05-01 00:00:00 9250
2018-05-02 00:00:00 9066
2018-05-03 00:00:00 9216
2018-05-04 00:00:00 9741.5
2018-05-05 00:00:00 9683
всем спасибо

Анатолий
10.05.2018
10:38:01
*оффтоп
Как популизировать Tabix и ClickHouse среди подрастающих разработчиков? (94 - 99 годы, выход из демографической ямы. Мнение студента программиста, целевая аудитория.)
На портале GeekBrains есть недостаток в курсах по БД. Учитывая что все большее и большее количество студентов предпочитают самообразование вместо того чтобы ходить на пары, учитывая высокий недостаток высококвалифицированных кадров в IT сфере сделать курс по табиксу и по кликхаусу в принципе на портале было бы не плохо.
Все выше сказанное исключительно ИМХО.
P.S. Образование в РФ сейчас реально в жопе, товарищи. Особенно IT.

Oleksandr
10.05.2018
10:38:54
кроме табикса и консоли альтернатив нет совсем

Alex
10.05.2018
10:39:36

Oleksandr
10.05.2018
10:40:40
в датагрип появился плагин?
потому что не находит его в репозитории, а по дефолту такого нет

Гаврилов
10.05.2018
10:46:08
jdbc драйвер
и вперед

Oleksandr
10.05.2018
10:46:45
так да )