После работы в науке и инжинирии данных на протяжении многих лет мы наблюдали общий рисунок. Уровень усилий, необходимый для поддержания систем данных, как правило, выглядит так:
Есть три этапа. Во-первых, когда вы впервые начните строить систему данных, есть стоимость выяснения в режиме ожидания, чтобы выяснить, как все это должно работать, вписать его вместе и построить его.
Во-вторых, на некоторое время это просто работает. Мы называем эту фазу «чудо программного обеспечения».
В-третьих, через некоторое время вы начинаете замечать, что вы тратите много времени на обслуживание: исправления ошибок и анализ корневой причины. Пытаясь выяснить, почему вещи разрываются в ваших трубопроводах данных. Изготовление дополнений и настроек, как другие системы или изменяются.
Со временем это превращается в устойчивому, рецептуру ползучесть в времени технического обслуживания, которое вы вкладываете в проект. Если это становится слишком далеко от контроля, работа просто перестает быть веселым. Вещи разрывается непредсказуемо, сроки становятся очень переменными, и люди выгорают.
Мы хотели сформулировать, почему это происходит, чтобы понять, как это предотвратить. В конце концов, мы прибыли на эту ментальную модель основной динамики.
Зачем составным ростом?
Чтобы понять, почему стоимость технического обслуживания со временем нам нужно разрушить, как данные ученые, аналитики и инженеры действительно проводят свое время. На высоком уровне большинство данных по данным проводят свое время, задающие вопросы и строительство инфраструктуры, чтобы сделать этот анализ повторяемый. Поскольку мы заинтересованы в стоимости поддержания систем данных, мы собираемся сосредоточиться на повторяемых аспектах.
Когда аналитики данных, ученые или инженеры строят повторные трубопроводы, они строят DAGS.
Вот стилизованная картина даг. Ради этого примера мы назовем это проектом ETL/ELT. Но это может быть так же легко быть машинным трубопроводом или набор агрегаций Bi или оперативной приборной панели. В данных работают, все это даг.
Возвращаясь к нашему примеру ELT: скажем, мы принимаем три таблицы из восходящего источника данных. Затем нам нужно лыж и очистить данные. Это, вероятно, включает в себя такие вещи, как маленькие присоединения и фильтрации.
Скажем, что конечный результат этого трубопровода — две очищенные таблицы, полученные из трех таблиц грязных, внешних данных, с которыми мы начали.
Бум. Функционирующий конвейер данных.
Глубже, шире и толще
Что произойдет дальше? Ответ: рост дага.
Когда люди доверяют источнику информации, они склонны задавать больше вопросов. Когда одни и те же вопросы повторяют значение, их поддерживающие даги, как правило, растут — три конкретных способа.
Во-первых, они растут глубже Отказ Как только у нас есть такие приятные чистые, нормализованные данные, кто-то попросит его увидеть. В простейшем случае это может быть одноквартирный запрос. Если он сделан повторяемым, эти запросы, вероятно, становятся панелями или отчетами.
Ради этого примера, скажем, вы в конечном итоге создают четыре панели мониторинга на вершине исходного очищенного стола.
Во-вторых, системы данных растут путем получения шире Добавление дополнительных источников данных. Конечно, каждому из них нуждается в их собственной эльт. И тогда новые продукты данных будут построены на вершине этих узлов в Даге.
Для нашего примера, скажем, что это приводит к 2 новым проглатывающим источникам и 2 нормализованных таблицах. Кроме того, мы создаем систему оповещения с тремя типами оповещений в нижней части Дага.
Третий способ растут системы данных, получает толще Отказ В нашем примере этого не будет долго, прежде чем пользователи начнут просить добавления предупреждений, которые используют некоторые из тех же данных, что и мошеннические панели, и добавляют приборные панели, которые сообщают о системе оповещения.
Сказать, что DAGS «растет толще», — то же самое, что говорит, что они становятся более взаимосвязанными. Когда вы рассмотрите это визуально для фактических DAGS, они обычно превращаются в грязные волосы, быстро.
Дело в том, что грязная взаимосвязанность часто является всей точкой системы данных. Разбие информационные бункеры, обмен данными, создавая более контекста. Осознание систем поддержки принятия решений — это работа о том, что команда данных уплачиваются.
Ниже по течению последствий
Мы теперь набросали большинство основных причин для комментариев нагрузки на техническое обслуживание в трубопроводах данных. Есть один последний штук: вниз по течению последствий.
Поскольку данные течет через DAG, изменения в восходящем даге могут повлиять на поведение нисходящего потока. Даже, казалось бы, небольшие изменения могут иметь большие, неожиданные последствия.
Например, изменение восходящей таблицы для разрешения нулевых значений может изменить знаменатель в важных вычислениях ниже по потоку. Извращенно, добавление нулевых значений, возможно, не может иметь никакого влияния на числитель — это означает, что многие отчеты, основанные на одних и тех же таблицах и столбцах, могут не быть затронуты.
Другим примером: «Предположим, что команда восходящей регистрации изменяет перечисленные значения, назначенные определенным типам журналов. Если эти значения использовались для запуска предупреждений, и система оповещения не обновляется одновременно, вы, возможно, вдруг окажетесь отвечать на множество ложных аварийных сигналов.
Более тонко, если значения использовались в качестве входных данных в модели машинного обучения, модель может молча начать генерировать плохие прогнозы. В зависимости от типа модели и сколько веса было присвоено к пораженным переменным, воздействие на прогнозную точность может быть большим или небольшим, широко распространенным или концентрированным в нескольких случаях.
Все эти типы проблем имеют несколько вещей общего:
- Внешние изменения могут иметь неожиданные последующие последствия.
- Необходимые непреднамеренные последствия не обязательно отображаются в узлах, непосредственно рядом с тем, где было сделано изменение. Они могут пропустить уровни и гораздо глубже в Даге
- Неограниченные последствия могут каскад вызвать дополнительный хаос дальше вниз по течению в вашем доцикле.
Квази доказательство для ценовой стоимости обслуживания
Вместе все это вместе, мы можем начать понимать, почему стоимость обслуживания соединений.
- Стоимость технического обслуживания напрямую связана с вероятностью нижестоящих последствий восходящих изменений в Даге.
- Вероятность непреднамеренных последствий представляет собой совместную функцию количества узлов в DAG, плотность краев в DAG и частоту изменений в восходящем доме.
Оба эти факторы, как правило, растут, как растут дагс. Вот почему вероятность нижестоящих последствий и стоимость обслуживания увеличивается как сверхлинейная функция размера дага.
Реконструировать
Хорошо, это хорошая точка разрыва. В следующей статье я вступите в более подробную информацию о том, как обслуживание DAG воспроизводится на практике, особенно когда данные потоки поперечных границ и последующие последствия изменения поверхности DAGS при неожиданных моментах.
Этот блог был изначально написан Abe Gong здесь: https://greatexpections.io/blog/deeper-wider-thicker/
Оригинал: «https://dev.to/supercokyle/how-dags-grow-deeper-wider-and-thicker-2gki»