Я не так давно писал про ETL выделенную из Datacrafter'а для данных в NoSQL форматах JSONlines и BSON [1]. Это кусок кода отделенный в рамках "
техдолга", то что надо было сделать давно и только недавно до этого дошли руки.
Но есть задача для которой точно нет подходящего простого ETL/ELT/data pipeline engine - это как раз
цифровая архивация для создания тематических коллекций архивируемых сайтов, аккаунтов в соцсетях и тд.
Задачи по цифровой / веб архивации можно разделить на несколько видов, но в части сбора данных, основных всего два.
Массовый сбор и
сфокусированные коллекции.
Массовый сбор - это когда роботы вроде краулеров
Archive.org обходят условно неограниченное число цифровых ресурсов и делают слепки и актуализируют ранее собранные материалы.
Сфокусированные коллекции - это когда собирается не всё а по перечню: сайтов, разделов на сайтах, отдельных файлов, каналов в телеграм, аккаунтов в соцсетях и тд.
Для массового сбора есть своя экосистема инструментов, а вот для сфокуированных коллекций категорически нехватает ETL инструментария. Причём скорее ETL чем ELT потому что много двоичных данных которые можно поместить в озеро данных и сложно хранить в хранилище данных.
Логика та что что у классических ELT продуктов.
Извлечение данных с помощью разных инструментов и стратегий, преобразование для долгосрочного сохранения и загрузка в Internet Archive, какое-то постоянное хранилище и ещё куда-то, по необходимости.
Эта логика дополняется ещё одной стадией D - Discovery. Это когда движок получает на вход набор ссылок и на их основе автоматически определяет стратегию в зависимости от типа ресурса. В итоге получается
DELT (Discover Extract Transform Load).
Недостаток такого движка в узкой применимости и в больше значимости этапа Extract, поскольку извлечение и сбор данных наиболее длительны и ресурсоёмки.
В принципе развитие дата инженерии давно уже достигло той стадии когда нужны специализированные решения. В основном они сейчас строятся на готовых продуктах, но иногда функций готовых продуктов недостаточно.
#digitalpreservation #etl #dataengineering