Некоторые вопросы динамики реактора… К.А. ЛЫЧАГИН, В.В. ПАНФЕРОВ Московский инженерно-физический институт (государственный университет) ПАРАЛЛЕЛИЗМ В ETL-СИСТЕМАХ ХРАНИЛИЩ ДАННЫХ Рассмотрены основные методы параллельной обработки данных в ETL-системах, позволяющие улучшить ее производительность (пропускную способность). Предложена постановка задачи определения оптимального числа партиций при использовании метода разбиения данных. Extract-Transform-Load (ETL) [1] система – основополагающая часть хранилища данных. Правильно спроектированная ETL-система извлекает данные из различных систем-источников (extract); обеспечивает качество информации, ее соответствие стандартам хранилища; согласовывает данные из различных источников для их совместного использования (transform); и в итоге загружает данные в хранилище или иную систему-приемник в формате, пригодном для дальнейшего использования конечных пользователей и разработчиков третьих систем (load). Наиболее важным показателем работы ETL-системы является время обработки данных, или, более точно, пропускная способность системы. Эффективным способом увеличить производительность системы является выполнение процессов извлечения-обработки-загрузки данных (далее ETL-процессов) в параллели. Под этим подразумевается: параллелизация записи (чтения) данных из систем-источников (приемников); использование методов параллельного преобразования данных. Реализация первого пункта зависит от возможностей систем-источников (приемников), но в большинстве случаев сводится к разбиению данных на части и их параллельному чтению (записи). Например, параллельное извлечение данных из БД ORACLE может быть реализовано при помощи средств ORACLE, а именно с использованием инструкции оптимизатору (HINTS) /*+ PARALLEL (table degree) */ в запросах SELECT. Существует три метода параллельного преобразования данных [1, 2]: компонентная обработка (component processing); конвейерная обработка (data pipeling); разбиение (секционирования) данных (data partitioning). На рис. 1 представлена схема ETL-процесса, который состоит из четырех компонентов: И – источник данных, П1, П2 – компоненты, выполняющие некоторые преобразования, Пр – приемник данных; потоки между компонентами отображаются стрелками. Метод компонентной обработки заключается в параллельной работе компонентов над разными потоками (в примере компоненты П1 и П2 работают одновременно каждый над своим потоком). В то же время B и Пр компоненты также работают одновременно с П1 и П2. Все четыре компонента начинают обрабатывать данные сразу, по мере их поступления из предыдущих компонентов так П1 начинает преобразовывать ряды сразу, как только они производятся И, не дожидаясь конца работы И. Такой метод обработки называется конвейерным. Данные можно разбить на партиции по заданному алгоритму (например, равномерно или с использованием хэш-функции на основе ключевых полей) и обработать каждую партицию отдельным экземпляром компонента. Так, в примере данные читаются из источника уже разбитые на три части, для их обработки запускается по три копии компонентов П1, П2, и последним шагом все три партиции параллельно загружаются компонентом Пр. Схематично объединение всех трех методов параллельной обработки изображено на рис. 2. Рис. 1. Схема ETL-процесса Рис. 2. Объединение трех методов параллельной обработки данных в ETL-процессе Метод разбиения данных является самым эффективным, а вопрос выбора числа партиций для каждого ETL-процесса является основным при улучшении производительности ETL-системы в целом. Рассмотрим постановку задачи оптимизации n партиций. Пусть дан ETL-процесс обрабатывающий некоторый объем данных d. На его основе можно построить ориентированный ацикличеISBN 978-5-7262-1179-4. НАУЧНАЯ СЕССИЯ МИФИ-2009. Том V 1 1 Некоторые вопросы динамики реактора… ский граф G (V , E ) : V – множество вершин-активностей (под активностью понимается некоторое преобразование данных), E – множество дуг, отображающих потоки данных между преобразованиям [3]. Каждой дуге eij поставим в соответствие функцию t ij t ij (d , n, G ) – функцию затрат времени при обработке i-й активностью данных для j-й активности. Данное время будет зависеть от объема начальных данных d, выбранного числа партиций n и от структуры ETL-процесса G (точнее от структуры активностей предшествующей i-й). Матрицу функций tij (d , n, G ) обозначим как T (d , n, G ) . Назовем источником s k вершину-активность, не имеющую входных дуг, а приемником v l – не имеющую выходных дуг. Множество источников: S, множество приемников: V. l klm (T (d , n, G)) – m-я длина m-го пути из вершины s k в v l . Тогда время обработки объема данных d ETLпроцессом (граф G) при делении данных на n партиций равно w max (lklm (T (d , n, G ))) . m Задачу нахождения w в такой постановке можно рассматривать как вариант задачи о максимальном потоке в графе [4]. Отметим, что для заданных d, n, G функция T (d , n, G ) представляет из себя обычную числовую матрицу. Помимо времени обработки данных необходимо учесть время запуска и останова ETLпроцесса: w w(G , n) , которое, в общем случае, зависит от числа партиций и структуры графа. Полное время работы ETL-процесса w равно: w w(d , n, G ) w(d , n, G ) w(G, n) max (lklm (T (d , n, G ))) w(G, n). m Построим функцию z z (d , n, G ) , которая может отражать объем используемой оперативной памяти машины, или количество запускаемых процессов. Наложим ограничение сверху: z. В итоге задача нахождения оптимального числа партиций при обработке объема данных d ETLпроцессом G можно сформулировать так: lklm (T (d , n, G))) w(G, n) min, w(n) max( n m z ( d , n , G ) z , где d, G фиксированы, а n 1, 2,... . СПИСОК ЛИТЕРАТУРЫ 1. Kimball R. The Data Warehouse ETL Toolkit: Practical Techniques for Extracting, Cleaning, Conforming, and Delivering Data / R. Kimball, J. Caserta. – Wiley Publishing Inc., 2004. 2. IBM InfoSphere DataStage Data Flow and Job Design / N. Alur, C. Takahashi, S. Toratani, D. Vasconcelos. – IBM Redbooks, 2009. 3. P. Vassiliadis, A. Simitsis, S. Skiadopoulos // 4th International Workshop on the Design and Management of Data Warehouses (DMDW'2002) in conjunction with CAiSE’02, Toronto, Canada, May 27, 2002. P. 52. 4. Кристофидес Н. Теория графов: Алгоритмический подход / Н. Кристофидес. – М.: Мир, 1978. 2 ISBN 978-5-7262-1179-4. НАУЧНАЯ СЕССИЯ МИФИ-2009. Том V 2