@clickhouse_ru

Страница 276 из 723
Stas
03.10.2017
13:49:00
тогда проще поставить фильтр, который не будет реагировать на определенные типы запросов

Aleksandr
03.10.2017
13:51:57
уточню, я про ситуацию когда есть запрос вида INSERT INTO table (a) VALUES ("тут переменная строка, приходят с клиента"), возможно ли передать в ту переменную что-то, что будет модифицировать запрос (например сделает два запроса)?

как раньше в mysql было

(ну и сейчас тоже есть)

Google
Alexey
03.10.2017
13:58:20
Строки надо экранировать, всегда.

Aleksandr
03.10.2017
14:01:50
Строки надо экранировать, всегда.
достаточно экранировать одинарные кавычки (')?

Alexey
03.10.2017
14:03:32
Нет.

Достаточно одинарные кавычки и обратный слеш.

Подробнее смотрите в документации.

Aleksandr
03.10.2017
14:04:21
я правда искал ?

посмотрю еще, спасибо за ответ

Andrey
03.10.2017
14:04:38
А CH вроде только 1 запрос за раз выполняет. Или уже доработали?

Vitaly
03.10.2017
15:00:25
Столкнулся с такой проблемой, работая с нативным клиентом из официального докер образа. Если вставить кириллический текст, он обрывается на первой букве. А если печатать прямо в клиенте, есть проблемы с кодировкой. Работая с клиентом без докера, таких проблем нет (у меня на машине локаль utf-8). Похоже, в докер файле не хватает нужной локали. Наверное, это чинится как-то так: RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 Было бы здорово, если бы это поправили. Спасибо

Andrey
03.10.2017
15:05:35
Ребят, а нет под рукой у кого нибудь конфига clickhouse-client для случая когда юзер и пароль кастомные?

Vitaly
03.10.2017
15:07:52
Andrey
03.10.2017
15:08:44
clickhouse-client --host <your_host> --port <your_port> --user <your_user> --password <your_password>
это я знаю. Но чтобы это все не вводить, можно прописать в конфиг: ./clickhouse-client.xml ~/.clickhouse-client/config.xml /etc/clickhouse-client/config.xml вот хочу его пример

Vitaly
03.10.2017
15:12:11
это я знаю. Но чтобы это все не вводить, можно прописать в конфиг: ./clickhouse-client.xml ~/.clickhouse-client/config.xml /etc/clickhouse-client/config.xml вот хочу его пример
примера файла нет, но чтобы не вводить все параметры руками, можно использовать alias. если у вас bash, можно этот алиас куда-нибудь в .bashrc прописать

Google
Andrey
03.10.2017
15:12:44
Все оказалось чертовски логично. <config> <user>username</user> <password>password</password> </config>

f1yegor
03.10.2017
15:48:35
в ReplacingMergeTree колонка с версией по-умолчанию называется _part_index?

Max
04.10.2017
02:48:09
а подскажите, как задать лимит по памяти на весь сервер?

Андрей Михайлович
04.10.2017
06:15:58
Через конфиг

Max
04.10.2017
09:28:27
я нашел в конфиге только лимит на сессию

Konstantin
04.10.2017
10:34:18
Alexey
04.10.2017
10:41:34
Это лимит на один запрос.

Лимит на все запросы - max_memory_usage_for_all_queries.

Edya
04.10.2017
11:51:03
Коллеги, а NULL значения уже допустимы во внешних словарях?

Aleksey
04.10.2017
13:55:16
Привет! Заметили, что при запросах в distributed таблицу КХ не использует сеть, которую мы прописали в interserver_http_host. Подскажите, пожалуйста, этот параметр нужен только для репликации или мы сделали что-то не так?

Felixoid
04.10.2017
14:01:26
В retention нет параметра "окончание срока хранения". Соответвенно и удалять по нему нельзя
Прошу прощения, что занимаюсь археологией Но фраза and we want to keep enough datapoints so that they add up to 14 days of data отсюда, как мне кажется, говорит как раз о том, что есть ограничения срока хранения

Roman
04.10.2017
14:02:32
откуда эта фраза?

Felixoid
04.10.2017
14:02:49
не прикрепилось =) http://graphite.readthedocs.io/en/latest/config-carbon.html#storage-schemas-conf

Roman
04.10.2017
14:03:01
и причем тут КХ?

в висперах действительно есть ограничение на время хранения

Google
Felixoid
04.10.2017
14:04:09
тогда я неправильно понял, что Вы имели в виду под В retention нет параметра "окончание срока хранения".

и какой выход, если надо удалять неинтересующие данные?

использовать запредельный precision?

Roman
04.10.2017
14:06:47
тогда я неправильно понял, что Вы имели в виду под В retention нет параметра "окончание срока хранения".
В xml, которым задаются правила rollup-а для GraphiteMergeTree, нет параметра "окончание срока хранения". В обычном карбоне на висперах задается "хранить одну точку каждые X секунду в течение Y времени" В КХ задается "точки старше Y времени схлопывать до одной точки каждые X секунд"

Aleksey
04.10.2017
14:07:09
Только для репликации.
а есть ли возможность каким-либо образом сделать так, чтобы все внутреннее общение между шардами шло через другую сеть?

Felixoid
04.10.2017
14:09:37
В xml, которым задаются правила rollup-а для GraphiteMergeTree, нет параметра "окончание срока хранения". В обычном карбоне на висперах задается "хранить одну точку каждые X секунду в течение Y времени" В КХ задается "точки старше Y времени схлопывать до одной точки каждые X секунд"
я как раз и указал на эту самую разницу В текущем кейсе precise=86400 может спасти в условиях, что нас не интересуют какие-то точки. Они не пропадут совсем, но места будут занимать пренебрежимо мало

Roman
04.10.2017
14:15:03
я как раз и указал на эту самую разницу В текущем кейсе precise=86400 может спасти в условиях, что нас не интересуют какие-то точки. Они не пропадут совсем, но места будут занимать пренебрежимо мало
Правильная страница вот https://clickhouse.yandex/docs/ru/table_engines/graphitemergetree.html precission=86400 действительно схлоплнет данные до одной точки в день и они будут занимать мало. Еще можно дропнуть старую партицию

Felixoid
04.10.2017
14:15:57
нельзя, есть данные с retentions = 1h:180d,1d:10y

а так бы с удовольствием =)

Александр
04.10.2017
21:40:32
а есть ли возможность каким-либо образом сделать так, чтобы все внутреннее общение между шардами шло через другую сеть?
Я думаю это какой-нибудь iptables сможет. Могу ошибаться, но есть всякие штуки типа маскарада, но они в некоторых случаях могут не плохо жрать цпу

Павел Максимов
05.10.2017
06:46:17
Ребят подскажите новичку, возможно задать при вставке данных функцию преобразования на этапе создания таблицы CREATE TABLE [db.]name ( Cost*1000000 UInt32 ... ) ... ?

Дмитрий
05.10.2017
07:19:28
нет

Павел Максимов
05.10.2017
07:24:02
нет
спасибо

а есть варианты преобразования при вставке данных? например иногда такие "--" дефисы встречаются в столбце типа Int?

Павел Максимов
05.10.2017
08:04:08
Andrey
05.10.2017
08:04:52
да
Ну тогда у вас полный набор возможностей grep/awk/sed и вот это вот все

Павел Максимов
05.10.2017
08:05:19
Konstantin
05.10.2017
08:06:52
спасибо, поизучаю что это такое
общая идея - или перестаньте писать в файл дефисы там где должен быть Int или делайте постобработку файла удаляя/заменяя эти дефисы

Google
Павел Максимов
05.10.2017
08:07:23
понял

Cargeh
05.10.2017
08:10:10
Есть ли ограничение на длину названия колонки? Не нашел в документации

Mike
05.10.2017
08:11:17
Вау, бигдата в названиях колонок может быть :)

Paul
05.10.2017
09:14:10
вы вот смеетесь, а я сопровождал проект с хранением файлов внутри кластера mongodb

Paul
05.10.2017
09:15:11
нет предела человеческому идиотизму

Paul
05.10.2017
09:15:28
gridfs?
нет, просто блобы. В файлы их пхп собирал

Александр
05.10.2017
09:15:52
вы вот смеетесь, а я сопровождал проект с хранением файлов внутри кластера mongodb
Раньше помнится движок IPB (invision power board) хранил все картинки, стили и шаблоны для рендеринга в MySQL :) Он читал файлы и писал их в базу...

Paul
05.10.2017
09:17:25
Раньше помнится движок IPB (invision power board) хранил все картинки, стили и шаблоны для рендеринга в MySQL :) Он читал файлы и писал их в базу...
там это настраивалось. vBulletin хранит все не-базовые стили в базе. То есть если у вас стиль из базовой поставки - он лежит в виде файла, а если вы его в редакторе меняете - будет забираться из базы. Самое страшное, что аватарки по умолчанию бублик тоже хранит в базе. И таблицу с аватарками периодически ломает

когда на 700-м пне вылетает таблица с аватарками на 5 гиг весом - чинить ее удовольствие сильно ниже среднего

Cargeh
05.10.2017
09:19:22
И еще вопрос: надо ли перезапускать сервер или как-то делать флаш, когда обновляешь users.xml?

Cargeh
05.10.2017
09:20:36
он их вроде без рестарта подхватывает
значит, в самой конфигурации проблема. Спасибо!

Anton
05.10.2017
09:39:14
Добрый день. Подскажите как сформировать массив с помощью groupArray добавив в него не одно а два поля. т.е. таблица имеет структуру, например : date, event несколько записей: 2010-09-10 1 2010-09-10 2 2010-09-10 3 2010-10-01 2 2010-10-01 3 2010-10-01 5 хотелось бы получить массив [ 2010-09-10, [1,2,3] ], [ 2010-10-01, [2,3,5] ]

papa
05.10.2017
10:15:27
массив должен иметь элементы одного типа.

Ilyas
05.10.2017
10:17:43
внешний можно таплом сделать

Anton
05.10.2017
10:18:20
мне бы и таплом подошло, но как сформировать

Ilyas
05.10.2017
10:19:21
подозреваю что вложенным запросом это сделать должно быть не сложно

Google
Anton
05.10.2017
10:20:45
вложенным не совсем подходит

Ilyas
05.10.2017
10:25:44
SELECT (dt, groupArray(x)) FROM ( SELECT toDate('2017-01-01') + (number % 5) AS dt, rand() AS x FROM system.numbers LIMIT 20 ) GROUP BY dt

Aleksandr
05.10.2017
11:03:01
Из доки: >Снижения производительности не будет, если: >- Данные поступают в режиме реального времени. Это про что? Про стримы? Или можно просто по одной записи всталять?

Cargeh
05.10.2017
11:08:30
Из доки: >Снижения производительности не будет, если: >- Данные поступают в режиме реального времени. Это про что? Про стримы? Или можно просто по одной записи всталять?
INSERT сортирует входящие данные по первичному ключу и разбивает их на партиции по месяцам. Если вы вставляете данные за разные месяцы вперемешку, то это может значительно снизить производительность запроса INSERT Если данные поступают в режиме реального времени, то они естественным образом будут отсортированы по дате, т.е будут не вперемешку и, соответственно, будет нормаьлная производительность. По одной записи, я думаю, вставлять точно не стоит

Anton
05.10.2017
11:27:44
SELECT (dt, groupArray(x)) FROM ( SELECT toDate('2017-01-01') + (number % 5) AS dt, rand() AS x FROM system.numbers LIMIT 20 ) GROUP BY dt
Спасибо, но это не совсем то что нужно. Допустим у меня в таблице есть еще один столбец users, т.е. такая структура и данные: date, event, users —------------------------- 2010-09-10 1 1 2010-09-10 2 1 2010-09-10 2 1 2010-09-10 2 1 2010-09-10 3 2 2010-10-01 2 2 2010-10-01 3 2 2010-10-01 5 2 2010-10-01 5 2 Одним запросом я хочу посчитать число юзеров, и число повторных событий за один день группируя по юзеру. В результате хотелось бы получить такой ответ (count(events) - образно): uniq(users), count(events) —------------------------------------- 2 3

papa
05.10.2017
11:45:42
а почему у вас count(events) это одно число, оно разве не зависит от юзера?

Andrew
05.10.2017
12:09:59
Приветствую. А ситуация, когда использование join в обычных (нематериализованных) VIEW приводит к тому, что в таблицы-источники перестают добавляться данные, это фича или в будущем планируется исправление этой проблемы?

Андрей
05.10.2017
12:43:54
Коллеги, привет. Еще в версии 1.1.54276 была добавлена опциональная секция WITH запроса SELECT. У нас самый свежий стабильный кликхаус, но пример из доков: WITH 1+1 AS a SELECT a, a*a не работает. Дайте рабочий пример или ссылку. Заранее спасибо!

papa
05.10.2017
12:45:35
WITH 1 + 1 AS a SELECT a, a * a ┌─a─┬─multiply(a, a)─┐ │ 2 │ 4 │ └───┴────────────────┘

Андрей
05.10.2017
12:49:21
WITH 1 + 1 AS a SELECT a, a * a ┌─a─┬─multiply(a, a)─┐ │ 2 │ 4 │ └───┴────────────────┘
У меня отрабатывает в табиксе, а у коллеги в том же табиксе и на том же кликхаусе не хочет. Спасибо, будем разбираться!

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