Чему я научился, создавая платформу данных с нуля в течение года
Год назад я присоединился к французскому стартапу Allowa, цель которого заключалась в том, чтобы стать маркетплейсом # 1 в сфере недвижимости. Я пришел в компанию в качестве специалиста по работе с данными и главная моя задача состояла в том, чтобы структурировать все корпоративные данные и извлечь из них максимальную пользу.
Создание платформы данных с нуля - это уникальный опыт, которым мне бы очень хотелось с Вами поделиться. Итак, вот основные выводы, к которым я пришел, выполняя свою работу:
- Для начала работы Вам совершенно не нужен навороченный стек данных;
- KISS - Keep It Simple and Stupid или сначала все должно быть просто и достаточно примитивно, а затем, если будет нужно, вносите улучшения;
- Качество данных - корень всех Ваших проблем
- Техника – это просто, сложность заключается в людях;
- Для того, чтобы добиться успеха в работе с данными, нужно время.
Стек данных
Примечание: данный раздел содержит техническую информацию
Стек данных - типичный ELT стек, почти на 100% с открытым исходным кодом, размещенный на AWS.
Использование инструмента Extract & Load является обязательным
В современном мире данных существует множество вариантов EL-инструментов, которые уберегут Вас от изобретения велосипеда и позволят тем самым сэкономить драгоценное время.
Fivetran, Mage и Airbyte – самые распространенные примеры таких инструментов (на самом деле их гораздо больше).
Вам больше не нужно поддерживать собственные скрипты - эти инструменты поставляются с +300 коннекторами, базовым планированием и функцией обработки ошибок.
Среди этих вариантов моим личным фаворитом является Airbyte: его легко развернуть, им просто управлять и у него есть достаточно активное сообщество. Конечно, он не идеален, но делает именно то, что мне нужно: эффективно перемещает данные из разных источников в корпоративное хранилище данных.
Некоторые утверждают, что использование EL-инструмента замедляет процесс извлечения данных (по сравнению с пользовательскими сценариями)… Что ж, выбор за Вами: готовы ли Вы поддерживать более 50 сценариев извлечения, а также самостоятельно заниматься тестированием и развертыванием? Или лучше при построении стека данных задействовать проверенный и оптимизированный процесс извлечения и загрузки данных без каких-либо дополнительных накладных расходов?
Оркестратор Вам не пригодится
Я знаю, что в схеме есть оркестратор, но он был развернут совсем недавно. Когда стек только запускался, оркестратор еще не был частью инфраструктуры. Вместо этого для управления заданиями по извлечению и преобразованию данных использовались довольны простые методы планированияна тот момент этого было вполне достаточно, так как компонентов, за которыми нужно было следить, было сравнительно немного.
Для извлечения данных и запланированных преобразований dbt мы использовали Airbyte, для планирования заданий Python через задачи ECS - EventBridge от AWS. Данный метод был достаточно и при этом эффективным.
Принцип KISS (Keep It Simple and Stupid) позволил нам добиться значительного прогресса без особых усилий. Только сейчас, когда стек данных стал более обширным, а команда – многочисленной, есть смысл подумать о том, стоит ли внедрять более сложные решения по планированию и оркестрации данных.
Компромисс между быстрыми победами и долгосрочной перспективой
Иногда человеку с техническим образованием трудно делать то, что заведомо не очень хорошо масштабируется. Лично я предпочитаю работать с масштабируемыми решениями. Однако реальность такова, что предусмотренные масштабируемые системы вовсе не нужны . В итоге Вы рискуете получить нечто более сложное, чем на самом деле было нужно. Поэтому опять же, KISS.
Redshift был ошибкой
Как бы я ни любил сервисы AWS, вынужден признать, что установка Redshift в качестве хранилища данных была ошибкой - Postgres был бы гораздо более целесообразным решением.
Будем честны, если у Вас нет огромных объемов данных, все эти модные и дорогостоящие хранилища данных вроде Redshift Вам просто не нужны. Redshift не имеет открытого исходного кода, поэтому Вы попросту не сможете установить полный мини-стек данных на своем локальном компьютере для последующего тестирования. Кроме того, Redshift, построенный на базе Postgres 8, иногда не обладает всеми теми возможностями, которые есть в более поздних версиях Postgres.
Я знаю, что Postgres - это транзакционная база данных, но я считаю, что это надежный проверенный подход для хранения данных. Если Вы имеете дело с таблицами, содержащими менее 50 миллионов строк и менее 10 терабайт данных (что характерно для большинства стартапов), то Postgres по многим параметрам является для Вас более оптимальным решением по сравнению с Redshift. И что самое приятное, его легко установить и запустить на локальном компьютере.
И только потом, если в этом возникнет необходимость, можно будет задуматься о переходе на "правильное" хранилище данных.
Не принебрегайте безопасностью Вашей инфраструктуры данных
Строгие правила безопасности, безусловно, в некотором смысле тормозят Вашу работу, но, в конце концов, мы имеем дело с данными, а данные - это ценный актив, который необходимо защищать.
Для начала соблюдайте хотя бы основы безопасности данных:
- Никогда не открывайте доступ к базе данных или хранилищу на просторах Интернета;
- При передаче данных, по возможности, используйте шифрование данных;
- Для безопасной работы с токенами и паролями баз данных, используйте менеджер секретов (например AWS Secret Manager);
- Не открывайте порт ssh вашего экземпляра для доступа в интернет
Если Вы будете пренебрегать безопасностью своей инфраструктуры, однажды Вы об этом очень сильно пожалеете.
Другие «открытия», о которых упомяну вкратце:
- Логирование: не забывайте о базовом протоколировании. Это позволит Вам гораздо быстрее исправить допущенные ошибки;
- Дл отправки уведомлений лучше всего подходит Slack;
- Инфраструктуру как код, возможно, сложно внедрить сложно, но поверьте, оно того стоит. Я использовал Terraform и Ansible, но в одном из недавних проектов решил перейти на Pulumi.
Качество данных
“Garbage in, garbage out”
Я мог бы добавить этот пункт в раздел, посвященный стеку данных, но считаю, что качество данных настолько важно, что заслуживает отдельного упоминания.
Без соблюдения качества данных в них нет вообще никакого смысла
Одна из первых метрик, которым я поделился с заинтересованными сторонами, оказалась неточным. Эта неточность была прямым следствием низкого качества исходных данных. К распространенным проблемам качества данных относятся отсутствие необходимой информации, неправильные типы данных, а также отсутствие внешнего ключа для связи данных.
Я понял, что повышение качества данных и его регулярный мониторинг - это приоритетная задача.
Люди всегда будут сомневаться в достоверности представленных им показателей, и они могут оказаться правы, если Вы не докажите точность исходных данных.
Устранение проблем с качеством данных требует времени. К сожалению, очень часто мы спешим представить дашборд, не уделив должного внимания качеству используемых данных. Однако такой подход в конечном итоге приводит лишь к отсутствию доверия к команде разработчиков данных. Доверие к данным заслужить трудно, а вот потерять – очень легко. Вы должны любой ценой избегать предоставления заинтересованным сторонам неточных данных, иначе их доверие к данным улетучится со скоростью света. Помните, что забота о качестве данных – Ваша первоочередная задача.
Поэтому еще до того, как Вы узнаете о проблемах с качеством данных (а они есть всегда), Вам следует создать структуру для проверки и мониторинга данных в организации.
Продвижение культуры данных в компании
Технологии – это, конечно, хорошо, но я считаю, что гораздо важнее взрастить культуру данных в рамках компании. Помочь людям понять, что данные, которые они производят и которыми пользуются, - это ценнейший актив,не так-то просто, для этого нужно много времени и усилий.
Регулярное информирование сотрудников
Через месяц после начала работы в компании я провел презентацию о важности и пользе данных для бизнеса, а также решил с их помощью несколько насущных задач, после чего люди обратились ко мне с более интересными и сложными случаями.
Конечно, одной презентации недостаточно, и Вы должны постоянно напоминать людям о важности использования лучших практиках при работе с данными. Регулярное информирование в конечном итоге привлечет внимание х сотрудников, которые со временем начнут продвигать Ваши идеи «в массы». Поэтому берегите своих «последователей», ведь они - Ваши лучшие союзники в продвижении культуры компании, ориентированной на данные.
Я ненавижу Excel, но вынужден признать, что без него не обойтись
Конечная цель данных - создание ценности для бизнеса, не правда ли? Иногда для того, чтобы продемонстрировать, на что на самом деле способны данные, приходится идти на определенные компромиссы. Я ненавижу Excel так же, как и Вы, но некоторые команды добавляют свои данные именно в Excel, не имея возможности перенести их в базу данных или на какую-либо платформу. Сначала я не хотел вводить данные Excel в корпоративное хранилище данных только потому, что это Excel. Но вынужден признать, что эти данные представляют значительную ценность для бизнеса, а моя основная цель состоит в том, чтобы извлечь из них максимальную пользу. Поэтому придется проглотить и эти данные.
Получить ценные данные из Excel довольно сложно, однако, внедрив эффективные рабочие процессы и обучив команду правилам работы с данными в Excel, мы успешно справились с этой задачей. В целях соблюдения правил качества и проверки данных мы создали шаблон для файлов Excel. Теперь каждый, у кого есть электронная таблица и кто хочет, чтобы его данные попали в общее хранилище данных, знает необходимые правила и формат, которому должен соответствовать его файл.
Конечно, это не панацея. Но я убедился на своем опыте в том, что эти файлы являются неотъемлемой частью повседневной работы многих сотрудников, более того, эти люди эмоционально привязаны к ним. Именно поэтому они следят за своими фалами, приводя их к установленному корпоративному стандарту.
В большинстве случаев Вы не найдете аккуратно структурированных данных в базе данных SQL. Поэтому при работе с данными крайне важно сохранять определенную гибкость и способность к адаптации.
Неоптимальные процессы приводят к отсутствию нужных данных
Иногда в компании царит хаос, данные разбросаны повсюду, не организованы и не структурированы должным образом. Поэтому, как специалист по работе с данными, Вы в первую очередь должны сделать так, чтобы нужные данные вовремя попадали к нужному человеку. Имейте в виду, что для выполнения данной задачи Вам, возможно, придется изменить текущую схему сбора данных. Ведь неправильно организованный процесс может негативно сказаться на качестве данных или привести к их нехватке. Да, возможно, Вам придется ломать устоявшийся порядок жизни, но это совершенно нормально, если Вы действуете на благо компании.
Для того чтобы привлечь внимание к данным, требуется время
Сначала я думал, что для того, чтобы заставить компанию использовать качественные и проверенные данные в своей повседневной работе , понадобится 2 месяца... я ошибался. Для того, чтобы добиться «популярности» данных в рамках всей компании, требуется время…
Только через 7 месяцев напряженной работы нам удалось выпустить дашборды, которые стали частью повседневной работы практически всех сотрудников компании.
Поэтому наберитесь терпения и продолжайте быть настойчивыми в продвижении культуры данных.
А что дальше?
Итак, это был удивительный год непрерывного роста. Но я прекрасно понимаю, что создание платформы данных – это, по большому счету, бесконечная история. Нам еще многое предстоит сделать и многому научиться.
Что мы продолжим делать в следующем году:
- Продвижение культуры, основанной на данных;
- Повышение и мониторинг качества данных (безусловно);
- Поддержание стабильной работы платформы данных для удовлетворения растущего спроса на данные.
Новые направления деятельности:
- Создание системы управления данными в компании (data governance);
- Внедрение принципа самообслуживания при работе с данными данных, чтобы команды могли быть более автономными.
Итак, создание платформы данных - это то, что поначалу может показаться непосильным, но при соблюдении правильных принципов, упорстве и приверженности качеству данных Вы обязательно сможете раскрыть весь потенциал корпоративных данных.
Благодарю за внимание и буду рад получить обратную связь!






