Так и получается, что нужно прочитать построчно (лучше пачками) все 10G и для каждой строки по URL вести счетчик - а это лучше mmap. И сразу хранить 10 наиболее частых, что бы не сортировать потом.
И тут вопрос - а если будет 11 одинаковых наиболее частых? Которые 10 из них пойдут в ответ?
Очень интересно посмотреть правильное решение вот этого. ПРавильное по Озону, конечно
Потоковая обработка лог-файла – Ozon, Middle
Имеем файл логов 10 GB. Посчитать топ-10 URL по количеству запросов. В память не влезает. Ожидается решение через генераторы и collections.Counter.
Ozon любит data processing. Кандидат, который делает file.readlines() провалил задачу ещё до того, как начал считать. Правильный ответ: генератор, построчное чтение, Counter с most_common(10). Могут задать вопрос: "а если URL миллионы уникальных и Counter не влезает в память?"
Пока не начнут считать ошибку второго рода ничего не наладится.
Поясню, вот пришел кандидат и не прошел скриннинг. И никто никогда никакой HR или кадровик или еще кто в конторе не проверяет, может он в соседней конторе принят и уже приносит им миллиарды в прибыль?
Вот пока не начнут считать эту ошибку всё так и останется, в мраке.
Вопрос в том, что ваша система найма плохо решает свою задачу.
ВОпрос в том, что задача другая и система найма её правильно решает.
Вот представьте. Есть коллектив разработчиков, роли расписаны и процесс налажен. Всем всё ровно.
Но есть задачи, которые не хочет решать никто из коллектива. Свои не хотят или не могут, значит нужно взять чужого и свалить на него весь треш. Да только такого найти еще нужно суметь!
С другой стороны - вот акционеры увидели задачу, выделили денег и нужно решать! И кто этим займется? Очевидно, что кто-то свой, родной - новая задача, много денег, сроки потом и т.д.. А его, своего-родного, задачи можно передать новому, еще чужому. А он профи, это видит и готов забрать весь легаси на помойке ))
Никто никогда не будет отдавать серьезную задачу за хорошие деньги кому-то другому !!
Когда станете понимать суть вакансий, тогда и станет ясно, почему система работает так.
Или третья сторона медали - вот в коллективе все налажено, сроки планово срываются и никто никогда за это не отвечает, ЗП приемлемая, а премия виртуальная. Вот скажите пожалуйста, зачем такой команде новичок ?! И система найма четко решает эту задачу.
Ну и ну!! Это же не таблица умножения! Знать досконально SQL невозможно. Всегда остаются серые зоны (у некоторых правда черные, но это не важно)
Про Oracle загляните на "Спроси у Тома" и там сами авторы этого Oracle иногда удивляются.
Поэтому сейчас главное не то, как ты зазубрил стандарт, а то, как ты можешь применять этот Oracle для решения задач корректно и эффективно. И обычно интересные задачи бывают с таким вывихом, что все эти чаты с гпт ничего кроме чуши не выдают.
А типовые задачи даже как то неудобно спрашивать, всё равно что спросить - а вы гуглить умеете?
Попробуйте у музыканта на собеседовании спросить - а вы все ноты знаете? ))
После таких публикаций вспоминаю историю рассказанную Возняком в своей книге про то, как они со Стивом пришли к заказчику и тот на них наорал, типа чего приперлись, мне нужна фича ХХ а тут и не пахнет ею.
Джобс спокойно отвечает - так она у нас есть и уже протестирована, просто не стали выпячивать. Принесем на следующую встречу, делов то.
Когда вышли от заказчика Джобс прашивает Возняка - а что это за фича ХХ? Мы можем её сделать?
Поэтому на собеседовании спокойно врите, например говорите, что знаете Oracle - если в состоянии прочесть за пару дней Прибыла с Фейерштейном и Томом Кайтом. И не забыть сразу, то что прочли, т.е. общая подготовка позволяет.
Если будете говорить, что ускорили загрузку на 15% - то нужно показать как! и тогда или нарушить NDA или показать, что коллеги не очень грамотные, а вы их поправили - а они припомнят. Или ваш будущий шеф будет думать про художественный свист и т.д.
ПОэтому про улучшения нужно говорить про самые необычные - например "выключил hyper threading" и система заработала на 10% быстрее. Это как раз повод, показать свою общую ИТ подготовку.
А про работу лучше сказать - "все поручения выполнены на 95% в срок и дать телефон своего начальника", а что вы там художественно ускорили и как вы исправляли своих коллег - это лучше не вспоминать
Кажется будет гораздо лучше если скачивать не раз в 30 сек, а постоянно скачивать разницу и обрабатывать различия. Т.е. если кто-то взял банку, то вы будете знать, что и когда кто взял с полки.
Несколько минут я сидел, как громом пораженный, потом с безразличием отчаяния принялся переворачивать страницы дальше. Я добрался до холеры, прочел о ее признаках и установил, что у меня холера, что она мучает меня уже несколько месяцев, а я об этом и не подозревал. Мне стало любопытно: чем я еще болен? Я перешел к пляске святого Витта и выяснил, как и следовало ожидать, что ею я тоже страдаю; тут я заинтересовался этим медицинским феноменом и решил разобраться в нем досконально. Я начал прямо по алфавиту. Прочитал об анемии - и убедился, что она у меня есть и что обострение должно наступить недели через две. Брайтовой болезнью, как я с облегчением установил, я страдал лишь в легкой форме, и, будь у меня она одна, я мог бы надеяться прожить еще несколько лет. Воспаление легких оказалось у меня с серьезными осложнениями, а грудная жаба была, судя по всему, врожденной. Так я добросовестно перебрал все буквы алфавита, и единственная болезнь, которой я у себя не обнаружил, была родильная горячка.
Странные вы, Яндексы
Сначала понимаете, что события зависимы
А методы применяете как будто просмотры и заказы независимы и случайны.
И еще, была в школе задача про бассейн - вода через N труб вливается и через М выливается. Так и тут:
добавляй отель в систему, не добавляй - туристов от этого не прибавится и не убавится. Люди путешествуют не потому, что есть Яндекс-путешествия.
Начни с математики и таких слов "интерполяция", "экстраполяция" и " аппроксимация"
Подскажите пожалуйста,
Вот "доходы будущих периодов" понимаю.
А вот про выручку непонятно, помогите пожалуйста
Отличный путь к успеху.
Осталось добавить консъерж услуги и еще по мелочи
И сделать коробочную версию и вывести на рынок.
Думаю спрос будет хороший и рынок есть
Так вот вот в этом как раз собака зарыта.
Всё остальное, после формализации, уже давным давно расписано и если лень искать и читать, то можно спросить у ИИ.
А вот формализация реальности - это и есть суть нашей работы и для решения этих задач нет еще ни математики ни техники подходящей.
Только кожанный мешок с подпорками ! и то не всякий
Ну а если криво формализовать, то никакой ИИ никогда не поможет решить эту задачу
как-то так, один из самых опасных способов.
Лучше просто померять
интересно, для чего тогда OpenAI просит инвестиций на 1.5 триллиона долларов?
я про то, что большинство задач на собеседовании оторваны от реальности совсем.
Ага
Так и получается, что нужно прочитать построчно (лучше пачками) все 10G и для каждой строки по URL вести счетчик - а это лучше mmap. И сразу хранить 10 наиболее частых, что бы не сортировать потом.
И тут вопрос - а если будет 11 одинаковых наиболее частых? Которые 10 из них пойдут в ответ?
Дипсик читал весь лог и аггрегировал в mmap
У Вас, если, например, половина логов из одного URL, то опять не влезет в память один bucket.
Т.е. если реально глючит что-то и засирает лог, то такой перекос реален.
Очень интересно посмотреть правильное решение вот этого. ПРавильное по Озону, конечно
Deepseek выдал решение на 7200 строк
Как было так и осталось.
Пока не начнут считать ошибку второго рода ничего не наладится.
Поясню, вот пришел кандидат и не прошел скриннинг. И никто никогда никакой HR или кадровик или еще кто в конторе не проверяет, может он в соседней конторе принят и уже приносит им миллиарды в прибыль?
Вот пока не начнут считать эту ошибку всё так и останется, в мраке.
Это Вы считаете, что пользователи принимают решение о пользовании hh.ru по первой странице сайта?
ВОпрос в том, что задача другая и система найма её правильно решает.
Вот представьте. Есть коллектив разработчиков, роли расписаны и процесс налажен. Всем всё ровно.
Но есть задачи, которые не хочет решать никто из коллектива. Свои не хотят или не могут, значит нужно взять чужого и свалить на него весь треш. Да только такого найти еще нужно суметь!
С другой стороны - вот акционеры увидели задачу, выделили денег и нужно решать! И кто этим займется? Очевидно, что кто-то свой, родной - новая задача, много денег, сроки потом и т.д.. А его, своего-родного, задачи можно передать новому, еще чужому. А он профи, это видит и готов забрать весь легаси на помойке ))
Никто никогда не будет отдавать серьезную задачу за хорошие деньги кому-то другому !!
Когда станете понимать суть вакансий, тогда и станет ясно, почему система работает так.
Или третья сторона медали - вот в коллективе все налажено, сроки планово срываются и никто никогда за это не отвечает, ЗП приемлемая, а премия виртуальная. Вот скажите пожалуйста, зачем такой команде новичок ?! И система найма четко решает эту задачу.
Ну и ну!! Это же не таблица умножения! Знать досконально SQL невозможно. Всегда остаются серые зоны (у некоторых правда черные, но это не важно)
Про Oracle загляните на "Спроси у Тома" и там сами авторы этого Oracle иногда удивляются.
Поэтому сейчас главное не то, как ты зазубрил стандарт, а то, как ты можешь применять этот Oracle для решения задач корректно и эффективно. И обычно интересные задачи бывают с таким вывихом, что все эти чаты с гпт ничего кроме чуши не выдают.
А типовые задачи даже как то неудобно спрашивать, всё равно что спросить - а вы гуглить умеете?
Попробуйте у музыканта на собеседовании спросить - а вы все ноты знаете? ))
После таких публикаций вспоминаю историю рассказанную Возняком в своей книге про то, как они со Стивом пришли к заказчику и тот на них наорал, типа чего приперлись, мне нужна фича ХХ а тут и не пахнет ею.
Джобс спокойно отвечает - так она у нас есть и уже протестирована, просто не стали выпячивать. Принесем на следующую встречу, делов то.
Когда вышли от заказчика Джобс прашивает Возняка - а что это за фича ХХ? Мы можем её сделать?
Поэтому на собеседовании спокойно врите, например говорите, что знаете Oracle - если в состоянии прочесть за пару дней Прибыла с Фейерштейном и Томом Кайтом. И не забыть сразу, то что прочли, т.е. общая подготовка позволяет.
Если будете говорить, что ускорили загрузку на 15% - то нужно показать как! и тогда или нарушить NDA или показать, что коллеги не очень грамотные, а вы их поправили - а они припомнят. Или ваш будущий шеф будет думать про художественный свист и т.д.
ПОэтому про улучшения нужно говорить про самые необычные - например "выключил hyper threading" и система заработала на 10% быстрее. Это как раз повод, показать свою общую ИТ подготовку.
А про работу лучше сказать - "все поручения выполнены на 95% в срок и дать телефон своего начальника", а что вы там художественно ускорили и как вы исправляли своих коллег - это лучше не вспоминать
вот так попробуйте для поиска ошибок
https://7210208.blogspot.com/2019/02/blog-post_10.html
и вот так для улучшения разметки
https://7210208.blogspot.com/2022/10/blog-post.html
Кажется будет гораздо лучше если скачивать не раз в 30 сек, а постоянно скачивать разницу и обрабатывать различия. Т.е. если кто-то взял банку, то вы будете знать, что и когда кто взял с полки.
Кажется уже про такую задачу тут писали подробно и детально
https://habr.com/ru/companies/ods/articles/416101/
Я конечно извиняюсь, но если работа аналитика для врачей, то первый же пункт
это 5 лет институт, потом пару лет ординатура и только тогда можно сказать, что чел понимает то, что ему говорят.
А вот эту книжку читали? https://poxod.ru/literature/troe/p_troe_all_a.html
Цитата из первой главы