
Vladislav
28.12.2016
20:01:04
А ссылка умерла ?

Igor
28.12.2016
20:05:53
? https://nbviewer.jupyter.org/github/miptgirl/attribution_modelling/blob/master/220volt_case.ipynb

Vladislav
28.12.2016
21:08:52
А вот эта работает

Andrew
28.12.2016
21:41:27
Можно я тоже влезу, и дополню Машу @miptgirl? Мы в отделе в основном используем CH двумя сценариями:
1) Некоторая "тяжелая выгрузка", занимающая минуты-часы. У нас есть самописные обертки, упощающие итерирование по периодам рассчета (всё вместе в квоту не лезет). Запросы пишем вручную, вроде не слышал, вроде несильно страдаем: это потому что мало джойнов и жести, как у Маши ?. Далее сразу в питоне в пандасе вертим-крутим как нужно.
2) А вот сценарии вида "посчитать за один день/период простую метрику", "оценить воообще кол-во событий в группе", "грепнуть и посмотреть" мы активно пользуемся CH GUI вашей (СМИ2). Очень радуемся, очень удобно)
Раньше (у меня до сих пор) для этих целей использовали clickhouse-client в tmux'е, но с гуи намного визуально понятнее, опять же вкладки, возможность глянуть в табличку.
В общем ещё раз спасибо за это!

Google

Slach
30.12.2016
10:30:39
Ребят, а подскажите, если в Clickhouse нет NULL
то как их все таки лучше вставлять?
например через TabSeparated???
просто писать пустую строку?
и делать \t\t ?
а оно будет в 0 приводить для численных типов?
или все таки надо заранее знать тип и приводить к нему ?

Igor
30.12.2016
10:32:08
пустую строку
если не указан DEFAULT, то будет фигачить нули и пустые строки
хотя даже если default указан, он один фиг вроде только при INSERTе в формате Values работает.. туплю

Slach
30.12.2016
10:35:37
а можно вставлять Nested структуры в TapSeparated ?
как массивы в квадратных скобках?

Igor
30.12.2016
10:38:23
:) CREATE TABLE nested_test (s String, nest Nested(x UInt8, y UInt32)) ENGINE = Memory
❯ gecho -e 'string\t[1,2,3]\t[4,5,6]' | clickhouse-client -h stats-ch1 -q "INSERT INTO nested_test FORMAT TabSeparated"
:) SELECT * FROM nested_test;
┌─s──────┬─nest.x──┬─nest.y──┐
│ string │ [1,2,3] │ [4,5,6] │
└────────┴─────────┴─────────┘
через таб
в случае с примером выше -
s \t nest.x \t nest.y

Slach
30.12.2016
10:43:54
ну и там вроде как должна быть одинаковая длинна? так?

Виктор
30.12.2016
10:44:18
Да
В смысле количества элементов

Shine
30.12.2016
11:29:50
погодите, как нет null
уже вроде пару недель работают

Google

Slach
30.12.2016
11:31:38
я не из сырцов ставлю
и я думаю что старое поведение никто ломать не будет =)

Shine
30.12.2016
11:32:16
я тоже не из сырцов
обновился через apt
и заработало

Slach
30.12.2016
11:46:17
ну у меня golang ;)
там NULL нет нормального
там только nil ;)

Igor
30.12.2016
11:46:33
а golang здесь причем? :о

Slach
30.12.2016
11:47:21
ну сочетание golang и TabSeparated, не дает мне шанса вставить NULL в том виде как оно обычно в SQL используется

Igor
30.12.2016
11:47:56
гм... tabseparated - это обычные строки, часть спецсимволов которых экранируется кликхаусом на входе

Slach
30.12.2016
11:47:59
\tNULL\t
это ж строка будет для String в таком случае для TabSeparated
в общем я таки попробую пустые строки посмотрю что получится

Igor
30.12.2016
11:48:14
да. а \t\N\t пробовали?
у меня нет свежего рабочего сервера с поддержкой nullов чтоб проверить :(

Slach
30.12.2016
11:48:32
ну дак это отдельно экранировать придется =)

Igor
30.12.2016
11:48:46
и чо? ))
и, кстати, стоп, зачем экранировать?

Slach
30.12.2016
11:50:01
еще раз
если \t разделитель
и я для типа String
поставлю NULL
Null или еще как то
то это не должно интерпрититорваться как NULL
это должна быть строка
если нет, то это значит сломали все =)

Igor
30.12.2016
11:50:54
стоп!
я, щас, конечно, диванный аналитик, но если надо вставить "\t" как строку, а не как разделитель, вторым параметром, то будет как-то так:
первый\t\\t\tтретий
аналогично должно быть с NULLом, который в КХ представляется как \N

Slach
30.12.2016
11:51:14
МНЕ НЕ НАДО ВСТАВИТЬ \t как строку =)

Igor
30.12.2016
11:51:19
Я ПОНИМАЮ
я привожу аналогию!
если отправите \tNULL\t, то вставится строка "NULL", а не \N (тип NULL)

Google

Igor
30.12.2016
11:52:05
если отправите \t\N\t, то вставится NULL
если отправите \t\\N\t, то вставится строка "\N"
ну, это опять же, имхо. должно работать так. это логично
жалко, что под макось перестал компилиться :(

Slach
30.12.2016
11:52:42
ок \N, понял
может быть можно будет попровать ...

Igor
30.12.2016
12:08:26
проверил, всё верно
:) CREATE TABLE test (x UInt64, s Nullable(String), y UInt64) ENGINE = Memory;
❯ gecho -e '1\t\N\t2' | docker exec -i clickhouse clickhouse-client -q 'INSERT INTO test FORMAT TabSeparated'
❯ gecho -e '2\tNULL\t3' | docker exec -i clickhouse clickhouse-client -q 'INSERT INTO test FORMAT TabSeparated'
:) INSERT INTO test VALUES (3, NULL, 4);
:) SELECT * FROM test ORDER BY x;
┌─x─┬─s────┬─y─┐
│ 1 │ \N │ 2 │
│ 2 │ NULL │ 3 │
│ 3 │ \N │ 4 │
└───┴──────┴───┘
(gecho - GNU echo, если что, а то в макосьном флага -e нету)

Alexander
30.12.2016
14:55:33
Коллеги, а если у нас внещний словарь , это таблица на сервере postgre
то как она оформляется?
<!— или источник - таблица на сервере postgre
<postgre>
или не так?
в доке, про MySQL сказано только
<!— или источник - таблица на сервере MySQL.
<mysql>
или <postgresql>


Igor
30.12.2016
15:05:41
надо odbc
Как я делал с постгресным драйвером:
sudo apt-get install -y unixodbc
sudo apt-get install -y odbcinst
sudo apt-get install -y odbc-postgresql
В /etc/odbc.ini:
[DEFAULT]
Driver = myconnection
[myconnection]
Description = PostgreSQL connection to norma
Driver = PostgreSQL Unicode
Database = norma
Servername = 10.... (твой хост)
UserName = uname
Password = pwd
Port = 5432
Protocol = 9.3
ReadOnly = No
RowVersioning = No
ShowSystemTables = No
ConnSettings =
<dictionary>
<name>table_name</name>
<source>
<odbc>
<table>postgresql_table</table>
<connection_string>DSN=myconnection</connection_string> <!— может потребоваться UID=norma;PWD=norma;, но по идее не должно —->
</odbc>
</source>
<lifetime>
<min>300</min>
<max>360</max>
</lifetime>
<layout>
<flat/>
</layout>
<structure>
<id>
<name>id</name>
</id>
<attribute>
<name>some_column</name>
<type>Int32</type>
<null_value>-1</null_value>
</attribute>
...
</structure>
</dictionary>


Alexander
30.12.2016
15:34:33
о спасибо
видимо то, что нужно

Alexey
30.12.2016
15:36:26


Slach
31.12.2016
11:21:04
C наступающим всех =)
пусть в новом году ClickHouse обгонит и перегонит все Collumn Oriented databases и станет номер 1 =) по популярности
=) а кто живой? а если я хочу String вставить в TabSeparated и Nested, мне надо [Строка1, Строка2, Скрока3] делать? или надо еще внутри массива строки кавычками экранировать?

Igor
31.12.2016
11:38:22
да забудь про массивы вообще если у тебя просто строка, а не массив из строк
представь что таблица с нестед стала плоской и сохранила порядок

Google

Slach
31.12.2016
11:38:55
у меня массив из строк
к сожалению =)

Igor
31.12.2016
11:39:03
тогда не забывай!
в документации есть пример один-в-один
а, ты про кавычки
сорри!
хз тогда даже :о
я б попробовал кавычки экранировать
точнее не экранировать, а просто запихнуть в кавычки каждую строку
столбец-cтрока\t['строка 1', 'строка 2']\t8008135

Slach
31.12.2016
11:41:51
https://clickhouse.yandex/reference_ru.html#Nested(Name1 Type1, Name2 Type2, ...)
вот тут я чтото не вижу примервов на вставку и на кавычки =(
ну я так и собираюсь сделать
но просто хочу уточнить вдруг кто уже прошел этот путь

Igor
31.12.2016
11:42:29
да, сорри( а примеры с массивами из строк в похожих форматах цсв например есть?

Slach
31.12.2016
11:42:54
неа =) надо экспериментировать сейчас будет

Igor
31.12.2016
11:44:09
та шо там экспериментировать, три запроса всего

Igor
31.12.2016
11:45:27
может поможет моя php версия https://github.com/smi2/phpClickHouse/blob/master/src/Quote/StrictQuoteLine.php
пример работы
https://github.com/smi2/phpClickHouse/blob/master/example/exam12_array.php

Slach
31.12.2016
11:52:03
ну вроде разобрался
http://take.ms/pbeOL

Геннадий
31.12.2016
13:40:24
/stat@combot

Combot
31.12.2016
13:40:24
combot.org/chat/-1001080295593

f1yegor
31.12.2016
14:04:15
/stat@combot

Google

Combot
31.12.2016
14:04:15
combot.org/chat/-1001080295593

Alexey
31.12.2016
14:48:09

Maxim
31.12.2016
16:24:32
Всех с наступающим Новым Годом!

Igor
31.12.2016
18:11:37
Всех c наступающим|наступившим НГ!
Желаю закрыть планы по CH - Q2+Q3+Q4 в Q1 ;)))
От себя, микро подарок пользователям CHGui - анонс новой ветки с автоматическими графиками, с графическим pivot + resolve ~40 фичь из roadmap - в public конце января

Alexey
31.12.2016
18:23:27
> Желаю закрыть планы по CH - Q2+Q3+Q4 в Q1 ;)))
Вот это отличное пожелание. Спасибо :)
С наступающим!

Grigory
31.12.2016
21:47:26
И Q5!

Darafei
31.12.2016
21:49:58
И Q5!
audi или blackberry?

Grigory
31.12.2016
21:58:23
Квартал!

Slach
02.01.2017
06:24:47
всем веселых праздников
а Clcikhouse умеет DEFAULT для Nested массивов??
видимо нет
в документации не нашел примеров чтобы Nested создавался с DEFAULT
хотя в доке сказано так
The parameters of a nested data structure - *the column names and types* - are specified the same way as in a CREATE query.

Андрей Михайлович
02.01.2017
08:02:59
А что, писать по-русски в русском продукте совсем не круто? Давайте и кит на английском, и другие мероприятия.

Slach
02.01.2017
08:04:16
Андрей??? вы о чем???
вас смутило что я доку английкую привел???
в русской все тоже самое

f1yegor
02.01.2017
08:04:25
Комменты в коде лучше на англ, документация уже на 2х

Slach
02.01.2017
08:06:25
Андрей, вы пытались изучать "китайские продукты" ??? =) с китайскими комментариями? ;)
очень советую
а Арабские комменты видели в своей жизни?
я видел
после этого я начал стараться либо не писать комментов савсем, либо на английском
хотя конечно, я бы предпочел на русском, но для этого надо было чтобы Intel назывался Эльбрус или как то так...

Андрей Михайлович
02.01.2017
10:06:58
Есть дока на русском. Или она, или ни какой

Igor
02.01.2017
10:08:07
надо еще кликхаус на 1С переписать

Darafei
02.01.2017
10:09:23