
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. Вопрос, ее еще не сделали? или отказались?