
Eldar
27.05.2017
20:23:10
а не пытаться остаться в рамках питона

Max
27.05.2017
20:23:39
про переключение с языка на язык - в смысле разные фреймворки на разных языках.

Google

Max
27.05.2017
20:24:25
То есть выучил SQL и дальше используешь обвязки)

Roman
27.05.2017
20:24:46

Max
27.05.2017
20:25:11

Проксимов
27.05.2017
20:25:17

Max
27.05.2017
20:25:33

Nikita Kurinnyi
27.05.2017
20:25:48
Да и sql это не гибкость, потом ловишь hbase и сосешь хуй

Max
27.05.2017
20:26:04
Запрограммировал игру на sql
Ну формошлепки можно сделать на Oracle. Выглядит как привет из 90-х, но работает и даже нагрузку держит почти во всех банках)

Roman
27.05.2017
20:26:47

Max
27.05.2017
20:26:49

Max
27.05.2017
20:27:02
а как справочник потом збс, да

Max
27.05.2017
20:28:04
Можно Лутца почитать - там все максимально разжеванно. А по SQL - документацию по Postgres. Тем более там сейчас даже официальный перевод на русский есть. Выше кидал ссылки.

Проксимов
27.05.2017
20:28:08

Google

Проксимов
27.05.2017
20:28:13
Чего там не ложится

Nikita Kurinnyi
27.05.2017
20:28:53
Как там агрегации в elastic?

Eldar
27.05.2017
20:28:59

Max
27.05.2017
20:29:07

Nikita Kurinnyi
27.05.2017
20:29:14
Можно примеры?
И говорить челу что он новичек, не зная о нем, не очень вроде

Max
27.05.2017
20:30:14
Я не говорил новичек, я говорил - юнец. И основывался на Вашем выражении)
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html
Вот ссылка на документацию)
работает даже для realtime
а вот Hbase для realtime не тянет и есть проблемы в эксплуатации.

Nikita Kurinnyi
27.05.2017
20:31:29
Я знаю как искать документацию, меня больше интересует причины перехода и количество данных
Сори, что не так понял про юнцов
Про реал тайм в hbase, вы что использовали?

Max
27.05.2017
20:36:53
То как подключали сейчас уже точно не скажу. А вот про объем данных и задачи - realtime анализ и предотвращение мошеннических операций по банковским картам. Это внутренняя задача, но траффик очень большой.
Elastic показал более высокую скорость отклика, более удобный и более интересные возможности. Например, поддерживает, графовые структуры.
Мы как раз тогда сравнивали и дергнули коллег из mail.ru - у них там большая инсталяция. Пообщались, посмотрели, покрутили.

Nikita Kurinnyi
27.05.2017
20:37:50
А реал тайм агрегации скок по скорости? На 300m записях?

Max
27.05.2017
20:39:33
разная глубина, разная сложность дает разную скорость. Метрику сейчас точно сказать не могу - нет под рукой. Но проводили именно сравнительный анализ. Данных значительно больше чем 300 * 10^6
А у вас как по скорости по отклику? И для каких задач используете, если не секрет?
И есть ли проблемы с масштабированием?

Google

Nikita Kurinnyi
27.05.2017
20:52:55
Мне надо ~300м с сложно агрегацией
Реал тайм
Думаем что выбирать
Нут маштабируемоть под k8s желательно
Что бы не паритсЯ

Max
27.05.2017
20:57:18
ну на таких нагрузках перешардирование (при добавлении новой ноды) - это проблема. В Elastic есть такая проблема. В Cassandra есть такая проблема. Думаю везде будет такая проблема) Потому что кроме обработки текущих запросов еще надо будет данные гонять между нодами.
Тут надо смотреть на допустимое время отклика. У нас оно меньше секунды, поэтому мы идем на жертвы с местом. Если у вас большие данные и не хотите тратить место, но время можно 5-6 секунд - тогда больше маневра.
но проблемы есть у всех систем.

Nikita Kurinnyi
27.05.2017
21:02:54
Ну время 2-3 секунды это норм
У elastic с сохранностью как у вас?

darkwoolf
27.05.2017
21:18:17
если это открыло то всё ок?

Danil
27.05.2017
21:26:34
Правда что try/except замедляет работу программы и по возможности желательно его обходить?
У меня просто бесконечный цикл , который должен работать максимально быстро

Artem
27.05.2017
21:27:36
Хочешь максимально быстро - пиши на Си
Не хочешь писать на Си - измерь время работы так и этак

Igor
27.05.2017
21:28:28
try/except стоит пользоваться там, где он необходим
можешь их выкинуть, конечно, но медленно работающий бесконечный цикл - это лучше, чем неработающий бесконечный цикл, потому что у тебя крашнулось приложение
а еще while True любит 100% ядра CPU жрать, поэтому обычно туда вставляют какой-нибудь time.sleep(0.1)

Max
27.05.2017
21:29:34

Google

Igor
27.05.2017
21:29:40
да
все так
но вот насчет производительности я хз

Max
27.05.2017
21:30:09

Igor
27.05.2017
21:30:17
еще фишка - ''.format() в разы медленннее '' % tuple()
хотя первый рекомендуют юзать вместо второго

Max
27.05.2017
21:30:57
интересно почему. Ибо tuple быстрее по определению?

Max
27.05.2017
21:31:07
но вот насчет производительности я хз
производительность не страдает, так как, в отличае от C/C++, передача контекста очень дешевая операция. Поэтому лучше везде использовать именно try/except

Igor
27.05.2017
21:31:08
не знаю, не интересовался

Admin
ERROR: S client not available

Max
27.05.2017
21:31:32

Artem
27.05.2017
21:31:47
Просто метод написан быстрее, что неудивительно при явном задании типов в форматной строке
Причем тут вообще тупл

Max
27.05.2017
21:32:09
иначе утонуть можно

Igor
27.05.2017
21:33:31
Особености реализации в Python3
но к python 2.7 тоже относится
Python 2.7.13 (default, Dec 17 2016, 23:03:43)
In [1]: %timeit 'foo {0:s}'.format('bar')
1000000 loops, best of 3: 292 ns per loop
In [2]: %timeit 'foo %s' % ('bar',)
10000000 loops, best of 3: 133 ns per loop

Artem
27.05.2017
21:34:37
Это, напомню, питон
Тут не гоняются за наносекундами
Если вам надо наносекунды
Вы пользуетесь не тем инструментом

Igor
27.05.2017
21:35:29

Google

Igor
27.05.2017
21:35:38
в т.ч. там, где люди обычно даже не догадываются

Oleksandr ror191505
27.05.2017
21:35:45

Igor
27.05.2017
21:35:53

Max
27.05.2017
21:38:45
Так, стоп, что-то я под вечер затупил. format в 3-м Python рекомендован и работает быстрее чем %

Artem
27.05.2017
21:39:09
Мне сейчас негде проверить, но я очень сомневаюсь

Igor
27.05.2017
21:40:46
Python 3.6.1 (default, Apr 4 2017, 09:40:51)
In [1]: %timeit 'foo {0:s}'.format('bar')
401 ns ± 7.46 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
In [2]: %timeit 'foo %s' % ('bar',)
17 ns ± 0.0799 ns per loop (mean ± std. dev. of 7 runs, 100000000 loops each)
гыгыгы
ой, пойду f"" проверю

Artem
27.05.2017
21:41:26
Вангую общий код с форматом

Danil
27.05.2017
21:41:28
Спасибо за объяснение) тогда не о чем не переживаю)

Igor
27.05.2017
21:41:41
In [3]: bar = 'bar'
In [4]: %timeit f"foo {bar}"
17.2 ns ± 0.118 ns per loop (mean ± std. dev. of 7 runs, 100000000 loops each)
охуеть

Max
27.05.2017
21:41:59
))))

Danil
27.05.2017
21:42:09
А logging влияет?

Artem
27.05.2017
21:42:16

Danil
27.05.2017
21:42:16
На скорость работы?

Igor
27.05.2017
21:42:50

Oleksandr ror191505
27.05.2017
21:42:52
In [6]: %timeit f'foo {foo}'
100000000 loops, best of 3: 9.89 ns per loop
In [7]: %timeit 'foo %s' % ('bar',)
100000000 loops, best of 3: 9.89 ns per loop
In [8]: %timeit 'foo {}'.format('bar')
The slowest run took 8.76 times longer than the fastest. This could mean that an intermediate result is being cached.
10000000 loops, best of 3: 183 ns per loop

Artem
27.05.2017
21:43:06

Igor
27.05.2017
21:43:27