Skip to content

Home Администрирование Метаданные: данные о данных
Метаданные: данные о данных

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

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

Рассмотрим использование популярного средства ORM (Object-Relational Mapping - объектно-реляционная проекция) SQLAlchemy для создания метаданных о файловой системе. К счастью, для SQLAlchemy имеется очень качественная документация, а кроме того, этот продукт работает с SQLite. На наш взгляд, это потрясающая комбинация, позволяющая разрабатывать собственные решения по управлению метаданными.

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

Пример 6.15. Создание метаданных о файловой системе с помощью SQLAlchemy

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

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

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

Комментарии (0)

RSS feed Comments

Написать комментарий

smaller | bigger

busy
 

Регистрация




Top