Search
Write a publication
Pull to refresh
1
0
Grisha @AB_AG

Аналитик в сфере E commerce

Send message

Потери данных при репликации в аналитическое хранилище — автоматические сверки и мониторинг качества данных

Reading time9 min
Views5.7K


Данные из боевых баз в нашей архитектуре асинхронно попадают в аналитическое хранилище (Clickhouse), где уже аналитики создают дашборды для продуктовых команд и делают выборки. Базы здоровые и под ощутимой нагрузкой: мы в день отправляем флот самолётов средней авиакомпании, несколько поездов и кучу автобусов. Поэтому взаимодействий с продуктом много.

ETL-процесс (извлечение данных, трансформация и загрузка в хранилище) часто подразумевает сложную логику переноса данных, и изначально нет уверенности в том, что данные доставляются без потерь и ошибок. Мы используем Kafka как шину данных, промежуточные сервисы на Benthos для трансформации записей и отправки в Clickhouse. На этапе создания пайплайна нужно было убедиться в отсутствии потерь с нашей стороны и корректной логике записи в шину данных.

Проверять вручную расхождения каждый раз не хотелось, кроме того мы нуждались в сервисе, который умел бы сверять новые данные по расписанию и показывать наглядно, где и какие имеются расхождения. Поэтому мы сделали сервис сверок, о котором я и расскажу, потому что готовых решений не нашёл.
Читать дальше →

Образование в РФ избыточно

Reading time22 min
Views157K

Эта статья призвана дать ответы на вопросы, которые возникают у некоторых студентов во время обучения и после окончания вузов относительно процесса обучения, образования вообще. Вроде таких наивных вопросов:

Для меня, как человека, который верил в то, что учебное заведение призвано ОБУЧАТЬ, это было, мягко говоря, шоком.

Подобные заблуждения почему-то никто не старается развеять заранее, и у людей случается шок, притом уже многие прошли через современную систему образования РФ. Придётся взять на себя подобный труд. Для меня бы, например, чтение подобной статьи было бы полезно в свое время, так как до некоторых пор сам был в плену подобных иллюзий.

Также она, возможно, будет небезынтересна родителям, непонимающим для чего система образования РФ делает те или иные вещи.

Еще я попробую дать отпор различного рода пропагандистам многословно рассуждающим о проблемах образования РФ и мнимых путях их решения, о каких-то компетенциях, о нужности или ненужности ЕГЭ, об инновациях и цифровизации в образовании, прочих "внутренних" вещах, но никогда не говорящих о сути системы образования РФ. Это происходит потому, что подобного рода статьи нацелены на сокрытие главной проблемы и внедрении определенных мыслей, а не простом и понятном разъяснении сложившейся ситуации с образованием в РФ.

Прежде всего я опишу свой личный опыт взаимодействия с системой образования РФ, чтобы вы представляли как я учился, и к каким умозаключения приходил тогда; это поможет понять ход моих рассуждений в основной части статьи, где я проанализирую образовательную систему РФ.

Читать далее

Медицинский детектив: как я разрабатывал матмодель и софт для хирургии по пересборке черепа

Reading time13 min
Views8.8K
image

Изначально моей подзадачей в этом процессе была пересборка человеческих челюстей в анатомически-правильное положение. До нас задачу решал хирург-человек, полагаясь фактически на визуальные ориентиры. Это давало быстрый хороший эффект, но не всегда он сохранялся спустя годы. Чтобы решить задачу правильно, нужно было найти оптимум на стыке трёх специализаций, включая математику. И, увы, до нас почему-то никто такую команду не собирал.

Проблема в том, что хирург фактически не знает точно, куда ровнять лицо. Он выравнивает так, как считает правильным «здесь и сейчас». Это часто ведёт к осложнениям спустя годы, про которые этот самый хирург чаще всего не знает.

Мы разработали новый протокол операции. Через 3 года прошла первая операция.

В старом протоколе хирург бы снял слепки зубов, разместил бы модель фрагментов пациента в артикулятор и подготовил бы набор ручных вмешательств. Наша методика расчёта показала, что то, что мы всегда считали «визуально правильным», таким не является. Мы долго проектировали ту операцию за матмоделями, проверяя, что будет с костями. Во время операции хирург открывал мягкие ткани, ставил навигационный шаблон на костную ткань, перекраивал кости под новыми углами. Углы, под которыми скреплялись кости, выглядели контринтуитивно. Их рассчитывала матмодель на основе КТ и фотограмметрии. Она же дала сверхточную навигацию: ничего не делалось вручную, только по трёхмерной координатной привязке. Хирург быстро разрезал, поставил шаблоны, наложил пластины, скрепил пластины в расчётных точках. Что-то похожее я видел в ролике к игре Deus Ex. Хирург во время самой операции был лишь исполнителем своей заранее созданной программы.

Пациент восстановился за 4 месяца. Старый протокол подразумевал, что общее время лечения будет длиться 30 месяцев, а с этим протоколом мы сократили общее время лечения до 4–12 месяцев.

Сегодня эта операция стала новым стандартом сферы.

Потому что мы поставили под сомнение догму.
Читать дальше →

Краткий справочник по «всем-всем» командам Linux

Level of difficultyMedium
Reading time90 min
Views203K

Периодически меня на начальном курсе просят дать "список всех-всех команд с кратким описанием что делает"... Ну прям "всех-всех". И ведь если искать в интернете "такие" справочники существуют - либо про "20-30 команд, но самых важных", либо с неточностями и устаревшей информацией. Так что предлагаю вашему вниманию свою версию такого "краткого" справочника (на 300, 515, 612, 716, 842, 1005,... 1260 команд) с ссылками на wiki-описание и на cheat.sh-примеры наиболее важных команд.

Справочник по всем-всем командам LINUX

Логирование в Python: руководство разработчика

Reading time13 min
Views258K

Сталкивались ли вы с трудностями при отладке Python-кода? Если это так — то изучение того, как наладить логирование (журналирование, logging) в Python, способно помочь вам упростить задачи, решаемые при отладке.

Если вы — новичок, то вы, наверняка, привыкли пользоваться командой print(), выводя с её помощью определённые значения в ходе работы программы, проверяя, работает ли код так, как от него ожидается. Использование print() вполне может оправдать себя при отладке маленьких Python-программ. Но, когда вы перейдёте к более крупным и сложным проектам, вам понадобится постоянный журнал, содержащий больше информации о поведении вашего кода, помогающий вам планомерно отлаживать и отслеживать ошибки.

Из этого учебного руководства вы узнаете о том, как настроить логирование в Python, используя встроенный модуль logging. Вы изучите основы логирования, особенности вывода в журналы значений переменных и исключений, разберётесь с настройкой собственных логгеров, с форматировщиками вывода и со многим другим.

Вы, кроме того, узнаете о том, как Sentry Python SDK способен помочь вам в мониторинге приложений и в упрощении рабочих процессов, связанных с отладкой кода. Платформа Sentry обладает нативной интеграцией со встроенным Python-модулем logging, и, кроме того, предоставляет подробную информацию об ошибках приложения и о проблемах с производительностью, которые в нём возникают.

Читать далее

Все, что вам нужно знать об Airflow DAGs, ч.3 — Проектирование DAG

Reading time9 min
Views18K

Поскольку Airflow — это на 100% код, знание основ Python - это все, что нужно, чтобы начать писать DAG. Однако написание эффективных, безопасных и масштабируемых DAG требует учета некоторых моментов, специфичных для Airflow. В этом разделе мы рассмотрим некоторые передовые методы разработки DAG, которые максимально используют возможности Airflow.

В целом, большинство лучших практик, которые мы здесь рассматриваем, относятся к одной из двух категорий:

Читать далее

Все, что вам нужно знать об Airflow DAGs, ч.2 — Операторы и Датчики

Reading time15 min
Views40K

Операторы являются основными строительными блоками DAG Airflow. Это классы, которые содержат логику выполнения единичной работы.

Вы можете использовать операторы в Airflow, создав их экземпляры в задачах. Задача определяет работу, выполняемую оператором в контексте DAG.

Чтобы просмотреть и выполнить поиск по всем доступным операторам в Airflow, посетите Astronomer Registry. Ниже приведены примеры операторов, которые часто используются в проектах Airflow.

Читать далее

Все, что вам нужно знать об Airflow DAGs, ч.1 — Основы и расписания

Reading time20 min
Views110K

Полное руководство по созданию DAG в Apache Airflow DAG, позволяющих создать конвейер данных из разных источников, запускаемый в определенные периоды времени с заданной логикой. Первая часть. Источник: DAGs: The Definitive Guide от astronomer.io

Добро пожаловать в полное руководство по Apache Airflow DAG, представленное командой Astronomer. Эта электронная книга охватывает все, что вам нужно знать для работы с DAG, от строительных блоков, из которых они состоят, до рекомендаций по их написанию, динамической генерации, тестированию, отладке и многому другому. Это руководство, написанное практикующими для практикующих.

Читать далее

Версионность и история данных

Reading time5 min
Views142K
При разработке баз данных зачастую требуется обеспечить поддержку версионности и хранения истории объектов. Например, у работника может изменяться должность, у должности в свою очередь может меняться оклад — в многомерном моделировании это называется Slowly changing dimensions(далее SCD) — редко изменяющиеся измерения, то есть измерения, не ключевые атрибуты которых имеют тенденцию со временем изменяться. Всего существует 6 основных типов(методов) SCD, которые определяют как история изменений может быть отражена в модели.

Подробнее...

Магистратура ИИИИ от Физтеха и ВТБ: Data Science с человеческим лицом

Reading time10 min
Views4.9K

В современном мире невозможно быть энциклопедистом. Со времён Вольтера и Дидро человечество накопило слишком много знаний, и они не поместятся в одну голову. Однако это не значит, что не стоит даже пытаться. Как говаривал Козьма Прутков, «специалист подобен флюсу». А флюс — штука нездоровая.

Меня зовут Константин Воронцов, я завкафедрой машинного обучения и цифровой гуманитаристики МФТИ. Сегодня хочу рассказать вам, как найти золотую середину между этими крайностями. Почему дата-сайентисту неплохо бы знать Платона и уметь строить отношения с людьми, не забывая, впрочем, про дискретную математику и Python. Ещё расскажу, где всему этому научиться.

Читать далее

Насколько жарко — это слишком жарко? Жара + влажность становятся опасными быстрее, чем многие думают

Reading time6 min
Views64K

По мере изменения климата волны жары становятся все более интенсивными: они длятся дольше, идут чаще, а температуры всё выше. Сейчас одна такая волна проносится через Европу: в Испании и Португалии только за прошедшую неделю умерли 1100 человек. Люди просто оказались не готовы к температурам выше 35 ºС: у них в домах не было кондиционеров, а многие днем выходили и пытались работать как обычно. И получили огромные проблемы со здоровьем.

В целом по Европе за одно это лето счет идет уже на десятки тысяч. Этот год, по всей видимости, станет даже более смертоносным, чем печально известный 2003-й, когда в Европе от жары погибло 30 000 людей. Но тогда температура доходила до 37 ºС, сейчас — под тем же Парижем фиксируют уже до +42 ºС.

Видимо, люди просто не понимают, в какую погоду можно находиться на улице, как им вести себя дома, и насколько вообще всё серьезно.

Попытаемся ответить.

Читать далее

Как работать с датами в pandas

Reading time4 min
Views84K

Библиотека Pandas — это весьма эффективный инструмент для обработки данных, представляющих собой временные ряды. На самом деле, эта библиотека была создана Уэсом МакКинни для работы с финансовыми данными, которые состоят, главным образом, из временных рядов.

При работе с временными рядами много сил уходит на выполнение различных операций с датой и временем. Этот материал посвящён ответам на четыре распространённых вопроса из данной сферы.

Возможно, вы уже сталкивались с этими вопросами. Ответить на все из них, кроме последнего, можно сравнительно просто. А вот ответ на последний, довольно-таки хитрый вопрос, представляет собой последовательность из нескольких действий.

Начнём с создания учебного датафрейма (объекта DataFrame), с которым будем экспериментировать:

Читать далее

Итераторы в Python для самых маленьких

Reading time11 min
Views70K

«Напиши, пожалуйста, кастомный итератор,» — такое задание довольно часто дают на собеседованиях, и я раз за разом вижу обреченные глаза кандидата, когда он сталкивается с подобной просьбой. Опыт участия в собеседованиях показал мне, что большинство начинающих разработчиков бегут от этой темы, потому что она кажется слишком запутанной и непонятной. А ведь ничего сложного в ней нет, если подобраться к ней правильным образом — в чём я и постараюсь помочь дорогим читателям.

Наше путешествие мы начнем с того, что вообще такое итератор. Итератор — это некий объект, который в себе реализует интерфейс перебора чего-либо. А говоря рабоче-крестьянским языком — это такая штука, которая в себе описывает правило, по которому мы будем перебирать содержимое той или иной коробки.

Читать далее

ТОП6 аппаратов, которые так и хочется собрать…

Reading time11 min
Views40K

Объединение воедино механики, электроники и программирования — позволяет создавать весьма интересные машины, которые к тому же обладают неплохим практическим потенциалом. Об этом мы и поговорим в этой статье.

Ниже я постарался собрать своеобразный ТОП6 аппаратов, мысли о которых не дают мне покоя :-). Если вам есть что добавить, будет интересно почитать в комментах…

Читать дальше →

Организация OLAP куба средствами Python

Reading time4 min
Views26K
Добрый день, уважаемые читатели.
Сегодня я расскажу вам о том, как можно построить простенькую систему анализа данных на Python. В этом мне помогут framework cubes и пакет cubesviewer.
Сubes представляет собой framework'ом для работы с многомерными данными с помощью Python. Кроме того он включает в себя OLAP HTTP-сервер для упрощенной разработки приложений отчетности и общего просмотра данных.
Сubesviewer представляет собой web-интерфейс для работы с вышеуказанным сервером.

Читать дальше →

Как я готовился к собеседованию на позицию Senior ML Engineer

Reading time11 min
Views16K

Привет, меня зовут Глеб Зарин, я ML-разработчик. Сегодня я расскажу, как я подготовился к собеседованиям на позицию Senior Machine Learning Engineer и получил работу мечты за рубежом.

Читать далее

Сегментарный анализ на примере RFM-анализа средствами Power BI

Reading time12 min
Views10K

Существует большое разнообразие методов сегментарного анализа в маркетинге. Во-первых, сегментация — это стратегия, используемая для концентрации ресурсов на целевом рынке/объекте и оптимизации их использования. Во-вторых, сегментация — это алгоритм анализа рынка для лучшего учёта его особенностей.

Эффективно проведённая сегментация упрощает и удешевляет маркетинговую политику, позволяет отказаться от многих затратных методов продвижения. Объяснение очень простое - покупатель приходит к продавцу не за рекламой и скидками, а за удовлетворением своих потребностей. Поэтому продавцы, предлагающие товары или услуги, лучше удовлетворяющие потребности покупателей (по свойствам, качеству, цене и т. д.), могут добиться большего эффекта, а также свести к минимуму затраты на рекламу и скидки.

Рассмотрим частотно-монетарный метод сегментации применительно к e-commerce сфере. Частотно-монетарный анализ (RFM анализ) - анализ, в основе которого лежат поведенческие факторы групп или сегментов клиентов, позволяющий сегментировать клиентов по частоте и сумме покупок и выявлять тех, которые приносят больше денег. Данный метод позволяет получить ценные инсайты по построению маркетинговых стратегий в компании.​ Также RFM-сегментация помогает применять особый комуникативный подход к каждой группе клиентов.

RFM-анализ частично перекликается с принципом Парето, полагающим, что 80% результатов происходят благодаря 20% усилий. Если данный принцип рассматривать в общем ключе маркетинга - 80% всех ваших продаж исходят от 20% наиболее лояльных и постоянных клиентов. Постоянные клиенты всегда буду иметь высокое влияние на выручку, а значит – возвращаемость этих клиентов крайне важна для показателей дохода.

Читать далее

Sublime text для PL/SQL разработчика

Reading time6 min
Views24K
Хотелось рассказать о том, как многими любимый Sublime Text можно использовать как неплохое средство для разработки на PL/SQL.

Хотелось бы начать с того, для чего нужен был этот велосипед, ведь есть вроде бы много других IDE для работы с SQL и в частности Oracle PL/SQL, такие как Toad for Oracle, SQL Navigator, PL/SQL Developer и даже бесплатный Oracle SQL Developer, однако у большинства из них есть несколько недостатков по сравнению с текстовыми редакторами типа Emacs, SciTe, Vim, Notepad++, Sublime Text и т.д.

Перечислю некоторые из них, данный список сугубо субъективный:

  • “Тяжеловесность” каждой IDE, это выражается не только в размере дистрибутива, но и общими ощущениями, наличием множества не нужных функций, кнопок, отзывчивостью и т.д.
  • Большинство приемлемых IDE являются платными, или условно бесплатными с ограниченным функционалом.
  • Хотелось бы кроссплатформенность, под это требование из приведенных IDE попадает только Oracle SQL Developer.
  • Функционал редактирования текста. В большинстве из них есть только базовые методы по работе с текстом: это набор текста, copy-paste, подсветка синтаксиса. Ни о каких “CTRL+D” как Sublime Text речи и не идет.
  • Простота расширения, практически все IDE закрыты, никакой поддержки самописных пагинов и т.д.

Есть еще один пункт, но он больше относится к организации проектов и задач на рабочем месте. Хотелось бы немного затронуть эту тему, так как организация на проектах наложила свой отпечаток на настройку Sublime Text.
Читать дальше →

Основы теории вероятностей с помощью Python

Reading time8 min
Views34K

Привет, Хабр! Я очень долго собирался с мыслями, чтобы попробовать опубликовать свою статью в вашем сообществе, это дебют, поэтому буду рад услышать в комментариях обратную связь по поводу содержимого материала. Тематика сегодняшнего сообщения – это разбор базовых понятий в теории вероятности с помощью языка программирования Python.

Прежде чем приступить к изложению базовых понятий немного расскажу о себе, о профессиональном опыте, чтобы вы могли иметь представление об авторе. Я окончил Уральский Федеральный Университет по направлению бизнес-информатика и сейчас работаю младшим научным сотрудником в Институте экономики Уральской Академии наук (г. Екатеринбург). В основном направление, по которому я обучался, опиралось на моделировании бизнес процессов. Было конечно немного статистики и теории вероятности, но по мере своего профессионального роста знаний, полученных в университете, мне оказалось недостаточно, поэтому сейчас я вспоминаю изученный материал и постепенно изучаю новый. В качестве такого своеобразного отчёта о проделанной работе принял решение публиковать небольшие статьи здесь. Надеюсь для новичков, которым собственно я и являюсь по сегодняшний день данный материал будет полезен.

За основу для изучения взял оксфордский учебник на английском языке «Bayesian Statistics for Beginners» (автор Therese M и Ruth M.Mickey). Если у вас есть какие-то базовые знания по математике, которые вы хотите углубить или вспомнить данная книга как раз для вас. Мне очень понравилось её необычное изложение в форме интервью, достаточно простой английский (для уровня B1-B2). Думаю, если вы часто читаете документацию на английском языке или ещё лучше научную литературу, учебник можно осилить практически без словаря. Сама книга – цветная, читать формулы – одно удовольствие. В общем зарекомендовал как мог.

Читать далее

Нормализация отношений. Шесть нормальных форм

Reading time8 min
Views1.6M
В данной теме я затрону 6 нормальных форм и методы приведения таблиц в эти формы.

Процесс проектирования БД с использование метода НФ является итерационным и заключается в последовательном переводе отношения из 1НФ в НФ более высокого порядка по определенным правилам. Каждая следующая НФ ограничивается определенным типом функциональных зависимостей и устранением соответствующих аномалий при выполнении операций над отношениями БД, а также сохранении свойств предшествующих НФ.
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Data Analyst, Data Engineer
Lead
SQL
Python
Git
Database