Size: a a a

2020 August 19

p

pragus in ENOG
Alex Semenyaka
Короч, парсил я наши файлики результатов, чтобы найти все измерения по Беларуси во время шатдауна, и на результаты за один час у меня ушли сутки, при том, что файлик я уже предварительно себе вытягиваю. Ok, полез смотреть. Никакой магии: каждая строка - это json, и строк очень-очень много (ну, там за час терабайты этих файликов с jsonами набегает).
Я-то знаю, что я ищу, так что выкрутился, генерируя сильно оптимизированный regex, которым сначала проверяю - есть в строке нужный префикс или нет, и только если есть, делаю парсинг этого json, проверяю уже точно его поля, и если все ок, сохраняю результаты. Ускорение на порядки.

Но вот у РКН, который хочет парсить XMLи про всё на свете, такой опции нет, ему надо таки распарсить всё. Одно из двух: или тяжко придётся РКНу и его подрядчикам, придется много денег осваивать для работы с этим XML; или в гробу они видели что-то на самом деле с этим XML делать.
но у вас там как-то бесчеловечно с json: файл пожатый bz2 весит ~ 450 мб, а при распаковке и втягивании в память питон отожрал 5гб памяти(дальше я его прибил)
источник

VS

Vitaly Shishkin in ENOG
pragus
но у вас там как-то бесчеловечно с json: файл пожатый bz2 весит ~ 450 мб, а при распаковке и втягивании в память питон отожрал 5гб памяти(дальше я его прибил)
Ага, а у РКН будет всё по другому? Думаю в их случае всё ещё хуже будет.
источник

PK

Phil Kulin in ENOG
Я думаю, что они собирают, чтобы отчитаться на совещании Правительства, чтобы потом премьер мог отчитаться перед Думой и Президентом. Я почти уверен, что они не читают и читать им нечем эти файлики сейчас. Они проверяют их своей xsd-ой и всё
источник

VK

Vartan Khachaturov in ENOG
pragus
но у вас там как-то бесчеловечно с json: файл пожатый bz2 весит ~ 450 мб, а при распаковке и втягивании в память питон отожрал 5гб памяти(дальше я его прибил)
Подыми хадуп и Спарк :)))
источник

PK

Phil Kulin in ENOG
При том, как всё вообще в госорганах устроена (в абстрактных, не только российских, но у российских конечно свой усиленный колорит), терраформирование Венеры с бомбардировками льдом, перезапуском ядра, сдвигом плоскости орбиты и шпигованием бактериями может произойти раньше, чем «сувенирка»
источник

DB

Dmitry Belyavskiy in ENOG
Phil Kulin
При том, как всё вообще в госорганах устроена (в абстрактных, не только российских, но у российских конечно свой усиленный колорит), терраформирование Венеры с бомбардировками льдом, перезапуском ядра, сдвигом плоскости орбиты и шпигованием бактериями может произойти раньше, чем «сувенирка»
Я не готов плакать по этому поводу
источник

LE

Leonid Evdokimov in ENOG
Alex Semenyaka
Короч, парсил я наши файлики результатов, чтобы найти все измерения по Беларуси во время шатдауна, и на результаты за один час у меня ушли сутки, при том, что файлик я уже предварительно себе вытягиваю. Ok, полез смотреть. Никакой магии: каждая строка - это json, и строк очень-очень много (ну, там за час терабайты этих файликов с jsonами набегает).
Я-то знаю, что я ищу, так что выкрутился, генерируя сильно оптимизированный regex, которым сначала проверяю - есть в строке нужный префикс или нет, и только если есть, делаю парсинг этого json, проверяю уже точно его поля, и если все ок, сохраняю результаты. Ускорение на порядки.

Но вот у РКН, который хочет парсить XMLи про всё на свете, такой опции нет, ему надо таки распарсить всё. Одно из двух: или тяжко придётся РКНу и его подрядчикам, придется много денег осваивать для работы с этим XML; или в гробу они видели что-то на самом деле с этим XML делать.
Да, grep очень быстрый. Я точно так же предфильтр для jsonl данных в питонячьих парсерах делал не раз.
источник

PK

Phil Kulin in ENOG
Dmitry Belyavskiy
Я не готов плакать по этому поводу
:))))
источник

VS

Vitaly Shishkin in ENOG
Мда, список критериев для социально значимых сайтов жжёт. Особенно про единственный статический адрес.
источник

DE

Dmitry (DAY) Ershov in ENOG
Угу, все плачут кровавыми слезами от всех документов уже, особенно те, кто большой.
источник

AS

Alex Semenyaka in ENOG
Roman Sokolov
Учитывая остальную движуху, они наверняка всё сразу парсить и в базу будут класть, а не файлами оставят
Про что и речь - очень дорого это, всё парсить. Дальше-то понятно, что в базу, там уже несложно.
источник

AS

Alex Semenyaka in ENOG
pragus
но у вас там как-то бесчеловечно с json: файл пожатый bz2 весит ~ 450 мб, а при распаковке и втягивании в память питон отожрал 5гб памяти(дальше я его прибил)
Блин, я всего 20 раз сказал, что так делать вообще не надо. Нахрена ты его в памяти целиком распаковывал-то? В очередной раз напоминаю: bzip2 (как и gzip) был придуман для потокового сжатия-расжатия.
источник

VS

Vitaly Shishkin in ENOG
Alex Semenyaka
Про что и речь - очень дорого это, всё парсить. Дальше-то понятно, что в базу, там уже несложно.
Не факт, что перевод данных в БД упростит задачу.
источник

AS

Alex Semenyaka in ENOG
Leonid Evdokimov
Да, grep очень быстрый. Я точно так же предфильтр для jsonl данных в питонячьих парсерах делал не раз.
Я ещё ускорил, раза в 2.5, из конкатенации префикс ов сделав Trie - regex получается абсолютно нечитаемый, но. Если подстрока есть, он обрабатывает строку на пару процентов медленнее. А вот если её нет - в 2.6 раз быстрее.
источник

LE

Leonid Evdokimov in ENOG
Alex Semenyaka
Я ещё ускорил, раза в 2.5, из конкатенации префикс ов сделав Trie - regex получается абсолютно нечитаемый, но. Если подстрока есть, он обрабатывает строку на пару процентов медленнее. А вот если её нет - в 2.6 раз быстрее.
Занятно. Я предполагал, что при поиске подстрок через -F grep сам минимизирует автомат.
источник

AS

Alex Semenyaka in ENOG
Vitaly Shishkin
Не факт, что перевод данных в БД упростит задачу.
Смотря какую задачу, но правильно построенная и проиндексированная база проблему скорости обработки, конечно, решит. Основная-та засада тут в очень долгом парсинге, которого, когда всё красиво в базу уложено, просто нет.
источник

AS

Alex Semenyaka in ENOG
Leonid Evdokimov
Занятно. Я предполагал, что при поиске подстрок через -F grep сам минимизирует автомат.
А, ты про настоящий греп. Не, я про питонячий регекс. С grep -F не сравнивал, надо будет сравнить. С -F он может оптимизировать, конечно.
источник

VS

Vitaly Shishkin in ENOG
Alex Semenyaka
Смотря какую задачу, но правильно построенная и проиндексированная база проблему скорости обработки, конечно, решит. Основная-та засада тут в очень долгом парсинге, которого, когда всё красиво в базу уложено, просто нет.
Ревизору это не помогло. В определённый момент он просто перестал вовремя формировать отчёты.
источник

AS

Alex Semenyaka in ENOG
Leonid Evdokimov
Занятно. Я предполагал, что при поиске подстрок через -F grep сам минимизирует автомат.
Мне хотелось тулзу на будущее сделать, чтобы она автоматически умела всё разруливать
источник

AS

Alex Semenyaka in ENOG
Vitaly Shishkin
Ревизору это не помогло. В определённый момент он просто перестал вовремя формировать отчёты.
Смешались в кучу кони, люди...
источник