
Alexey
23.07.2018
11:58:23
Подскажите, пожалуйста, это баг или фича?
SELECT toUnixTimestamp(toDateTime(toDate('0000-00-00')));
Возвращает 4294956496
Интуитивно ожидается 0 в этом случае.

Jen
23.07.2018
11:58:56
0 это 1970 год :)

Alexey
23.07.2018
12:00:19
Для сравнения select toUnixTimestamp(toDateTime('0000-00-00 00:00:00'));
возвращает 0

Wolf
23.07.2018
12:03:07
таймстемп это коилчество секунд от 1970 года

Google

Vasiliy
23.07.2018
12:22:40
@milovidov_an привет! Выше спам ^^

Dmitry
23.07.2018
12:23:34
Сидел на нескольких больших каналах и такого не видел, а тут прям задалбливают...

Vasiliy
23.07.2018
12:24:04
Уже не первый раз именно этот спам вижу...

Denis
23.07.2018
12:24:35
давайте только не будем Алексея на такие вещи отвлекать. тут другие админы есть

Evgeny
23.07.2018
12:26:14
Зовите @Cyberdyne_Systems_bot в чат )

Konstantin
23.07.2018
12:27:01

Alex
23.07.2018
12:28:21

Alexey
23.07.2018
12:28:46
Переформулирую свой вопрос:
Запрос: select toUnixTimestamp(toDateTime(toDate('1970-01-01')));
возвращает 4294956496
Запрос: select toUnixTimestamp(toDateTime(toDate('1970-01-02')));
возвращает: 75600
Запрос: select toUnixTimestamp(toDateTime(toDate('1970-01-03')));
возвращает значение: 162000
Как изменить запрос (я беру данные из поля типа Date) , чтобы запросы возвращали корректные значения?

Konstantin
23.07.2018
12:29:15

Vladimir
23.07.2018
12:30:02
75600 - это правильное значение для Москвы.

Alexey
23.07.2018
12:30:28
Понял, UTC+3

Vladimir
23.07.2018
12:31:15
4294956496 - видимо, потому что минус 3 часа никак не преобразовать в таймстемп.

Alexey
23.07.2018
12:32:22
Да, понял.
Тогда вопрос такой: можно ли, чтобы toDateTime не учитывал смещение часового пояса?

Google

Vladimir
23.07.2018
12:33:27
All functions for working with the date and time for which this makes sense, can take a second, optional argument - the time zone name.

Alexey
23.07.2018
12:33:41
О! Спасибо большое!

Dann
23.07.2018
12:51:29
Подскажите, а как из таблицы следующего вида:
user_id (Int64) | vendors (Array(String))
1 | [apple]
2 | [xiaomi]
3 | [samsung, apple]
4 | [lg, asus, xiaomi]
...
получить частотные значения из vendors?
Например:
vendor (String) | freq (Int32)
apple | 101
samsung | 62
xiaomi | 31
...
Есть функция topK(N)(column), но она не возвращает сами частоты, только сортирует значения по ним.

Denis
23.07.2018
12:52:39
count(1) group by vendors?

Vladimir
23.07.2018
12:58:09
Подскажите, а как из таблицы следующего вида:
user_id (Int64) | vendors (Array(String))
1 | [apple]
2 | [xiaomi]
3 | [samsung, apple]
4 | [lg, asus, xiaomi]
...
получить частотные значения из vendors?
Например:
vendor (String) | freq (Int32)
apple | 101
samsung | 62
xiaomi | 31
...
Есть функция topK(N)(column), но она не возвращает сами частоты, только сортирует значения по ним.
WITH
arrayJoin([['a', 'b', 'c'], ['c', 'd']]) AS data,
arrayJoin(data) AS result
SELECT
result,
count()
GROUP BY result
┌─result─┬─count()─┐
│ b │ 1 │
│ c │ 2 │
│ d │ 1 │
│ a │ 1 │
└────────┴─────────┘
4 rows in set. Elapsed: 0.002 sec.

Dann
23.07.2018
13:00:36
О, спасибо большое, про такую магию я и не знал)

Vladimir
23.07.2018
13:00:58
А вот такой запрос у меня роняет КХ версии 1.1.54383:
SELECT
countArray(),
arrayJoin([['a', 'b', 'c'], ['c', 'd']])
Кто-нибудь может проверить на последней версии?

Denis
23.07.2018
13:01:49
а какой массив должна подсчитывать первая колонка?
может быть скобку в конец вынести?

Vladimir
23.07.2018
13:05:22
Запрос синтаксически вроде правильный (у функции count() нет аргументов + модификатор Array). Не знаю, что он должен выдать, выполнил просто для теста.

Michal
23.07.2018
13:42:21
1.1.54390 падает. Достаточно SELECT countArray();

Victor
23.07.2018
13:42:49
потому что в конце смайлик грустный
);

Egor
23.07.2018
14:06:30
добрый день
кто-нибудь сталкивался со следующей ошибкой при подключении через RClickhouse?
`Error in connect(config[["host"]], strtoi(config[["port"]]), config[["db"]], :
closed: No error`
подключение с теми же параметрами (host, port, db, user, password) через tabix работает отлично

Vladimir
23.07.2018
14:12:27

Egor
23.07.2018
14:12:38
8123

Vladimir
23.07.2018
14:13:20

Egor
23.07.2018
14:14:29
гм, а почему?
либа разве не через http интерфейс работает?

Vladimir
23.07.2018
14:15:26
гм, а почему?
RClickhouse не использует HTTP-интерфейс кликхауса, подключается по нативному протоколу.

Andrei
23.07.2018
14:15:30
на 8123 http proxy висит, а 9000 для нативного

Google

Egor
23.07.2018
14:15:38
о как
спасибо!

nikita
23.07.2018
15:39:38
:) select * from cluster_test1
SELECT *
FROM cluster_test1
┌─event─┬─exact_time─┐
│ e1 │ 1000 │
│ e2 │ 1001 │
│ e3 │ 1002 │
│ e4 │ 1004 │
│ e5 │ 1005 │
│ e6 │ 1006 │
└───────┴────────────┘
┌─event─┬─exact_time─┐
│ e7 │ 1007 │
│ e8 │ 1008 │
│ e9 │ 1009 │
└───────┴────────────┘
9 rows in set. Elapsed: 0.004 sec.
почему две таблицы? это бага или фича? ?

Alex
23.07.2018
15:40:09
от разных узлов прилетело асинхронно
фича, кмк :)
если будет order by, то будет одна "таблица"

nikita
23.07.2018
15:40:39
запрос был не к Distributed-таблице же, а к Replicated

Stanislav
23.07.2018
15:41:43
Значит не смерженое пришло
Смержится - будет один кусок

Alex
23.07.2018
15:44:36
Это значит, что данные прилетели в нескольких "блоках". Блочная обработка - фича, да. Несколько блоков могут образовываться, если: данные прилетели с нескольких серверов; данные лежат на диске в нескольких кусках; данные обрабатываются в несколько потоков. Если не нравится - добавьте в конце запроса FORMAT PrettyCompactMonoBlock

nikita
23.07.2018
15:46:59
спасибо

Yuran
23.07.2018
18:46:01
Господа, не подскажете, какие могут возникнуть проблемы, если увеличить дефолтный размер куска в одной партиции с 150 Гб до 2 Тб?
(считаем, что на диске >2 Тб свободно всегда)

Wolf
23.07.2018
18:47:34
Мержи мне кажется будут очень суровыми, а какой смысл увеличивать?

Yuran
23.07.2018
18:49:46
Партиции по 1,2 Тб за месяц разбиваются на ~20 файлов, а читать хочется за много месяцев, много маленьких метрик. За счет разбиения на много файлов сильно увеличивается количество дисковых обращений при чтении и все очень тормозит.
Кажется, что если сделать партиции по 1 файлу, то чтение будет лучше

Alexey
23.07.2018
18:50:31

Yuran
23.07.2018
18:51:14
Спасибо за ответ, хотя бы попробуем :). А вы сами такое не используете?

Alexey
23.07.2018
18:54:41
Спасибо за ответ, хотя бы попробуем :). А вы сами такое не используете?
Нет, у нас размер по-умолчанию. Хотели постепенно его увеличивать, так как тоже есть серверы, где очень большой размер партиции. Пока увеличили всего лишь со 100 до 150 GB.
У некоторых пользователей из-за этого возникли проблемы - началось много больших мержей. Но мы это исправили - сейчас много больших мержей сразу не инициируется.

Google

Igor
23.07.2018
19:19:24
Всем доброй ночи. Парни, есть кто может подсказать, у нас все работает, но часто идет следующая ошибка DB::Exception: Unknown packet 4 from server
Уже не знаем куда толком копать. Может быть подпнете в правильном направлении?

Александр
23.07.2018
19:21:18

Denis
23.07.2018
19:22:23

Yuran
23.07.2018
19:25:48

Denis
23.07.2018
19:31:46
И сколько получается processed rows если выбирать метрику которая не существует? Чтобы 0 строк вернулось?

Yuran
23.07.2018
19:37:27
Чтобы 0 строк вернулось, особо ничего не процессится, засечки все в память влезают :). А вот если запрашивать метрику за пару месяцев, то там получается что-то около 300-500 тыс

Denis
23.07.2018
19:43:24
Т.е метрик мало? Засечки вроде хранят диапазоны а не конкретные значения.

Yuran
23.07.2018
19:56:29
Метрик очень много :). Я могу завтра попробовать на каком-нибудь более-менее реалистичном ключе, но вроде несуществующие метрики довольно быстро искались

Yuri
23.07.2018
22:47:54
лол, кажется пора написать бота для бана этих мамкиных-сммщиков

Kirill
24.07.2018
06:42:57

Wolf
24.07.2018
06:48:44
Блин админы сделайте что то со спамом, только в этом чате спамит он

Oleg
24.07.2018
06:49:19
не только ))

daria
24.07.2018
06:49:54
Есть бот с голосовалкой, любой участник вызывает команду /ban и пятеро должно проголосовать, чтобы бот забанил

Stanislav
24.07.2018
06:50:04
/ban

daria
24.07.2018
06:50:12
Не тут)

Stanislav
24.07.2018
06:50:16
Жаль...

daria
24.07.2018
06:50:20
Надо название вспомнить

Denis
24.07.2018
06:51:03
5 как-то мало. можно мини-революцию устроить и испортить чат вообще
в принципе, бот банящий за больше 5 пробелов в имени имхо самое простое решение