
Vladislav
14.09.2017
07:29:28

Ekaterina
14.09.2017
07:30:51

Mike
14.09.2017
08:03:39
Решардинг сейчас не поддерживается.
А не подкажете какой-нибудь способ _на живую_ увеличить количество шардов в кластере? Хотелось бы конечно еще и данные не протерять при этом :)

Vitaly
14.09.2017
09:30:12
Вопрос не про КХ, а про табикс. Может быть, у кого-то есть опыт

Google

Vitaly
14.09.2017
09:30:12
Кто-нибудь знает, с чем связано ограничение tabix на Not readonly CH user? И можно ли это как-то обойти?
Конечно, там поддерживается readonly = 2, но это позволяет сделать SET profile = 'blah-blah' и обойти ограничения, которые хотелось поставить на юзеров табикса

Vladislav
14.09.2017
09:38:24

Mike
14.09.2017
09:40:58

Igor
14.09.2017
09:46:53

Vitaly
14.09.2017
09:51:11

Igor
14.09.2017
09:52:34
add_http_cors_header - без этого не работает tabix - это подставляет доп заголовки CORS
log_queries - всегда логировать запросы в system.querys

Sergey
14.09.2017
09:53:37
после обновления clickhouse-client падает с
Poco::Exception: Exception: Cannot load time zone W-SU
где править конфиг?
Ubuntu 12.04.5 LTS

Igor
14.09.2017
09:56:15
Для упрощения -> Requirements: Not readonly CH user )))

Vitaly
14.09.2017
10:05:39

Nikita
14.09.2017
10:22:19
Всем привет. Кто нибудь знает функцию для обработки URL, которая отрезает у урла все slug'и, GET-параметры и фрагменты, оставляя только <protocol>://<domain> ?
Первое что приходит в голову использовать URLHierarchy(...)[1] , но возможно кто нибудь знает варианты лучше?

Oleh
14.09.2017
10:28:17

Vitaly
14.09.2017
10:31:07

Google

Nikita
14.09.2017
10:33:43
Такую красоту хотел оставить навариант Z :) если больше вариантов не будет, то сегодня вечером сравню эффективность обоих подходов

Sergey
14.09.2017
10:39:41

Мария
14.09.2017
10:48:31
Подскажите, в ClickHouse есть какой-нибудь аналог PIVOT?

Oleh
14.09.2017
10:53:18
посмотрите какое у вас там значение

Sergey
14.09.2017
10:54:25
это же для сервера. или клиент использует эту информацию?

Oleh
14.09.2017
10:58:02
ну у клиента есть свой конфиг, у вас же там как-то появилась таймзона W-SU

Igor
14.09.2017
11:24:12

Мария
14.09.2017
11:24:58

Igor
14.09.2017
11:33:21
имхо близкое sumIf,countIf...

Alexey
14.09.2017
11:39:22
После RENAME реплицированной таблицы, не могу сделать drop partition на ней, ругается что на другой реплике отсутствует таблица со старым именем
хотя на обеих репликах имя новое, и сама репликация работает, данные реплицируются
о, если дропнуть на другой реплике, то все ок, и по репликации приехало
вопрос снят

Vladimir
14.09.2017
11:46:01
Всем привет, а есть у кого-нибудь опыт подружить CH и Talend?

Artemy
14.09.2017
12:44:46
Друзья, а вот такой вопрос. Как себя поведёт клик хаус, если у меня будет 3000 таблиц по 10млн. записей. Раздение по таблицам необходимо по причине постоянно ротации этих таблиц. Вот не будет ли у него проблема с производительностью с таким количеством таблиц?

Mike
14.09.2017
12:48:57


yuyu
14.09.2017
13:10:21
Не могу понять в чём ошибка: пробую засунуть в поле ipv6 адрес как FixedString(16) - получаю не то, что на входе.
Делаю таким тестовым скриптом:
#!/bin/bash
DB=proba
DATATABLE=iptest
# for debug: start from scratch
clickhouse-client —echo —database=$DB —query="DROP TABLE IF EXISTS $DB.$DATATABLE"
echo Creating table $DB.$DATATABLE if needed
clickhouse-client —echo —database=$DB —multiline —query="CREATE TABLE IF NOT EXISTS $DB.$DATATABLE ("\
"d Date,
ip_prefix String,
ip6 FixedString(16) default toFixedString('',16),
ip6str String,
prefix_len UInt8
) ENGINE = MergeTree(d, (d, ip6), 8192)"
echo '{"timestamp": "2017-09-14", "ip_prefix": "2a0b:aa80::/29"}' \
| clickhouse-local —table=TMP \
—input-format=JSONEachRow \
—verbose \
—structure='timestamp String,ip_prefix String' \
—query=\
"SELECT
timestamp,
ip_prefix,
(position(ip_prefix,':') > 0) ? IPv6StringToNum(extract(ip_prefix,'^(.+)/')) : IPv6StringToNum('0') as ip6,
(position(ip_prefix,':') > 0) ? extract(ip_prefix,'^(.+)/') : '' as ip6str,
(position(ip_prefix,'/') > 0) ? toUInt8(extract(ip_prefix,'/([0-9]+)')) : 0 as prefix_len
FROM TMP FORMAT CSV" \
| clickhouse-client —database=$DB —query="INSERT INTO $DB.$DATATABLE FORMAT CSV" —progress
clickhouse-client —database=$DB —query="SELECT *, IPv6NumToString(ip6) as ip6fromNum, IPv6NumToString(IPv6StringToNum('2a0b:aa80::')) FROM $DB.$DATATABLE FORMAT Vertical"
В результатет получаю такое:DROP TABLE IF EXISTS proba.iptest
Creating table proba.iptest if needed
CREATE TABLE IF NOT EXISTS proba.iptest (d Date,
ip_prefix String,
ip6 FixedString(16) default toFixedString('',16),
ip6str String,
prefix_len UInt8
) ENGINE = MergeTree(d, (d, ip6), 8192)
Executing query: CREATE TABLE TMP (timestamp String,ip_prefix String) ENGINE = File(JSONEachRow, stdin)
Executing query: SELECT
timestamp,
ip_prefix,
(position(ip_prefix,':') > 0) ? IPv6StringToNum(extract(ip_prefix,'^(.+)/')) : IPv6StringToNum('0') as ip6,
(position(ip_prefix,':') > 0) ? extract(ip_prefix,'^(.+)/') : '' as ip6str,
(position(ip_prefix,'/') > 0) ? toUInt8(extract(ip_prefix,'/([0-9]+)')) : 0 as prefix_len
FROM TMP FORMAT CSV
Read 1 rows, 42.00 B in 0.005 sec., 190 rows/sec., 7.82 KiB/sec.
Row 1:
──────
d: 2017-09-14
ip_prefix: 2a0b:aa80::/29
ip6: \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
ip6str: 2a0b:aa80::
prefix_len: 29
ip6fromNum: 1100:: <------— откуда здесь такое значение вместо 2a0b:aa80:: ?
IPv6NumToString(IPv6StringToNum(\'2a0b:aa80::\')): 2a0b:aa80::


Dig
14.09.2017
14:10:38
Добрый день, а можно ли этот запрос выполнить оптимальней, чтобы не делать двойной проход:
SELECT 'soft' as type, userId, uniq(Email) as counts from table where date >= '2017-09-01' and level = 2 group by userId
union all
SELECT 'other' as type, userId, count() as counts from table where date >= '2017-09-01' and level <> 2 group by userId

Alexey
14.09.2017
14:13:39
select multiIf(level=2, 'soft', 'other') as type ...

Google

N
14.09.2017
15:20:21

Kirill
14.09.2017
15:45:47
Всем привет. Когда достигается лимит выделенной памяти, кликхаус перестает реагировать на запросы и просто кушает память, пока его не вырубишь. Подскажите, это нормальное поведение или нет?
Поднят в докере, конфиги из родного репозитория.

Александр
14.09.2017
16:54:39
А в функцию timeSlot не планируется добавить возможность менять размер слота?
Например не 30 минут, а 5 секунд?

papa
14.09.2017
17:01:51
а чем range + arrayMap не устраивает?
а, timeslot просто округление делает, и вам надо произвольную гранулярность?

Александр
14.09.2017
17:03:47
Да. Есть например время в 23 секунды и надо округлить до 20
Можно с делением поиграться на самом деле

papa
14.09.2017
17:05:19
да, intDiv multiply

Kirill
14.09.2017
17:43:43

Tima
14.09.2017
17:48:34


yuyu
14.09.2017
17:50:05
Не могу понять в чём ошибка: пробую засунуть в поле ipv6 адрес как FixedString(16) - получаю не то, что на входе.
Делаю таким тестовым скриптом:
#!/bin/bash
DB=proba
DATATABLE=iptest
# for debug: start from scratch
clickhouse-client —echo —database=$DB —query="DROP TABLE IF EXISTS $DB.$DATATABLE"
echo Creating table $DB.$DATATABLE if needed
clickhouse-client —echo —database=$DB —multiline —query="CREATE TABLE IF NOT EXISTS $DB.$DATATABLE ("\
"d Date,
ip_prefix String,
ip6 FixedString(16) default toFixedString('',16),
ip6str String,
prefix_len UInt8
) ENGINE = MergeTree(d, (d, ip6), 8192)"
echo '{"timestamp": "2017-09-14", "ip_prefix": "2a0b:aa80::/29"}' \
| clickhouse-local —table=TMP \
—input-format=JSONEachRow \
—verbose \
—structure='timestamp String,ip_prefix String' \
—query=\
"SELECT
timestamp,
ip_prefix,
(position(ip_prefix,':') > 0) ? IPv6StringToNum(extract(ip_prefix,'^(.+)/')) : IPv6StringToNum('0') as ip6,
(position(ip_prefix,':') > 0) ? extract(ip_prefix,'^(.+)/') : '' as ip6str,
(position(ip_prefix,'/') > 0) ? toUInt8(extract(ip_prefix,'/([0-9]+)')) : 0 as prefix_len
FROM TMP FORMAT CSV" \
| clickhouse-client —database=$DB —query="INSERT INTO $DB.$DATATABLE FORMAT CSV" —progress
clickhouse-client —database=$DB —query="SELECT *, IPv6NumToString(ip6) as ip6fromNum, IPv6NumToString(IPv6StringToNum('2a0b:aa80::')) FROM $DB.$DATATABLE FORMAT Vertical"
В результатет получаю такое:DROP TABLE IF EXISTS proba.iptest
Creating table proba.iptest if needed
CREATE TABLE IF NOT EXISTS proba.iptest (d Date,
ip_prefix String,
ip6 FixedString(16) default toFixedString('',16),
ip6str String,
prefix_len UInt8
) ENGINE = MergeTree(d, (d, ip6), 8192)
Executing query: CREATE TABLE TMP (timestamp String,ip_prefix String) ENGINE = File(JSONEachRow, stdin)
Executing query: SELECT
timestamp,
ip_prefix,
(position(ip_prefix,':') > 0) ? IPv6StringToNum(extract(ip_prefix,'^(.+)/')) : IPv6StringToNum('0') as ip6,
(position(ip_prefix,':') > 0) ? extract(ip_prefix,'^(.+)/') : '' as ip6str,
(position(ip_prefix,'/') > 0) ? toUInt8(extract(ip_prefix,'/([0-9]+)')) : 0 as prefix_len
FROM TMP FORMAT CSV
Read 1 rows, 42.00 B in 0.005 sec., 190 rows/sec., 7.82 KiB/sec.
Row 1:
──────
d: 2017-09-14
ip_prefix: 2a0b:aa80::/29
ip6: \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
ip6str: 2a0b:aa80::
prefix_len: 29
ip6fromNum: 1100:: <------— откуда здесь такое значение вместо 2a0b:aa80:: ?
IPv6NumToString(IPv6StringToNum(\'2a0b:aa80::\')): 2a0b:aa80::
Неужто никто не ткнёт пальцем в чём косяк? Кладу в базу одно значение, а вынимаю другое. Вроде простая штука и всё по букварю делаю...


prll
14.09.2017
18:02:33
Не могу понять в чём ошибка: пробую засунуть в поле ipv6 адрес как FixedString(16) - получаю не то, что на входе.
Делаю таким тестовым скриптом:
#!/bin/bash
DB=proba
DATATABLE=iptest
# for debug: start from scratch
clickhouse-client —echo —database=$DB —query="DROP TABLE IF EXISTS $DB.$DATATABLE"
echo Creating table $DB.$DATATABLE if needed
clickhouse-client —echo —database=$DB —multiline —query="CREATE TABLE IF NOT EXISTS $DB.$DATATABLE ("\
"d Date,
ip_prefix String,
ip6 FixedString(16) default toFixedString('',16),
ip6str String,
prefix_len UInt8
) ENGINE = MergeTree(d, (d, ip6), 8192)"
echo '{"timestamp": "2017-09-14", "ip_prefix": "2a0b:aa80::/29"}' \
| clickhouse-local —table=TMP \
—input-format=JSONEachRow \
—verbose \
—structure='timestamp String,ip_prefix String' \
—query=\
"SELECT
timestamp,
ip_prefix,
(position(ip_prefix,':') > 0) ? IPv6StringToNum(extract(ip_prefix,'^(.+)/')) : IPv6StringToNum('0') as ip6,
(position(ip_prefix,':') > 0) ? extract(ip_prefix,'^(.+)/') : '' as ip6str,
(position(ip_prefix,'/') > 0) ? toUInt8(extract(ip_prefix,'/([0-9]+)')) : 0 as prefix_len
FROM TMP FORMAT CSV" \
| clickhouse-client —database=$DB —query="INSERT INTO $DB.$DATATABLE FORMAT CSV" —progress
clickhouse-client —database=$DB —query="SELECT *, IPv6NumToString(ip6) as ip6fromNum, IPv6NumToString(IPv6StringToNum('2a0b:aa80::')) FROM $DB.$DATATABLE FORMAT Vertical"
В результатет получаю такое:DROP TABLE IF EXISTS proba.iptest
Creating table proba.iptest if needed
CREATE TABLE IF NOT EXISTS proba.iptest (d Date,
ip_prefix String,
ip6 FixedString(16) default toFixedString('',16),
ip6str String,
prefix_len UInt8
) ENGINE = MergeTree(d, (d, ip6), 8192)
Executing query: CREATE TABLE TMP (timestamp String,ip_prefix String) ENGINE = File(JSONEachRow, stdin)
Executing query: SELECT
timestamp,
ip_prefix,
(position(ip_prefix,':') > 0) ? IPv6StringToNum(extract(ip_prefix,'^(.+)/')) : IPv6StringToNum('0') as ip6,
(position(ip_prefix,':') > 0) ? extract(ip_prefix,'^(.+)/') : '' as ip6str,
(position(ip_prefix,'/') > 0) ? toUInt8(extract(ip_prefix,'/([0-9]+)')) : 0 as prefix_len
FROM TMP FORMAT CSV
Read 1 rows, 42.00 B in 0.005 sec., 190 rows/sec., 7.82 KiB/sec.
Row 1:
──────
d: 2017-09-14
ip_prefix: 2a0b:aa80::/29
ip6: \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
ip6str: 2a0b:aa80::
prefix_len: 29
ip6fromNum: 1100:: <------— откуда здесь такое значение вместо 2a0b:aa80:: ?
IPv6NumToString(IPv6StringToNum(\'2a0b:aa80::\')): 2a0b:aa80::
http://paste.org.ru/?6izk35 - похоже что норм, а какая версия?


yuyu
14.09.2017
18:16:17

Kirill
14.09.2017
18:21:49

GithubReleases
14.09.2017
18:30:23
https://github.com/yandex/ClickHouse/releases/v1.1.54289-stable was tagged

Paul
14.09.2017
18:38:58
доброго дня, коллеги! Кинье пжлст ссылку в документацию по апгрейду базы
есть ли там какие-то серьезные сложности, подводные камни?

Google

Bulat
14.09.2017
18:43:06
надо читать чейнжлог и обязательно тестировать
ну и не торопиться с обновлениями сразу ,как они выходят. Порой бывают регрессии, которые хотфиксятся

Paul
14.09.2017
19:16:23
нет, у меня тяжелый случай - база 0-какая-то, надо до 1.1 хотя бы дотянуть. Вот и возникает вопрос - есть ли какая-то процедура апгрейда базы?

prll
14.09.2017
19:21:17

Paul
14.09.2017
19:27:16
спасибо!

yuyu
14.09.2017
19:27:28

Alexey
14.09.2017
19:43:44


Tima
14.09.2017
19:48:18

Alexey
14.09.2017
19:49:33
Не поддерживается вообще?
Да, мы сейчас не поддерживаем это. Было реализовано до стадии "бета", а потом заброшено. Там были нерешённые проблемы. Есть ещё шанс доделать.


Stas
14.09.2017
19:53:16
@milovidov_an а насчёт пивота вопрос был, не будет ли поддержки? Было бы круто если бы она была с ограничением если колонка входит в ключ например

Alexey
14.09.2017
19:53:42

Александр
14.09.2017
19:56:42
@milovidov_an Алексей, а по последнему стейблу нет еще changelog'a? В гите не нашел (

Alexey
14.09.2017
19:58:35
Время выполнения не должно отличаться от FORMAT TabSeparated. Но конечно, в случае большого результата, будет медленнее, чем с форматами RowBinary или Native.
Увеличение времени может быть случайностью. Если воспроизводится, то хотелось бы пример.

Google

Alexey
14.09.2017
20:08:41
Всем привет. Когда достигается лимит выделенной памяти, кликхаус перестает реагировать на запросы и просто кушает память, пока его не вырубишь. Подскажите, это нормальное поведение или нет?
Поднят в докере, конфиги из родного репозитория.
Это бывает, если ограничения на потребление оперативки запросами (max_memory_usage, max_memory_usage_for_user, max_memory_usage_for_all_queries) или размеры кэшей, превышают то количество оперативки, которое доступно на сервере.
Значения по-умолчанию (например, max_memory_usage - 10 GB) рассчитаны на полноценный сервер.


Kirill
14.09.2017
20:12:52

Alexey
14.09.2017
20:13:11

Igor
14.09.2017
20:26:23

Александр
14.09.2017
20:34:15

Alexey
14.09.2017
20:43:24

Александр
14.09.2017
20:44:05
У меня все еще проще ) Нет времени, есть просто какой то момент в рамках видео, например 14-я секунда видео.