Sergey
21.09.2017
12:32:45
Из разных Statement должно быть можно, иначе - странно.
По коду проблем не вижу.
Max
21.09.2017
12:56:15
но выяснился второй нюанс. у меня в файле есть явно NULL который как я понимаю для tabseparated не понимается
нужно \N
Google
Stas
21.09.2017
14:34:04
А никто не знает кейсы когда AggregatingMergeTree оправданы? а то дисклеймер в документации насторожил
>Заметим, что в большинстве случаев, использование AggregatingMergeTree является неоправданным, так как можно достаточно эффективно выполнять запросы по неагрегированным данных.
Vladimir
21.09.2017
14:42:56
Подскажите пожалуйста, какой функцией отрезать слэш с конца урла если где-то он есть, а где-то нет
Tima
21.09.2017
14:47:25
Vladimir
21.09.2017
14:48:25
Класс, спасибо!
yuyu
21.09.2017
16:14:05
Поясните, пожалуйста, как будет работать такая цепочка с точки зрения пикового потребления оперативки ( в ${MSGLOG} список файлов общим объёмом 1-10 гиг:, т.е. будет ли оно пропорционально суммарному объёму или поток данных будет разбит на куски поблочно:
gzip -dc ${MSGLOG} \
| grep -v dump \
| clickhouse-local —table=TMP \
—input-format=JSONEachRow \
—input_format_skip_unknown_fields=1 \
—verbose \
—structure="${logstruct}" \
—query="${query}" \
| clickhouse-client —database=$DB —query="INSERT INTO $DB.$DATATABLE FORMAT Native" —progress
Sergei
21.09.2017
16:30:53
Подскажите пожалуйста, а есть такая вероятность, что для SummingMergeTree записи никогда (или очень долго) не смержатся
Alexandr
21.09.2017
16:32:53
Вполне возможно, а если таблица distributed, то данные на разных нодах и в любом случае надо самому доагрегировать с помощью агрегатных функций
optimize table поможет домержить, но его не вариант юзать в продакшн часто, поэтому group by с соотв. агрегатной функцией лучше вариант
Vladimir
22.09.2017
10:10:34
Добрый день, а нет ли в кликхаусе простого способа собрать олап куб?
Bulat
22.09.2017
10:35:36
олап куб нинужин!)
реально, зачастую можно гонять аналитические запросы по сырым данным и все работает быстро. За то и любим
Paul
22.09.2017
10:37:09
OLAP - это не про скорость, это про удобство интерфейса
Mike
22.09.2017
10:46:00
У кх есть одна мажорная проблема, на мой вкус — нулевой тулинг. То, что есть, с ним толком не работает, а нового не написано. В итоге у нас три аналитических интерфейса к нему: Tabix, Jupiter, Redash, и это нас тормозит сильнее, чем замедление от какого-нибудь постгреса. Любые данные можно вытащить только через sql :(((
Google
Sergei
22.09.2017
10:46:23
Может кто сталкивался с проблемой
Движок ReplicatedSummingMergeTree
У меня в том списке, где указаны колонки, по которым нужно проводить суммирование, колонки идут не в том порядке, в каком указаны в таблице. Так вот начиная с той колонки, у которой порядок отличается данные левые. Первые две колонки (их порядок такой же, как и в таблице) все бъется с другим источником, а дальше идет не та колонка, которая идет в описании таблицы (в описании она вообще последняя) и вот после нее в данных полный хаос
версия 1.1.54245
вроде в описании нет, что порядок должен соблюдаться
на репликах описание одинаковое
Stepan
22.09.2017
11:01:30
Ребят, при распределенных запросах КХ сейчас лезет то в реплику, то в лидера, можно ли сделать так, чтобы при DISTRIBUTED-запросе лезли только на лидера и уже в случае его недоступности, в реплику?
Александр
22.09.2017
11:35:30
А кто подскажет, если я выполню два одновременных запроса с использованием временной таблицы из файла через http интерфейс, то никаких конфликтов не будет из-за одинакового названия временной таблицы. Как этот механизм вообще работает?
Nikolai
22.09.2017
11:51:43
Kirill
22.09.2017
11:54:13
Наш CEO впервые увидел ClickHouse в действии
geoff [1:54 PM]
I have a boner looking at the new stats
it's so fucking fast
)
Александр
22.09.2017
12:07:24
Rayan
22.09.2017
12:15:24
Всем привет, кто нибудь подгружал NULL значения через словари?
получаю
Code: 36, e.displayText() = DB::Exception: Error parsing null_value: DB::Exception, e.what() = DB::Exception, Stack trace:
словарь подгружается через http
Александр
22.09.2017
12:18:38
У меня тут веселее ситуация :)
Есть таблица, в ней есть nested и есть временная таблица, в ней есть колонка Array(String).
Я делаю запрос из первой таблицы и array join nested колонки, это все дело джойню к результату подзапроса из второй таблицы где делаю array join колонки с Array(String) и получаю веселую ошибку: Type mismatch of columns to JOIN by: childEntityIri String at left, childEntityIri Array(String) at right
Хотя "первая" таблица уже развернута и там тип string и "вторая" таблица развернута и там тип string.
Rayan
22.09.2017
12:19:23
Скриншот от комманды
curl -s localhost:8080/my_dict.tsv | head | less
+ поиск по ^I т.е по табам
Nikolai
22.09.2017
12:19:47
Rayan
22.09.2017
12:21:02
<dictionary>
<name>dim_product</name>
<source>
<http>
<url>http://localhost:8080/my_dict.tsv</url>
<format>TabSeparated</format>
</http>
</source>
<lifetime>
<min>300</min>
<max>360</max>
</lifetime>
<layout>
<hashed/>
</layout>
<structure>
<id>
<name>id</name>
</id>
<attribute>
<name>f1</name>
<type>String</type>
<null_value/>
</attribute>
<attribute>
<name>f2</name>
<type>String</type>
<null_value/>
</attribute>
<attribute>
<name>d1</name>
<type>Date</type>
<null_value/>
</attribute>
<attribute>
<name>d2</name>
<type>Date</type>
<null_value/>
</attribute>
</structure>
</dictionary>
Nikolai
22.09.2017
12:22:43
Rayan
22.09.2017
12:23:27
минуту
Google
Rayan
22.09.2017
12:26:49
Row 1:
Column 0, name: product_sku_id, type: UInt64, parsed text: "1"
Column 1, name: dim_product_sku_id, type: String, parsed text: "33000001"
Column 2, name: product_name, type: String, parsed text: "ANCHOR RECTANGULAR GLAS 1.1L PS0042"
Column 3, name: list_date, type: Date, parsed text: "2016-03-04"
Column 4, name: delete_date, type: Date, parsed text: "<BACKSLASH>N<LINE FEED>2<TAB>33000"
ERROR: garbage after Date: "010<TAB>ANCHOR"
ERROR: Date must be in YYYY-MM-DD format.
Не остановился после <BACKSLASH>N на <LINE FEED>
<BACKSLASH>N - это ведь "escaped" null?
Александр
22.09.2017
12:31:35
а можете запрос показать?
Ох...сложно, т.к. временная таблица используется, но сейчас напишу.
SELECT
count() AS attemptsTotal,
entityIri,
learnerId
FROM
(
SELECT
learnerId,
entityIri,
childEntityIri
FROM entitiesTempTable
ARRAY JOIN childs AS childEntityIri
)
ANY LEFT JOIN
(
SELECT
learnerId,
entitiesResults.entityIri AS childEntityIri
FROM learners
ARRAY JOIN entitiesAttempts
PREWHERE learnerId IN learnersTempTable
WHERE childEntityIri IN irisTempTable
) USING (learnerId, childEntityIri)
GROUP BY
learnerId,
entityIri
По отдельности если подзапросы выполнять, то возвращается string и там и там в колонке childEntityIri
А если вот так в кучу собрать, то кидает ошибку (
Версия 1.1.54246
Nikolai
22.09.2017
12:33:09
papa
22.09.2017
12:34:22
entitiesResults.entityIri AS childEntityIri а это разве не массив строк?
Александр
22.09.2017
12:35:10
Кажется я нашел проблему...дело не в этом было )
Нет, это не массив строк. entitiesAttempts должно быть вместо entitiesResults. Сейчас проверю теорию )
Да, блин...причем КХ даже не ругнулая на select entitiesResults.entityIri as entityIri from learners array join entityAttempts
Он реально колонку выбирал как массив
papa
22.09.2017
12:38:32
это не запрещено
Александр
22.09.2017
12:40:47
Это да )
Vladimir
22.09.2017
12:54:22
Уважаемые пользователи Talend, подскажите, пожалуйста, как увеличть таймаут для jdbc clickhouse?
Alexey
22.09.2017
12:57:47
Привет. Лексер/парсер в ClickHouse руками написан, без yacc/bison/ragel/etc?
Rayan
22.09.2017
12:59:03
Сравнил с
clickhouse-client --query="SELECT * FROM test FORMAT TabSeparated" > text2
Все выглядит правильно
Google
Олег
22.09.2017
13:00:50
Alexey
22.09.2017
13:01:06
Жаль. Спасибо
Rayan
22.09.2017
13:09:42
А если записывать через формат RowBinary, как записать NULL?
Michal
22.09.2017
13:32:53
Глупый вопрос: почему clickhouse-client иногда вместо одной таблицы с результатом, разделяет результат на несколько одинаковых таблиц (повторяя каждый раз заголовок).
Tima
22.09.2017
13:33:47
Michal
22.09.2017
13:36:31
Bulat
22.09.2017
13:37:41
можно добавить order by в конце, тогда все придет с одного редьюсера и будет в одном батче
*или нет
Igor
22.09.2017
13:39:43
Rayan
22.09.2017
13:40:50
это только для строк?
если ожидается к примеру Datetime то это UInt64
или байт 01 просто означает NULL для всех типов?
Igor
22.09.2017
13:42:44
это для любых Nullable() типов
сначала ноль или единица, потом как обычно
Rayan
22.09.2017
13:44:06
спасибо
попробую через RowBinary записать
если в конфиги словаря указан <null_value/> на некий аттрибут, то так что считается Nullabe, верно?
без указания значения при null
Vitaliy
22.09.2017
13:49:45
Konstantin
22.09.2017
13:50:24
Google
Andrey
22.09.2017
13:53:02
Ребят, сори за оффтоп, а знает кто-нибудь канал по Apache Spark и попутным технологиям?
Vitaliy
22.09.2017
13:55:40
Michal
22.09.2017
13:57:22
Vitaliy
22.09.2017
14:12:45
Rayan
22.09.2017
14:16:11
Тогда получается что dictGet функции так же не могут возвращать null
Vitaliy
22.09.2017
14:17:49
Rayan
22.09.2017
14:18:14
Тогда что значит <null_value/>?
Vitaliy
22.09.2017
14:25:22
Rayan
22.09.2017
14:45:29
Спасибо за информацию
Vitaliy
22.09.2017
14:49:43
Vladislav
22.09.2017
18:33:52
Всем привет. Видел обсуждение про функцию tostartofinterval. Вопрос, ее еще не сделали? или отказались?