
Alexey
05.10.2018
18:27:46
Почему странная? Временные данные, нужно вбросить в БД для быстрого анализа и больше они не нужны
После инсерта селект для анализа и всё, конец сессии

Ilia
07.10.2018
05:42:13

Alexey
07.10.2018
08:46:23

Google

Ilia
07.10.2018
08:56:58

Alexey
07.10.2018
09:05:53

Roman
08.10.2018
13:26:08
проезд и проживание оплачивается?

Valery
08.10.2018
13:28:02
> Призовой фонд хакатона - 135 000 рублей
Сколько призовых мест предусмотрено? Как это огромный фонд будет распределён между призовыми местами?

Марат
08.10.2018
13:29:01
>стать частью команды ГАЗа
А если к вам устроиться, можно по цехам на газельках кататься?

Alexander
09.10.2018
08:29:37
вопрос к знатокам asyncio
у меня предстоит проектик, где нужно будет с ftp забирать ZIP-нутые XML файлы, парсить их и спарсеную информацию складывать в БД. Файлов может быть очень много и они могут быть довольно большими.
Я правильно понимаю, что у меня не получится часть кода написать синхронным, а, например, парсинг XML и запись в БД асинхронным? Насколько я понял из документации, всё приложение нужно будет строить вокруг event-loop.
Писать буду на 3.7

Vixen
09.10.2018
08:33:54
Можно ж поидее ждать окончания тасок, типа джойнить их, а потом синхронно писать
(но это в шарпах)
Надо чего-нибудь пописать с асинкио на питоне, а то я чот как лох

Sergey
09.10.2018
08:38:37
Я правильно понимаю, что asyncio в данном случае позволит только полнее утилизировать IO? Задачу не удастся значительно ускорить т.к. распаковка и парсинг в одном процессе очень долго будет выполняться.

Boris
09.10.2018
08:39:30
так а запись в бд же делается асинхронной и без asyncio

Alexander
09.10.2018
08:40:23

Google

Alexander
09.10.2018
08:41:13

Boris
09.10.2018
08:41:20
psycopg2.connect(dsn=None, connection_factory=None, cursor_factory=None, async=False, **kwargs)

Alexander
09.10.2018
08:41:36
у меня clickhouse будет

Sergey
09.10.2018
08:41:37
чтение это IO, распаковка и парсинг это уже CPU
а сколько, кстати, данных и за какое время датасет за 1 день скачивается (если он по дням разбит)?

Alexander
09.10.2018
08:44:30
данные разбиты не по дням
за первый проход нужно будет скачать все файлы(несколько тысяч)
потом ходить и смотреть, не появились ли новые

Марат
09.10.2018
08:45:37
Что-то знакомые какие-то данные. Госзакупки поди?

Alexander
09.10.2018
08:45:46
дада)

Sergey
09.10.2018
08:45:54
так какой общий размер этих тысяч файлов?

Alexander
09.10.2018
08:50:57
общий размер не знаю, в каждом zip архиве может лежать по несколько xml файлов в 20-40 kB

Sergey
09.10.2018
08:53:29
я сейчас похожей задачей занимаюсь, там за сутки может быть 30Гб сжатых данных. Т.е. если за неделю выкачивать, то будет до ~200Гб

Alexander
09.10.2018
08:57:10
и на чём пишете?

Sergey
09.10.2018
09:21:47
пока просто python без asyncio

Roman
09.10.2018
09:46:51

Alexander
09.10.2018
09:47:15
мде
т.е. выигрыша большого от asyncio не будет
можно синхронный код асинхронно запустить

Google

Dmitry
09.10.2018
10:00:35
но CPU то у тебя от этого меньше на нагрузится

Admin
ERROR: S client not available

Alexander
09.10.2018
10:00:57
всё верно, но можно будет распараллелиться

Dmitry
09.10.2018
10:01:11
тогда и asyncio не нужен

Alexander
09.10.2018
10:04:20
короче, надо тестить. Есть ещё варик с go, но там свой гемор с unmarshal

Roman
09.10.2018
10:05:43

Alexander
09.10.2018
10:30:32
я там выше написал, есть возможность запустить блокирующую задачу в отдельном треде через asyncio loop
вечером дома потестирую как оно будет работать

Roman
09.10.2018
10:30:52

Alexander
09.10.2018
10:31:04
парсинг xml файлов

Roman
09.10.2018
10:31:17

Roman
09.10.2018
10:31:33

Alexander
09.10.2018
10:31:42
unzip + parse

Roman
09.10.2018
10:33:59

Alexander
09.10.2018
10:37:13
мне вот интересно, планировщик работает с задачами через run_in_executor
в моём понимании, это обёрточка над блокирующей задачей для запуска её в неблокирующем режиме

Roman
09.10.2018
10:40:04

Ilya
09.10.2018
18:06:21
Всем привет!!! 27 октября планируется проведение PyData. И нам очень нужен ещё один докладчик!!!

Fogmon
09.10.2018
21:48:15

Google

Dmitry
11.10.2018
09:20:48
Что-то не очень интуитивно работает round() в Python 3.
>>> round(0.5)
0
>>> round(1.5)
2
>>> round(2.5)
2
>>> round(3.5)
4
Оказалось:
rounding is done toward the even choice
https://docs.python.org/3/library/functions.html#round
И этот тип округления «до ближайшего чётного» используется по умолчанию в IEEE 754.
https://en.wikipedia.org/wiki/Rounding#Round_half_to_even