
Alexey
13.07.2017
12:29:06
но так же говорил, что проблемой обычно это не является

M
13.07.2017
12:29:12
каждые 10 минут по 40-100 лямов

Alexey
13.07.2017
12:29:12
и что все продолжает работать стабильно

Alex
13.07.2017
12:29:45
Уважаемые, подскажите, пожалуйста, следующее - есть Distributed таблица. Она создана путём перечисления колонок (без использования as $local_table_name). При инсерте в Distributed я указываю в ней принудительно колонки, в которые идёт вставка. Вопрос - маппятся ли эти колонки по именам в $local_table?

Google

Alexey
13.07.2017
12:31:07
Slowly growing number of watches is known issue. You don't have to worry, it should not cause any problems.

M
13.07.2017
12:31:35

Adam
13.07.2017
13:38:48
Привет.
Вопрос. Правильно ли я понимаю, что при использовании Distributed таблицы, состоящей из одного шарда с несколькими репликами, запросы будут распараллеливаться только случае, если задан ключ для сэмплирования? А то из документации это не совсем очевидно.

Alexey
13.07.2017
13:43:21
Здравствуйте. Возникло затруднение с времем. Datetime не поддерживает миллисекунды и ограничивает все секундами. Нашел ответ, где предлагают хранить отдельно миллисекунды, либо uint64 писать timestamp. Может есть более изящное решение с учетом, что нужно делать выборки по интервалу времени (с ... по ...)?

Vsevolod
13.07.2017
13:48:08
ну вот нам это тоже очень нужно (только с наносекундами)
и еще возможность загружать csv, пропуская ненужные колонки

Vladimir
13.07.2017
13:53:17

Vsevolod
13.07.2017
13:54:06
позволит, но конструкциями вида toInt64(toDateTime('blabla')) * 1e9 + x ...
выглядит мерзковато

Dmitriy
13.07.2017
13:55:07

Vsevolod
13.07.2017
13:55:50
ну, вот нам это очень нужно. отдельным скриптом я это уже делаю, но он довольно задумчиво жует 30 гигов данных
ну или плюнуть и написать это вжух на крестах каких с openmp
не знаю, что тяжелее - запатчить ch, или написать свой велосипед

Google

Vsevolod
13.07.2017
13:57:15
просто если я не один такой счастливый, то могу поработать над патчем, наверное

Vladimir
13.07.2017
14:38:22
должно довольно просто быть

Vsevolod
13.07.2017
14:39:23
мне кресты проще го
anyway, посмотрю, что можно придумать на выходных

Edouard
13.07.2017
14:45:08

Vladimir
13.07.2017
14:48:12
еще вопросик по запросам
есть такая таблица
"CREATE TABLE IF NOT EXISTS Measures" +
"(" +
"account String," +
"id String," +
"date Date, " +
"timestamp UInt64," +
"value Float32," +
"tags Nested (" +
"name String," +
"value String" +
" )" +
") Engine = MergeTree(date, (account, id, timestamp), 8192);"
tags обычно 3-5 штук
хочется достать например уникальные значение тега с именем 's:h'
запрос такой придумался
SELECT distinct(arrayElement(tags.value,indexOf(tags.name,'s:h'))) FROM Measures where account='xyz'
работает 200 секунд. кто-то видит где затуп или на большее и не расчитывать?
если не ускорить то видимо придется вторую таблицу заводить, с другой схемой чтобы такие запросы быстро отрабатывалт (пока схему не думал)

Dmitriy
13.07.2017
14:52:08
а данных много?

Vladimir
13.07.2017
14:53:08
9 миллиардов строк пока (это примерно за сутки объем), 180 GB
вот что в конце говорит
282 rows in set. Elapsed: 213.763 sec. Processed 1.28 billion rows, 279.86 GB (6.01 million rows/s., 1.31 GB/s.)

Artem
13.07.2017
14:55:42
Когда пробую загрузить данные таким запросом: python metrica_logs_api.py -source hits -start_date 2017-07-03 -end_date 2017-07-09 - выдает ошибку ModuleNotFoundError: No module named 'StringIO'

Vladimir
13.07.2017
14:57:25
"A little searching shows that the StringIO module is gone in Python 3 and has been replaced with the io module, from whence io.StringIO should be imported."
может версию питона откатить (может глупо)

Artem
13.07.2017
14:58:38
последнюю качал
3,6

Vladimir
13.07.2017
14:59:06
так в этом и затык согласно интернету

Dmitriy
13.07.2017
14:59:10

Vladimir
13.07.2017
15:01:56
без индекса конечно. вторичных индексов ведь нет, а это поле не в первичном ключе.

Vladimir
13.07.2017
15:04:14

Google

Vladimir
13.07.2017
15:04:49
я пока вижу 3 способа как поправить
1. переписать запрос, но как непонятно :)
2. завести 2 таблицу и писать туда данные параллельно, схема должнв быть оптимизирована под такие запросы
3. маппинги добавить и хранить не строки в tags а их id, но мне так совсем не нравится тк поддерживать маппинги целостными и актуальными будет тот еще квест

Artem
13.07.2017
15:40:03

Vladimir
13.07.2017
15:40:25
если это всего лишь переименование модуля, то заменить твой import StringIO на что-то похожее на то что выше
и он будет и на 3 и на 2 питоне работать тогда

Artem
13.07.2017
15:41:05
я вчера только его поставил, вообще не понимаю что куда
ну да. там питон 2,7 надо, а у меня 3,6 ((
переставлю

Aleksandr
13.07.2017
15:50:13

Artem
13.07.2017
16:02:08
Traceback (most recent call last):
File "metrica_logs_api.py", line 2, in <module>
import logs_api
File "logs_api_integration-master\logs_api.py", line 1, in <module>
import requests
ImportError: No module named requests
поставил питон 2,7, теперь такое

Tima
13.07.2017
16:04:10
Этот модуль был добавлен в третьем питоне.
Возможно он есть для 2.7 в виде модуля

Mariya
13.07.2017
16:07:45

Artem
13.07.2017
16:12:21
а, точно, pip

Александр
13.07.2017
16:14:26
А кто подскажет, на Debian есть пакеты готовые?

Konstantin
13.07.2017
16:15:14
а, точно, pip
в репах большинства дистрибутивов же. За pip'анье по рукам линейкой надо бить

Vsevolod
13.07.2017
16:17:49
hum, а вот еще такая хотелка: чтобы при чтении csv можно было бы задавать implied date
а то у нас сами по себе csv по дням разбиты
(и не надо про питон - он у меня сейчас уныло жрет память и тормозит)
когда там 144 ядра и тер памяти. кликхаус бы эту всю фиговину сжевал бы за минуты (ограничиваясь только скоростью ssd)

Google

Bulat
13.07.2017
16:21:03
awk?
кажется, что на плюсах сильно быстрее, чем split + xargs awk не получится

Vsevolod
13.07.2017
16:23:03
ну, я достаточно писал на сишечке и плюсах, чтобы мне так не казалось
тем более, что чтение csv прекрасно себе параллелится набором автоматов
ну да, с newlines будет некая жопа, но на то есть sse4.2, когда можно сделать seek в произвольный кусок файла и найти там [\r\n]
да даже без sse, в принципе, найти конец строки не проблема


Artem
13.07.2017
16:30:42
Traceback (most recent call last):
File "metrica_logs_api.py", line 2, in <module>
import logs_api
File "logs_api_integration-master\logs_api.py", line 6, in <module>
import clickhouse
File "logs_api_integration-master\clickhouse.py", line 7, in <module>
config = utils.get_config()
File "logs_api_integration-master\utils.py", line 63, in get_config
config = json.loads(input_file.read())
File "C:\Python27\lib\json\__init__.py", line 339, in loads
return _default_decoder.decode(s)
File "C:\Python27\lib\json\decoder.py", line 364, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Python27\lib\json\decoder.py", line 382, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

Admin
ERROR: S client not available

Artem
13.07.2017
16:30:49
теперь такое
что это значит?

Dmitriy
13.07.2017
16:33:18
мне кажется стоит переустановить кликхаус, что-то могло испортится после предыдущих запусков не на том питоне

Artem
13.07.2017
16:36:14
а попытка запуска поломанного кликхауса могла привести к поломне винды, и чтобы время не терять лучше всё сразу переустановить
?

Dmitriy
13.07.2017
16:37:13
нет, ну вот судя по логам он пытается читать какой-то конфиг который был неправильно сгенерирован (это я ванговать пытаюсь)

Amir
13.07.2017
16:40:38
всем привет, первое знакомство с КХ. пока только теория
подскажите есть ли визуализатор данных схожий с функционалом saiku на КХ?
интересует возможность строить запросы SQL путем переноса разрезов и мер в область строк/столбцов
для построения олап-кубов на лету?
просто есть готовые OLAP кубы работающие на saiku
хочется перенести на КХ и сбросить оковы многих ограничений)

Vladimir
13.07.2017
16:43:51
Конфига видимо

Artem
13.07.2017
16:49:14
из тех json файлов что я сам правил только конфиг

Vladimir
13.07.2017
16:51:52

Google

Artem
13.07.2017
16:52:30
он скопирован из примера, странно, я там только ключ к апи поменял и номер счетчика

Vladimir
13.07.2017
17:04:26

Dmitriy
13.07.2017
17:04:36
скопируй и в валидатор онлайновый кинь

Alexander
13.07.2017
19:13:40
1.1.54236 : Unknown type Nullable - обновиться?

Алексей
14.07.2017
03:09:23
Клуб людей, которые всегда и везде делают деньги!!!
?????
Делюсь мануалами, практическими советами и темами, которые проверены лично на моем опыте и опыте моих близких!
?Вступайте в мой паблик прямо сейчас: @moneycl

Eduard
14.07.2017
04:52:04
Как забанить этих чертей?

Алексей
14.07.2017
04:54:00
@justedro cходить к ним в группу и нажать report spam

Eduard
14.07.2017
04:58:42

Vladimir
14.07.2017
07:18:19
Есть таблица, одна колонка это массив строк, как бы это distinct по значениям с массиве построить? что-то не придумывается
tags.name и tags.value это масссивы
прдумывается это
SELECT distinct(tags.name) FROM Measures where account='xyz' and arrayElement(tags.value,indexOf(tags.name,'s:i'))='4291'
но оно уникальные комбинации значении tags.name возвращает, не то немного

Vsevolod
14.07.2017
07:21:06
а если этот массив слить во временную таблицу или view, а затем по нему уже сделать select distinct?
а если нужны уникальные массивы строк, а не отдельные строки - то засунуть в эту временную таблицу хеш от строк в каждом массиве
а потом поджоинить

Ilya
14.07.2017
07:21:46
Arrayjoin на поле а на результат уже distinct или groupby

Vladimir
14.07.2017
07:21:54
сливать наверное не получится
это то все в режиме реального времени надо чтобы отвечало

Ilya
14.07.2017
07:23:20
Select arrayjoin(field) as f from table group by f

Vladimir
14.07.2017
07:23:23
а то у меня вот эти условия с джойном не получилось наложить
where account='xyz' and arrayElement(tags.value,indexOf(tags.name,'s:i'))='4291'
заработало, правда медленно, спсб