@clickhouse_ru

Страница 181 из 723
Egor
23.06.2017
07:25:27
/stat@combot

Combot
23.06.2017
07:25:27
combot.org/chat/-1001080295593

Aleksandr
23.06.2017
09:24:59
А есть какой-то другой, более быстрый метод импорта данных, помимо того что описан в tutorial? xz -v -c -d < ontime.csv.xz | clickhouse-client --query="INSERT INTO ontime FORMAT CSV"

Andrey
23.06.2017
09:35:14
Google
Aleksandr
23.06.2017
09:35:50
только описания нет https://clickhouse.yandex/docs/en/formats/native.html )

детального

Andrey
23.06.2017
09:36:31
ну для его использования надо будет ней загружатор писать. На сколько я знаю есть драйверы под go и c++

Aleksandr
23.06.2017
09:38:01
у нас задача - выгрузить данные из hive, и заимпортить их в кликхаус, было бы круто если бы был загружатор для parquet

Andrey
23.06.2017
09:39:31
не, коробочного нет. Есть кстати драйвер для Spark. https://github.com/DmitryBe/clickhouse-spark-connector

Aleksandr
23.06.2017
09:41:02
посмотрим сейчас спасибо!

Roman
23.06.2017
10:15:37
Всем привет! Добавил графана-дашборд для отображения информации из таблицы query_log в КХ https://grafana.com/dashboards/2515

Александр
23.06.2017
10:16:09
Полезная штука! Спасибо!

Bulat
23.06.2017
10:32:28
а можно через http интерфейс указать дефолтный формат для вывода данных, вместо того чтобы писать его в каждом запросе ?

Andrey
23.06.2017
10:40:25
Пробуйте аргументом в гет запросе

Nikita
23.06.2017
10:40:44
ага, default_format называется

Bulat
23.06.2017
10:41:38
спасибо

Oleg
23.06.2017
11:15:40
Добрый день! Может кто знает способ получить в выборке из news элементы которых нет в news. Т.е. left join значений в запросе на таблицу. Пытался как-то так, не выходит.. SELECT arrayJoin([300, 325]) AS newsId ALL LEFT JOIN (SELECT newsId FROM news WHERE date='2017-06-22' GROUP BY newsId) USING newsId

Google
Oleg
23.06.2017
11:30:57
Вот так заработало. Выглядит так себе. Может есть вариант попроще.. SELECT newsId, views FROM (SELECT arrayJoin([toUInt32(300), toUInt32(325), toUInt32(1021170)]) as newsId) ALL LEFT JOIN (SELECT newsId, sum(views) views FROM news WHERE date='2017-06-22' GROUP BY newsId) USING newsId;

Andrey
23.06.2017
11:56:52
Ребят, а можно ли искать вхождение нескольких элементов в массиве по порядку? например есть массивы из 3 чисел, нужно найти все в которых входит массив [1,2]

Александр
23.06.2017
11:58:31
Блин, после кх не могу состряпать запрос в mysql без подзапросов и пр фигни что бы он быстро работал ))))

Александр
23.06.2017
11:59:18
А порядок прям обязателен?

Можно попробовать сделать arrayMap какой нибудь и потом сравнить массивы

Andrey
23.06.2017
12:04:23
да, вот к примеру есть массивы: 1) [1,2,3] 2) [5,6,2] 3) [5,1,2] 4) [3,2,1] нужно найти все в которых есть [1,2], в результате хоче получить варианты с номерами 1 и 3.

Almaz
23.06.2017
12:04:50
не сюда )

Andrey
23.06.2017
12:05:26
не сюда )
в telegram есть delete, это же не clickhouse)

Almaz
23.06.2017
12:06:09
в telegram есть delete, это же не clickhouse)
быстрее так получилось

Александр
23.06.2017
12:15:02
да без разницы)
Получилось

CREATE TABLE test ( col String, haystack Array(UInt16) ) ENGINE = Memory

insert into test (col, haystack) VALUES ('row 1', array(1,2,3)), ('row 2', array(5,6,2)), ('row 3', array(5,1,2)), ('row 4', array(3,2,1))

SELECT col, [toUInt16(1), toUInt16(2)] = arrayMap(x -> toUInt16(x), arrayFilter(x -> has([1, 2], x), haystack)) AS result FROM test WHERE result = 1

┌─col───┬─result─┐ │ row 1 │ 1 │ │ row 3 │ 1 │ └───────┴────────┘

Впринципе массив можно как извне (захардкодить) в запросе, так и из колонки брать

Andrey
23.06.2017
12:16:58
тюююю, это же прекрасно

Google
Александр
23.06.2017
12:17:22
Только там с типами значений внутри массива надо по хорошему поиграться

Andrey
23.06.2017
12:18:54
осталось понять на сколько это эффективно работает

Александр
23.06.2017
12:19:12
Ну тут только тестировать

papa
23.06.2017
12:19:17
Александр
23.06.2017
12:19:39
1,3,2 ?
Должно получиться только 1,3

Аааа прошу прощения _ я думал вы про результат

papa
23.06.2017
12:20:21
насколько я понимаю нужны элементы подряд, а не подпоследовательность

Александр
23.06.2017
12:20:36
Добавил строчку

Не, там надо проверить наличие элементов в последовательности

Неважно что между ними еще

с 1,3,2 тоже работает

Andrey
23.06.2017
12:21:17
насколько я понимаю нужны элементы подряд, а не подпоследовательность
да, нужно точное вхождение. Ну кароч аналог like '%1,2%' только для массивов :D

papa
23.06.2017
12:21:32
position(arrayStringConcat(arrayMap(v->toString(v),x),'_'), '1_2') > 0

Andrey
23.06.2017
12:21:46
papa
23.06.2017
12:21:47
не то чтобы аналог, но в качестве шутки пойдет.

Александр
23.06.2017
12:22:00
а не должно)
Значит я задачу не так понял )

Andrey
23.06.2017
12:22:35
Значит я задачу не так понял )
ну я вот выше описал, нечто вроде like '%1,2%' только для массивов ))

просто like имхо не оптимально вообще

papa
23.06.2017
12:24:07
подстрка это хотя бы линейно, а лямбды с поиском нужных индексов сразу квадрат даст. но вообще конечно для таких вещей, если они нужны, нужны подходящие функции.

Александр
23.06.2017
12:29:53
Можно попробовать массив в строку загнать и там через match, но это регулярка...

Google
papa
23.06.2017
12:33:12
можно кнута-морриса-пратта реализовать на массивах чего угодно вместо массивов символов и делать positionArray

Andrey
23.06.2017
12:53:14
position(arrayStringConcat(arrayMap(v->toString(v),x),'_'), '1_2') > 0
а не будет ли эффективнее просто сделать toString(arr_field) like '%1,2%' ?

Roman
23.06.2017
14:06:07
Добрый день. Не нашел функцию, которая бы могла выдернуть из строки вида GET-параметров URL'a какой-то конкретный параметр. Исходя из специфики кликхауса может быть вполне полезно. Нет ли такого?

типа строки param1=v1&param2=v2&...

Александр
23.06.2017
14:09:39
https://clickhouse.yandex/docs/ru/functions/url_functions.html#extracturlparameternames-url

Не подошла?

А потом сделать concat на массив

Если надо

Вру, не ту скинул

Roman
23.06.2017
14:10:25
extractURLParameter(URL, name)

оо

Александр
23.06.2017
14:10:31
https://clickhouse.yandex/docs/ru/functions/url_functions.html#extracturlparameters-url

Roman
23.06.2017
14:10:31
что-то я мимо просмотрел

Спасибо!

Igor
23.06.2017
14:12:59
Добрый вечер, CH стал выдавать забавные ошибки: select count() from key_events where app_type = 0 SELECT count() FROM key_events WHERE app_type = 0 Received exception from server: Code: 10. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Not found column image_ids in block. There are only columns: app_type. 0 rows in set. Elapsed: 0.055 sec. app_type : UInt8 image_ids : есть в другой таблице, но не в этой Одним словом ошибка забавная

Igor
23.06.2017
14:16:40
по версии сейчас отпишиусь

по поводу колонки, колонка такая есть

Google
Igor
23.06.2017
14:17:41
select app_type from page_visit limit 1 - работает

Александр
23.06.2017
14:17:44
я имею ввиду колонки image_ids нет в таблице key_events

Igor
23.06.2017
14:17:59
да, она есть в другой таблице

Александр
23.06.2017
14:18:58
Просто в запросе select count() from key_events where app_type = 0 колонка не упоминается и почему вообще CH решил, что она где то упоминается в запроса достаточно странно

Igor
23.06.2017
14:19:42
это да, только маленький апейт, таблица page_visit, я опечатался, все остальное остается верным

Александр
23.06.2017
14:20:01
А там изначально такой колонки не было?

Igor
23.06.2017
14:20:02
кстати єто работает: select app_type from page_visit where app_type=0 limit 1;

нет, эта колонка была и есть только в таблице tag_events

Александр
23.06.2017
14:20:55
Тогда предлагаю завести issue в трекере гита )

Igor
23.06.2017
14:21:25
так и сделаю)

по поводу версии: ClickHouse server version 1.1.54231.

если кому будет интерестно: select count() from page_visit where app_type = 0 - ошибка select count() from page_visit where app_type = 1 - выполняется

Maksim
23.06.2017
17:07:32
Добрый вечер. Может кто нибудь пояснит принцип работы materialized view? (и подойдет ли это мне, и если нет, то что подойдет..?) Задача: нужно при вставке в сырую таблицу осуществить авто вставку в другую таблицу части данных в запросе. Пример: вставляем в сырую таблицу запись - user_id 100 | shows 50 | clicks 10 нужно автоматом вставить такую же запись в другом представлении в таблицу например sum merge user_id 100 | shows 50 где только просмотры пользователя суммируются Помогите плиз)

Alexander
23.06.2017
17:08:41
у меня materialized view превратили сервера в тыкву, выжрав всю память при вставках :)

Maksim
23.06.2017
17:08:41
Другими словами есть таблица свалка. в которую сваливаем около 45 столбцов данных, нужно разбить эту таблицу на несколько маленький специализированных

Alexander
23.06.2017
17:08:53
но там у меня всякие разные агрегации были

Maksim
23.06.2017
17:09:50
всю память? при каком количество вставок в секунду? и в какое количество таблиц он дублирован данные?

и сколько памяти

))

вопрос целесообразности - либо 10 insert в разном виде либо 1 insert который превратит их в 10

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