Pull to refresh
8
0
Середа Илья @sab0tazh

User

Send message

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

Reading time9 min
Views4.9K


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

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

Проверять вручную расхождения каждый раз не хотелось, кроме того мы нуждались в сервисе, который умел бы сверять новые данные по расписанию и показывать наглядно, где и какие имеются расхождения. Поэтому мы сделали сервис сверок, о котором я и расскажу, потому что готовых решений не нашёл.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments27

Аналитики данных в Авито: ожидания и спектр задач

Reading time10 min
Views18K

Привет, я Дина Симкина, директор по аналитике Авито. Я отвечаю за то, чтобы аналитика помогала бизнесу принимать правильные решения. В статье я расскажу, кого мы в компании называем аналитиками данных и чего от них ждём в зависимости от профессионального уровня.

Читать далее
Total votes 19: ↑19 and ↓0+19
Comments13

ClickHouse: Путь джедая, искавшего дом для своих данных

Reading time9 min
Views19K

В разные эпохи развития нашего проекта в качестве основного хранилища которое было как источник данных для аналитики у нас были хранилища MySQL, ElasitcSearch, Exasol и ClickHouse. Последний нам очень нравится и вообще вызывает дикий восторг как инструмент для работы с большими массивами данных, но если посчитать итоговую стоимость владения с учётом внедрения кластера, обучения и поддержки — лучше подумайте два раза, прежде чем тащить его в ваше стек. На наших объёмах данных вложенные усилия окупаются, но если бы мы были чуть меньше, то, наверное, экономика не сошлась бы.

Главная проблема ClickHouse — это практическое отсутствие удобных и стабильно работающих инструментов для эксплуатации и большое кол-во решение рядом в погоне добиться того же пользовательского опыта как при работе с классическим RDBMS (MySQL или PostgreSQL). Вам придется приложить не мало усилий чтобы понять как эффективно применить clickhouse для ваших задач анализировать придется много: начиная от вопросов развертывания до выбора оптимальных моделей данных под профиль вашей нагрузки, в общем доступе не так много рекомендаций по выбору конфигураций под разные типы задач.

С другой стороны, его киллер-фича — это возможность работать с огромными массивами данных невероятно быстро для решений в этой области, то что раньше нам приходилось делать в Spark или через другие реализации map reduce, теперь мы можем делать внутри clickhouse. И бесплатно, потому что такими же плюсами обладают многие MPP решения вроде Vertica или Exasol. Но ClickHouse открытый, и за это мы платим налог на использование не прогнозируемым объемом поддержки или развития системы. Не всем это подходит: например, есть опыт компаний, которые сначала было влезли в это дело, потом поняли, что это не то — и взяли платные продукты с платной поддержкой с экспертизой в решении архитектурных задач именно их продуктами. В платных продуктах есть готовые инструменты, которые понятно, как применять.

Читать далее
Total votes 27: ↑26 and ↓1+25
Comments9

Репликация ClickHouse без костылей: ожидание и реальность

Reading time8 min
Views20K


Про ClickHouse есть много разной информации, но мало про то, как готовить инфраструктуру с ним. Мы потратили примерно полгода вялого набивания шишек, чтобы это заработало именно так, как нас наконец-то устраивает. Нужно было найти конфигурацию эффективную и в плане денег, и в плане работы базы как таковой.

На момент написания статьи хранилищем и результатами его работы пользуются 16+ команд (11+ аналитиков и 2 data scientist, 70+ разработчиков, руководители и менеджерский состав).

Ежесуточно в хранилище поступает ~1,2 ТБ данных, пользователи и автоматика для построения отчётности генерируют ~35 000 запросов в сутки на выборки различной сложности. Подробнее про наше хранилище и то, какие задачи для бизнеса им решаем, можно почитать по ссылке.
Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments13

Когда Cron подводит

Reading time8 min
Views7.5K

Привет!

У нас есть огромные ночные отчёты по продуктовым метрикам, которые с утра попадают их владельцам. Пару лет назад они собирались обычным Cron'ом, но это оказалось очень нестабильной историей. Cron требует учёта определенных нюансов и дисциплины: если отчёт не собрался, то нужно перезапустить скрипт. А не собраться он может по многим причинам: одна из MySQL-баз не ответила, или не ответил опрашиваемый сервис, или сервер, на котором работает Cron, ночью перезагружался или вышел из строя. В большинстве своём такие отчеты создавались аналитиками, которые обычно всего этого не учитывали. Потому что они аналитики и это не их задача. Поэтому мы начали искать варианты, которые упростят жизнь всем.

И нашли.

В финальном решении используется планировщик Airflow с его возможностью взаимодействия с кластером Kubernetes. Система получилась гибкая и надежная и упрощает жизнь конечным потребителям. Для разработки таких систем есть мы, техническая команда из четырёх человек, называемая Data Team, а конечные потребители – аналитики, продакт-менеджеры и техлиды.

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments10

Пользовательское интервью внутренними силами компании: через ошибки к открытиям

Reading time11 min
Views2.9K


Привет, я Саша, скрам-мастер из Туту.ру в команде туров. Не так давно мы проводили пользовательское интервью для нашей новой фичи — Джарвела. Хочу поделиться с вами ошибками и открытиями, которые помогли нам провести это интервью так, что оно затронуло и изменило краеугольную основу фичи. Это помогло продукту и прокачало нашу команду, надеюсь, будет полезно и интересно и для вас. Но чтобы понять суть наших открытий, вас нужно познакомить с Джарвелом и провести по нашему пути.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments2

Так ли хорош DRY или все же он может нарушать O из SOLID

Reading time3 min
Views9.4K
Принцип DRY (Do not Repeat Yourself) давно всем вполне очевиден и любим многими программистами. И многие согласны, что Copy/Paste это совсем не круто. В этой статье я хочу привести пример того, в каких случаях в промышленном программировании использование Copy/Paste более уместно и помогает красиво реализовать Open-Closed принцип из SOLID.
Читать дальше →
Total votes 26: ↑16 and ↓10+6
Comments53

Банальности про АБ–тест

Reading time3 min
Views15K

В интернете кто–то неправ


Случайно выяснил, что существует непонимание того, что такое АБ–тест и как его проводить. Поэтому небольшая статья с базовыми принципами и примерами как делать не надо может быть полезна. Советы рассчитаны на читателя только начинающего знакомство с АБ–тестами и проект с небольшой аудиторией. Если у вас большая аудитория, то вы и так знаете как проводить тесты.


Мой опыт проведения АБ–тестов связан с мобильными приложениями, поэтому какая–то специфика может прорваться несмотря на намерения писать только о базовых вещах.


Определение


АБ–тест — это способ понять стал ли ваш продукт лучше при изменении его части. Скажем, у вас есть гипотеза, что какое–то изменение увеличит ключевую метрику продукта больше чем на 10%. Вы берёте новых пользователей и одной половине даёте контрольный вариант продукта, а другой — с реализованной гипотезой. Дожидаетесь пока разница между значениями метрики станет статистически достоверна, то есть не изменится при продолжении теста с вероятностью 90–95%. Как только результаты достоверны — оставляем победителя и запускаем следующий тест.

Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments25

Как мы добавили подъезды на карту и сократили размер баз на 10%

Reading time12 min
Views31K


В конце прошлого месяца 2ГИС начал отображать подъезды. Входы в организации мы показываем аж с 2013 года, а подъезды — вроде бы те же входы. Так почему только сейчас? Все внутренние продукты и процессы готовы, всего-то нужно дособрать ещё чуть-чуть да подправить отображение в UI.

Кроме стандартного ответа «Были другие приоритеты» есть и не совсем стандартный: «Не всё так просто». Эта статья про то, какие были сложности и как мы их решили.
Заходим!
Total votes 84: ↑83 and ↓1+82
Comments137

Как избежать проблем с производительностью при создании React-приложений

Reading time11 min
Views15K


О производительности react


React не зря считается очень производительным фреймворком. Он позволяет создавать быстрые динамические страницы с большим количеством элементов.


Но бывают ситуации, когда элементов на странице становится очень много и встроенной производительности react не хватает. Тогда приходится применять различные приемы для оптимизации.

Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments17

Процесс управления инцидентами в Туту.ру

Reading time10 min
Views10K
Для каждой компании рано или поздно актуальной становится тема менеджмента инцидентов. Некоторые уже имеют настроенные и отлаженные процессы, кто-то только начинает свой путь в этом направлении. Сегодня я хочу рассказать о том, как мы в Туту.ру строили процесс обработки «сбоев на бою», и что у нас получилось.


Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments6

Как быть тимлидом, если работаешь с людьми из разных продуктовых команд

Reading time5 min
Views7.5K
Я — тимлид команды эксплуатации. И работаю я с пятью людьми из четырех разных команд. О прелестях и сложностях работы кросс-командным тимлидом я и расскажу.

Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments10

Как мы в Tutu.ru добиваемся эффективности каждого из 9000+ UI-тестов

Reading time8 min
Views7.3K


Любой проект в процессе своего развития и роста наполняется новыми функциональными возможностями. QA-процессы должны на это оперативно и адекватно реагировать, например, увеличением количества тестов всех видов. В этом докладе мы будем говорить про UI-тесты, которые играют важную роль в создании качественного продукта. Система автоматизации UI-тестирования не только в разы сокращает время на регрессионное тестирование, но и обеспечивает эффективную работу таких инструментов и процессов разработки, как Continuous Integration и релиз-инжиниринг.

Количество тестов постепенно растет от 1000 к 3000, от 6000 к 9000+ и т.д., и, чтобы эта «лавина» не накрыла наш QA-процесс, нужно с самого раннего этапа развития проекта автоматизации думать про эффективность всей системы и каждого теста в ней.

В этом докладе я расскажу, как сделать систему гибкой к запросам, поступающим от бизнеса, а также про эффективное использование каждого из тестов. Кроме того, мы поговорим про оценку и метрики не только процессов автоматизации, но и всего QA.
Total votes 22: ↑22 and ↓0+22
Comments12

Нативные ECMAScript модули — первый обзор

Reading time11 min
Views32K
Бандлеры и компайлеры против нативных модулей

В этой статье хочу поделиться переводом статьи о нативных ECMAScript модулях, которые все больше и больше обсуждаются среди фронтендеров. Javascript ранее никогда не поддерживал нативно работу с модулями, и нам, фронтендерам, всегда приходилось использовать дополнительные инструменты для работы с модулями. Но вы только представьте, что в скором времени не нужно будет использовать Webpack для создания бандлов модулей. Представьте мир, в котором браузер будет собирать все за вас. Подробнее об этих перспективах я и хочу рассказать.
Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments8

«Пятый элемент» в экосистеме R. WYSIWYG интерфейс для аналитиков

Reading time2 min
Views5.4K

Настоящая публикация, хоть и продолжает серию предыдущих, но будет совершенно краткой. И не в силу того, что материал скромный, но потому, что есть отличный первоисточник с массой текстов и видео.


Практика общения с аналитиками показала, что лаконичная консоль или лист программы в RStudio IDE как удобный инструмент начинает восприниматься людьми, воспитанными в подходе WYSIWYG, далеко не с первого дня. Продукты PowerBI\Tableau\Qlik, активно использующие этот подход, хорошо известны в российском информационном пространстве и зачастую аналитики пытаются соотнести R+Shiny с этими продуктами.

Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments6

Как собрать статистику с веб-сайта и не набить себе шишек

Reading time9 min
Views25K

enter image description here


Привет, Хабр! Меня зовут Слава Волков, и я фронтенд-разработчик в Badoo. Сегодня я хотел бы немного рассказать про сбор статистики с фронтенда.


Мы знаем, что аналитика позволяет оценить эффективность работы любого веб-сайта, улучшить его работу, а значит, повысить уровень продаж и усовершенствовать взаимодействие пользователей с сайтом. Проще говоря, аналитика – это способ контроля над процессами, происходящими на веб-сайте. В большинстве случаев для обычных сайтов достаточно установить Google Analytics или «Яндекс.Метрику» – их возможностей вполне достаточно.


Но как быть, когда стандартных средств мониторинга недостаточно? Или когда собираемая статистика должна быть интегрирована в вашу собственную систему аналитики для отображения полноценной картины происходящего между разными компонентами? В таком случае, скорее всего, вам придется разработать свою систему. А вот как лучше отправлять статистику с ваших веб-сайтов, какие проблемы могут при этом возникнуть и как их избежать, я расскажу в этой статье. Заинтересовались? Добро пожаловать под кат.

Total votes 53: ↑48 and ↓5+43
Comments0

Вероятность потери данных в больших кластерах

Reading time7 min
Views12K
В этой статье используется MathJax для рендеринга математических формул. Нужно включить JavaScript, чтобы MathJax заработал.

Многие распределённые системы хранения (в том числе Cassandra, Riak, HDFS, MongoDB, Kafka, …) используют репликацию для сохранности данных. Их обычно разворачивают в конфигурации «просто пачка дисков» (Just a bunch of disks, JBOD) — вот так, без всякого RAID для обработки сбоев. Если один из дисков в ноде отказывает, то данные этого диска просто теряются. Чтобы предотвратить безвозвратную потерю данных, СУБД хранит копию (реплику) данных где-то на дисках в другой ноде.

Самым распространённым фактором репликации является 3 — это значит, что база данных хранит три копии каждого фрагмента данных на разных дисках, подключенных к трём разным компьютерам. Объяснение этому примерно такое: диски выходят из строя редко. Если диск вышел из строя, то есть время заменить его, и в это время у вас ещё две копии, с которых можно восстановить данные на новый диск. Риск выхода из строя второго диска, пока вы восстанавливаете первый, достаточно низок, а вероятность смерти всех трёх дисков одновременно настолько мала, что более вероятно погибнуть от попадания астероида.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments14

7 методик оптимизации рабочего процесса, о которых вы, возможно, не слышали

Reading time5 min
Views43K
Времени всегда в обрез, а дел всегда невпроворот – это аксиома двадцать первого века. Неудивительно, что человечество находится в непрерывном поиске магического ритуала (или же методики организации рабочего процесса, как их принято называть), который спасет нас всех от цейтнота, дедлайнов, прокрастинации и прочих темпоральных ловушек. Самые действенные из них вам, безусловно, уже известны, однако мы, усилиями своей команды, составили небольшой хит-парад чуть менее распространенных техник, которые нам доводилось успешно применять в работе.


Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments13

У компании есть еще похожие вакансии

Reading time5 min
Views7.9K

2 марта я выступал с докладом на Data Science Meetup, который проходил в нашем офисе. Я рассказал об опыте создания алгоритма по схлопыванию похожих вакансий в поисковой выдаче. По ссылке вы можете ознакомиться с отчетом о прошедшей встрече, там же будут доступны записи выступлений и ссылки на презентации. Для тех же, кто предпочитает воспринимать информацию в текстовом виде, я написал эту статью.


Мы столкнулись с проблемой, когда в поиске по вакансиям выдача заполнялась одинаковыми вакансиями от одного работодателя. Например, по запросу «водитель» посетитель мог получить 30—40 вариантов одной и той же вакансии на одну и ту же позицию.


Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments8

Чередование выборки в MySQL

Reading time4 min
Views10K
Всем привет! Сегодня встала интересная задача по выборке данных, решением которой я решил поделиться.

Итак, дано:

Две таблицы — shops и products

Грубо говоря — площадка, где разные магазины размещают свои товары.
И вот, встала необходимость сделать на главной странице выдачу товаров, но так, чтоб пользователь не видел кучу товаров одного магазина. Магазины надо чередовать.
Читать дальше →
Total votes 17: ↑12 and ↓5+7
Comments38

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity