6 шагов, позволяющих избежать беспорядка данных в хранилище
📎 Введение
В большинстве компаний с данными полный бардак. Команды, отвечающие за работу с данными, сталкиваются с множеством проблем, таких как ручное редактирование таблиц, дублирование определённых метрик, некорректные исходные данные, отсутствие управления данными, отсутствие инфраструктуры и т.д. Если тебе в голову приходят такие мысли как:
Тогда цикл следующих постов для тебя! Представь себе, что твоё хранилище данных работает как хорошо отлаженная машина с правильными данными и очень простое в использовании! Твоя работа будет приносить удовлетворение, а карьерный рост будет быстрым - именно на это нацелен этот цикл.
Рассмотрим шесть важнейших шагов по созданию (и поддержке) хранилища данных, которое предоставляет заинтересованным сторонам всё, что им может понадобиться, и при этом позволяет избежать бардака в данных.
В большинстве компаний с данными полный бардак. Команды, отвечающие за работу с данными, сталкиваются с множеством проблем, таких как ручное редактирование таблиц, дублирование определённых метрик, некорректные исходные данные, отсутствие управления данными, отсутствие инфраструктуры и т.д. Если тебе в голову приходят такие мысли как:
Интересно, в каждой ли компании до сих пор царит неразбериха с данными?
Надеюсь найти лучшее место для работы с более совершенными методами обработки данных.
Верю в существование аналитических хранилищ, которые представляют собой сплошной кошмар.
Ищу работу в надежде найти мифическую “зрелую организацию”, где научусь всё делать правильно.
Считаю, что хранилище данных - это повсеместное дерьмо.
Тогда цикл следующих постов для тебя! Представь себе, что твоё хранилище данных работает как хорошо отлаженная машина с правильными данными и очень простое в использовании! Твоя работа будет приносить удовлетворение, а карьерный рост будет быстрым - именно на это нацелен этот цикл.
Рассмотрим шесть важнейших шагов по созданию (и поддержке) хранилища данных, которое предоставляет заинтересованным сторонам всё, что им может понадобиться, и при этом позволяет избежать бардака в данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥5
Хотя некоторые из приведённых ниже разделов не являются техническими, их выполнение позволит команде разработчиков (например DE) получить больше ресурсов (времени и/или денег), что поможет тебе избежать путей, которые могут приводить к беспорядку в данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3
Прежде чем приступить к проектированию любой системы, необходимо в первую очередь узнать, как твоя компания зарабатывает деньги. Понимание экономических аспектов деятельности компании, таких как её клиенты, партнёры и продаваемые продукты, имеет решающее значение для всего, что ты делаешь как инженер данных (DE).
Понимание бизнеса позволит тебе не только создать модель данных, но и определить, какие показатели важны для заинтересованных сторон, каким бизнес-подразделениям (или таблицам) отдать предпочтение и т.д. Хотя для понимания бизнеса можно прочитать сайт компании, лучше всего поговорить с кем-то из руководства, чтобы узнать о нём подробнее. Вот несколько вопросов, которые можно задать для начала:
Хотя приведенные выше вопросы могут показаться простыми, чаще всего для ответа на них требуется несколько встреч (в зависимости от размера компании). Практически всегда отсутствует актуальная документация, и для понимания текущего и будущего планируемого состояния требуется беседа с менеджерами/инженерами по продукту.
Результатом этого этапа является создание концептуальной модели данных (CDM), представляющей взаимодействие бизнес-субъектов друг с другом.
Например, рассмотрим этот простой CDM для сайта электронной коммерции.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4
После того как ты хорошо понял бизнес, следующим шагом будет создание модели данных для аналитических сценариев использования. Правильное моделирование данных является важнейшим компонентом хорошо функционирующего хранилища данных. Хорошая модель данных позволяет легко писать аналитические запросы, анализировать данные в определённый момент времени, упрощает добавление новых таблиц/столбцов и понятна для человека, не имеющего отношения к данным.
Плохая модель данных - это боль в использовании и обслуживании, которая приведёт к появлению беспорядочных данных. Хотя существует множество способов моделирования хранилища, рассмотрим популярную модель размерности Кимбалла (Kimball). В современных системах данных существуют три основные концепции:
dim_noun.fct_verbs. Основная идея заключается в том, чтобы хранить данные о реальном взаимодействии с минимально возможной степенью детализации - если клиент выкупает пять товаров, мы создаем одну строку для каждого взаимодействия клиента с товаром (это называется зерном таблицы). Наличие данных с минимально возможной зернистостью позволяет нам препарировать данные любым необходимым способом.Дополнительным преимуществом хорошего моделирования данных является более простое построение их структуры.
Рассмотрим простую модель хранилища, показанную ниже. В этом потоке мы проверяем данные перед их использованием (и перед тем, как сделать их доступными для потребителей), правильно моделируем данные, имеем источник истинных данных и метрики для последующего использования, а также отслеживаем использование данных. На следующих шагах увидим, почему эти концепции являются критически важными.
В приведённом хранилище используем бронзовые/серебряные/золотые слои для постепенного преобразования данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥8
Какими бы хорошими ни были модель данных и пайплайны, если входные данные неверны, то данные в хранилище будут непригодны для использования (Garbage In, Garbage Out).
Очень важно убедиться в том, что входные данные соответствуют твоим ожиданиям, прежде чем использовать их в своих конвейерах обработки данных. Используй приведённые ниже пять вертикалей для определения ожиданий от входных данных.
После того как данные определены, убедись, что входные данные соответствуют ожиданиям, прежде чем приступать к их обработке. Если ты выявил какие-либо проблемы, то совместно с вышестоящими командами займись их решением (такие формализованные проверки называются контрактами на работу с данными).
Никогда не используй плохие данные для построения моделей данных, независимо от реакции вышестоящих команд, поскольку ответственность за плохие данные будет лежать на тебе и только на тебе
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3
"Цифры выглядят по-разному" - это серьёзная проблема, с которой сталкивается большинство команд, работающих с данными. Разница в используемых данных, их свежести или в том, как конечный пользователь рассчитал метрику, - это распространённые источники проблем несоответствия метрик. Чтобы решить эту проблему, воспользуйся приведёнными ниже шагами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Getdbt
What is data lineage? | dbt Developer Hub
Data lineage provides a holistic view of how data moves through an organization, where it’s transformed and consumed.
❤🔥2
Если заинтересованные стороны будут знать, зачем, что и как нужно делать для создания хранилища данных, они будут с интересом (или, по крайней мере, с пониманием) относиться к потенциальным обновлениям, которые облегчат им жизнь. Можно создать безупречное хранилище данных, но если команда разработчиков не донесет его необходимость и важность до широкой аудитории в компании, оно никогда не станет главным приоритетом для руководства. Чем больше вовлечённость заинтересованных сторон, тем больше ресурсов (времени, инженеров) ты получишь.
Четыре шага, которые позволят тебе максимально увеличить шансы на создание эффективного хранилища данных:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4
Ты можешь контролировать то, над чем работаешь, но если ты заметил эти (в дополнение к обычным признакам) красные флаги и они не меняются, лучше перейти на новую работу.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4
Утопии данных не существует, не существует мифической зрелой организации, в которой хранилище данных было бы идеальным, и всегда будут возникать проблемы с данными. Но мы, инженеры данных, имеем возможность и несём ответственность за устранение неполадок, создание отличного хранилища данных и обеспечение доступности данных для компании.
Напомню, что рассмотрели:
1. Понять суть бизнеса
2. Сделать данные удобными для использования с помощью правильной модели данных
3. Хорошие входные данные необходимы для хорошего хранилища данных
4. Определить источник истины (SOT) и проследить его использование
5. Держать заинтересованные стороны в курсе событий для достижения большего эффекта
6. Следить за "красными флагами" на уровне организации 🚩
В следующий раз, когда ты будешь создавать/совершенствовать хранилище данных, используй приведённые выше концепции в качестве отправной точки для создания хранилища данных, которое будет работать без сбоев и с удовольствием.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
DE
1️⃣ Понимай бизнес
Прежде чем приступить к проектированию любой системы, необходимо в первую очередь узнать, как твоя компания зарабатывает деньги. Понимание экономических аспектов деятельности компании, таких как её клиенты, партнёры и продаваемые продукты…
Прежде чем приступить к проектированию любой системы, необходимо в первую очередь узнать, как твоя компания зарабатывает деньги. Понимание экономических аспектов деятельности компании, таких как её клиенты, партнёры и продаваемые продукты…
❤🔥6
Представь, что ты построила из лего большую замечательную коробку для хранения своих игрушек. Эта коробка упорядочивает твои игрушки: куклы в одном углу, машинки в другом, кубики в третьем и так далее. В SQL (языке запросов для баз данных) такие "коробочки" называются таблицами.
Теперь, чтобы что-то изменить в конструкции этой коробки, например, добавить еще один отсек или разделитель, тебе нужно использовать специальные блоки и инструменты. В мире баз данных это называется DDL, что означает "язык описания данных".
Давай разберемся, как работает DDL:
Каждое действие с DDL, это как специальное волшебное заклинание, которое изменяет структуру твоей "коробочки" точно и аккуратно, точно как тебе нужно. Все эти изменения помогают лучше упорядочивать информацию (твои игрушки), чтобы ты могла легко найти то, что тебе нужно.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4