Метод выполнения запросов к хранилищу данных на платформе распределённой параллельной обработки данных тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат наук Пролетарская Виктория Андреевна

  • Пролетарская Виктория Андреевна
  • кандидат науккандидат наук
  • 2020, ФГБОУ ВО «Московский государственный технический университет имени Н.Э. Баумана (национальный исследовательский университет)»
  • Специальность ВАК РФ05.13.11
  • Количество страниц 143
Пролетарская Виктория Андреевна. Метод выполнения запросов к хранилищу данных на платформе распределённой параллельной обработки данных: дис. кандидат наук: 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей. ФГБОУ ВО «Московский государственный технический университет имени Н.Э. Баумана (национальный исследовательский университет)». 2020. 143 с.

Оглавление диссертации кандидат наук Пролетарская Виктория Андреевна

Оглавление

Стр.

Оглавление

Введение

Глава 1. Анализ существующих методов доступа к хранилищам

13

данных и подходов к их моделированию

1.1. Технология OLAP

1.2. Технология MapReduce

1.2.1. Преимущества технологии MapReduce

1.2.2. Недостатки технологии MapReduce

1.2.3. Надстройка Hive

1.2.4. Методы Multi-Fragment-Replication (MFRJ) и метод MapReduce-Invisible (MRIJ)

1.2.5. Метод доступа к хранилищу данных без кэширования таблиц измерений в оперативной памяти

1.3. Организация доступа к распределённым хранилищам данных на платформе SPARK

1.4. Сравнение экосистем Hadoop и Spark

1.5. Методы SBJ и SBFCJ

1.6. Анализ математических методов моделирования процессов доступа к хранилищам данных

1.7. Постановка задачи

1.8. Выводы по Главе 1 35 Глава 2. Разработка метода доступа к распределённому хранилищу данных на основе каскадного использования фильтра

Блума и построение стоимостной модели

2.1. Схемы хранилищ данных и представление исходного запроса в виде последовательности подзапросов

22

25

28

42

48

2.1.1. Схемы хранилищ данных

2.1.2. Представление исходного запроса в виде последовательности подзапросов

2.2. Разработка метода с каскадным использованием фильтра Блума

2.2.1. Описание метода

2.2.2. Описание классического фильтра Блума

2.2.3. Оценка числа ложноположительных срабатываний фильтра

Блума при фильтрации записей таблицы фактов

2.2.4. Анализ эффективности разработанного метода с каскадным использованием фильтра Блума

2.3. Разработка модели процессов выполнения запросов с использованием метода с каскадным использованием фильтра

Блума

2.3.1. Анализ процессов выполнения запросов в параллельной распределённой среде

2.3.2. Параллельные подобные процессы и связанные параллельные процессы

2.3.3. Разработка модели процессов выполнения запросов 61 2.4 Выводы по Главе 2 78 Глава 3. Экспериментальная проверка эффективности метода

с каскадным использованием фильтра Блума и оценка адекватности модели

3.1. Экспериментальная проверка эффективности метода с

79

каскадным использованием фильтра Блума

3.1.1. Запрос соединения трёх таблиц

3.1.2. Запрос с коррелированным подзапросом

3.2. Калибровка и оценка адекватности модели

55

102

102

3.3 Выводы по Главе

Глава 4. Применение разработанного программного средства для проектирования хранилища данных в крупном коммерческом банке

4.1. Описание предметной области

4.1.1. Тенденции изменения банковского сектора

4.1.2. Регулирование деятельности коммерческих банков Центральным Банком

4.1.3. Сводный список нормативов ЦБ РФ для банков, небанковских коммерческих организаций и банковских групп

4.2. Постановка задачи моделирования

4.3. Анализ текущей структуры банковской информационной системы и хранилища данных

4.3.1. Анализ текущей структуры банковской информационной системы

4.3.2. Анализ текущей структуры хранилища данных. Таблицы и связи между ними

4.3.3. Описание текущей физической архитектуры системы

4.3.4. Анализ обращений к текущему хранилищу данных. Выявление узких мест

4.4. Описание логических и физических проектов нового хранилища

4.4.1. Описание логических проектов нового хранилища

4.4.2. Описание физического проекта. Оценка временных затрат

116

на внедрение

4.5. Результаты моделирования хранилища данных 121 4.5.1. Сравнение текущей системы и проектируемого хранилища

105

105

107

112

116

4.5.2. Анализ адекватности модели в тестовой среде. Выполнение

129

натурного моделирования

4.6. Выводы по Главе

Общие выводы и заключение

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

Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Введение диссертации (часть автореферата) на тему «Метод выполнения запросов к хранилищу данных на платформе распределённой параллельной обработки данных»

Введение

Хранилище данных (ХД) - это специальным образом организованный массив данных предприятия (организации), обрабатываемый и хранящийся в едином аппаратно-программном комплексе, который обеспечивает быстрый доступ к оперативной и исторической информации, многомерный анализ, получение прогнозов и статистики в разрезах согласованной нормативно-справочной информации [1].

За предыдущие годы хранилища данных и приложения по оперативной аналитической обработке (OLAP) стали основным звеном в условиях поддержки принятия решений. Как правило, серверы OLAP реализованы в верхней части собственной системы на основе массивов хранения (MOLAP) или как расширение для традиционных реляционных СУБД (ROLAP). В то время как MOLAP-системы действительно обеспечивают впечатляющую производительность для общих аналитических запросов, они, как правило, имеют ограниченную масштабируемость. И наоборот, таблично-ориентированная модель ROLAP масштабируется довольно легко (хотя и с ограничениями), но предлагает меньшую производительность в сравнении с системами MOLAP [2].

Таким образом, для существующих широко распространенных парадигм реализации хранилищ данных существуют три конкретные проблемы:

• горизонтальное масштабирование при больших объемах данных;

• производительность одного сервера;

• не гибкий дизайн логической структуры.

В настоящее время предпринимаются попытки по устранению этих недостатков с помощью технологии MapReduce и парадигмы NoSQL[6]. Кроме того, на данном этапе развития технологии не существует математических методов оценки времени выполнения запросов к ХД на платформе распределенных параллельных вычислений на этапе проектирования системы, позволяющих

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

Цель работы. Целью исследования является разработка метода выполнения запросов (метода доступа) к параллельному распределенному ХД на базе технологии MapReduce/Spark и стоимостной модели для оценки времени выполнения таких запросов.

В соответствии с поставленной целью в работе решаются следующие задачи:

1. Анализ и сравнение методов доступа к данным в параллельных распределённых хранилищах данных на платформе MapReduce/Spark.

2. Разработка метода доступа к ХД типа «снежинка» на базе MapReduce/ Spark;

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

4. Калибровка стоимостной модели и оценка ее адекватности.

5. Внедрение разработанного метода при проектировании и создании аналитического модуля автоматизированной системы банка.

Актуальность работы. В настоящее время наблюдается постоянное увеличение объемов хранимых и анализируемых данных. IT сфера находится в постоянном поиске решений для их обработки. Текущие решения для построения Хранилищ Данных (ХД) с использованием многомерных кубов (MOLAP) и реляционных баз данных (ROLAP) обладают плохой масштабируемостью, что приводит к большим финансовым затратам для компаний на модернизацию комплексов по обработке данных.

В настоящее время для выполнения запросов к большим базам данных широко используется технология MapReduce. Она предполагает параллельное выполнение запросов к фрагментам базы данных, распределённых по большому числу узлов.

Существующие методы параллельной распределенной обработки данных по технологии MapReduce позволяют обеспечить доступ только к ХД типа «звезда».

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

Также важной задачей является прогнозирование времени выполнения аналитических запросов в параллельной распределённой среде, т.к. эти запросы можно отнести к классу «тяжёлых». В последнее время эта задача приобрела ещё большее значение в контексте предоставления ХД в качестве сервиса (DaaS). Поставщик DaaS должен управлять инфраструктурными расходами, а также соглашениями об уровне обслуживания (SLA). Для решения этой задачи используются стоимостные прогностические модели. В существующих работах рассматриваются модели этого класса для реляционных баз данных.

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

Практическая ценность полученных результатов. В рамках работы разработан алгоритм, позволяющий автоматически генерировать программу выполнения исходного SQL-запроса в параллельной распределённой среде. Исходный запрос может содержать коррелированные и некоррелированные подзапросы и конструкции EXISTS и NOT EXISTS. Также было разработано инструментальное средство на языке Python, реализующее стоимостную модель.

На примере запросов Q3 (соединение трёх таблиц) и Q17 (с коррелированным подзапросом) из теста TPC-H показана эффективность разработанного метода КИФБ (с Каскадным использованием фильтра Блума). Для Q3 при SF=500 КИФБ лучше по времени более чем в 2 раза, а по объёму «перетасовки» более чем в 10 раз (по сравнению со Spark SQL). Для Q17 КИФБ лучше по времени более чем в 8 раз (по сравнению с Hive).

По результатам натурных экспериментов выполнена калибровка параметров стоимостной модели и получена оценка её адекватности. Коэффициент детерминации для линейной регрессии «модель-эксперимент» составил R2=0.966, что свидетельствует о хорошей точности модели при достаточно больших значениях оценки времени с использованием модели. Показано, что точки со значением модельного времени больше 10 с. концентрируются относительно линии регрессии. При этом 77% этих точек имеют относительную погрешность моделирования А<30%.

С помощью разработанной стоимостной модели, учитывающей особенности использования предлагаемого метода КИФБ при реализации запросов, проведено моделирование различных вариантов работы хранилища данных, которое предполагается использовать для расчета обязательных банковских нормативов в крупном коммерческом банке. Результаты моделирования показали, что в распределённой системе время выполнения критических запросов уменьшается: для запроса H2 p3 - в среднем в 2,4 раза для нормализованной структуры ХД и в 4 раза для денормализованной структуры, для запроса H6 p6 - в среднем в 2 раза для нормализованной структуры ХД и в 1,5 раза для денормализованной структуры. Видно, что влияние нормализации не однозначно: для запроса H2 p3 время возрастает, а для запроса H6 p6 - уменьшается. Выполнена проверка адекватности модели на реальных запросах. Погрешность моделирования составила 5% для относительных значений.

Положения, выносимые на защиту. В соответствии с пунктами области исследований паспорта специальности 05.13.11 «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей»:

«1. Модели, методы и алгоритмы проектирования и анализа программ и программных систем, их эквивалентных преобразований, верификации и тестирования» (предложен метод анализа и эквивалентного преобразования программы запроса на языке SQL в совокупность вложенных кустов типа «звезда»); «8. Модели и методы создания программ и программных систем для параллельной и распределенной обработки данных, языки и инструментальные

средства параллельного программирования» (разработан метод автоматической генерации программы на языке Scala для параллельного выполнения запроса к распределённому хранилищу данных); «9. Модели, методы, алгоритмы и программная инфраструктура для организации глобально распределенной обработки данных» (разработана стоимостная модель, позволяющая поставщику сервиса DaaS управлять инфраструктурными расходами, а также соглашениями об уровне обслуживания (SLA) в процессе организации распределённой обработки данных)

на защиту выносятся следующие положения:

1. Метод выполнения запросов к параллельному распределённому хранилищу данных с КИФБ, позволяющий выполнять сложные запросы к хранилищу данных произвольного вида, и его программная реализация.

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

3. Теоретические и практические результаты оценки эффективности разработанного метода.

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

Научная новизна. В работе получены следующие новые научные результаты:

1. Разработан метод с Каскадным Использованием Фильтра Блума (КИФБ) выполнения запросов к хранилищу данных произвольного вида на платформе распределённых параллельных вычислений.

2. Разработана аналитическая модель, позволяющая оценить эффективность разработанного метода КИФБ для различных схем запроса: одно измерение в

нескольких последовательно связанных кустах, несколько измерений в одном кусте.

3. Разработана стоимостная модель, позволяющая прогнозировать время выполнения запросов к хранилищу данных с использованием предлагаемого метода на этапе проектирования или управления системой.

Внедрение результатов исследований. Разработанные методы оценки времени выполнения запроса на этапе проектирования ХД и инструментальное средство были применены в процессе создания ХД, используемого для расчета обязательных банковских нормативов для крупного коммерческого банка (акт о внедрении от 31.05.2019 в ЦБ РФ). Было осуществлено внедрение разработанного метода и программного комплекса по оценке времени выполнения запросов для аналитического модуля автоматизированной системы коммерческого банка в ООО «БСЦ Мск» (акт о внедрении от 31.05.2019).

Публикации по теме. По материалам работы опубликовано 10 научных работ в журналах, рекомендованных ВАК РФ, 3 статьи в изданиях международных конференций, индексированных в Scopus и WoS, монография, общим объемом 3,89 п.л.

Апробация работы. Материалы работы были изложены автором на следующих конференциях:

• Международная конференция «Интеллектуальные системы хранения и обработки информации». Москва, 2016 г.

• XI Международной научно-практической конференция «Современные информационные технологии и ИТ-образование», Москва, 2016г.

• Международная конференция «Big Data Conference», Москва, 2017.

• 2nd International Conference on Internet of Things, Big Data and Security (IoTBDS 2017), Porto (Portugal).

Структура диссертационной работы. В Главе 1 «Анализ существующих методов доступа к хранилищам данных и подходов к их моделированию» дан краткий обзор технологии OLAP и ее основных принципов. Рассматривается технология параллельной распределенной обработки данных MapReduce, ее основные шаги: Map, Shuffle и Reduce. В главе приводятся преимущества и недостатки этой технологии. Проведен критический анализ существующих методов реализации соединения таблиц измерений и фактов, выявлены их общие недостатки. Выполнен анализ математических методов моделирования процессов доступа к хранилищам данных, перечисляются их недостатки.

В Главе 2 «Разработка метода доступа к распределённому хранилищу данных на основе каскадного использования фильтра Блума и построение стоимостной модели» рассматриваются существующие схемы хранилищ данных. Показано, что практически любой SQL-запрос может быть представлен в виде вложенных кустов. Формализуются процессы реализации подзапросов и соединений, соответствующих кусту исходного запроса.

В Главе 3 «Экспериментальная проверка эффективности метода КИФБ и оценка адекватности модели» описывается постановка эксперимента в виртуальном кластере, на примере запросов Q3 (соединение 3-х таблиц) и Q17 (с коррелированным подзапросом) теста TPC-H показывается преимущество КИФБ перед методом без использования фильтра Блума (БИФБ, Spark SQL) и Hive, проводится калибровка модели и анализ ее адекватности.

В Главе 4 «Применение разработанного программного средства для проектирования хранилища данных в крупном коммерческом банке» проведен анализ предметной области, рассмотрена система расчёта нормативов в коммерческом банке. Определена тенденция изменения времени выполнения запросов, обеспечивающих расчёт нормативов, и выделены наиболее критические запросы Сформулированы требования к проектируемой системе. Предложено несколько вариантов логического проекта создаваемой системы (нормализованное и денормализованное ХД), приведены SQL-операторы наиболее критических запросов и таблицы хранилища.

Глава 1. Анализ существующих методов доступа к хранилищам данных и подходов к их моделированию

1.1. Технология OLAP

В соответствии с классическим определением хранилище данных (ХД) - это «копия транзакционных данных, специальным образом структурированная для поддержки выполнения запросов и анализа данных» [8].

В 1993 Э.Ф.Кодд ввел термин оперативного анализа данных (OLAP - Online Analytical Processing). Основой таких систем стало ХД - база данных, содержащая большой объем исторической информации в удобном для анализа виде [9].

В 1995 году на основе требований, сформулированных Э.Ф.Коддом, был создан тест FASMI (Fast Analysis of Shared Multidimensional Information). В названии метода фигурируют основные принципы и требования к системам OLAP, а именно

1. Fast (Быстрота) - система должна обеспечивать предоставление пользователю результатов запроса за приемлемое время (обычно не более 5 с), пусть даже ценой менее детального анализа.

2. Analysis (Анализ) - система должна поддерживать логический и статистический анализ данных, характерный для приложения, и обеспечивать сохранение результатов в виде, доступном для конечного пользователя.

3. Shared (Разделяемость) - система должна осуществлять доступ в многопользовательском режиме к данным с поддержкой соответствующих механизмов блокировок и средств авторизованного доступа.

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

5. Information (Информации) - возможность обращаться к любой нужной информации независимо от ее объема и места хранения [10].

Таким образом, OLAP-технология представляет для анализа данные в виде многомерных (и, следовательно, нереляционных) наборов данных, называемых многомерными кубами ( гиперкуб, куб фактов), оси которого выступают в роли измерений, а ячейки — зависящие от них данные [3].

При том гиперкуб является концептуальной логической моделью организации данных, а не физической реализацией их хранения, поскольку храниться такие данные могут и в реляционных таблицах [4,9,11].

Таким образом, многомерное концептуальное хранилище является множественной перспективой, состоящей из нескольких независимых измерений, вдоль которых могут быть проанализированы определенные совокупности данных. Одновременный анализ по нескольким измерениям определяется как многомерный анализ. Осями многомерной системы координат служат основные атрибуты анализируемого бизнес-процесса (то, по чему ведется анализ). Например, для продаж это могут быть тип товара, регион, тип покупателя. На пересечениях осей -измерений (dimensions) — находятся данные, количественно характеризующие процесс — меры (measures), то есть агрегатные функции. Каждое измерение включает направления консолидации данных, состоящие из серии последовательных уровней обобщения (уровней иерархии), где каждый вышестоящий уровень соответствует большей степени агрегации данных по соответствующему измерению (различные уровни их детализации). В этом случае становится возможным произвольный выбор желаемого уровня детализации информации по каждому из измерений [3 , 10]. Пример многомерного куба данных с несколькими измерениями (Местоположение, Товар, Время) представлен ниже. (Рисунок 1.1. Пример многомерного куба данных)

Рисунок 1.1. Пример многомерного куба данных [11]

В [13] показано, что все исследования в этой области велись над разработкой методов обработки и хранения больших объёмов данных. Также при реализации ХД возникают определенные сложности, связанные с их масштабируемостью. С увеличением объема обрабатываемых данных резко возрастает стоимость физического оборудования.

1.2. Технология MapReduce

Существует несколько подходов к построению систем, обеспечивающих распределенную обработку данных. Одним из наиболее популярных подходов является использование парадигмы MapReduce, согласно которой обработка данных разделяется на большое количество элементарных заданий, выполняемых на различных узлах кластера и, в конечном итоге, сводится в единый результат. Эта модель разработана компанией Google и позволяет обрабатывать петабайты данных с помощью компьютерных кластеров [6, 7].

Технология MapReduce предназначена для организации распределённых вычислений на больших кластерах недорогих (и потому потенциально ненадежных) машин [14, 15]. Вычисления производятся над множествами входных пар «ключ-значение», и в результате каждого вычисления также создается некоторое множество результирующих пар «ключ-значение». Основной процесс обработки данных состоит из двух шагов: Map и Reduce. Каждый из этих двух шагов описывается пользовательской функцией, при этом сложности и детали исполнения программы на кластере машин скрываются от аналитика или разработчика [2].

Функция Map производит предварительную обработку данных - на вход функции подается ключ и связанные с ним данные, а в результате её работы генерируются промежуточные пары (ключ, значение). Каждый узел кластера выполняет функцию Map на своей назначенной порции данных (в идеале, находящейся на том же узле, чтобы минимизировать пересылку данных по сети). Кроме того, на одном узле могут одновременно выполняться несколько Map-задач (это число зависит от параметров узла). Промежуточным этапом между Map и Reduce является этап перемешивания (shuffle), в результате которого на вход каждой исполняемой функции Reduce поступает один из промежуточных ключей и список значений, соответствующих этому ключу (на одном узле могут одновременно исполняться несколько Reduce-задач).

Функция Reduce производит свертку и возвращает итоговый список значений. Таким образом, применение функции Reduce к каждому промежуточному ключу и списку значений, ассоциированных с этим ключом, позволяет сформировать окончательный результат [2].

Вызовы Map распределяются по нескольким узлам кластера путем разделения входных данных на M непересекающихся групп (split). Входные группы могут параллельно обрабатываться на разных машинах. Вызовы Reduce распределяются путем разделения пространства промежуточных ключей на R частей с использованием некоторой функции разделения, например, функции хэширования. Число разделов R и функция разделения задаются пользователем. Выполнение MR-

программы происходит следующим образом: сначала среда MapReduce расщепляет входной файл на M частей, размер которых может задаваться пользователем. Затем, сразу в нескольких узлах кластера запускается основная программа MapReduce. Один из экземпляров этой программы играет специальную роль и называется распорядителем (master), Остальные экземпляры являются исполнителями (worker), которым распорядитель назначает работу [12].

Распорядитель должен назначить исполнителям для выполнения M задач Map и R задач Reduce. Исполнитель задачи Map читает содержимое соответствующей группы, разбирает пары «ключ-значение» входных данных и передает каждую пару в определенную пользователем функцию Map. Промежуточные пары «ключ-значение», производимые функцией Map, буферизуются в основной памяти. Периодически буферизованные пары, разделяемые на R областей на основе функции разделения, записываются в локальную дисковую память исполнителя. Координаты этих сохраненных на диске буферизованных пар отсылаются распорядителю, который передает эти координаты исполнителям задачи Reduce. I-ый Reduce-исполнитель снабжается координатами всех /-ых областей буферизованных пар, произведенных всеми M Map-исполнителями. После получения этих координат исполнитель задачи Reduce с использованием механизма RPC переписывает данные с локальных дисков исполнителей задачи Map в свою память или на локальный диск. После переписи всех промежуточных данных выполняется их сортировка по значениям промежуточного ключа для образования групп с одинаковым значением ключа. Если объем промежуточных данных слишком велик для выполнения сортировки в основной памяти, используется внешняя сортировка.

Далее Reduce-исполнитель организует цикл по отсортированным промежуточным данным и для каждого уникального значения ключа вызывает пользовательскую функцию Reduce с передачей ей в качестве аргумента значения ключа и соответствующего множества значений. Результирующие пары функции Reduce добавляются в окончательный результирующий файл данного Reduce-

исполнителя. После завершения всех задач Map и Reduce распорядитель активизирует программу пользователя, вызывавшую MapReduce.

После успешного завершения выполнения задания MapReduce результаты размещаются в R файлах распределенной файловой системы, имена этих результирующих файлов задаются пользователем. Обычно не требуется объединять их в один файл, потому что часто полученные файлы используются в качестве входных для запуска следующего MR-задания или в каком-либо другом распределенном приложении, которое может получать входные данные из нескольких файлов [14].

Процесс выполнения пар заданий Map-Reduce можно представить в виде последовательности действий (Рисунок 1.2).

Узел 1

1.2.1. Преимущества технологии MapReduce

Одним из основных преимуществ технологии MapReduce является горизонтальное масштабирование, при котором мощность наращивается добавлением в кластер новых устройств (узлов) вместо замены одного сервера на более мощный. При горизонтальном масштабировании вычислительную мощность

можно наращивать практически бесконечно за счет большого числа дешевых машин.

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

Другим важным преимуществом технологии MapReduce является обеспечение надежности с помощью репликации. Согласно данной парадигме, каждый блок может быть размещён на нескольких узлах, его размер и коэффициент репликации (количество узлов, на которых должен быть размещён каждый блок) определяются в настройках на уровне файла. С помощью репликации обеспечивается устойчивость распределённой системы к локальным отказам отдельных узлов [16].

1.2.2. Недостатки технологии MapReduce

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

Отсутствие поддержки привычного бизнес-аналитикам SQL является причиной того, что требует дополнительного усложнения взаимодействия технологий и бизнеса и обычно предполагает два пути решения:

1. Сочетание роли разработчика и аналитика в рамках одной позиции.

2. Постановка задачи сначала от бизнеса аналитику, а затем от аналитика разработчику.

В первом случае резко возрастают требования к специалистам, что ведет к сложности их поиска на рынке труда и высоким зарплатным ожиданиям. Во втором случае аналитический функционал переходит на две штатные позиции, что, во-первых, увеличивает штат, а во-вторых, искажает и замедляет цепочку по взаимодействию бизнес-подразделений с аналитическим подразделением [18].

1.2.3. Надстройка Hive

Hive — система управления базами данных на основе платформы Hadoop. Hive управляет данными, хранимыми в файловой системе HDFS, и предоставляет язык запросов на базе SQL, которые преобразуются в последовательность заданий ядром времени выполнения. Hive поддерживает различные форматы хранения данных, а также может работать напрямую с HDFS и Apache HBase [18],[20].

Таким образом, Hive представляет из себя движок, который превращает SQL-запросы в цепочки Map-Reduce задач. Движок включает в себя следующие последовательные компоненты [18]:

1. HiveQL - поддерживает язык запросов Hive Query Language, который основан на языке SQL.

2. Parser - разбирает входящие SQL-запросы (логический план выполнения запроса).

Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Список литературы диссертационного исследования кандидат наук Пролетарская Виктория Андреевна, 2020 год

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

1. Michael Stonebraker, Ugur Qetintemel. «One Size Fits All»: An Idea Whose Time Has Come and Gone. / Перевод Сергея Кузнецова, 2007 URL: http: //citforum.ru/database/articles/one_size_fits_all/. (дата обращения: 27.08.2019).

2. Кузнецов С. Д., Посконин А. В. Распределенные горизонтально масштабируемые решения для управления данными URL: http://www.ispras.ru/ru/proceedings/docs/2013/24/isp_24_2013_327.pdf. (дата обращения: 27.08.2019).

3. Базы данных. Интеллектуальная обработка информации/ В.В. Корнеев [и др.] М.: Нолидж, 2003. 400 с.

4. Модели доступа к хранилищу данных по технологии MapReduce: раздел 11.2 // Теория и практика анализа параллельных систем баз данных: Монография / В.А. Пролетарская [и др.]. Владивосток: Дальнаука, 2015. С. 286-300.

5. Robert Wrembel, Christian Koncilia. Data warehouses and OLAP: concepts, architectures, and solutions. IRM Press, 2007. P. 1-26.

6. С. Д. Кузнецов. MapReduce и параллельные аналитические СУБД. 2010. URL: http://www.myshared.ru/slide/128925/. (дата обращения: 27.08.2019).

7. Венкат Гудивада, Дана Рао, Виджай Рагхаван. Ренессанс СУБД: проблема выбора // Открытые системы. СУБД. 2016. № 3. С.12-17.

8. Kimball R. The Data Warehouse Toolkit: Practical Techniques for Building Dimensional Data Warehouses. New York: John Wiley & Sons, 1996. P. 324.

9. Codd E.F., Codd S.B., Salley C.T. Providing OLAP (on-line analytical processing) to user-analysts: An IT mandate//Codd and Date. 1993. Т. 32. P.26.

10. Фёдоров А., Елманова Н. Введение в OLAP-технологии Майкрософт. - М.: Диалог-МИФИ, 2002. 272 с.

11. Метод многомерного моделирования URL: https://www. intuit. ru/studies/higher_education/3406/courses/455/lecture/10167?pa ge=1. (дата обращения: 27.08.2019).

12. С.Д. Кузнецов. Год эпохи перемен в технологии баз данных. Труды Института системного программирования РАН. Том 19, 2010 г. С. 9-34.

13. Григорьев Ю.А. Технологии аналитической обработки больших данных// Информационно-измерительные и управляющие системы. 2016. №2 12, т.14. С. 59 - 68.

14. Чак Лэм Hadoop в действии. М.: ДМК Пресс, 2012. 424с.: ил.

15. СУБД NoSQL - сильные и слабые стороны URL: JetInfo. И. Бодров. 2012. URL: http://www.j etinfo.ru/stati/silnye-i-slabye-storonynosql. (дата обращения 27.08.2019).

16. White T. Hadoop: The Definitive Guide (4th Edition) // O'Reilly Media. 2015. P. 756.

17. ИТ-обзор рынка вакансий и топ-15 специальностей URL: https://hh.ru/article/24562. (дата обращения 27.08.2019).

18. Аналитика зарплат для хантинга, 2019. URL: https://vc.ru/hr/71793-analitika-zarplat-dlya-hantinga-2019g (дата обращения 27.08.2019).

19. , Ashutosh Chauhan, Alan Gates et al. Major Technical Advancements in Apache Hive / Yin Huai[et al.] VLDB. 2012. P. 1235-1246.

20. Impala: A modern, open-source SQL engine for Hadoop / M. Bittorf [et al.] //Proceedings of the 7th Biennial Conference on Innovative Data Systems Research. 2015.

21. Apache Hive. URL: http://hive.apache.org (дата обращения 24.12.2016).

22. Hive Free book. URL: http://www.semantikoz.com/blog/the-free-apache-hive-book/. (дата обращения 24.12.2016).

23. Zhou G., Zhu Y., Wang G. Cache Conscious Star-Join in MapReduce Environments Cloud-I // 13 Proceedings of the 2nd International Workshop on Cloud Intelligence, August 26, 2013. P.1-7.

24. Григорьев, Ю.А. Пролетарская, В.А. Метод ранней материализации доступа к хранилищу данных по технологии MapReduce// Информатика и системы управления. 2015. № 3. С. 3-16.

25. Пролетарская В.А., Ермаков Е.Ю. Анализ методов доступа к хранилищу данных по технологии MapReduce с ранней материализацией // Инновационная стратегия развития фундаментальных и прикладных научных исследований: опыт прошлого - взгляд в будущее : Сборник научных статей по итогам Международной научно-практической конференции 18-19 июля 2016 года - Санкт-Петербург: КультИнформПресс; 2016. С. 113-118.

26. Григорьев Ю.А., Пролетарская В.А. Сравнение методов обработки запросов к хранилищу данных по технологии MapReduce // Информатика и системы управления. 2016. № 1. С. 3-13.

27. Palla Konstantina. A Comparative Analysis of Join Algorithms Using the Hadoop MapReduce Framework: Master of Science School of Informatics University of Edinburgh. 2009. Р.1-93.

28. RCFile: A fast and space-efficient data placement structure in MapReduce-based warehouse systems / Lee Rubao [et al.] // ICDE 2011, Р.1199-1208.

29. Jairam Chandar. Join Algorithms using Map/Reduce . Edinburgh:University of Edinburgh,2010. P.66.

30. Jaqueline Brito, Thiago Mosqueiro, Ricardo R Ciferri and Cristina DA Ciferri. Faster Cloud Star Joins with Reduced Disk Spill and Network Communication: Chemometrics and Intelligent Laboratory Systems 2016. P. 74-85

31. Ермаков Е.Ю., Пролетарская В.А. Метод доступа к хранилищу данных по технологии MapReduce/Spark без кэширования таблиц измерений в оперативной памяти // Информационно-измерительные и управляющие системы. 2016. №12. С. 90-97.

32. Григорьев Ю.А., Пролетарская В.А., Ермаков Е.Ю. Экспериментальная проверка эффективности метода доступа к хранилищу данных на платформе Spark с каскадным использованием фильтра Блума. 2017. № 3. С. 3-16.

33. Efficiency Analysis of the access method with the cascading Bloom filter to the data warehouse on the parallel computing platform / V. A. Proletarskaya [et al.] // Journal of Physics: Conference Series. 2017. Volume 913. № article 012011 P. 1-10.

34. Shoro A. G., Soomro T. R. Big data analysis: Apache spark perspective //Global Journal of Computer Science and Technology. 2015. P 1-14.

35. Изучаем Spark: молниеносный анализ данных. Х.Карау, Э.Конвински, П.Венделл, М.Захария. М.: ДМК Пресс, 2015. 304 с.

36. Clash of the titans: Mapreduce vs. spark for large scale data analytics / J. Shi [et al] //Proceedings of the VLDB Endowment. 2015. V.8, №. 13. P. 2110-2121

37. Impala: A modern, open-source SQL engine for Hadoop / M. Bittorf [et al.] //Proceedings of the 7th Biennial Conference on Innovative Data Systems Research. 2015. P.10

38. Zaharia M. et al. Resilient distributed datasets: A fault-tolerant abstraction for inmemory cluster computing //Proceedings of the 9th USENIX conference on Networked Systems Design and Implementation. USENIX Association, 2012. P. 22.

39. Bloom B. H. Space/time trade-offs in hash coding with allowable errors //Communications of the ACM. 1970. Т. 13. №. 7. С. 422-426.

40. Черненький В.М. Теоретические основы построение имитационного процесса. Учебное пособие по дисциплине «Описание параллельных процессов». - М., 2015. URL: http://e-learning.bmstu.ru/portal_iu5/pluginfile.php /644/mod_page/content/7/index_oop.htm (дата обращения: 29.09.2019).

41. S. Tarkoma, C. E. Rothenberg, and E. Lagerspetz. Theory and practice of bloom filters for distributed systems // IEEE Communications Surveys and Tutorials, 14(1): 2012. P. 131-155.

42. Data Warehouse MFRJ Query Execution Model for MapReduce / V. A. Proletarskaya [et al.] // 2nd International Conference on Internet of Things, Big Data and Security (IoTBDS 2017). Porto (Portugal), Volume 1: IoTBDS. Р. 206-215.

43. The star schema benchmark and augmented fact table indexing / P. O'Neil [et al.] //Technology Conference on Performance Evaluation and Benchmarking. Springer Berlin Heidelberg, 2009. P. 237-252.

44. Wu W. et al. Predicting query execution time: Are optimizer cost models really unusable? //Data Engineering (ICDE), 2013: IEEE 29th International Conference on. IEEE, 2013. P. 1081-1092.

45. Кенинг Д., Штойян Д. Методы теории массового обслуживания // Радио и связь. 1981. C.127.

46. Basic elements of queueing Theory. Application to the Modelling of Computer Systems book. URL: http://www.cs.columbia.edu/~misra/COMS6180/nain.pdf. (дата обращения 24.12.2016).

47. Григорьев Ю.А., Плутенко А.Д. Теоретические основы анализа процессов доступа к распределенным базам данных. Новосибирск: Наука, 2002. 222 с.

48. Ермаков Е.Ю. Операторный метод оценки времени выполнения запросов в параллельной колоночной системе баз данных: дис. ... кандидата тех.наук. Москва. 2015. 175 с.

49. Плужников В.Л. Анализ архитектур параллельных систем баз дис. ... кандидата тех.наук. Москва. 2012. 154 с.

50. How good are query optimizers, really? / V.Leis [et al.] // Proceedings of the VLDB Endowment. 2015. V. 9. №. 3. P. 204-215.

51. Dean, J. and Ghemawat, S. MapReduce: Simplified data processing on large clusters // Proceedings of the Sixth Conference on Operating System Design and Implementation (Berkeley, CA, 2004). P.107-113.

52. Григорьев Ю.А., Плутенко А.Д. Анализ процесса выполнения запроса на соединение таблиц в строчной параллельной СУБД // Информатика и системы управления. 2013. № 4. С.3-15. 10.

53. Григорьев Ю.А., Плутенко А.Д. Оценка времени соединения таблиц в базе данных NoSQL по технологии Mapreduce // Информатика и системы управления. 2014. № 1. С.3-14.

54. Григорьев Ю.А. Об использовании стоимостной модели для прогнозирования времени выполнения запросов к базе данных // Информатика и системы управления. 2018. № 1. С. 3 - 15

55. Learning-based query performance modeling and prediction / M. Akdere [et al.] //Data Engineering (ICDE), 2012 IEEE 28th International Conference. IEEE. 2012. Р. 390-401.

56. Predicting multiple metrics for queries: Better decisions enabled by machine learning / A. Ganapathi [et al.] // Data Engineering, 2009. ICDE'09: IEEE 25th International Conference. 2009. Р. 592-603.

57. How good are query optimizers, really? / V. Leis [et al.] //Proceedings of the VLDB Endowment. 2015. V. 9, №. 3. Р. 204-215.

58. Документация TPC-H URL: http://www.tpc.org/tpc_documents_current_versions/pdf/tpc-h_v2.17.2. pdf. (дата обращения 29.08.2016).

59. Date C., and Hugh D., A guide to the SQL standard: a user's guide to the standard relational language SQL. Addison-Wesley, 1989. P. 544.

60. M. Odersky, Lex Spoon and Bill Venners, "Programming in Scala" Artima Inc, 2008. P. 754

61. Орграфы и DAG-графы.

URL: https: //www.intuit.ru/studies/courses/12181/1174/lecture/25266?page=2. (дата обращения 24.12.2016).

62. Dharmapurikar, Sarang Krishnamurthy, Praveen Taylor. Longest Prefix Matching Using Bloom Filters // SIGC0MM'03(August 25-29), 2003, Karlsruhe (Germany). P. 397-409.

63. Григорьев, Ю.А. Пролетарская, В.А., Модели процессов соединения таблиц хранилища данных по технологии MapReduce/Spark // Вестник МГТУ им. Н.Э. Баумана. Сер. Приборостроение. 2019. № 5. С. 79-90.

64. Chowdhury M. Performance and Scalability of Broadcast in Spark //2014-10-08. URL: http://www. cs. berkeley. edu/~ agearh/cs267. sp10/files/mosharaf-spark-bc-report-spring10. pdf. 2014. (дата обращения 03.04.2019).

65. Григорьев Ю.А., Пролетарская В.А. Модель процессов выполнения запросов к хранилищу данных на платформе параллельных вычислений Spark

// Информатика и системы управления. 2019. № 1. С. 3-17.

66. Григорьев Ю.А., Пролетарская В.А., Ермаков Е.Ю. Метод доступа к хранилищу данных по технологии SPARK с каскадным использованием фильтра Блума // Информатика и системы управления. 2017. № 1. С. 3-14.

67. Пролетарская В. А. Каскадное использование фильтра Блума при реализации SQL-запроса с коррелированным подзапросом на платформе параллельной обработки данных SPARK // Сборник научных трудов XII Международной научно-практической конференции «Конвергентные когнитивно-информационные технологии. Современные информационные технологии и ИТ-образование». 2017. С. 259-264.

68. Andrew Or. Understanding your Apache Spark Application Through Visualization. URL: https: //databricks. com/blo g/2015/06/22/understanding-your-spark-application-through-visualization.html (дата обращения 03.04.2019).

69. [SPARK-21039] [Spark Core] Use treeAggregate instead of aggregate in DataFrame.stat.bloomFilter#18263.URL:

https://github.com/apache/spark/pull/18263 (дата обращения: 03.04.2019).

70. Bloom Filter Cascade Application to SQL Query Implementation on Spark / Viktoria Proletarskaya [et al.] // 2019 27th EuromicroInternational Conference on Parallel, Distributed and Network-BasedProcessing, IEEE, 2019. P. 187-192.

71. Документация Hive URL://https://cwiki.apache.org/confluence/display/Hive/Subqueries+in+SELECT (дата обращения: 03.04.2019).

72. Umbrella JIRA for all subquery redesign related tasks and issues URL: https://issues.apache.org/jira/browse/HIVE-15456 (дата обращения 03.04.2019)

73. Линник Ю. В. Метод наименьших квадратов и основы математико-статистической теории обработки наблюдений. Москва: Физматгиз, 1958. С. 333.

74. Григорьев Ю.А., Бурдаков А.В., Пролетарская В.А., Устимов А.И. Анализ процесса выполнения запросов к хранилищу данных по методу соединения реплик с несколькими фрагментами в MapReduce // Динамика сложных систем — XXI век. 2018. № 1. С. 62-76.

75. Иванов Э.А., Иванова И.В. Понятие, сущность и правовое регулирование российской банковской системы //Транспортное дело России . 2012. С. 113-116.

76.Вишневер В.Я. Экономическое содержание концентрации и централизации банковского капитала//Известия Оренбургского государственного аграрного университета. 2006. C.99-103 .

77.Тарасова Н.А., Вишневер В.Я. Концентрация и централизация капитала на российском банковском рынке//Российская наука: актуальные исследования и разработки: Сб. науч. ст. VI Всерос. науч.-практ. конф., 1 нояб. 2018 г.: в 2 ч. Самара: Изд-во Самар. гос. экон. унта, 2018. Ч.2. С. 224-230.

78.Банки: отзыв лицензий. URL: http://www.profbanking.com/articles/banki-otzyv-litsenzij.html (дата обращения: 03.04.2019).

79.Гасанова М. М. Роль коммерческих банков в современной экономике и перспективы его развития // Научно-методический электронный журнал «Концепт». 2016. Т. 2. С. 131-135.

80.Тавасиев, А. М. Банковское дело: управление кредитной организацией : Учеб. пособие (2-е изд., перераб. и доп.). М. : Дашков и К, 2011. 639 с.

81. Горелая, Н. В. Организация кредитования в коммерческом банке : учеб. пособие / Н. В. Горелая. М. : Форум : ИНФРА-М, 2012. 207 с.

82. Федеральный закон "О банках и банковской деятельности" № 395-1 от 02.12.1990 .

83. Инструкции Банка России от 3 декабря 2012 года № 139-И.

84. Белоглазова Г.Н. Финансовые рынки и финансово-кредитные институты: Учебное пособие. Стандарт третьего поколения / Под ред. Г.Н. Белоглазовой, Л.П. Кроливецкой. СПб: Питер, 2013. 384 с.

85.180-И URL: http://www.consultant.ru/document/cons doc LAW 220206/ (дата обращения 03.04.2019).

86. Формы отчетности ЦБ РФ. URL: http: //www.cbr.ru/credit/forms/ (дата обращения 03.04.2019).

87. Нормативы ликвидности. URL:

https://www.banki.ru/wikibank/normativyi likvidnosti/ (дата обращения 03.04.2019).

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.