@clickhouse_ru

Страница 95 из 723
Виктор
23.03.2017
08:24:03
Вообще, при вставке особо много памяти использоваться не должно. Если падает только при вставке, не знаю. Лучше подождать ответ ребят из команды разработки.

Теоретически, max_insert_block_size

Dmitriy
23.03.2017
08:38:38
в config.xml указал такие параметры <uncompressed_cache_size>858993459</uncompressed_cache_size> <mark_cache_size>536870912</mark_cache_size> <max_insert_block_size>1000</max_insert_block_size> первые два - это дефолтные значение уменьшиные в 10 раз. последнее просто добавил в конфиг. его не было. На этом этапе СH все еще падает.

Vladislav
23.03.2017
09:14:43
я правильно понимаю, что для того, чтобы данные синхронизировались между репликами достаточно прописать их в конфиге <remote_servers> внутри шардов?

Google
Igor
23.03.2017
09:30:19
Для удаления дублей я создал новую таблицу, туда вставил данные через insert... select..., но дубликаты строк все равно остались( С чем это может быть связано?
primary key в кликхаусе не является уникальным, ничего не мешает иметь несколько записей с одним и тем же PK; а ReplacingMergeTree осуществляет схлопывание/реплейс не сразу. если хочется гарантированной дедупликации, можно изначально делать, например, INSERT INTO table_temp ..., где будут возможные дублированные данные, а потом делать INSERT INTO table SELECT * FROM table_temp WHERE id NOT IN (SELECT id FROM table). т.к. со временем данных в таблице table будет дохрена и SELECT id FROM table будет неистово жрать память, можно будет добавить фильтр, например, по дате, и вставлять кусками может, есть способ лучше

Алексей
23.03.2017
09:58:36
Всем привет! Восстанавливаем кликхаус после падения :) Может кто подскажет что делать с ошибкой Detaching broken part /opt/clickhouse//data/dbname/table/20170311_20170313_632164_640373_188 because it covers less than 2 parts. You need to resolve this manually

Pavel
23.03.2017
12:09:57
спамеры пади

Alexey
23.03.2017
15:25:29
Всем привет! Восстанавливаем кликхаус после падения :) Может кто подскажет что делать с ошибкой Detaching broken part /opt/clickhouse//data/dbname/table/20170311_20170313_632164_640373_188 because it covers less than 2 parts. You need to resolve this manually
В случае ReplicatedMergeTree с этими сообщениями можно ничего не делать - данные будут восстановлены с реплики. В случае обычного MergeTree оно говорит о потере данных.

Vladimir
23.03.2017
17:22:53
Добрый вечер! Извините, я как-то упустил следить за этим моментом, но насколько в КХ на данный момент поддерживаются NULL-ы и с какой версии? Насколько я помню, их даже обещали и даже что-то делали по ним. И если NULL-ы есть, то поддерживаются ли они в Array и Nested (как я понимаю, это одно и то же)?

Alexey
23.03.2017
17:28:41
Сейчас поддержка NULL всё ещё неполная - некоторые вещи не работают. Для Array наличие поддержки предполагается для внутренностей: Array(Nullable(T)) должно работать, а Nullable(Array(T)) - нет.

Vladimir
23.03.2017
17:29:13
О, спасибо большое!

Mike
23.03.2017
18:08:23
Коллеги, покритикуйте схему хранилища данных по событиям? Хотим несколько тысяч видов событий хранить в одной таблице. У каждого события плюс/минус разные поля свойств, несколько штук. Есть два варианта: 1. Добавить колонки для каждого вида событий. Таким образом, в одной таблице будет создано: 2000 видов событий * 3 колонки = 6000 колонок. Ид клиента | Дата/время | Название события | Просмотр_статьи_айди_статьи | Просмотр_документа_айди_документа | Просмотр_документа_айди_партнёра | … Запросы будут вменяемо выглядеть: select * from events where Название_события = 'Просмотр_статьи' and Просмотр_статьи_айди_статьи = 12345 2. Сделать странную схему типа EAV Ид клиента | Дата/время | Название события | Строка1 | Строка2 | ... | СтрокаN | Число1 | Число2 | ... | ЧислоN | Дата1 | Дата2 |..| ДатаN и аналитик будет делать странные запросы типа select * from events where Название_События = 'Просмотр_статьи' and Число1 = 12345

Igor
23.03.2017
18:11:16
А фильтр по дате будет ?

Mike
23.03.2017
18:13:27
По всем полям так или иначе будет

Igor
23.03.2017
18:19:40
По всем полям так или иначе будет
CH хорошо работает если идёт выбор по PK, дате - т/е всегда ограничивать выборку по дате, если будет запрос вида только "Название_События = 'Просмотр_статьи'" - то будет печаль... Из своего не большого опыта - лучше сделать много таблиц и в каждой использовать нужные данные по 50-500 колонок.

Google
Igor
23.03.2017
18:20:27
2000 видов событий - имхо очень большое число вариантов событий, может их лучше сгруппировать ?

Mike
23.03.2017
18:23:24
В каком смысле "сгруппировать"?

papa
23.03.2017
18:32:36
В каком смысле "сгруппировать"?
например sqrt(n) таблиц по sqrt(n) типов событий.

Igor
23.03.2017
18:33:34
У нас клики отдельно по разным обьекта / показы отдельно / скролы отдельно и т/д в отдельных таблицах - в сводных только основные свойства

Mike
23.03.2017
18:34:09
То есть на каждый тип события вы заводите таблицу, верно?

Igor
23.03.2017
18:34:39
Ну у нас всего их 10 ))

Павел
23.03.2017
18:34:46
А какое максимальное количество колонок для события ?

Mike
23.03.2017
18:35:34
А какое максимальное количество колонок для события ?
Может быть 10 в пределе, наверное. Все скалярные типы (дата, число, строка, bool)

Igor
23.03.2017
18:35:57
мы рекламная сетка/ аггрегатор новостей - очень интересно это из какого направления 2000 видов событий ?

Mike
23.03.2017
18:38:57
Омниканальный маркетинг (куча каналов коммуникации с пользователями, и на каждом канале свои события)

Плюс корелляционный анализ и прочий ML, для которого чем больше данных тем лучше

Павел
23.03.2017
18:39:37
Можно 2 таблицы использовать. Первая таблица id_события название и 10 колонок или чуть больше с описанием параметров. А 2 таблица id события плюс n колонок типа data1 .. dataN которые описаны в 1 таблице.

Mike
23.03.2017
18:40:18
Один голос за EAV %)

papa
23.03.2017
18:41:46
6к колонок для вставки может оказаться не очень удобно.

Igor
23.03.2017
18:42:19
Может поможет вариант с массивами - если "редко" ходить в них К примеру у нас происходит показ рекламного места в котором показывается Х банеров -> мы пишем все данные по пользователю, а информацию о показанных банерах мы храним в массиве. И отдельно пишем в суммирующие таблицы - для быстрого анализа - по срезу банер/пользователи которым было показано банер/площадки где показано и т/д

Mike
23.03.2017
18:49:54
Вариант с таблицей на событие в целом хорош, пугает лишь тем, что будет кейс "показать все события по конкретному клиенту", что черевато джойном 2к таблиц :)

А про массивы надо подумать.

Igor
23.03.2017
20:04:39
Прошу сообщество о помощи в вопросе который тесно связан с CH, я выкладываю сильно обновленную версию интерфейса GUI вместо Сlickhouse-frontend в opensource, но один вопрос я решить не могу. Посоветуйте или скажите какую лицензию поставить на проект, и есть ли вообще подходящее под мои ожидания: - Использовать как угодно и в любых компаниях ( коммерческих ) - Не позволять другим компаниям взимать плату за использование GUI, т/е чтобы пользователи не платили за мои разработки которые я выложил в открытый доступ без согласия. - И чтобы лицензия эта не мешала сообществу Перечитал, все что было на хабре на эту тему - но так и не определился. Конечно, я понимаю что я живу в России ))) Но все-же может есть идеи, что лучше поставить GPL3 / Apache 2 / MIT ?

Pavel
23.03.2017
20:05:49
сложный вопрос :)

сейчас апаче / мит в тренде)

Google
Pavel
23.03.2017
20:06:16
я свой проект под GPLv2 держку

но это мало кому мешает его сувать в коммерцию)

пойди конем, начни продавать сам :)

Alexey
23.03.2017
20:10:01
> GPL3 / Apache 2 / MIT? Все три лицензии не запрещают продавать продукт. GPL3 требует предоставлять доступ к исходникам при любом распространении (не важно, распространение бесплатно или нет), остальные не требуют.

Pavel
23.03.2017
20:10:30
GPLv2 тоже самое - требование открыть изменения очень жесткое.

Плюс запрет на использование в проектах на более свободных лицензиях.

Pavel
23.03.2017
20:11:10
Суть в том, что кто-то может создать огромный продукт на базе софта.

И разница между тем, что он взял в оснвоу и результатом - обязана быть выложена. ё

Условно, если ты взял камень и построил пирамиду - будь добр всю пирамиду в опенсорс)

это оч прикольно, но никакой магии в этом нет, люди не начинают остервенело контрубтить потому что такая лицензия :)

Andrey
23.03.2017
20:12:34
Условно, если ты взял камень и построил пирамиду - будь добр всю пирамиду в опенсорс)
эмм, точно оно так? Не так давно просил у BMW исходники их софта, ну выдали мне архив с исходниками dhcp и тому подобных открытых программ. Свой то софт они не открыли)

Pavel
23.03.2017
20:12:49
Зависит от способа линковки.

например, с GPLv2 софтом коммерческий софт линковать нельзя - весь проект станет GPLv2.

если же dhcpd использован как отдельный сервис - так можно

даже можно через system( ) дергать

а вот если динаимечиски либо статически линковался - будь добр открой все, твой проект заражен GPL'ем)

в случае скрпитовых языков не знаю как это работает, честно говоря. Понятия линковки ни статической, ни дианмической тупо нету.

Andrey
23.03.2017
20:14:25
строго говоря только static и dynamic это линковка

если вызываешь как сторонний процесс - это уже не линковка

Google
Andrey
23.03.2017
20:15:09
ааа, вот оно что

спасибо что разьяснили)

Pavel
23.03.2017
20:16:09
отсюда растут всякие lgpl которые позволяют линковку с коммерческим кодом

ибо либа на gpl нахрен никому не нужна)

Igor
23.03.2017
20:22:06
C либами все понятно - я свой phpClickHouse выложил не задумываясь в MIT т/к сам по себе он ни какой ценности не предстваляет, а кодга решение не является компонентом - а как бы конечным продуктом, тут хара не сильно помогает

Pavel
23.03.2017
20:22:26
хара?

Igor
23.03.2017
20:22:39
хабра

Pavel
23.03.2017
20:23:01
ну я тут адвокат дьявола :)

Igor
23.03.2017
20:25:14
Советуете не заморачиваться - просто поставить GPL3 и не думать что с когото берут денюжку ?)

Pavel
23.03.2017
20:25:43
GPLv2 / GPLv3 в вашем случае смысла не имеет

GPLv3 разрешает какое-то странное использование в прошивках и прочем

http://www.ifross.org/en/what-difference-between-gplv2-and-gplv3

хороший статей

оказывается отличий несколько больше

Igor
23.03.2017
20:28:25
Я исходил из https://choosealicense.com/

Pavel
23.03.2017
20:29:04
ты как автор можешь потом перелицензироваться, если захочешь :)

пока нет кучи контрибуторов

твой код, чо хочешь то и делаешь :)

Igor
23.03.2017
20:29:26
)))) ну это как то не правильно )))

Pavel
23.03.2017
20:29:30
почему?

Google
Aleks
23.03.2017
20:31:22
На первом митапе в Яндексе был неофициальный анонс про сервис, который будет класть логи в clickhouse, и что его хотят выложить на всеобщее обозрение. Есть новости по этой теме?

Pavel
23.03.2017
20:32:45
не надо класть логи в кликхаус!

не для этого он :)

Alexey
23.03.2017
20:33:27
не надо класть логи в кликхаус!
Тут неоднозначное понимание термина "логи".

Igor
23.03.2017
20:33:35
> @pavel_odintsov почему? Ну юзеры обидятся - что лицензию сменил, просто сотка звезд на github обязывает подойти как то серьезно к этому ((( Посмотрел еще раз про Apache License 2.0 - там Limitations:Trademark use Ну и пусть будет Apache 2 - такая-же как у CH )) Думаю юристы у YA - ого го ))

Alexey
23.03.2017
20:33:45
И не говорите так, а то люди неправильно поймут.

Andrey
23.03.2017
20:34:03
вообще кликхаус на столько быстр что так и провоцирует писать кривые запросы и использовать не по назначению :))

Pavel
23.03.2017
20:34:27
"не кладите текстовые неструкктурированные логи в кликхаус" :)

@milovidov_an так можно?)

Alexey
23.03.2017
20:34:42
Да, совершенно верно.

Vladimir
23.03.2017
20:35:16
Люди все взрослые и я думаю все понимают именно так))

Роман
23.03.2017
20:35:44
а если я честно каждому типу данных по столбцу выделю и т.п. - норм использование?:)

Pavel
23.03.2017
20:36:03
если там много текста - это мало толку даст

Alexey
23.03.2017
20:36:06
А то я постоянно говорю, что основное применение ClickHouse - для логов, но если это - хорошо структурированные, обработанные логи. Для примера, логи веб аналитики, логи рекламных систем, логи RTB, логи онлайн игр и т. п.

Pavel
23.03.2017
20:36:24
я бы назвал это телеметрией :)

Aleks
23.03.2017
20:36:34
Вопрос как раз про time- series

Страница 95 из 723