
LeiDruid
07.05.2018
16:00:35

Yuran
07.05.2018
17:28:09
Странный скрипт у вас @kshvakov
https://github.com/ClickHouse-Ninja/clickhouse-partition-cleaner/blob/master/clickhouse-partition-cleaner — оно не начинается с #! и лично у меня в системе sh находится по адресу /bin/sh

Kirill
07.05.2018
17:54:09

Google

Yuran
07.05.2018
17:54:52
в macOS я замечал, что просто интерпрератор по умолчанию у исполняемых текстовых файлов это /bin/sh
на счёт linux я не уверен

Wolf
07.05.2018
17:55:02

prll
07.05.2018
17:55:29
/bin/sh работает почти везде

Yuran
07.05.2018
17:55:39

Wolf
07.05.2018
17:56:12
сегодня юзеры офигели с релиза, у меня по дефолту везде прописан интерпретатор python и на него назначен python3, а у юзеров нет ) и все в питоне2 не заработало у всех

Aleksey
07.05.2018
18:26:00
Привет! @milovidov_an @ztlpn скажите, пожалуйста, есть ли какие-нибудь прогнозы по https://github.com/yandex/ClickHouse/issues/2219? Из-за этого бага у нас провисла очень критичная функциональность и мы думаем что делать.

Mike
07.05.2018
21:00:29
А стоит ли в широкой разреженной таблице интов использовать null для пустых значений или лучше default -136661488 сделать и фильтровать постоянно?
(ноль — валидное возможное значение)

Alexey
07.05.2018
21:12:58


Aleksey
07.05.2018
22:08:26
Мы пока ещё не начали разбираться с этой задачей.
Как обойти проблему?
Вместо distributed_product_mode = 'local',
указывайте в подзапросах локальную таблицу явно.
Спасибо большое за ответ! Но что делать вот в такой ситуации?
SELECT
filed1,
[p0, p1]
FROM (
SELECT
field1,
minIf(field2, a = cityHash64('a') AND _table = 'table1') as p0,
minIf(field2, a = cityHash64('b') AND _table = 'table2') as p1
FROM distributed_over_merge_table
WHERE
field3 IN (cityHash64('a'), cityHash64('b'))
GROUP BY field1
HAVING
p0 != 0 AND
p1 != 0
ORDER BY p0 DESC, field1 ASC
LIMIT 100
SETTINGS distributed_group_by_no_merge = 1
)
ORDER BY p0 DESC, field1 ASC
LIMIT 100
выдает все ту же ошибку
DB::Exception: Different expressions with the same alias _table:
'table2' AS _table
and
'table1' AS _table

Google

Alex
08.05.2018
05:29:43
Всем доброго дня, подскажите, насколько безопасно использовать full outer join?
В документации о нем ни слова, но тем не менее он есть :)
Поиск навел на два issue, что его использование приводит к сегфолтам, одно из них старое и закрыто, второе совсем свежее и без ответа

Александр
08.05.2018
08:03:00
А кто-то может помочь с MySQL движком? Есть колонка с датой в MySQL, она nullable. При выборке в ch SELECT * FROM mysql_table where column is null возвращает пустой результат. При попытке отфильтровать по column = '0000-00-00 00:00:00'
Кто как с этим борется?

Руслан
08.05.2018
08:31:56
@kochetovnicolai Здравствуйте. Извините, не нашел в интернете ответа. Какой логин и пароль учетной записи для консоли tutorial_catboost_clickhouse VirtualBox ?

Nikolai
08.05.2018
08:32:52
catboost. и пароль тоже

Руслан
08.05.2018
08:33:00
Спасибо, Николай.

Daniel
08.05.2018
08:41:29
На сервере с 128G RAM имеет ли смысл не дожидаться OOM-ов и сразу запускать сервис под numactl interleave? У кого так работает? Хорошо ли?

Wolf
08.05.2018
08:44:44
А с чего там должны быть оомы ?
В целом если не делать странные вещи то кх просто идеально работает с памятью, утечки памяти в расчет не беру

Daniel
08.05.2018
08:48:35

Sergei
08.05.2018
09:33:58
Народ, как лучше шардировать данные ? Так что бы данные одного запроса на селект были на одном сервере , или лучше на разных ?

Aleksandr
08.05.2018
09:37:41
лучше что бы данные были на разных серверах, тогда селект разобьется на все сервера с данными и выполнится быстрее

Sergei
08.05.2018
09:41:36
Если запрос один, то да. А если предположить что пареллельно испольняются дургие запросы, которые затрагивают разные шарды?
В общем вот ответ на мой вопрос "Беспокоиться о схеме шардирования имеет смысл в следующих случаях: - используются запросы, требующие соединение данных (IN, JOIN) по определённому ключу - тогда если данные шардированы по этому ключу, то можно использовать локальные IN, JOIN вместо GLOBAL IN, GLOBAL JOIN, что кардинально более эффективно. - используется большое количество серверов (сотни и больше) и большое количество маленьких запросов (запросы отдельных клиентов - сайтов, рекламодателей, партнёров) - тогда, для того, чтобы маленькие запросы не затрагивали весь кластер, имеет смысл располагать данные одного клиента на одном шарде," , мб полезно кому будет


Michal
08.05.2018
10:17:19
Привет, а округлением таймингов в мс (чтоб лучше жались) кто-то занимался? Там обычно куча совершенно космических цифр после 30 сек (можно их все в одну кучу свалить при округлении), после 10 сек - достаточно секундной точности, и чем ближе к нулю - тем точнее. Что-то типа quantileTiming только для округления при записи, а не для аггрегации.
Есть roundDuration, но он для секунд, и есть roundToExp2, но он слишком быстро теряет точность.

Alexander
08.05.2018
11:15:10
Всем привет. Такой вопрос - допустим, есть бэкап таблиц с кучи серверов, сделанный с помощью freeze partition. Допустим, нужно развернуть бэкапы на гораздо меньшем количестве машин (аварийная ситуация). Будет ли иметь значение, куда и как аттачить партиции? По идее при чтении distributed же будет собирать инфу со всех серверов?

Nikolai
08.05.2018
11:40:50

Sergei
08.05.2018
11:59:57
Кстати, а можно атачить партиции к distributed таблице ? В этом случае они должны разшардиться по новой схеме.

Александр
08.05.2018
12:00:58
Доброго времени суток, где можно посмотреть насколько успешно выполнение целенй на из roadmap на Q2 2018 ? В частности интересует "Protobuf and Parquet input and output formats."
Вижу только открытую таску
https://github.com/yandex/ClickHouse/issues/1342

Google

Nikolai
08.05.2018
12:05:09

Wolf
08.05.2018
12:07:50

Nikolai
08.05.2018
12:08:41

Александр
08.05.2018
12:11:24

Sergei
08.05.2018
12:11:37

Wolf
08.05.2018
12:12:15

Sergei
08.05.2018
12:13:27

Wolf
08.05.2018
12:13:57
ну просто инсерт сделайте в нее , без лишних головников , ну или сделайте решардинг

Nikolai
08.05.2018
12:17:15

Александр
08.05.2018
12:17:37

Aleksandr
08.05.2018
12:45:01
подскажите плз, есть столбец с разными значениями (например 1, 2, 3, 4), как составить запрос чтобы получить количество записей для каждого из значений (еще лучше сразу процент)?

Wolf
08.05.2018
12:46:13
count group by ?

Ru!
08.05.2018
12:46:16
select count(field_name) from ... group by field_name ?

Tima
08.05.2018
12:47:16
SELECT i, COUNT(*) FROM (SELECT arrayJoin([1,2,3,4, 2]) AS i) GROUP BY i

Aleksandr
08.05.2018
12:50:55
а можно как-то одним запросом и общим числом записей?

Tima
08.05.2018
12:54:26

Vasily
08.05.2018
12:59:29
Здравствуйте, подскажите, пожалуйста, можно ли как-то использовать дату/время clickhouse в разных часовых поясах?
Например, у меня сейчас данные залиты в utc, а хочется выбоку по Самаре, сейчас сделал выборку запросом:
SELECT
toString(event_time, 'Europe/Samara') AS time,
cutQueryString(url) AS url
FROM events
WHERE (toDate(event_time, 'Europe/Samara') = '2018-05-07') AND (utm_source = 'vk') AND (utm_campaign = 'ol_vk_client_pokrivalo')
ORDER BY time ASC
но так сканируется таблица целиком, и это понятно, а хотелось бы чтобы с использованием индексов по дате


Tima
08.05.2018
13:03:38
Здравствуйте, подскажите, пожалуйста, можно ли как-то использовать дату/время clickhouse в разных часовых поясах?
Например, у меня сейчас данные залиты в utc, а хочется выбоку по Самаре, сейчас сделал выборку запросом:
SELECT
toString(event_time, 'Europe/Samara') AS time,
cutQueryString(url) AS url
FROM events
WHERE (toDate(event_time, 'Europe/Samara') = '2018-05-07') AND (utm_source = 'vk') AND (utm_campaign = 'ol_vk_client_pokrivalo')
ORDER BY time ASC
но так сканируется таблица целиком, и это понятно, а хотелось бы чтобы с использованием индексов по дате
Зависит от периода партиционирования (покажите запрос создания таблицы). Попробуйте так
SELECT
toString(event_time, 'Europe/Samara') AS time,
cutQueryString(url) AS url
FROM events
WHERE (event_time > '2018-05-06 00:00:00' AND event_time < '2018-05-08 00:00:00') AND (toDate(event_time, 'Europe/Samara') = '2018-05-07') AND (utm_source = 'vk') AND (utm_campaign = 'ol_vk_client_pokrivalo')
ORDER BY time ASC


Vasily
08.05.2018
13:05:07
CREATE TABLE events (
event_date Date,
event_time DateTime,
event_type Enum8('VIEWS' = 1),
client_id Int32,
.....
) engine=MergeTree(event_date, (client_id, user_uid, event_type), 8192)
Понятно условие с перекрытием, ((event_date > '2018-05-06') AND (event_date < '2018-05-08')), вот так в моем случае работает, думал, может есть какая-то еще возможность.

Google

Vasily
08.05.2018
13:09:22
спасибо!

Alexey
08.05.2018
13:27:32
Салют!
Вопрос по Kafka Engine.
Если пришло сообщние которое движок не может распарсить как можно заставить его пропустить это сообщение?
А то похоже вся обработка топика останавливается на этом.
Использую формат 'JSONEachRow' и приходит битый json

Anton
08.05.2018
13:33:56
Здравствуйте.
Не подскажете, почему клиент может не реагировать на опцию connect_timeout?
time clickhouse-client -q "select dummy from system.one;" —connect_timeout 1 -h 8.8.8.8
Code: 209. DB::NetException: Timeout: connect timed out: 8.8.8.8:9000: (8.8.8.8:9000)
real 0m10.021s
user 0m0.010s
sys 0m0.000

Tomazov
08.05.2018
13:42:46
Добрый день.
хочу для теста на PHP установить расширение с Google CityHash нашел вот такой код https://github.com/AlekseyEf/PHP-CityHash-Extension
сравнил исходник с вашим файлом https://github.com/yandex/ClickHouse/tree/master/contrib/libcityhash/src
и внес изменения https://github.com/tomazov/PHP-CityHash-Extension
после установки проверяю,
есть такие поля
"2,20790,1358,2,0,2018-08-20,6,1,0,0,368451,12518734"
CH сгенерировал = 2731959323551623382
пытаюсь воспроизвести в PHP получаю = 2acfabd2dad7f097
переводу из hexdec() = 3084873191875145879,
как мне воссоздать ключ как в CH?
каким символом вы разделяете поля?

Tima
08.05.2018
13:49:40

Alexey
08.05.2018
14:00:55
А есть возможность игнорировать ошибки парсинга? В документации ничего не нашел про это.

Tima
08.05.2018
14:02:08
При загрузке данных с файла есть такая опция у clickhouse-client, через кафку - не видел

Oleg Bazdyrev
08.05.2018
14:22:56
Привет
А как бороться с багом, что при inner join'е у второй таблицы зачем-то добавляется неймспейс default?

Stas
08.05.2018
14:25:19
А нет ли какой удобной утилиты для работы с CH по http? что бы по удобности как родной бинарный клиент

Andrey
08.05.2018
14:33:24

Stas
08.05.2018
14:33:48

Vasily
08.05.2018
14:35:30

Stas
08.05.2018
14:35:52
Tabix есть
я знаю, я не зря именно CLI спрашиваю...

Konstantin
08.05.2018
14:36:19
а в чем тогда сакральный смысл такого решения?

Andrey
08.05.2018
14:37:52
я про CLI утилиту ...
А зачем CLI именно поверх http? Чем вариант с удалённым подключением с помощью родного clickhouse-client не подходит?

Stas
08.05.2018
14:38:30
т.е клиенты должны ходить по LDAP и обслуживает их nginx

Tatiana
08.05.2018
14:54:26


Andrey
08.05.2018
15:02:35
Добрый день!
Есть вот такой пример https://github.com/count0ru/k8s-clickhouse-v2/tree/master/build_image
4 инстанса, 2 шарда у которого по одной реплике.
Запросы на вставку/чтение данных прилетают на любой инстанс.
Подскажите, пожалуйста, как правильно создать таблицы под такую схему?

Google

Kirill
08.05.2018
15:08:53

Sergei
08.05.2018
15:12:56
internal_replication надо в true выставить, раз движки Replcated*

Kirill
08.05.2018
15:13:44

Andrey
08.05.2018
15:16:39
Спасибо, пробуем!

Sergei
08.05.2018
15:19:17
> Если не писать в distributed то не обязательно
Да, но скорее будут писать, а если не надо писать, то и ключ шардирования стоит опустить

Andrey
08.05.2018
15:22:18
Почему его стоит опустить?

Sergei
08.05.2018
15:27:00
Что бы не столкнуться с непредвиденным результатом если вдруг запишите, а internal_replication false
У каждого шарда в конфигурационном файле может быть указан параметр internal_replication.
Если он выставлен в true, то для записи будет выбираться первая живая реплика и данные будут писаться на неё. Этот вариант следует использовать, если Distributed таблица "смотрит" на реплицируемые таблицы. То есть, если таблица, в которую будут записаны данные, будет сама заниматься их репликацией.
Если он выставлен в false (по умолчанию), то данные будут записываться на все реплики. По сути, это означает, что Distributed таблица занимается репликацией данных самостоятельно. Это хуже, чем использование реплицируемых таблиц, так как не контролируется консистентность реплик, и они со временем будут содержать немного разные данные.


Andrey
08.05.2018
16:30:05
Спасибо. Но я же правильно понимаю что для ускорения поиска логично использовать несколько реплик одного шарда на разных машинах?

Slach
08.05.2018
16:32:01

Andrey
08.05.2018
16:32:52
А для ускорения? Если не ошибаюсь, он может параллелить запросы?

Wolf
08.05.2018
16:34:33

Andrey
08.05.2018
16:35:15
Ок, значит будем дорабатывать текущий вариант с двумя шардами. Спасибо!