Для чего используется метаданные
Что такое метаданные. Объясняем простыми словами
Метаданные — это средство классификации, упорядочивания и характеристики данных.
Проще говоря, метаданные — это данные о данных (об их составе, содержании, статусе, происхождении, местонахождении, качестве, форматах, объёме, условиях доступа, авторских правах и т. п.).
Ежедневно мы отправляем электронные сообщения или файлы. У каждого такого послания есть не только содержание, но и дата и время отправки, указание отправителя и получателя, тип вложения, его объём и прочие характеристики. Это и есть метаданные.
Пример употребления на «Секрете»
«ProPublica обвинила корпорацию в сборе метаданных пользователей WhatsАpp — картинок, номеров телефонов, часовых поясов и даже IP-адресов. Куда они потом передавались? Журналисты ProPublica утверждают, что прямиком к американским силовикам».
(Из материала об уязвимостях проектов Facebook.)
Нюансы
Изначально этот термин означал средство каталогизации архивной информации: карточки библиотечного каталога включают систематизированные данные о каждой книге, в том числе название книги, его автора, жанр, аннотацию и т. д. Идея метаданных с тех пор не изменилась, хоть поле деятельности перешло в цифровой мир. По сути, вы генерируете метаданные прямо сейчас.
У любого файла, телефонного разговора, публикации в Facebook, видеофильма или перевода денег через банковское приложение есть метаданные. Мы часто не замечаем их, поскольку наше внимание закономерно сфокусировано на содержании. Но метаданные неотделимы от самих данных — трудно представить себе документ, у которого нет даты создания или редактирования.
Наличие возможности фильтровать метаданные значительно облегчает поиск определённого документа, файла или контента, ведь они содержат больше ценной информации, чем может показаться на первый взгляд. По метаданным можно выследить человека или получить на него компромат, полностью изменив его жизнь.
Доступ к вашим метаданным, которые передаются через интернет, есть у самых разных людей и организаций. Это могут быть как маркетологи, так и хакеры с госорганами. Например, заголовки писем могут быть доступны не только отправителю и адресату, но и почтовым провайдерам и даже спецслужбам. Владелец сайта, на который вы заходите, может узнать не только ваш IP-адрес, но и версии браузера и операционной системы. Это объясняется тем, что зачастую метаданные общедоступны и никак не защищены.
Правительства разных стран требуют от телекоммуникационных компаний хранить метаданные определённое количество времени для нужд правоохранительных органов и спецслужб. В России за эту процедуру отвечает «пакет Яровой», который предписывает сотовым операторам и интернет-компаниям хранить до шести месяцев весь пользовательский трафик — переписку в мессенджерах, социальных сетях и электронной почте, аудиозаписи звонков. При этом метаданные — то есть информацию о том, кому и когда звонил или пересылал файлы пользователь, — нужно хранить ещё дольше, а именно в течение трёх лет. Правоохранительные органы могут получить эту информацию по запросу.
Виды метаданных
Национальная организация по информационным стандартам (NISO) предлагает классифицировать метаданные таким образом:
Примеры
Метаданные используются при организации разных видов цифровой информации. Вот несколько примеров:
Существуют и признанные стандарты метаданных для определённых форматов данных. Например, таковым можно назвать общеевропейский исследовательский информационный формат (CERIF). Этот стандарт ЕС рекомендует своим государствам-членам для регистрации информации об исследовательской деятельности.
Как метаданные меняют жизнь людей
В апреле 2017 года московского математика Дмитрия Богатова обвинили в том, что он якобы призывал в Сети к массовым беспорядкам и терроризму на акции протеста. По версии следствия, Богатов под псевдонимом Айрат Баширов публиковал на интернет-форуме провокационные материалы о подготовке к вооружённому восстанию. Правоохранительные органы утверждали, что вычислили математика по IP-адресу. Сам Богатов объяснял, что не имеет к Айрату Баширову никакого отношения, поскольку в его квартире функционировал выходной узел сети Tor, с помощью которой с его IP-адреса публиковать сообщения мог фактически кто угодно. Поэтому трафик злоумышленника, предположительно, прошёл через компьютер математика.
Таким образом, метаданные (IP-адрес) послужили поводом для уголовного преследования. После того как Богатов провёл несколько месяцев в СИЗО, уголовное дело против него прекратили. Затем математик вместе с женой покинул Россию. Впоследствии по этому делу задержали Владислава Кулешова из Ставрополя, который признал вину и получил полтора года ограничения свободы.
Элементы управления метаданными
Метаданные (от лат. meta — цель, конечный пункт, предел, край и данные) — информация о другой информации, или данные, относящиеся к дополнительной информации о содержимом или объекте. Метаданные раскрывают сведения о признаках и свойствах, характеризующих какие-либо сущности, которые позволяют автоматически искать и управлять ими в больших информационных потоках.
Содержание
Базы данных
Такая информация часто используется в базах данных:
Различие между данными и метаданными
Обычно невозможно провести однозначное разделение на данные и метаданные в документе, поскольку:
Другие описательные метаданные могут использоваться автоматизированными рабочими потоками. Например, если некоторая «умная» программа «знает» содержимое и структуру данных, то данные могут быть автоматически преобразованы и переданы другой «умной» программе как входные данные. В результате, пользователи будут освобождены от необходимости выполнения множества рутинных операций, если данные предоставлены для работы такими «немногословными» программами.
Метаданные становятся важны в World Wide Web по причине необходимости обеспечения поиска полезной информации среди огромного количества доступной. Метаданные, созданные вручную, имеют большую ценность, поскольку это гарантирует осмысленность. Если веб-страница на какую-то определённую тему содержит слово или фразу, то все другие веб-страницы на эту тему могут содержать такое же слово или фразу. Метаданные также обладают разнообразием, поэтому если с какой-то темой связаны два значения, то каждое из них может быть использовано. Например, статья про Живой Журнал может быть обозначена с помощью нескольких значений: «Живой Журнал», «ЖЖ», «LiveJournal».
Метаданные используются для хранения информации о записях audio CD. Аналогично MP3 файлы хранят метаданные в формате ID3.
Редактировать метаданные графических файлов можно в специальных программах для работы с метаданными.
Классификация метаданных
Метаданные можно классифицировать по
Тремя наиболее используемыми классами метаданных являются:
Управление метаданными
Элементы управления метаданными
Источники метаданных
Примеры стандартов мета-моделей
Группировка метаданных
Практическое применение в Сбербанке
Основной целью создания единой базы метаданных является автоматизация и повышение качества бизнес-процессов [2] :
Единая база метаданных, объединяет результаты анализа и архитектуры проектных решений с метаданными реальных сред.
Аналитическое пространство, является высокоуровневым описанием тракта данных от систем источников до витрин. Разрабатывается на этапе анализа и проектирования решения.
Каталог информационных компонент, обеспечивает пользователя полной, оперативной и систематизированной информацией об используемых в комплексе ЦХД – объектах, связях между объектами, компонентах, метриках, размещении.
Что такое метаданные и как они используются?
Если у вас есть веб-сайт или вы работаете в таких областях, как написание или управление онлайн-контентом, вы, вероятно, слышали о метаданных. Это то, от чего вы не можете избавиться (и не следует делать это, если вы хотите занимать место в поисковых системах).
Вопрос, который вы, возможно, задаете: «что такое метаданные — и что более важно, как они используются?» Давайте посмотрим, что такое метаданные и какие преимущества они предлагают.
Что такое метаданные?
Проще говоря, метаданные — это «данные, описывающие другие данные». Мы знаем, что это ничего не проясняет.
Просто подумай об этом так. Метаданные предлагают более подробную информацию и информацию о других формах данных. Например, если вы проводите кампанию в социальных сетях, то каждый пост — это данные. Метаданные предоставляют информацию о публикации, например, когда и где она была опубликована, а также о том, сколько людей просматривали ее или взаимодействовали с ней.
Другими словами, он говорит вам, кто, что, когда, где, почему, что и как. Метаданные бывают разных форм (в зависимости от данных). Например, он может содержать такие сведения, как заголовок, описание, ключевые слова, ссылки, создатель, участник и т. Д.
Не все данные используют одинаковые типы метаданных. Вот посмотрите на некоторые из различных форм:
Распространенные примеры метаданных
Вот краткое изложение различных типов метаданных, которые вы найдете вокруг себя.
Фотографии — мы делаем их все время, и вы найдете все виды данных на жестком диске. Это включает в себя информацию, такую как:
Если у вас есть блог, вы сможете контролировать некоторые метаданные, которые появляются в ваших сообщениях. Например, вы найдете мета-описание в результатах поиска.
Метаданные показывают информацию, такую как:
Вы несете ответственность за создание большей части метаданных в электронных письмах, таких как тема, получатели и отправитель. Затем собираются другие данные, такие как:
Это пригодится, если вы когда-нибудь будете искать файл на своем компьютере. Вы можете ввести имя файла в поиск на рабочем столе.
Вот взгляд на различные метаданные, собранные из компьютерных файлов:
Веб-страницы имеют метаданные, аналогичные компьютерным файлам и другим цифровым ресурсам. Например, он содержит информацию о:
Как используются метаданные?
Надеюсь, у вас есть лучшее представление о том, что такое метаданные и где их найти. Теперь пришло время посмотреть, как используются эти данные.
Рейтинг веб-страниц выше
Google и другие поисковые системы используют данные и метаданные с ваших веб-страниц для определения своего рейтинга. Чем лучше оптимизированы ваши данные, тем легче будет их ранжировать (при условии, что конкуренция за ключевые слова, на которые вы ориентируетесь, невелика).
Например, вам нужно оптимизировать мета-заголовок и мета-описание, которое отображается в результатах поиска. Это помогает поисковым системам понять, о чем ваша страница и как она будет полезна для людей, ищущих.
Отслеживание потребителей через Интернет
Вы когда-нибудь замечали, как реклама следит за вами везде, где вы ходите в Интернете? Он показывает элементы, которые вы могли искать на веб-сайте ранее в тот же день или даже несколько дней назад.
Это прекрасный пример того, как бренды и компании используют метаданные для отслеживания потребителей. Электронная коммерция широко использует этот метод, потому что он помогает им изучать своих клиентов и разрабатывать профили покупателей по данным.
Ваш смартфон — еще один инструмент, используемый для отслеживания вашего местоположения и устройства. Если ваше местоположение включено, вы можете увидеть купоны и предложения, появляющиеся при совершении покупок.
Отслеживание почтовых кампаний
Обычный человек может не заботиться о сборе метаданных из электронной почты (если у вас нет судебного дела). Так что те, кто считает это достойным, обычно являются маркетологами, рекламодателями и владельцами бизнеса.
Те, кто проводит почтовые кампании, должны будут изучить такие вещи, как:
Улучшение алгоритмов социальных сетей
Google не единственный, кто отслеживает ваши привычки просмотра, как и социальные сети, такие как Pinterest, Facebook и Instagram.
Каждый раз, когда вы любите, комментируете или подписываетесь, это записывается платформой. Затем он сообщает алгоритму, что и кому вам нравится, чтобы он мог показать вам более релевантный контент.
Это все о предложении отличного пользовательского опыта. Кроме того, это может быть полезно для маркетологов, проводящих кампании в социальных сетях.
Улучшение управления базой данных с помощью метаданных
Существует много метаданных для сбора и организации, особенно когда вы компания (или владелец малого бизнеса). Таким образом, чтобы помочь понять все это, есть инструменты, известные как программное обеспечение для управления данными, которые вы можете использовать.
Это поможет определить, что представляет собой каждый набор данных. Например, если вы собираете список электронных писем из кампании, инструмент данных определит их уникальность. В этом случае это могут быть электронные письма, которые пришли в норму и должны быть удалены из кампании.
Метаданные в картах для вас?
Вы постоянно слышите о метаданных и больших данных. С вашим новым пониманием метаданных и того, для чего они используются, как все изменится для вас? Собираетесь ли вы начать обращать внимание на мета-заголовок, теги и описание на панели инструментов WordPress? Или, возможно, вы найдете более эффективные способы организации файлов вашего компьютера в зависимости от типа данных.
Когда вы углубляетесь в метаданные, вы обнаружите, что вы можете многому научиться и с этим справиться.
Мета-данные. На пути к идеалам управления моделями данных
О чём этот пост
Определения и ограничения
Предполагается, что читатель является (или когда-нибудь станет) разработчиком Enterprise Application, которому часто нужно писать быстро и качественно, но не боящегося лезть в дебри JPA/JTA/RMI чтобы «подкрутить напильником» особо тонкие места.
Данные — то, что хранится в базе данных приложения. Данные о клиентах, пользователях, заказах и т.п.
Метаданные — описание структуры данных. Описание того, какие типы объектов хранятся в базе данных, какие у них есть поля (аттрибуты, элементы), описание зависимостей между объектами. В общем случает типы могут наследовать атрибуты родительского типа, а один атрибут в общем случае может присутствовать у двух и более типов, несвязанных отношением наследования.
Enterprise Application работает с использованием (чаще всего) Application Server’а (WebLogic, JBOSS) и некоторой РСУБД (Oracle, Informix, MySQL). Хотя автор не видит ничего зазорного в самостоятельной сборке AS на основе Tomcat/Hibernate/JOTM/DBCP/etc, это очень и очень интересно, но за рамками данного топика.
В качестве РСУБД предполагается одна из тех стандартных, которая поддерживается Hibernate/OpenJPA.
В топике используются термины из XML Schema: пространство имён, тип, атрибут. Последним двум в некоторой степени соответствуют понятия Java класс (объект класса, бин) и свойство (property, aka get+set, также иногда просто поле, field).
Введение. Простейший случай
Большие приложения — чаще всего это не только приложения с большим объёмом данных. Чаще всего это приложения работающие с большим количеством разнородных данных, имеющих разную структуру с точки зрения бизнес-логики. (Кстати, последнее важно — структура данных может быть различной на уровне СУБД, на уровне приложения и даже внутри него)
Заметьте в последнем предложении важное уточнение — «бизнес-логики». Речь идёт об описании процессов взаимодействия структур данных, их изменении и пр. — то есть кода, который должен знать и знает о структуре данных. Но если, например, мы говорим про редактирование бинов через WEB-интерфейс (или любым другим способом), то для написания редактора, который может редактировать 80% объектов, не зная заранее их структуры (т.н. generalized), нам придётся разбираться с Reflection/Beans/etc и другими, в принципе, не очень страшными словами. (Страшные — в конце топика).
Современные средства проектирования позволяют автоматизировать часть процессов связанных с обновлением, например, структуры базы данных по коду, либо наоборот — сгенерировать или обновить код по описанию структуры данных. Не уверен, но, думаю, существуют средства создания одновременно и кода, и структуры базы данных на основе некой абстрактной схемы данных, записанной, например, в виде XML Schema. (Код так точно можно сгенерировать — см. XML Beans и пр.). Однако все эти средства работают в «offline» и не затрагивают работающее приложение (если вы, конечно, не сделаете обновление прямо по «живому», но ничего хорошего из этого не бывает).
Кстати, некоторые из вспомогательных утилит можно заставить и формочки для каждого типа объектов нарисовать.
Гибкие структуры данных
Самой гибкой можно считать структуру, в которой каждый объект хранится как запись в базе данных в виде, ну, например, XML. То есть большая-большая таблица, в которой две колонки — ID объекта и его содержание в виде XML. Как вы правильно догадываетесь, основной недостаток подобной структуры — очень низкая производительность базы данных в тот момент, когда нам нужно будет вычислить, ну например, всех клиентов из города «Москва». Для этого придётся базе данных распарсить каждое значение.
Чтобы структура осталось гибкой, но поменьше нагружать базу данных, объект разбивают на кусочки и выносят в отдельные таблицы. Например,
— Объекты: ID, обязательное поле 1, обязательное поле 2
— Значения: ID объекта, идентификатор аттрибута, значение
Можно пойти дальше и, без ограничения гибкости, разделить атрибуты разных типов по разным таблицам или колонкам. Подобная схема успешно применяется в приложении (вырезано) для обработки данных в несколько терабайт.
Ещё недостатки:
За гибкость нужно платить. Во-первых, слой работы с данными придётся писать самостоятельно. Во-вторых, возникает большое желание сэкономить и оставить для бизнес-логики API, который бы отражал структуру базы данных:
— дай объект ID такой-то
— дай аттрибут ID такой-то
— обнови значение
— запиши аттрибут ID такой-то объекта такой-то
— обнови версию объекта (+1)
Конечно, с точки зрения программиста generalized редактора данных очень удобно иметь методы вроде getAllAttributes(). Однако с точки зрения бизнес-логики это неудобно, особенно если нужно помнить все ID нужных атрибутов (они могут быть и числовыми).
Нужно отметить, однако, что API в общем случае не обязан совпадать со структурой базы данных. Главное — чтобы 80% действий выполнялись самым простым и очевидным способом. То есть если у нас в базе хранятся клиенты, получение имени клиента или его адреса должна быть одна строка кода вроде client.getAddress(). Однако для гибких структур написание таких оболочек может сильно подорвать производительность, во-вторых, структуры имеют обыкновение меняться…
Однако если такие оболочки не пишет тот, кто отвечает за написание процедур доступа к данным, будьте готовы, что через пару лет у вас будет столько оболочек «упрощённого» доступа к данным, сколько инициативных программистов работают со «стандартным» API.
Структуры с ограниченными возможностями
В этом разделе хочется рассказать ещё об одном подходе, которая используется в одной малоизвестной CMS.
С точки зрения кода доступ к атрибутам объекта осуществляется таким же образом, как и у гибких структур — через методы вроде getAttribute / getAllAttributes / etc. Однако для CMS, основная задача которой редактировать объекты по отдельности (без relations между объектами), а также просто вывести объект в XML для дальнейшей обработки — данного API вполне хватает.
Интересно то, что список типов данных хранится в некотором конфигурационном файле. Также в этом файле для каждого типа хранится список аттрибутов и их тип. На основании конфигурационного файла при запуске создаётся или обновляется структура таблиц. В дальнейшем «на лету» при изменении структуры данных таблицы обновляются.
Плюсы:
— очевидная модель данных для СУБД
— гибкость «на лету»
Минусы
— с точки бизнес-логики API слишком гибкий (см. предыдущий раздел)
— нужно писать свою систему доступа к данным, которая в настоящий момент, к сожалению, в отличии от системных объектов (пользователи, группы, etc) игнорирует транзакции, кеши и прочие прелести
Классификация… попытка
Хочу… идеальная для автора
Из предыдущего пункта легко выводятся требования к идеальной (с точки зрения автора) системе описания и оперирования моделями данных:
— описание структуры данных должно быть в базе данных, что позволит оперативно изменять описание модели, возможно — через само приложение
— сами данные при этом должны хранится в нормализованной (вплоть до 3-4 формы) базе данных, где каждому типу соответствует своя таблица данных. Система управления должна сама заботится о поддержании схемы базы данных в соответствии с мета-данными.
— доступ к данным должен осуществляться через стандартные интерфейсы JPA / EntityManager.
— с точки зрения бизнес-логики основные поля основных объектых типов должны быть доступны через простой API без дополнительного resolving / casting / narrowing (т.е. сразу после загрузки из EntityManager)
— но система должна также обеспечивать доступ к мета-данным. В том числе для конкретного объекта — получения списка всех полей.
В настоящее время автор занимается написанием подобной системы, используя:
— Hibernate — как драйвер доступа к данным
— CGLIB / ASM — для динамического конструирования классов на основе их описания, включая аннотации для Hibernate
— XML Schema — для описания типов данных и их атрибутов