@clickhouse_ru

Страница 17 из 723
Dekin
22.11.2016
08:32:05
что мешает писать и теги и в мастере держать стейбл? ?
Есть ряд workflow, в которых в master сливаются форки всего, что протестировано и вроде бы стабильно работает, но предназначено для следующего релиза.

Dekin
22.11.2016
08:39:45
А зачем вы запустили скрипт release?

Google
Evgeniy
22.11.2016
08:40:42
А зачем вы запустили скрипт release?
вообщем .. да.. отложу я это дело до нового года .

Alexey
22.11.2016
08:46:58
Про ветку master и релизные теги. Сейчас добавлю в инструкцию, как сделать checkout последней стабильной версии. Про скрипт release. Для сборки пакетов без загрузки тега в репозиторий, можно написать: ./release —standalone Сейчас проверю, написано ли об этом хоть где-нибудь.

Vladislav
22.11.2016
10:34:29
я еще раз спрошу, а когда видео будет?

Alexey
22.11.2016
11:54:53
Мы не уверены что хорошо получилось и еще посмотрим стоит ли выкладывать. Там по большей части вопросы и ответы. Но если будет - то обычно на его подготовку уходит неделя-две.

Андрей Михайлович
22.11.2016
13:00:50
тыкдом
Тебя что-то смущает?

можно посмотреть что выдаст ? echo "DROP TABLE IF EXISTS myapptest2.testtable; CREATE TABLE myapptest2.testtable (pageURL String, pageRank UInt32, avgDuration UInt32) ENGINE = Log; SHOW CREATE TABLE myapptest2.testtable; SELECT * FROM myapptest2.testtable FORMAT TabSeparatedWithNames;" | clickhouse-client -n
SELECT * FROM myapptest2.testtable FORMAT TabSeparatedWithNames; SELECT * FROM myapptest2.testtable FORMAT TabSeparatedWithNames pageURL pageRank avgDuration Received exception from server: Code: 1000. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: File not found: /opt/clickhouse/data/myapptest2/testtable/pageURL.bin. 0 rows in set. Elapsed: 0.096 sec.

Андрей Михайлович
22.11.2016
13:23:27
Можешь скопировать полную выдачу пожалуйста. Ну и если у тебя это на виртуалке крутится - можешь дамп сделать, я посмотрю.
echo "DROP TABLE IF EXISTS myapptest2.testtable; CREATE TABLE myapptest2.testtable (pageURL String, pageRank UInt32, avgDuration UInt32) ENGINE = Log; SHOW CREATE TABLE myapptest2.testtable; SELECT * FROM myapptest2.testtable FORMAT TabSeparatedWithNames;" | clickhouse-client -n --password qwerty CREATE TABLE myapptest2.testtable ( pageURL String, pageRank UInt32, avgDuration UInt32) ENGINE = Log pageURL pageRank avgDuration Received exception from server: Code: 1000. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: File not found: /opt/clickhouse/data/myapptest2/testtable/pageURL.bin.

Google
?Zloool?
22.11.2016
13:23:41
Есть резульаты по сравнению производитильности ES и CH? https://github.com/yandex/ClickHouse/issues/14

Vitaliy
22.11.2016
13:27:12
а чем тут дампы - то делаются?
Я про дамп виртуалки (если у тебя там нет критичных данных)

Андрей Михайлович
22.11.2016
13:27:42
их-то нет.

ща в личку кину

Anatoly
22.11.2016
14:06:35
Есть резульаты по сравнению производитильности ES и CH? https://github.com/yandex/ClickHouse/issues/14
на хайлоаде говорили, что яндекс готовит открытый дамп данных (текущий бенчмарк на тех, которые нельзя выложить), на котором можно будет проверить

Mike
22.11.2016
14:54:45
А можно как-то подписаться на обновление таблицы? Что-то типа tailable cursor прекрасно подошло бы :)

Igor
22.11.2016
14:56:12
ах, это было бы прекрасно

Alexey
22.11.2016
15:03:45
А можно как-то подписаться на обновление таблицы? Что-то типа tailable cursor прекрасно подошло бы :)
Сейчас такого нет. Было только на уровне идеи. Сложность зависит от глубины проработки. Минимальный вариант - возможность сделать потоковый запрос (без GROUP BY, ORDER BY), который продолжает бесконечно отдавать новые строки. Более сложно - полноценная очередь, с возможностью запомнить место, до которого дочитали и потом читать дальше. Там много сложностей с репликацией.

Dekin
22.11.2016
15:13:19
Сделайте хотя бы относительно простые потоковые запросы, плиз! Без агрегатов уже будет хорошо.

Mike
22.11.2016
15:14:15
А какой сейчас вариант, автоинкрементного айди хотя бы на уровне mysql тоже не имеется ведь, да?

Внешней системой нумеровать строки по порядку и читать от последнего номера +1?

Писатель только охренеет, а так — норм

Darafei
22.11.2016
15:26:16
а аналог постгресового ctid, который физический указатель на место тапла в диске?

Alexey
22.11.2016
15:30:51
Была идея сделать глобальный row_number. Но это не дружит с master-master репликацией. Можно сделать только такой, который может меняться после вставки.

Алексей
22.11.2016
15:42:41
Была идея сделать глобальный row_number. Но это не дружит с master-master репликацией. Можно сделать только такой, который может меняться после вставки.
а если сделать общий каталог сивенседов, который реплицируется на все мастера, а каждый мастер получает свою границу пулов (например от 1 до 250 тыс, от 250001 до 500 тыс и т.д.)? когда у любого мастера кончается его выделенный резерв, он просто снова у каталога запрашивает себе новую границу в синхронном порядке общения, чтобы мастера в очередь становились за номерами. ну и как раз тогда CREATE SEQUENCE ... CACHE 250000 конструкция нормально смотрится и вполне страндартная для всех СУБД.

Alexey
22.11.2016
15:45:12
Идея понятна. Сделать sequence реально. Даже несколько проще, чем написано выше.

Алексей
22.11.2016
15:56:02
ну и что ?

Google
Алексей
22.11.2016
15:56:52
для MPP актуально иметь общий каталог синхронизируемый между нодами, в котором все ноды получают актуальную информацию зачекенную

добавили новые узлы, они получили новые себе границы пула счетчиков и поехали в них работать, в каталоге на этот размер последнее выделенное нодам число увеличилось

убрали узлы, ну просто их разрезы номеров потерялись, делов то

Evgeniy
22.11.2016
16:03:17
убрали узлы, ну просто их разрезы номеров потерялись, делов то
- с ними ушли ID , на которые подписана репликация

Алексей
22.11.2016
16:03:47
это просто NEXTVAL, как они могли уйти ?

пул номеров который просто перестал использоваться и все

ну не получат клиенты при вставке эту порцию 250 тыс номеров, в чем критикал ?

Evgeniy
22.11.2016
16:05:14
ну не получат клиенты при вставке эту порцию 250 тыс номеров, в чем критикал ?
ну если среди этих 250 тыс есть хоть одна запись от которой зависит чья-то премия... )

Алексей
22.11.2016
16:05:29
узел ушел, данные потерялись, если не были реплицированы куда то еще

IMHO надуманная проблема

да и где то и видано премии по счетчикам выдавать

Fike
22.11.2016
16:06:15
можете сориентировать, зачем вообще нужны обсуждаемые счетчики?

Алексей
22.11.2016
16:06:25
насчет проще сделать не спорю, я решение с Вертики привел, там синхронизируемый каталог между нодами, не репликация, поэтому там сложнее выходит, они вынуждены синхронизацию каталога между нодами делать в единой транзакции

ну обычные SEQENCE, очень даже нужны бывают

синтетический ключ как на MPP сделать просто ? когда множество сессий с разных мест вставляет в таблицу записи, где поле надо автонумеровать ?

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

зашел в таблицу и сразу увидел новые записи

Fike
22.11.2016
16:08:07
я немного из другой области, и аббревиатуру MPP не знаю, но в распределенных системах нумерация обычно является сильно нежелательным элементом, и, как правило, ненужным

Алексей
22.11.2016
16:08:43
извините, я как то вот в вертиках, терадатах, нетизах и прочих "распределенных системах" знай только эти sequenced в архитектуре и наблюдал

все наверное от области зависит задач ;)

Google
Алексей
22.11.2016
16:09:19
хранилище данных без синт ключей может оказаться не удобным много где

инкрементный захват, мастер-детайл ... много где

Fike
22.11.2016
16:09:48
существование системы Х само по себе не подтверждает необходимость той или иной функции в ней

Алексей
22.11.2016
16:10:06
ClickHouse является хранилищем данных ?

Fike
22.11.2016
16:10:19
если нужен уникальный идентификатор - то как правило используется uuid, но здесь же все идентификаторы должны быть внешними

Алексей
22.11.2016
16:10:50
по ууидам аналитикам мастер детайл просто замечательно искать руками в запросах :)

просто их мечта

Fike
22.11.2016
16:10:55
все счетчики являются точкой лишней синхронизации узлов, а этого стоит избегать

Igor
22.11.2016
16:11:10
а часто аналитикам надо искать _конкретные_ записи?

Алексей
22.11.2016
16:11:16
странно что ни одна коммерческая хд этого "не избежала"

ага, часто

Igor
22.11.2016
16:11:54
я почему спрашиваю, потому что лично меня задолбало конвертировать FixedString(16) в человекопонятный UUID, и я в раздумьях между FixedString(36) и таки сжатым представлением

Fike
22.11.2016
16:11:58
ну так мы просто можем дойти до того, что в мускуле даты с таймзонами нельзя вставлять, а раз нельз, знаит, это кому-то нужно

Алексей
22.11.2016
16:12:02
я же говорю, ключевое слово "разные задачи"

Ваш опыт "не часто" и "не нужно", мой противоположный

Igor
22.11.2016
16:12:33
Dmitry
22.11.2016
16:13:21
генерируйте счетчики в ETL, кто мешает?

Алексей
22.11.2016
16:14:00
мешает MPP

вроде к тому и вернулись

ладно, Леша идею понял :) спор нужно или нет это с другой плоскости

Google
Dmitry
22.11.2016
16:16:16
и чем же он мешает?

зачем решать эту задачу в хранилище, если этого можно не делать? :)

Алексей
22.11.2016
16:25:10
не, если у вас 5 джобов загрузки в 10 таблиц, то никто не мешает, если 300 джобов и 2 тыс таблиц и до тучи еще 4 ETL зоопарк, то веселуха

можно и на ЕТЛ тогда уж агрегировать данные, чего уж там, хватает функционала

Dmitry
22.11.2016
16:25:57
какая разница, сколько таблиц?

Roman
22.11.2016
16:27:44
Я правильно понимаю, что о нужности уникального ID ни кто не спорит? Вопрос в том, должен ли он быть целым монотонно возрастающим числом или подойдет псевдоуникальный UUID?

Dmitry
22.11.2016
16:27:58
в распределенных системах расшаренное состояние - зло

зачем наступать на эти грабли, если можно не наступать

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