УДК 004.042

Разработка методологии применения метрик алгоритмов для процессов актуализации данных

Конаков Павел Олегович – магистрант МИРЭА – Российского технологического университета.

Смоленцева Татьяна Евгеньевна – доктор технических наук, доцент кафедры Практической и прикладной информатики МИРЭА – Российского технологического университета.

Аннотация: В процессе работы с большими объёмами данных встаёт вопрос периодической актуализации данных, который решается при помощи инкрементной загрузки данных. Для организации инкрементной загрузки данных необходимо иметь информацию о том, были ли изменения в источнике данных, чтобы их актуализировать в целевом объекте, а также какие именно изменения произошли в процессе обновления. В качестве способа решения по поиску данной информации предлагается использование метрик алгоритмов. Принцип работы метрик будет заключаться в сравнении состояний объекта источника и целевого объекта данных, в случае их различия, необходимо произвести процесс актуализации данных. К тому же данные состояния могут быть не только условием для запуска данной процедуры, но также являться критерием для данных, выгружаемых с источника. Метрики алгоритмов имеют несколько подходов к формированию и областей их применения, которые имеют свои специфики при работе с данными.

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

Постановка проблемы

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

При формировании отчётности по деятельности организации необходимо использовать весь пласт данных. Однако полное сканирование и агрегирование данных со временем становится всё дороже с точки зрения технических ресурсов и времени выполнения данного алгоритма, хотя при этом старые данные, которые уже использовались при генерации предыдущих отчётов, формируют те же значения, что и ранее, поскольку новые данные уже никак не затрагивают данную область информации. Поэтому при периодическом процессе актуализации данных стоит дополнять уже существующий аналитический отчёт новыми поступающими из информационной системы данными. Захват только новых данных для системы и их актуализация называется инкрементальной загрузкой данных [1].

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

В качестве решения данных вопросов предлагается реализовать систему хранения метрик алгоритмов актуализации объектов данных. Использование метрик алгоритмов позволит хранить последнее состояние объекта актуализации для последующего сравнения с текущим состоянием объекта, тем самым обеспечив простую процедуру инкрементальной загрузки данных[2]. 

Формирование инкрементной актуализации объектов при помощи метрик алгоритмов

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

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

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

image1

Рисунок 1. ETL-процесс с применением метрик алгоритмов для одного источника.

В данном примере в качестве метрики были использованы дата последнего изменения в данных и дата последней загрузки данных для источника и объекта загрузки соответственно. Различия в значениях метрик говорят о том, что целевую таблицу необходимо актуализировать более свежими данными с источника. Для формирования инкремента данных необходимо взять только те данные, которые были позднее даты последней загрузки данных в целевую таблицу. Таким образом в рамках ETL-процесса необходимо из источника данных забрать только записи, полученные из интервала 10/10/2022-17/10/2022. В том случае, когда в данных есть поле, отвечающее за момент загрузки строки, задача выбора записей сводится к тривиальному запросу к базе данных с условием фильтрации.

В следующем примере в качестве источников данных для целевой таблицы выступают сразу три объекта. Такое может возникать в том случае, когда данные из разных источников отвечают одной абстрактной модели. Например, это заявки на оформление карт в банке, которые могут создаваться в рамках оформления различных услуг: дебетовая карта, зарплатная карта, карта для получения пенсии и др. Для обобщения данных о всех заявках по картам их необходимо объединить в рамках одной таблицы с атрибутным набором, который соответствует структуре всех источников одновременно. Наглядное отображение данного примера представлено на Рисунке 2.

image2

Рисунок 2. ETL-процесс с применением метрик алгоритмов с несколькими источниками данных.

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

В данном примере также за метрику актуальности объектов была взята последняя дата загрузки данных. Для целевой таблицы состояние загрузки данных из Источника 1 и Источника 2 отличается от состояний соответствующих таблиц-источников, поэтому для них был запущен инкрементный процесс актуализации данных. В качестве нижней границы периода актуализации данных было выбрано последнее состояние данных источника в целевой таблице, в качестве верхней границы – текущее состояние источника. Для Источника 3 ETL-процесс не был запущен, поскольку метрики на источнике и на целевой таблице совпадают, то есть данные в целевой таблице полностью соответствуют данным из данного источника данных.

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

Методологии формирования метрик

При проектировании системы с использованием метрик алгоритмов стоит принимать во внимание входные условия, с которыми будет работать система. Форма входящей информации, атрибутный состав данных, принцип обработки данных при загрузке – всё это в большой степени влияет на то, какой подход стоит использовать при формировании метрики алгоритма. Далее будут представлены некоторые подходы для формирования метрик алгоритма.

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

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

Контрольная хеш-сумма последней пришедшей строки данных. Контрольная хеш-сумма представляет собой закодированную строку данных, полученную в результате работы алгоритма хеширования над строкой из конкатенированных значений строки данных. Таким образом сравниваются строки между собой с целью понимания, изменились ли значения в строке или нет. При проверке контрольных хеш-сумм в рамках метрик алгоритма тот же принцип, однако в данном случае сравниваются последние загруженные строки. Если хеш-суммы не совпадают, стоит запустить процедуру актуализации данных, поскольку на источнике данные изменились относительно последней загрузки [3]. Данный подход не позволяет из источника забирать только новый набор данных, однако таким образом можно быстро формировать параметр сравнения для целевых объектов без особых затрат по производительности. Также стоит отметить, что данный метод подходит при использовании источников данных, которые актуализируются при помощи потоковой загрузки данных.

Стоит отметить, что приведённые методы можно комбинировать в одном целевом объекте по причине возможной разнородности источников данных, тем самым используя более подходящий под каждый источник подход к формированию метрик алгоритма. Однако для унификации процесса разработки ETL-процессов стоит выбрать один из подходов как стандартный.

Области применения метрик алгоритмов для актуализации объектов

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

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

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

В процессе решения прикладных задач при помощи алгоритмов машинного обучения встаёт необходимость актуализации модели, поскольку само использование алгоритмов может корректировать закономерности в данных (Закон Гудхарта) [4]. Метрики алгоритмов позволяют организовать процесс обновления модели на основе только новых вместо того, чтобы создавать модель заново и обучать её с самого начала на всём объёме обучаемых данных. Для некоторых моделей машинного обучения, имеющих эффект «забывания» и приоритизации новых данных, инкрементное формирование набора данных повысит эффективность процесса обучения [5].

Заключение

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

Список литературы

  1. Sanchit Agarwal. Incremental Data Load vs Full Load ETL: 4 Critical Differences. Hevo [Электронный ресурс] URL: https://hevodata.com/learn/incremental-data-load-vs-full-load/ (Дата обращения: 20.11.2022).
  2. Tim Mitchell. The What, Why, When, and How of Incremental Loads. Tim Mitchell – Data Solution Architect [Электронный ресурс] URL: https://www.timmitchell.net/post/2020/07/23/incremental-loads/ (Дата обращения: 20.11.2022).
  3. Nigel Meakins. Hashing for Change Detection in SQL Server. Adatis [Электронный ресурс] URL: https://adatis.co.uk/hashing-for-change-detection-in-sql-server/ (Дата обращения: 20.11.2022).
  4. Alec Chrystal, Paul D. Mizen. Goodhart's Law: Its Origins, Meaning and Implications for Monetary Policy // Essays in Honour of Charles Goodhart. – Edward Elgar Publishing, 2003. – Vol. One. – P. 304.
  5. Christopher Olah. Understanding LSTM Networks [Электронный ресурс] URL: http://colah.github.io/posts/2015-08-Understanding-LSTMs/ (Дата обращения: 20.11.2022).

Интересная статья? Поделись ей с другими: