@spbpython

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

После инсерта селект для анализа и всё, конец сессии

Ilia
07.10.2018
05:42:13
После инсерта селект для анализа и всё, конец сессии
Ну это точно в одной сессии? Ну и если так уж не катит, ну возми обычную таблице и удаляй после анализа данные руками. В pk добавь идентификатор серверного процесса если будет много таких сессий

Google
Ilia
07.10.2018
08:56:58
Пока и пришлось на обычных оставить, завтра буду снова смотреть перепроверю в одной ли сессии. Спасибо! ??
Добавь просто в ещё одно поле spid и всё увидишь. Я только забыл как spid в оракуле называется...

Alexey
07.10.2018
09:05:53
Добавь просто в ещё одно поле spid и всё увидишь. Я только забыл как spid в оракуле называется...
В общем, косяк был всё-таки мой,- инсертил в одной сессии, а селектил из другой ??‍♂️? Хз как так вышло,- перепроверял сотню раз, но... ? Спасибо за идею с SID,- сразу всё и прояснилось ?

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
так а запись в бд же делается асинхронной и без asyncio
нет, запись в бд синхронная по умолчанию, но я планирую использовать асинхронный драйвер

Google
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

Alexander
09.10.2018
09:47:15
мде

т.е. выигрыша большого от asyncio не будет

>парсинг xml нет, это cpu-bound
хотя вот тут https://docs.python.org/3/library/asyncio-dev.html#running-blocking-code есть кусок про это

можно синхронный код асинхронно запустить

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

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:33
Alexander
09.10.2018
10:31:42
unzip + parse

Roman
09.10.2018
10:33:59
unzip + parse
Обе задачи cpu bound

Alexander
09.10.2018
10:37:13
мне вот интересно, планировщик работает с задачами через run_in_executor

в моём понимании, это обёрточка над блокирующей задачей для запуска её в неблокирующем режиме

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

Страница 778 из 785