Собирай, структурируй, управляй, находи

 

Каким сайтом каждый из нас(вне зависимости от отношения к интернету, возраста, пола, религии ) практически вне зависимости ни от чего пользуется парочку раз в день?

Поисковиком, все мы ищем информацию. 

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

Если бы вы спросили меня про продукт моей мечты, я бы ответила вам ссылкой на эту статью. 

 

Статья будет состоять из 5 блоков. 

Создание системы управления метаданными в компании: 

  1. Почему это важно(цель)?
  2. Что это такое?(не забудьте открыть таблицу в конце статьи) 
  3. С чего начать?
  4. Как “продать” это руководству?
  5. В чем для меня успех?

Почему это важно?

 

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

Вот эти вопросы: 

Как не допустить превращения хранилища данных в DATASWAMP(болотце данных)?

Что считаешь залогом успеха внедрения бизнес глоссария? 

 

Википедия научила меня, что «мета-» означает «о себе». А на Украине главный поисковик не так давно назывался Мета. Это к тому, что качественный поиск не только у меня ассоциируется с системы сбора мета информации. 

 

Данные это актив с большими к нему ожиданиям, data driven быть не столько модно, сколько практически необходимо. Если 10 лет назад хранилища себе могли позволить только корпорации, то сейчас всё open source и cloud. И в тоже время какими бы замечательными не были технологичные технологии, данные ничего не стоят без людей, которые вкладывают в них свой опыт и знания и заставляют их работать на компанию. 

 

Цель создания системы управления метаданными  - переиспользование (интероперабельность, а где то и согласованность с непротиворечивостью) того, что люди уже вложили в данные, повышение независимости данных от людей, структурирование работы, а также упрощение обслуживания данных различными сервисными подразделениями ну и как следствие быстрая навигация и поиск по знаниям, как в настоящем гугле, только для профессионалов, так называемых D-people.

 

Что это такое система управления метаданными? 

 

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

Например, активный клиент - совершивший покупку не более чем 3 мес назад. 

Под термином лежит расчет показателя, вероятнее всего над табличкой списка клиентов и транзакциями. В некоторых Глоссариях можно указывать и скрипты объединения данных. 

 

Про логическую модель данных рассказывала в предыдущем посте. Если кратко отображение связей, ключей между сущностями, их кардинальности. Многие действительно ведут такую модель и описание терминов хранят в объектах таблиц. 

Методология - это сложно, любимая holywar тема определения единой версии правды ключевых терминов и классификаций у различных бизнес подразделений итд. Крутые бизнес аналитики редкость и обычно они максимально заняты бизнесом и на роль айти специалистов ложится в том числе проработка расчетов, выверка и итеративное согласование алгоритмов, а айти специалисты в свою очередь зачастую не сильны(и не хотят, что важнее)  формулировать алгоритмы с использованием профессиональной(например, финансовой) терминологии. Вот и выходит, что не так просто найти тех, кто этот глоссарий качественно и оптимально по скорости создаст. 

 

Это одна из причин, по которой, в моем понимание,  основу системы следует строить от существующих ИТ процессов и значительно более комплексно.  Хранить в ней массу технической информации, которая сделает метаданные “живыми”, прикладными,  а также позволит привлечь к наполнению максимально широкий круг специалистов. Такой подход считаю первым залогом успешного внедрения системы. 

 

Абсолютно убеждена, что вся нужная метаинформация уже рождается в ЖЦ работы с данными,  просто за счет отсутствия адекватных стандартов работы и сложности распространения методологии управления данными - это информация вовремя не структурируется, не оформляется, и не сохраняется в едином и удобном для поиска формате. 

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

Про какие метаданные идет речь:

 

ТУТ НУЖНО ПРОЧИТАТЬ ТАБЛИЦУ, если вы с телефона - скачайте PDF, если с ноутбука - откройте в конце статьи

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

 

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

Вот отличная статья от яндекса https://habr.com/ru/company/yandex/blog/557060/ - почему зоопарк бывает не только историческим наследием, но и обдуманным стратегическим шагом. Правда, как я понимаю, ребята как раз имеют некий единый управляющий механизм. В любом случае создание среды интеграции логов, структурирование идентификаторов потоков и общие справочники упростят lineage анализ, хоть и не сделают его 100% прозрачным. 

 

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

 

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

 

Инструмент должен быть гибок в доработке и умение интегрироваться с гигантами case средств и lineage движков. Дело в том что большинство удобных и продуманных функций уже сделано в других инструментах(powerdesigner, confluence итд)  и на это потрачено не один год опыта. В действительности я, конечно, систем не проектировала(только dwh), но по моему вполне возможно продумать api, позволяющие быстро “заливать” различные метаданные в единую визуализацию. 

 

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

 

Видела инструменты в которых системы управления метаданными строятся на подобии социальных сетей, с профайлами и системой вознаграждения за активное поведение.Подход интересный и имеет место быть, тут в моем понимание огромную роль имеет высокая культура работы с данными у сотрудников компании - развитие такой культуры процесс нетривиальный и требующей отдельной стратегии, и отдельной статьи :) 

 

С чего начать?

Ответ на этот вопрос сильно зависит от стадии ЖЦ, уровня автоматизации, размера компании, и также вашей в ней роли.

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

 

Разберитесь, кто конкретно те люди, которые знают алгоритмы сбора ключевых данных, в каких системах сейчас они работают и есть ли уже какая либо документация (и как она выглядит).

Если не выходит, поймите какие данные максимально используемые в компании, поищите резонансные проблемные кейсы. Проблемы поднятые до уровня руководства, например, мы тут ошиблись в расчетах и потеряли млн. Ну а дальше кто с ними работает и возвращаемся к первому совету. 

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

 

Как “продать” это руководству?

 

Планирую однажды ответить - позовите меня! 

В интернете много статей от  крупнейших компаний говорящих о необходимости построения таких систем, например, от Ростелеком https://habr.com/ru/company/rostelecom/blog/495934/ и чуть более короткая от Убер https://eng.uber.com/databook/

 

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

Будьте экономны и покажите это. Тратить дополнительное время(оно же деньги) но создание и работу с такой системой придется, но важно быть “экологичным” и внедрять изменения внимательно вслушиваясь в то о чем говорят команды разработки, сопровождения и бизнес пользователи.  Бывают проекты, где не то что документацией заниматься времени нет - вообще думаешь как бы успеть рассчитать данные в срок, сейчас одно из направлений моей работы именно такое. Но цена отсутсвия документации -  косяки в различном понимание алгоритмов с заказчиком, интерпретации ТЗ и прочих мелочах, которые в итоге только накручивают время на пересчет данных. Это сложно доказать это тем, кто не был “в полях” много раз и им пока везло, у кого ключевые люди не увольнялись внезапно, в конце концов, но мой опыт такой (ваша бабушка Лена)) . 


 

В чем для меня успех ?

А вот тут вступает в дело вопрос моего другого коллеги “ как не превратить хранилище данных в болото?” 

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

 

Так же успех в том:

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

что нет потребности ежегодно увеличивать “железо” в разы, только если ваша компания не увеличивается в эти же разы

что молодым аналитики могут не за месяц (а хотя бы за 2-3 дня) найти нужные им данные

 

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

Описание таблицы с типовыми метаданными (стадия жизненного цикла, объект управления и описания, сами метаданные, как использовать)

 
Стадия ЖЦ данных Объект управления и описания Описание метаданных Как использовать
 
Первичный анализ задача описания требований в свободном формате часто получение требований происходит по телефону или на встречах - но иногда можно в целом на базе протокола встречи написать тз
фиксация ожиданий и феномен того что люди воспринимают все по разному и когда что-то фиксируешь письменно появляется автоматический стимул расписать детали
 
заказчик и его контакты а вот это кстати, далеко не всегда очевидный момент, и если в начале не осознать, кто твой конечный заказчик и чем же он все таки с точки зрения бизнеса занимается - можно сделать совсем не то (“испорченный телефон”)
эта информация пригодится для дальнейшего взаимодействие по sla tla проблемы с данными и уточнение тз
 
функциональное подразделение или бизнес процесс пользователь считаю эти параметры зачастую наиболее эффективными чем понятие предметной области, в будущем это поможет разложить данные на крупные папки создав некий верхний уровень группировки данных
 
цель создания или бизнес драйвер обоснование стоимости и приоритета работ, а так же end to end понимание аналитиком задачи
 
условия и требования к обновлению и эксплуатации ( tla sla) capacity managment, управление нагрузкой на железо, режим сопровождения, планирование сервисных работ
end to end понимание аналитиком задачи
понимание клиентом текущих технических ограничений(особенно актуально, если заказчик далек от ИТ)
 
историчность и глубина данных стоимость хранения данных и объем требуемого в будущем места
 
критичные моменты в качестве данных целостность и интероперабельность данных
 
Аналитика задача источники данных планирование миграции систем, зависимости от ошибок и изменений на источниках, lineage
 
использование ранее разработанных dataset экономия мощностей и интероперабельность, непротиворечивость итоговой отчетности
 
soulution архитектура и инструменты управление производительностью, стандартизация подходов разработки и сопровождения, проведения анализа инфраструктурных ошибок и ошибок внешнего программного обеспечения
 
задача -> data set логическая модель и связи с бизнес терминами и сами термины продвинутый уровень, эти метаданные увы не всегда типовое явление, но в переписках бизнес в основном оперирует именно методологией и ключевые термины бизнес сущностей просто необходимы в системе для нормального поиска
 
Прототипирование data set физическая модель контроль изменений, генерация тестовых данных
 
name convention структуризация, ускорение процесса написания аналитических запросов, простота интерпретации показателей в таблицах, конечно, она сама по себе не появится - но зачастую имеет место быть как стандарт разработки
 
инструменты загрузки тут могут быть перечислены как etl средства, так и какие то кастомные инструменты, так и просто написанные классы библиотек кода
так же это может быть ссылка на некий внутренний справочник - по которому можно почитать пояснения по инструментам, инструкции по эксплуатации и проч
 
Разработка data set идентификатор витрины наверное, самый сложный вопрос, что такое витрина!
я пробовала ответить на него в предыдущей статье, но в рамках системы управления - это максимально удобный объект управления
 
ссылка на версионный репозиторий хранения кода тут все понятно, нет разработки - нет данных
 
профилирование данных это редкая история, но суть в том, чтобы понимать на уровне самих данных ( а не структур наполнения) паттерны данных в таблицах, это поможет в
создание тестовых данных и отслеживание изменений паттернов на источниках
 
s2t. и соотв состав описаний и таблиц ключевой документ описывающий логику преобразования данных , пригодится всегда и везде - чтобы рассказать что у в витрине, от чего она зависит, как рассчитывается показатель, чтобы запланировать миграцию данных, сгенерировать целостные тестовые данные
часто в подобных документах так же указывается уровень чувствительности данных
 
контакт аналитик контакты для логики сбора данных и других деталей
 
как получить доступ это удобно как и внутри команды, когда приходят новые люди так и для пользователей. в зависимости от ит уровня зрелости вариантов заполнения поля может быть много от простой инструкции до ссылки на какого нибудь телеграм бота, который задаст вопросы - и выдаст права
 
data set-> потоки дерево или последовательность загрузок понимание структуры расчета витрин и последовательности потоков загрузки - оно заложено в коде витрины, но визуализации помогает быстро ориентироваться - "где застряли". иногда дерево можно сформировать автоматически из логов завершения потоков
 
поток (часто привязан к таблицам, а не к витрине в целом) название бизнес название, например, отображающее этапность загрузки, по которому команда может быстро ориентироваться на какой стадии расчета витрина
 
актуальность обновления понимание даты обновления данных говорит потенциальным пользователям, насколько витрина в целом актуальна и можно ли завязываться на эти расчеты, а так же можно понять фактическую частоту расчета . Это техническая информация - которая точно есть в системы - каким загрузчиком вы бы не пользовались, но простота сбора этой информации сильно зависит от количество различных инструментов загрузки и стандартизации подходов.
 
статус потоки могут быть "задизейблены" - обычно это технический статус из управляющего механизма.
или, например, витрина может считаться не целиком - это тоже важная информация
 
Внедрение релиз бизнес результат это сильно перекликается с пунктами выше про общее назначение данных, но в релизе требуется указывать именно инкремент изменение - например, добавили расчет такого-то показателя.
кроме экономического обоснования, это может служить важным фактором в сопровождение релиза и витрины в целом
 
ответственные команды информация для сопровождения витрины при возникновение проблем
 
среды на которых проводилась отладка - даты отладки удобно для выпуска новых релизов
 
тестовые (функциональные и бизнес) скрипты обычно бывают крайне удобны для регресс тестирования и просто поиска ошибок, обычно источники также живой организм и эти скрипты точно пригодятся, как и референсные значения по их выполнению на этапе прохождения промышленных испытаний
 
Эксплуатация data-set часто в интерпретации набора потоков TLA и SLA технические и бизнес условия по уровню эксплуатации сервиса - многие живут без них, но иногда люди не совсем могут выровнять ожидания к тому как потоки должны работать, и как быстро их должны чинить
 
Владелец и ответственный за развитие на стадии вывода потока этих людей не может не быть, другой вопрос - что они могут меняться и как отслеживать эту информацию это еще тот квест
 
Потребители перечень реальных потребителе, получивших доступ, как бизнес пользователи, так и автоматизированные (сюда можно навертеть всяких рюшечек активность потребителей и тепловые карты, но пора мне остановится)