@clickhouse_ru

Страница 50 из 723
Anton
18.01.2017
17:46:29
что-то вроде NVL()

Alexey
18.01.2017
18:22:36
Это частый баг репорт :( Пока есть плохие способы через UNION ALL ещё одного запроса.

Darafei
18.01.2017
18:24:23
coalesce нет?

Alexey
18.01.2017
18:25:37
coalesce есть, но скалярный подзапрос при отсутствии результата возвращает не NULL, а вообще ничего (после этого кидается исключение). Только что подумал, что это легко исправить.

Google
Alexander
18.01.2017
23:28:26
Можно заменить 'dt = (select max() ... )' на 'dt in (select max() ... )' -- тогда ошибки нет, просто пустой результат

Roman
19.01.2017
04:26:55
Запрос dt in (select max() ...) не будет использовать индекс

Alexander
19.01.2017
06:11:30
Вот это куда более существенный баг, на мой взгляд.

Igor
19.01.2017
08:01:05
вместо T тип столбца в словаре

и в кавычках название словаря и атрибута например, dictGetString('test', 'a', 1) или dictGetUInt64('test', 'a', 1) в зависимости от того, какого типа у вас 'a' в словаре 'test'

Vladimir
19.01.2017
08:01:30
ок. понял)

Anton
19.01.2017
08:11:09
Запрос dt in (select max() ...) не будет использовать индекс
Серьёзно? На самом деле мне нужно dt > (select max()...) делать. Здесь тоже что ли индекс не будет задействован?

Roman
19.01.2017
08:23:50
Судя по коду должен быть задействован. Проверь ;)

Anton
19.01.2017
08:31:08
ясно :)

Andrey
19.01.2017
12:17:16
Добрый день. Подскажите в чём проблема: Есть две таблицы: CREATE TABLE fact (campaignId String, ...) ENGINE = Distributed(...) CREATE MATERIALIZED VIEW campaignJoin (campaignId String, campaignName String) ENGINE = Join(ANY, LEFT, campaignId) AS ... Пытаюсь выполнить запрос: select campaignId, campaignName FROM (SELECT campaignId FROM fact) ANY LEFT JOIN campaignJoin USING campaignId Получаю: DB::Exception: Method read is not supported by storage Join По документации, вроде корректно использовать таблицы с движком Join в качестве правой таблицы, как в запросе.

Igor
19.01.2017
15:59:58
а забрать поле по другому столцбу словаря (не id) не представляется возможным? complex key не подходит, ибо другая часть составного ключа может быть неизвестна :( соотв. надо несколько словарей создавать?

Виктор
19.01.2017
16:08:25
Да, несколько словарей

Алексей
19.01.2017
20:54:10
Доброго времени суток! Подскажите пожалуйста есть 2 таблицы, 1. переходы по ссылкам с clickID - id клика, countryID - код страны 2. успешные конверсии по переходам, clickID - id клика, payout - сумма оплаты Нужен отчет по сумме конверсий по стране. Для amazon redshift был такой ---------- select countryID , sum(p.payout) as payout from redirects sr, postbacks p where sr.cid = p.cid group by countryID order by payout desc ------ Никак не соображу как сделать похожий запрос в clickhouse

Google
f1yegor
19.01.2017
21:01:13
select countryId, sum(p.payout) as payout from redirects ALL INNER JOIN postbacks USING (cid) group by countryID order by payout desc

надо почитать вот это https://clickhouse.yandex/reference_en.html#JOIN clause

Алексей
19.01.2017
21:07:38
спасибо))

Alexey
19.01.2017
21:07:56
Удобнее было бы, если конверсии и переходы пишутся в одну таблицу; столбец countryID заполняется у всех строк, а payout заполняется для конверсий и равен нулю для переходов. Тогда запрос получается обычным GROUP BY, без JOIN.

f1yegor
19.01.2017
21:08:34
а есть возможность сравнить производительность redshift vs clickhouse?

@milovidov_an есть ли какие-то планы сделать explain/analyze для запросов?

Алексей
19.01.2017
21:14:39
У нас clickhouse в продакшн Пробовали перейти на redshift, т.к. с ним куча аналитических сервисов работает, например, chartio Споткнулись на вставке данных

тестировали redshift cluster on 3 dc1.large machines dc1.large has 15 Memory (GiB), 2 CPU, 160 GB SSD clickhouse на одном DO droplet 16 GB Memory / 60 GB Disk + 200 GB redshift не успевал обрабатывать запросы на вставку данных, нужно было мудрить с загрузкой данных сначала на s3 потом в redshift. Как-то сложно там все(( Зато кластер мышкой можно запустить через интерфейс

f1yegor
20.01.2017
08:44:15
доброе утро. вопрос: что случится если у меня прийдет 3 жирные query и их суммарное потребление будет больше чем на хосте?

будет очередь или фолт?

пытается ли scheduler вычислить сколько потребуется памяти для запроса?

когда я делаю

FROM ( SELECT <right table columns>, * FROM (

и * для <left-table columns> будут ли колонки которые не учитываются во внешней квери убраны?

Valeriy
20.01.2017
10:49:01
Не то баг, не то... баг. ClickHouse-client считает валидным подзапрос с несуществующим полем, если он указан в IN: :) select Level from graphite_tree where Path in (select Path from graphite_tree where Version > asdfaf); SELECT Level FROM graphite_tree WHERE Path IN ( SELECT Path FROM graphite_tree WHERE Version > asdfaf ) Ok. При этом отдельно этот подзапрос выдает ошибку, конечно: :) select Path from graphite_tree where Version > asdfaf; SELECT Path FROM graphite_tree WHERE Version > asdfaf Received exception from server: Code: 47. DB::Exception: Received from localhost:19000, ::1. DB::Exception: Unknown identifier: asdfaf. 0 rows in set. Elapsed: 0.066 sec.

Алексей
20.01.2017
11:10:52
Господа, балуюсь с кликхаусом, поднял его в докере. понапихал данных, потыкал их перезапустил контейнер, база в которую пихал данные пропала. данные главно лежат

а в кликхаусе таблицы нету

пути все перепроверил всё должно быть

Google
Алексей
20.01.2017
11:11:21
куда смотреть ?

Dmitry
20.01.2017
11:12:23
А что в папке metadata?

Алексей
20.01.2017
11:14:02
а нету такой

Dmitry
20.01.2017
11:15:44
Ну без нее и таблиц не будет

Алексей
20.01.2017
11:16:59
ага

Dmitry
20.01.2017
11:20:35
В /opt/clickhouse/metadata лежит ddl для всех таблиц. Его кх применяет на старте

Vitaliy
20.01.2017
11:22:14
куда смотреть ?
ATTACH TABLE. Должно помочь если схемы таблиц где-то остались, если нет можно попробовать ее восстановить по /opt/clickhouse/data/<DB>/<table>/<NUMBERS>/columns.txt

Алексей
20.01.2017
12:09:51
тоесть вот так в docker-compose было мало ? volumes: - ./clickhouse/config:/etc/clickhouse-server - /data/analitics/data:/opt/clickhouse/data

Dmitry
20.01.2017
12:10:18
/opt/clickhouse/metadata обязательно нужна

лучше целиком /opt/clickhouse/

Алексей
20.01.2017
12:11:02
ок

сейчас что бы данные старые вернуть можно попроьовать залить данные еще раз, получить работающий /opt/clickhouse/metadata/dbname.sql

и подсунуть старые данные

ага ?

Dmitry
20.01.2017
12:13:33
/opt/clickhouse/DB_NAME/TABLE_NAME.sql

в sql файле должен быть обычный create table, только вместо create - ATTACH

Dmitrii
20.01.2017
12:22:33
Как лучше поступить, если нужно ходить в кликхаус, расположенный на отдельной машине? открыть порт http интерфейса наружу или хайли рекоммендед закрыться nginx-ом?

планируется много записи и чтения

Dmitry
20.01.2017
12:31:51
Ходите через ssh тунель.
Очень странное решение

Google
Константин
20.01.2017
12:32:30
Народ, использует ли кто http словари? Столкнулся с проблемой, если http отдал, допустим 500ю ошибку, то кликхаус не обновляет этот словарь долго и упорно.

Dmitry
20.01.2017
12:32:34
Смысла закрывать nginx не вижу

f1yegor
20.01.2017
12:33:56
кто может пояснить как делается join 3х таблиц на уровне данных? т.е. не ясен момент: в документации говорится что будет полная выборка правой таблицы и левая будет заджойнена стримом. если делаешь второй джойн, то значит все предыдущие данные должны умещаться в память?

я сейчас получаю "Memory limit (for query) exceeded: would use 9.34 GiB", знаю что могу увеличить. но надо же сначало понять

Dmitrii
20.01.2017
12:37:36
@AndreevDm Ок, спасибо!

Константин
20.01.2017
13:07:33
скажите, можно ли как-то из cli заставить clickhouse обновить словари?

Alexander
20.01.2017
13:09:52
Из клиента сейчас никак, но Яндекс собирается сделать команду

На сервере самое простое -- touch файла конфига.

Алексей
20.01.2017
13:11:01
а как сейчас можно обновить словари ?

просто тач ?

Alexander
20.01.2017
13:11:29
Да. Но вообще там стоит по дефолту раз в 5 минут обновление (в xml словаря)

Константин
20.01.2017
13:11:36
у меня http словарь

Алексей
20.01.2017
13:11:55
у меня стояло 3600 и словарь обновлялся очень давно.

Igor
20.01.2017
13:12:03
да без разницы какой источник, не?

Константин
20.01.2017
13:12:33
тогда вообще странно, так как у меня lifetime стоит min=30 max=60

Igor
20.01.2017
13:12:48
или если получил 500 от хттп источника, обновляет еще реже, чем раз в минуту?

Константин
20.01.2017
13:13:14
до сих пор выдает: Code: 86. DB::Exception: Received from 127.0.0.1:9000. DB::Exception: Received error from remote server http://local-host/publisher_sites.php. HTTP status code: 500, body: .

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

Shine
20.01.2017
13:27:55
В формате json возвращается параметр rows_before_limit_at_least. Насколько понял, он вычисляется приближенно и часто он возвращает какие-то левые значения. Подскажите, можно ли как-то получить гарантированно точное количество строк (до применения лимита) в одном запросе с применением limit ?

Google
Dmitry
20.01.2017
13:29:48
select count() ...

Alexander
20.01.2017
14:15:53
какие люди)

Yury
20.01.2017
14:17:35
какие люди)
Привет! :) Присматриваемся к ch для своих задач

f1yegor
20.01.2017
15:12:10
@milovidov_an кто может пояснить как делается join 3х таблиц на уровне данных? т.е. не ясен момент: в документации говорится что будет полная выборка правой таблицы и левая будет заджойнена стримом. если делаешь второй джойн, то значит все предыдущие данные должны умещаться в память?

еще как быстрое улучшение прогресса, можно добавить memory_usage в вывод?

Yury
20.01.2017
17:54:32
Подскажите, пожалуйста, кто-нибудь экспериментировал с настройкой sql ide (например datagrip) + jdbc драйвер ch ? Вообще тема рабочая?

Artem
20.01.2017
17:57:24
А неплохо было бы перевести click house на блокчейн

Реализовать нечто подобное http://www.bigchaindb.com

Но это наверное все переписывать надо

nikoinlove
20.01.2017
17:58:47
один парень хотел переписать кликхаус на блокчейн

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