Научная статья на тему 'ОЦЕНКА ЭФФЕКТИВНОСТИ ОБРАБОТКИ БОЛЬШИХ ОБЪЕМОВ ДАННЫХ В РЕЛЯЦИОННЫХ И КОЛОНОЧНЫХ ФОРМАТАХ'

ОЦЕНКА ЭФФЕКТИВНОСТИ ОБРАБОТКИ БОЛЬШИХ ОБЪЕМОВ ДАННЫХ В РЕЛЯЦИОННЫХ И КОЛОНОЧНЫХ ФОРМАТАХ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
22
8
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БОЛЬШИЕ ДАННЫЕ / ФОРМАТЫ ХРАНЕНИЯ ДАННЫХ / РЕЛЯЦИОННЫЕ БАЗЫ ДАННЫХ / POSTGRESQL / APACHE HIVE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Белов Владимир Александрович, Ильин Дмитрий Юрьевич, Никульчев Евгений Витальевич

Эффективное хранение данных - одна из важнейших задач при проектировании любой информационной системы. Рост потребностей в обработке больших объемов данных спровоцировал появление большого количества средств для их хранения. В связи с этим возникает необходимость выбора форматов хранения на этапе проектирования. Выбор форматов влияет на параметры вычислительной среды (объем, время обработки данных), а также аппаратных ресурсов. Статья посвящена разработке методики оценки эффективности обработки больших данных в зависимости от выбора реляционного или колоночного формата. Представлено исследование двух популярных способов хранения и обработки больших данных: реляционная база данных PostgreSQL и хранение в файлах колоночного формата Apache Parquet с обработкой с помощью фреймворка Apache Hive

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Белов Владимир Александрович, Ильин Дмитрий Юрьевич, Никульчев Евгений Витальевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

COMPARATIVE EVALUATION OF THE EFFICIENCY OF DATA PROCESSING BY STORING THE DATA IN A RELATIONAL DATABASE AND COLUMN FORMAT FILES

Purpose. In the process of developing information and analytical systems, the choice of the most effective tool for data storage is important. The purpose of the presented study is to compare the data processing features for various data storage tools. Analysis of these features in the dynamics of the growth of the data volume is an important issue. Methodology. Stands were prepared for experimental evaluation of the two presented alternatives. As evaluation criteria, the data volume, processing time, the use of RAM and processor resources as well as the dynamics of changes in the characteristics with a change in the data volume was chosen. Two data queries were prepared that contain different requirements for obtaining results: filtering and data aggregation. For evaluation, both one and several simultaneously running queries were launched. Findings. Numerical characteristics of the examined criteria were obtained. The processing speed when using a relational database was several times higher than the results obtained when using a big data processing system. As the volume of data grows, big data processing systems perform better. Regarding characteristics such as the data volume, the use of column formats is more efficient for any amount of data. Value. The results showed the feasibility of using a relational database with small amounts of data. As the volume of data grows, it is necessary to use alternative ways of storing and processing data, which suggests that when designing a system, not only the analysis of the data structure is required, but also the estimated volume

Текст научной работы на тему «ОЦЕНКА ЭФФЕКТИВНОСТИ ОБРАБОТКИ БОЛЬШИХ ОБЪЕМОВ ДАННЫХ В РЕЛЯЦИОННЫХ И КОЛОНОЧНЫХ ФОРМАТАХ»

Вычислительные технологии, 2022, том 27, № 3, с. 46-65. © ФИЦ ИВТ, 2022 Computational Technologies, 2022, vol. 27, no. 3, pp. 46-65. © FRC ICT, 2022

ISSN 1560-7534 eISSN 2313-691X

ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

Б01:Ю.25743/1СТ.2022.27.3.005

Оценка эффективности обработки больших объемов данных в реляционных и колоночных форматах

В. А. Белов, Д. Ю. Ильин, Е.В. Никульчев*

МИРЭА — Российский технологический университет, 119454, Москва, Россия

*

Поступила 01 апреля 2022 г., доработана 12 апреля 2022 г., принята в печать 18 апреля 2022 г.

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

Статья посвящена разработке методики оценки эффективности обработки больших данных в зависимости от выбора реляционного или колоночного формата. Представлено исследование двух популярных способов хранения и обработки больших данных: реляционная база данных PostgreSQL и хранение в файлах колоночного формата Apache Parquet с обработкой с помощью фреймворка Apache Hive.

Ключевые слова: большие данные, форматы хранения данных, реляционные базы данных, PostgreSQL, Apache Hive.

Цитирование: Белов В.А., Ильин Д.Ю., Никульчев Е.В. Оценка эффективности обработки больших объемов данных в реляционных и колоночных форматах. Вычислительные технологии. 2022; 27(3):46-65. DOLIO.25743/ICT.2022.27.3.005.

Введение

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

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

Целью данного исследования является сравнение особенностей обработки данных в реляционной базе данных и системах обработки больших данных, В качестве реляционной базы данных выбрана PostgreSQL [3] — один из наиболее популярных продуктов в системах хранения данных [4], Для имитации системы обработки больших данных выбрана платформа Apache Hadoop [5] с предустановленным фреймворком Apache Hive [6]. Для хранения данных использован колоночный формат файлов Apache Parquet [7].

Наиболее распространенный способ хранения данных — использование реляционных баз данных [8], Однако рост объема данных, изменение структур данных, а также потребность в хранении информации в ее оригинальном виде привели к появлению новых способов хранения. Все это вызвало появление новой концепции "больших данных" [9]. Точного определения этого понятия не существует, оно имеет такие характеристики, как объем (volume), скорость (velocity) и многообразие (variety), называемые также "тремя V" [9]. Отсутствие четкого понимания, в какой момент данные становятся такого объема, что речь может идти о "больших данных", создает необходимость проведения не только экспертного анализа предполагаемого к использованию программного обеспечения, но и экспериментальной оценки альтернативных средств.

Для хранения и обработки информации в системах больших данных широко применяется платформа Apache Hadoop [5], в которой используется файловая система Apache HDFS [5], хранящая данные в формате Apache Parquet, Сравнение разных способов хранения данных является одним из популярных направлений исследований.

Для работы с данными в формате Apache Parquet существует множество инструментов, например Apache Hive, представляющий собой реализацию алгоритма MapReduce [6] для чтения 1IDFS-данных. Также Apache Hive предлагает SQL-подобный язык запросов HiveQL,

Изначально большинство исследований в этой области связано с изучением возможностей реляционных баз данных, В [4] сравнивается производительность PostgreSQL и MySQL, в [10] — PostgreSQL и Oracle, Основная цель этих исследований — анализ производительности каждой из представленных баз данных, особенностей работы оптимизатора запросов и индексов. Кроме того, существуют исследования более узкой направленности. Так,в [11] рассмотрены возможности асинхронной репликации в базах данных PostgreSQL, MS SQL и MySQL, основные операции при работе с данными и скорость репликации обновленных данных.

Одним из наиболее развитых направлений в этой сфере исследований является сравнительная характеристика реляционных и NoSQL-баз данных, В [12] приведены результаты оценки временной эффективности реляционных и NoSQL-баз данных на основе нескольких запросов, включающих операции как на выборку, так и на модификацию данных. Исследованы четыре основных операции при работе с данными: создание, чтение, обновление и удаление, — чаще называемые CRUD (от англ. Create — Read — Update — Delete), Работа [13] представляет собой верхнеуровневое изучение наиболее популярных SQL- и NoSQL-баз данных, в ней приведены их основные возможности, однако отсутствуют результаты экспериментальных оценок, В [14, 15] приводится сравнительная оценка реляционной базы данных SQL Server и NoSQL-базы данных MongoDB, Основная цель исследования — получение временных характеристик при выполнении различных запросов к данным.

Существуют работы по исследованию способов манипулирования данными. Так, в [16] сравниваются возможности языков SQL и HiveQL, изучаются такие характе-

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

Исследуются разные формы хранения больших данных. Кроме традиционного хранения в SQL- и NoSQL-базах данных исследуются современные средства файлового хранения в так называемых озерах данных, В [2] рассмотрены различные файловые форматы хранения данных в крупных системах обработки и хранения больших данных, различные аспекты использования файлов при хранении данных, предложена математическая модель выбора альтернатив при проектировании файловых хранилищ данных. Авторы [17] изучают форматы файлов для хранения данных в сфере биоинформатики, что является узкоспециализированным исследованием под конкретные задачи, В работе [18] рассмотрены два формата хранения данных — Apache Parquet и Apache Avro, являющиеся одними из наиболее популярных форматов в системах больших данных.

Несмотря на большую изученность темы хранения данных, при проектировании информационных систем [19] могут возникать новые вопросы, В предлагаемом исследовании рассмотрено изменение основных характеристик программного и аппаратного обеспечения обработки и хранения данных при росте объемов данных,

1. Методика экспериментальной оценки

Основная цель исследования заключается в формировании методики для оценки основных характеристик эффективности использования разных способов хранения данных при проектировании конкретной информационной системы, В качестве критериев оценки эффективности выбраны:

• занимаемый объем данных;

• время обработки данных;

• использование ресурсов оперативной памяти;

• использование ресурсов процессора;

• динамика изменения вышеописанных характеристик в зависимости от объема данных.

Разработана методика сравнительной экспериментальной оценки эффективности форматов данных,

1, Выбор двух или более альтернативных способов хранения данных [20],

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

3, Подготовка экспериментальных запросов для выборки данных,

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

5, Проведение исследований на разных объемах данных для оценки динамики характеристик эффективности.

Разработанная методика применена для сравнительной оценки реляционного формата хранения данных на примере базы PostgreSQL и колоночного формата файлов Apache Parquet, В ходе экспериментальной оценки используются одинаковые вычислительные узлы, характеристики которых приведены в табл. 1,

Дня оценки реляционного формата данных развернут экспериментальный стенд, представляющий собой кластер из трех вычислительных узлов с установленной системой управления базами данных PostgreSQL версии 14,0, Детальные настройки PostgreSQL приведены в Приложении Б, На рис, 1 показана схема сформированного кнастера, В качестве связующего элемента выбрано приложение Patroni |21|, Дня хранения конфигурационных значений использовалась база данных etcd |22|, которая требует отдельного узла, не участвующего в вычислительных процессах.

Дня сравнения с файловым хранением подготовлен стенд с установленной системой Apache Hadoop и фреймворком Apache Hive версии 2,3,8 дня доступа к данным. Стенд включает три взаимодействующих друг с другом узла HDFS, а также узел, хранящий метаинформацию о кластере. Детальные настройки Apache Hive приведены в Приложении Б. Схема экспериментального стенда дня имитации системы обработки больших данных представлена на рис. 2. На трех узлах установлены интерпретатор Java версии 16.0.2, распределенная файловая система HDFSh необходимые зависимости дня работы фреймворка Apache Hive. На других узлах располагается программное обеспечение дня хранения метаинформации. Имеются настройки распределения задач но контейнерам, чтобы избежать ситуации попадания больших объемов информации в один контейнер, что приводит к бесконечному выполнению задач.

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

Таблица 1. Конфигурация вычиелительжнх) узла экспериментальши'о стенда Table 1. Configuration of the eomputational node of the expérimental stand

Элемент конфигурации Характеристика

Процессор Intel Xeon 2.3 ГГц 4 ядра

Тин жееткохх) диска HDD

Оперативная намять 16 Гб

Операционная система Ubuntu 20.04.3 LTS х64

Рис. 1. Схема кластера PostgreSQL Рис. 2. Схема экспериментальжих) стенда для

Fig. 1. PostgreSQL cluster diagram имитации системы обработки больших данных

Fig. 2. Diagram of experimental environment for imitation of a big data system

Таблица 2. Описание одной записи из экспериментального набора данных Table 2. Description of an experimental dataset record

Название поля Тип данных Описание

name varchar Имя пользователя

surname varchar Фамилия пользователя

device varchar Тип используемого устройства

ql double Время ответа на вопрос 1

q2 double Время ответа на вопрос 2

q3 double Время ответа на вопрос 3

q4 double Время ответа на вопрос 4

q5 double Время ответа на вопрос 5

q6 double Время ответа на вопрос 6

q7 double Время ответа на вопрос 7

q8 double Время ответа на вопрос 8

q9 double Время ответа на вопрос 9

qlO double Время ответа на вопрос 10

Листинг 1. SQL-запрос для эксперимента 1 Listing 1. SQL query for the experiment 1

select device, count(*), avg(q6),

percentile^cont (0.25) within group (order by q6 asc) as percentile^25 ,

percentile^cont (0.5) within group (order by q6 asc) as percentile^5 ,

percentile^cont (0.75) within group (order by q6 asc) as percentile^75 ,

stddev(q6)

from questionnaire

group by device ;

Листинг 2. SQL-запрос для эксперимента 2 Listing 2. SQL query for the experiment 2

select name, surname from questionnaire where device = 'Mobile';

Листинг 3. Запрос Apache Hive для эксперимента 1 Listing 3. Apache Hive query for the experiment 1

select device,

count(*),

avg(q6),

percentile(q6, 0.25) over 0 as percentile_25 ,

percentile(q6, 0.5) over 0 as percentile^5 ,

percentile(q6, 0.75) over 0 as percentile_75 ,

stddev(q6)

from survey . questionnaire

group by device ;

Листинг 4. Запрос Apache Hive для эксперимента 2 Listing 4. Apache Hive query for the experiment 2

select name, surname from survey . questionnaire where device = 'Mobile';

бой вычисление статистической информации на основании полученных значений. Такой тип запросов может применяться при разработке витрин данных [23] или подготовке отчетов.

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

Аналогичные с точки зрения результирующего набора данных запросы написаны с использованием фреймворка Apache Hive (листинги 3 и 4).

2. Результаты

На первом этапе исследования был изучен занимаемый объем данных. На рис. 3 представлены результаты при разном количестве записей. По оси х указано количество записей каждого набора данных в миллионах единиц, по оси у представлен объем данных в гигабайтах. Из графика ясно, что занимаемый объем при использовании Parquet-файлов растет значительно медленнее, чем в базе данных PostgreSQL. На втором этапе исследования были изучены такие характеристики, как время обработки запроса, а также потребление аппаратных ресурсов при выполнении описанных ранее запросов. На рис. 4 представлено время получения данных при одновременном запуске одного и пятнадцати запросов.

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

Из полученных результатов видно, что на небольших объемах данных Apache Hive уступает реляционной базе данных. Однако при увеличении объема данных эффективность фреймворка для обработки больших данных увеличивается. Следует также обратить внимание, что изменения времени работы второго запроса для формата Parquet незначительны. Это объясняется колоночной структурой формата, которая, в отличие от строкового представления данных, позволяет читать только необходимые колонки без удаления части данных одной записи. Из этого следует, что выбор требуемых колонок в колоночной реализации хранения данных является наиболее "дорогой" операцией, в то время как их фильтрация происходит значительно быстрее.

35 30 ю 25

х £ 20 х го

S 15 tu fi ю

О 10 5

10

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Рис. 3. Занимаемый объем данных Fig. 3. Resulting data volume

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

Для более глубокого понимания работы каждого из инструментов проанализированы планы выполнения запросов (табл. 3-6). Для анализа взяты планы запросов, выполняемых к набору данных, состоящему из 10 млн записей.

1 запрос

15 запросов

Рис. 4. Время обработки запроса 1 (а, б) и запроса 2 (в, г) при одновременной работе одного и 15 запросов

Fig. 4. Query 1 (а, б) and query 2 (в, г) processing time for a single and 15 simultaneous requests

Таблица 3. План выполнения запроса 1 в PostgreSQL Table 3. Query plan for the query 1 in ProstgreSQL

№ Query plan

0 GroupAggregate (cost=1621925.83..1746925.90 rows=3 width=54) (actual time=8028.698.. 12493.681 rows=3 loops=l)

1 Group Key: device

2 -> Sort (cost=1621925.83..1646925.83 rows=10000000 width=14) (actual time=5009.348..6160.366 rows=10000000 loops=l)

3 Sort Key: device

4 Sort Method: external merge Disk: 254472kB

5 -> Seq Scan on questionnaire (cost=0.00..263935.00 rows=10000000 width=14) (actual time=0.007.. 1229.218 rows=10000000 loops=l)

a

Таблица 4. План выполнения запроса 1 в Apache Hive Table 4. Query plan for the query 1 in Apache Hive

№ Query plan

1 Stage—0

2 Fetch Operator

3 limit:—1

4 Stage—1

5 Reducer 4

6 File Output Operator [FS_14]

7 Select Operator [SEL^12] (rows=368402/99852 width=182)

8 Output:[n_colOn,n_colln,n_col2n,n_col3",n_col4n,n_col5n,n_col6n]

9 PTF Operator |PTF_11] (rows=368402/99852 width=182)

10 Function definitions :[{},{" name:":"windowingtablefunction","order by:":"0

11 ASC NULLS FIRST","partition by:":"0"}]

12 Select Operator [SEL^IO] (rows=368402/99852 width=182)

13 Output:f"_colO","_coll","_col2","_col3","_col4","_col5"]

14 <—Reducer 3 [SIMPLE_EDGE] vectorized

15 SHUFFLE [RS_21]

16 PartitionCols:0

17 Group By Operator [GBY_20] (rows=368402/99852 width=182)

18 Output:[n_colOn,n_colln,n_col2",n_col3n,n_col4n,n_col5n],

19 aggregations^" count (VALUE. _colO)","sum( VALUE. _coll)", ncount(VALUE._col2)",nsum(VALUE._col3)n],keys:KEY._colO, KEY._coll

20 <—Reducer 2 [SIMPLE_EDGE] vectorized

21 SHUFFLE [RS_19]

22 PartitionCols:_colO, _coll

23 Group By Operator [GBY_18]

24 (rows=736805/99852 width=182)

25 Output:[n_colOn,n_colln,n_col2",n_col3n,n_col4n,n_col5n],

26 aggregations^" count (VALUE. _colO)","sum( VALUE. _coll)", "count (VALUE. _ col2)"," sum('VALUE. _ col3) "1,

27 keys:KEY._colO, KEY.^coll

28 Map 1 [SIMPLE_EDGE] vectorized

29 SHUFFLE [RS_17]

30 PartitionCols: rand()

31 Group By Operator [GBY^161 (rows=736805/99852 width=182)

32 Output:[n_colOn,n_colln,n_col2",n_col3n,n_col4n,n_col5n],

33 aggregations: f" count ()"," sum (_ col 1)"," count (_ col 1)"," sum (_ col2)" ] ,keys: _ colO, _ col 1

34 Select Operator [SEL_15] (rows=736805/100000 width=182)

35 Output:f"_colO","_coll","_col2"] TableScan [TS__0] (rows=736805/100000 width=182)

36 default@questionnairelm,questionnairelm, Tbl:COMPLETE,Col:NONE,Output:f"device","q6"1

Таблица 5. План выполнения запроса 2 в PostgreSQL Table 5. Query plan for the query 2 in ProstgreSQL

№ Query plan

0 Seq Scan on questionnaire (cost=0.00..288935.00 rows=3341100 width=14) (actual time=0.027..1321.974 rows=3333439 loops=l)

1 Filter: ((device) :: text = 'Mobile':: text)

2 Rows Removed by Filter: 6666561

54 В. А. Белов, Д. Ю. Ильин, Е. В. Никульчев

Таблица 6. План выполнения запроса 2 в Apache Hive Table 6. Query plan for the query 2 in Apache Hive

№ Query plan

1 Stage—0

2 Fetch Operator

3 limit:—1

4 Stage—1

5 Map 1 vectorized

6 File Output Operator [FS_7]

7 Select Operator [SEL^e] (rows= 18419603/16670622 width=564)

8 Output: [" _col0"," _coll"]

9 Filter Operator [FIL_5] (rows=18419603/16670622 width=564) predicate:(device = 'Mobile')

10 TableScan [TS_0] (rows=36839206/50000010 width=564) default@questionnaire, questionnaire,

11 Tbl:COMPLETE,Col:NONE,Output:f,,name^,,surname","device"!

Запрос, выполняемый СУБД PostgreSQL, проходит следующие этапы реализации (см, табл. 3), На этапе Group Aggregate формируется таблица соответствия ключа, которым выступает параметр агрегации (в данном случае поле device), и текущей строки. Особенностью этой операции является необходимость сортировки по данному ключу. Затем выполняется расчет всех необходимых статистик,

В запросе, выполняемом фреймворком Apache Hive, более сложная логика (см, табл. 4), Связано это с необходимостью Shuffle-операции, т.е. перемешивания данных между рабочими контейнерами. Это наиболее "дорогая" операция при работе с большими данными, поскольку требует передачи больших объемов информации по сети.

Второй запрос более простой, В данном случае СУБД PostgreSQL (см, табл. 5) проходит по всему набору данных. Единственной выполняемой при проходе набора операцией является фильтрация по указанному параметру. При использовании файлов Apache Parquet алгоритм выборки изменен, По приведенному плану (см, табл. 6) можно заметить, что изначально выбираются лишь нужные колонки, а затем происходит сканирование, при котором уже нет необходимости удалять лишние колонки, а фильтрация выполняется на основе одного параметра.

Важно также отметить разницу в обработке данных. При использовании кластера СУБД PostgreSQL большая часть запросов попадает на главный сервер, в то время как Apache Hive распределяет весь набор на несколько контейнеров, каждый из которых обрабатывает лишь часть общего набора,

3. Дискуссия

Особенностью настоящего исследования является тот факт, что оценка инструментов хранения формировалась на основе запросов по выборке данных с дополнительными условиями по их обработке и вычислению статистических величин. Такой подход вызван несколькими причинами. Во-первых, системы обработки больших данных поддерживают принцип WORM (Write Once — Read Many), предполагающий однократную запись данных без последующих изменений. Отсюда следует, что описанные системы имеют абсолютно разные подходы к записи и обновлению данных. Однако они имеют схожий способ выборки данных, что позволяет проводить исследование на запросах

выборки данных. Во-вторых, описанная схема представляет собой первый уровень обработки данных — так называемые сырые данные, которые требуют следующих этапов обработки. Часто задачи сводятся к построению таких структур, в которых данные хранятся в заранее обработанном виде, К таким задачам можно отнести разработку витрин данных [23], отчетов, OLAP-кубов [24],

Следует обратить внимание на то, что структура выбранного набора данных статична, тогда как структура опросников часто изменяется, что говорит о необходимости рассмотреть возможность анализа эффективности инструментов обработки слабоструктурированных данных, таких как документные базы данных [25],

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

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

Заключение

Предложенная методика сравнительной экспериментальной оценки эффективности форматов данных состоит из пяти шагов:

1) выбор двух или более альтернативных способов хранения данных;

2) формирование экспериментального стенда на виртуальной имитационной вычислительной инфраструктуре;

3) подготовка экспериментальных запросов;

4) экспериментальная оценка характеристик на запуске одного и нескольких одновременно запущенных запросов;

5) проведение исследований на разных объемах данных для оценки динамики характеристик эффективности,

С использованием предложенной методики проведена оценка двух способов хранения данных: в реляционной базе данных и в виде файлов колоночного формата, В качестве реляционной базы данных выбрана система управления базами данных PostgreSQL, В качестве альтернативы выбрана связка Apache Hive и Apache Parquet, В последние годы эти два инструмента стали де-факто стандартом для хранения и обработки больших данных.

Основными исследуемыми характеристиками эффективности выбраны занимаемый объем данных, время обработки данных, а также используемые аппаратные ресурсы. Для проведения эксперимента со временем обработки данных подготовлены два SQL-запроса для PostgreSQL и аналогичные для Apache Hive,

Результат подтвердил целесообразность использования реляционной базы данных для относительно небольших объемов данных и необходимость рассмотрения альтернативных способов хранения данных при значительном увеличении объема. Однако следует отметить, что полученные результаты не являются эталонными. Системы обработки больших данных зависимы от выставленных настроек, отчего результаты аналогичных испытаний могут различаться.

Благодарности. Работа выполнена при финансовой поддержке гранта РТУ МИРЭА "Инновации в реализации приоритетных направлений развития науки и технологий" (проект НИЧ 28/22).

Приложение А

Disk read/write bytes

47.68 МиБ/с

Disk IOPS

400iops

13:50 14:00

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

13:50 14:00

CPU usage

21:15 21:20

Disk read/write bytes

Memory usage

16,30 ГиБ 13,97 ГиБ

Disk IOPS 300 raps

ЛЛМЛЛЛ

Рис. ПА1. Использование аппаратного обеспечения на главном узле сов 1 (а) и 2 (б) при 15 работающих потоках

Fig. ПА1. PostgreSQL main node hardware resource utilization for 15 simultaneous requests

PostgreSQL для запро-processing query 1 for

a

CPU Utilization

ÍQ%

Disk bytes

ЗТОКБ/с

Disk operations

8 i ops

CPU Utilization

60%

Disk bytes

d MF.'r ЗМБГс 2 UBC

b'C -

Рис. ПА2. Использование аппаратного обеспечения на главном узле Apache Hive для запросов 1 и 2 (а и 5 соответственно) при 15 работающих потоках

Fig. ПА2. Apache Hive main node hardware resource utilization for processing queries 1 and 2 (a and б respectively) for 15 simultaneous requests

a

Приложение Б

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

Дня проведения исследования на кластере Apache Hive применены настройки но умолчанию. Однако некоторые из них изменены во избежание проблемы переполнения контейнеров обработки данных, известной как data skew. В табл. ПБ2 приведены основные настройки, оказывающие влияние на оптимизацию экспериментальных запросов.

Таблица ПБ1. Свойства базы данных PostgreSQL Table ПБ1. PostgreSQL database properties

Свойство Значение

autovacuuni on

autovacuuni_analyzo_scalo_factor 0.0001

autovacuuni_analyzo_throshold 50

autovacuuni_froozo_niax_ago 200000000

autovacuuni _ niax_ workers 4

autovacuuni_niultixact_froozo_niax_ago 200000000

autovacuuni_naptinio 15s

autovacuuni_vacuuni_cost_dolay 35ms

autovacuuni _ vacuum _ cost _ limit 1000

autovacuuni_vacuuni_insort_scalo_factor 0.2

autovacuuni_vacuuni_insort_ threshold 1000

autovacuuni_vacuuni_scalo_factor lc-05

autovacuuni_vacuuni_throshold 200

backond_flush_aftor 0

bgwritor_dolay 200ms

Продолжение табл. ПБ1

Свойство Значение

bgwriter _ flush _ after 512kB

bgwriter _ lru _ maxpages 100

block^size 8192

commit _ delay 0

commit siblings 5

compute_query_id auto

cpu_index_tuple_cost 0.005

cpu_operator_cost 0.0025

cpu_tuple_cost 0.01

cursor_tuple_fraction 0.1

data_ checksums on

deadlock^timeout Is

enable_async_append on

enable^bitmapscan on

enable^gathermerge on

enable^hashagg on

enable^hashjoin on

enable^ incremental _ sort on

enable_ indexonlyscan on

enable^ indexscan on

enable^ material on

enable memoize on

enable^mergejoin on

enable^nestloop on

enable_parallel_append on

enable^ parallel _ hash on

enable^partition ^pruning on

enable^seqscan on

enable^sort on

enable^tidscan on

escape_string_ warning on

extra^float _ digits 3

geqo on

geqo_effort 5

geqo^generations 0

geqo_pool_size 0

geqo^seed 0

geqo_ selection _ bias 2

geqo^threshold 12

hot _ standby on

hot_standby_feedback on

huge_page_size 0

jit_above_cost 100000

j it _ expressions on

j it _ inline _ above _ cost 500000

Продолжение табл. ПБ1

Свойство Значение

jit;_optimize _ above _ cost 500000

j it _ tuple _ deforming on

lc_ collate С

lc_ctype С

maintenance work mem 64MB

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

max_index_keys 32

min dynamic shared memory 0

min _ parallel _ index_ scan _ size 512kB

min _ parallel stable _ scan _ size 8MB

parallel _ leader _ participation on

parallel _ setup _ cost 1000

parallel _ tuple _ cost 0.1

pg_stat_kcache.linux_hz 1000000

pg_stat_statements.max 10000

pg_stat_statements.save on

pg_stat_statements.track all

plan_cache_mode auto

post _ auth _ delay 0

pre _auth_ delay 0

update_process_title on

vacuum_cost_delay 0

vacuum_cost_limit 200

vacuum_ cost _ page _ dirty 20

vacuum_ defer _ cleanup _ age 0

vacuum_failsa£e_age 1600000000

vacuum_freeze _ min _ age 50000000

vacuum_freeze_table_age 150000000

vacuum_multixact_failsafe_age 1600000000

vacuum_multixact_freeze_min_age 5000000

vacuum_multixact_freeze_table_age 75000000

work mem 4MB

Таблица ПБ2. Свойства Apache Hive Table ПБ2. Apache Hive properties

Свойство Значение

hive. combine.equivalent, work.optimization true

hive. compute.query.using.stats true

hive. compute.splits. in. am true

hive. constraint. notnull. enforce true

hive. driver. parallel. compilation false

hive. groupby. limit. extrastep true

hive. groupby.mapaggr.checkinterval 100000

hive. groupby.orderby.position, alias false

hive.groupby.position. alias false

Продолжение табл. ПБ2

Свойство Значение

hive. groupby.skewindata true

hive. hashtable. initialCapacity 100000

hive. hashtable. key. count, adjustment 2.0

hive. hashtable. loadfactor 0.75

hive. heap, memory, monitor, usage, threshold 0.7

hive, limit .optimize.enable false

hive. limit. optimize, fetch. max 50000

hive, limit .optimize, limit. file 10

hive, limit .pushdown.memory.usage 0.1

hive, limit .row.max.size 100000

hive. load. dynamic, partitions, thread 15

hive. map.aggr true

hive. map.aggr.hash.force. flush. memory, threshold 0.9

hive. map.aggr.hash.min.reduction 0.5

hive. map. aggr. hash, percentmemory 0.5

hive. map.groupby.sorted true

hive. mapper.cannot.span.multiple.partitions false

hive. mapred.local.mem 0

hive. mapred. partitioner org. apache.hadoop.hive.ql.io.

DefaultHivePartitioner

hive. mapred.reduce.tasks.speculative. execution true

hive. max.open.txns 100000

hive. merge, cardinality. check true

hive. merge.mapfiles true

hive. merge.mapredfiles false

hive. merge, nway. joins true

hive. merge. size. per. task 2.56E+08

hive. metadata.move.exported.metadata.to.trash true

hive. multigroupby.singlereducer true

hive. new.job.grouping.set. cardinality 30

hive. optimize, bucketingsorting true

hive. optimize.bucketmapjoin false

hive. optimize.bucketmapjoin.sortedmerge false

hive. optimize. constant. propagation true

hive, optimize, correlation false

hive. optimize, countdistinct true

hive. optimize, cte. materialize. threshold -1

hive.optimize.distinct .rewrite true

hive. optimize.dynamic.partition.hashjoin false

hive.optimize, filter . stats.reduction false

hive. optimize, groupby true

hive.optimize.index, filter false

hive. optimize.joinreducededuplication true

hive. optimize, limittranspose false

hive. optimize, limittranspose. reductionpercentage 1.0

Продолжение табл. ПБ2

Свойство Значение

hive. optimize, limittranspose. reductiontuples 0

hive, optimize, listbucketing false

hive. optimize, metad ataonly false

hive. optimize, null. scan true

hive. optimize, partition . columns.separate true

hive. optimize, point. lookup true

hive. optimize, point. lookup, min 31

hive. optimize, ppd true

hive. optimize.ppd.storage true

hive. optimize, ppd. windowing true

hive. optimize, reducededuplication true

hive. optimize. reducededuplication .min. reducer 4

hive. optimize.remove.identity. project true

hive. optimize.remove.sq_count_check false

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

hive. optimize, sampling, orderby false

hive. optimize, sampling, orderby.number 1000

hive. optimize, sampling, orderby.percent 0.1

hive. optimize.semijoin. conversion true

hive. optimize. shared. work true

hive. optimize. shared. work, extended true

hive. optimize. skewj oin true

hive. optimize. skewj oin. compiletime true

hive. optimize, sort. dynamic.partition true

hive. optimize.union.remove false

hive. optimize.update.table. properties. from.serde false

hive. optimize, update.table. properties. from.serde. org. apache, hadoop. hive. serde2.avro.

list AvroSerDe

hive. parquet.timestamp.skip.conversion false

hive. support.concurrency false

hive. vectorized. adaptor.suppress.evaluate. false

exceptions

hive. vectorized. adaptor.usage.mode all

hive. vectorized. complex.types.enabled true

hive. vectorized. execution .enabled true

hive, vectorized .execution.mapjoin.minmax.enabled false

hive, vectorized .execution.mapjoin.native.enabled true

hive, vectorized .execution.mapjoin.native.fast. false

hashtable .enabled

hive, vectorized .execution.mapjoin.native.multikey. false

only, enabled

hive, vectorized .execution.mapjoin.overflow. -1

repeated.threshold

hive. vectorized. execution. ptf. enabled true

hive, vectorized .execution.reduce.enabled true

hive, vectorized .execution.reduce.groupby.enabled true

Продолжение табл. ПБ2

Свойство

Значение

hive, vectorized .execution.reducesink.new.enabled

true

hive. vectorized. groupby.checkinterval

100000

hive, vectorized .groupby.complex. types, enabled

true

hive. vectorized. groupby.flush. percent

0.1

hive. vectorized. groupby. maxentries

1000000

hive, vectorized .input.format.supports.enabled

decimal 64

hive. vectorized count

, ptf. max. memory, buffering, batch.

25

hive. vectorized. reuse. scratch. columns

true

hive. vectorized. row. identifier . enabled

true

hive, vectorized .row.serde.inputformat.excludes

org. apache, parquet .hadoop.

Par quetlnputFormat, org. apache .hadoop. hive

.ql.io. parquet. MapredParquetlnputFormat

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

fl] Gusev A., Ilin D., Kolyasnikov P., Nikulchev E. Effective selection of software components based on experimental evaluations of quality of operation. Engineering Letters. 2020; 28(2):420-427.

[2] Belov V., Tatarintsev A., Nikulchev E. Choosing a data storage format in the Apache Hadoop system based on experimental evaluation using Apache Spark. Symmetry. 2021; 13(2):195.*DOI:10.3390/syml3020195.

[3] PostgreSQL. Адрес доступа: http://www.postgresql.org (дата обращения 31.01.2022).

[4] Andjelic S., Obradovic S., Gacesa B. A performance analysis of the DBMS — MySQL vs PostgreSQL. Communications — Scientific Letters of the University of Zilina. 2008; 10(4):53—57.

[5] Lee S., Jo J.Y., Kim Y. Survey of data locality in Apache Hadoop. 2019 IEEE International Conference on Big Data, Cloud Computing, Data Science k, Engineering (BCD). Honolulu, USA; 2019: 46-53.

[6] Camacho-Rodriguez J., Chauhan A., Gates A., Koifman E., O'Malley O., Garg V., Haindrich Z., Shelukhin S., Jayachandran P., Seth S., Jaiswal D., Bouguerra S., Bangarwa N., Hariappan S., Agarwal A., Dere J., Dai D., Nair Т., Dembla N., Vijayaraghavan G., Hagleitner G. Apache Hive: from MapReduce to enterprise-grade Big Data warehousing. Proceedings of the 2019 International Conference on Management of Data (SIGMOD'19). N.Y., USA: Association for Computing Machinery; 2019: 1773-1786. DOLIO. 1145/3299869.3314045.

[7] Apache Parquet. Адрес доступа: https: //parquet. apache. org/documentation/latest (дата обращения 31.01.2022).

[8] Alasta A.F., Enaba M.A. Data warehouse on manpower employment for decision support system. International Journal of Computing, Communication and Instrumentation Engineering. 2014; (1):48—53.

[9] Cappa F., Oriani R., Peruffo E., McCarthy I.P. Big Data for creating and capturing value in the digitalized environment: unpacking the effects of volume, variety and veracity on firm performance. Journal of Product Innovation Management. 2021; 38(1):49—67.

[10] Martins P., Tome P., Wanzeller С., Sa F., Abbasi М. Comparing Oracle and PostgreSQL, performance and optimization. Trends and Applications in Information Systems and Technologies. Springer, Cham; 2021: 1366. DOI:10.1007/978-3-030-72651-5_46.

[11] Truica C.-O., Boicea A., Radulescu F. Asynchronous replication in Microsoft SQL Server, PostgreSQL and MySQL. International Conference on Cyber Science and Engineering. China, Guangzhou; 2013: 50-55.

[12] Li Y., Manoharan S. A performance comparison of SQL and NoSQL databases. 2013 IEEE Pacific Rim Conference on Communications, Computers and Signal Processing (PACRIM). 2013: 15-19. D01:10.1109/PACRIM.2013.6625441.

[13] Cattell R. Scalable SQL and NoSQL data stores. SIGMOD Record. 2010; 39( !):12 27. DOLIO.1145/1978915.1978919.

[14] Parker Z., Рое S., Vrbsky S. Comparing NoSQL MongoDB to an SQL DB. Proceedings of the 51st ACM Southeast Conference (ACMSE'13). N.Y., USA: Association for Computing Machinery; 2013: 1-6. DOLIO.1145/2498328.2500047.

[15] Jung M., Youn S., Bae J., Choi Y. A study on data input and output performance comparison of MongoDB and PostgreSQL in the Big Data environment. 2015 8th International Conference on Database Theory and Application (DTA). Jeju, Korea (South): IEEE; 2015: 14-17. D01:10.1109/DTA.2015.14.

[16] Kumar R., Gupta N., Charu Sh., Bansal S., Yadav K. Comparison of SQL with HiveQL. International Journal for Research in Technological Studies. 2014; 1(9):28—30.

[17] Ahmed S., Ali M.U., Ferzund J., Sarwar M.A., Rehman A., Mehmood A.

Modern data formats for Big Bioinformatics Data analytics. International Journal of Advanced Computer Science and Applications. 2017; 8(4):366-377. D01:10.14569/IJACSA.2017.080450.

[18] Plase D., Niedrite L., Taranovs R. A comparison of HDFS compact data formats: Avro Versus Parquet. Mokslas-Lietuvos Ateitis/Science-Future of Lithuania. 2017; 9(3):267-276.

[19] Изергин Д.А., Еремеев M.A., Магомедов Ш.Г., Смирнов С.И. Оценка уровня информационной безопасности мобильной операционной системы Android. Russian Technological Journal. 2019; 7(6): ii 55. DOL10.32362/2500-316X-2019-7-6-44-55.

[20] Nikulchev E., Ilin D., Gusev A. Technology stack selection model for software design of digital platforms. Mathematics. 2021; 9(4):308. D01:10.3390/math9040308.

[21] Patroni. Адрес доступа: https://patroni.readthedocs.io/en/latest (дата обращения 01.03.2022).

[22] etcd. Адрес доступа: https://etcd.io (дата обращения 01.03.2022).

[23] Belov V., Kosenkov A.N., Nikulchev E. Experimental characteristics study of data storage formats for data marts development within Data Lakes. Applied Sciences. 2021; 11(18):8651. DOI: 10.3390/appl 1188651.

[24] Chaudhuri S., Dayal U. An overview of data warehousing and OLAP technology. SIGMOD Record. 1997; 26(l):65-74. D01:10.1145/248603.248616.

[25] Popescul A., Flake G.W., Lawrence S., Ungar L.H., Giles C.L. Clustering and identifying temporal trends in document databases. Proceedings IEEE Advances in Digital Libraries 2000. Washington, USA; 2000: 173-182. D01:10.1109/ADL.2000.848380.

[26] Li D., Han L., Ding Y. SQL query optimization methods of relational database system. 2010 Second International Conference on Computer Engineering and Applications. Bali, Island; 2010: 557-560. DOLIO.1109/ICCEA.2010.113.

Вычислительные технологии, 2022, том 27, № 3, с. 46-65. © ФИЦ ИВТ, 2022 ISSN 1560-7534

Computational Technologies, 2022, vol. 27, no. 3, pp. 46-65. © FRC ICT, 2022 elSSN 2313-691X

INFORMATION TECHNOLOGIES

DOI: 10.25743/ICT.2022.27.3.005 Comparative evaluation of the efficiency of data processing by storing the data in a relational database and column format files

Belov Vladimir A., Ilin Dmitry Yu., Nikulchev Evgeny V.*

MIREA — Russian Technological University, 119454, Moscow, Russia

*

Received April 01, 2022, revised April 12, 2022, accepted April 18, 2022.

Abstract

Purpose. In the process of developing information and analytical systems, the choice of the most effective tool for data storage is important. The purpose of the presented study is to compare the data processing features for various data storage tools. Analysis of these features in the dynamics of the growth of the data volume is an important issue.

Methodology. Stands were prepared for experimental evaluation of the two presented alternatives. As evaluation criteria, the data volume, processing time, the use of RAM and processor resources as well as the dynamics of changes in the characteristics with a change in the data volume was chosen. Two data queries were prepared that contain different requirements for obtaining results: filtering and data aggregation. For evaluation, both one and several simultaneously running queries were launched.

Findings. Numerical characteristics of the examined criteria were obtained. The processing speed when using a relational database was several times higher than the results obtained when using a big data processing system. As the volume of data grows, big data processing systems perform better. Regarding characteristics such as the data volume, the use of column formats is more efficient for any amount of data.

Value. The results showed the feasibility of using a relational database with small amounts of data. As the volume of data grows, it is necessary to use alternative ways of storing and processing data, which suggests that when designing a system, not only the analysis of the data structure is required, but also the estimated volume.

Keywords: big data, data storage formats, relational databases, PostgreSQL, Apache Hive. Citation: Belov V.A., Ilin D.Yu., Nikulchev E.V. Comparative evaluation of the efficiency of data processing by storing the data in a relational database and column format files. Computational Technologies. 2022; 27(3):46-65. D01:10.25743/ICT.2022.27.3.005. (In Russ.)

Acknowledgements. The work is supported by RTU MIREA, grant "Innovations in the realization of priority areas for the development of science and technology" (project NICh 28/22).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

References

1. Gusev A., Ilin D., Kolyasnikov P., Nikulchev E. Effective selection of software components based on experimental evaluations of quality of operation. Engineering Letters. 2020; 28(2):420-427.

2. Belov V., Tatarintsev A., Nikulchev E. Choosing a data storage format in the Apache Hadoop system based on experimental evaluation using Apache Spark. Symmetry. 2021; 13(2):195. DOI: 10.3390/ syml3020195.

3. PostgreSQL. Available at: http://www.postgresql.org (accessed January 31, 2022).

4. Andjelic S., Obradovic S., Gacesa B. A performance analysis of the DBMS — MySQL vs PostgreSQL. Communications — Scientific Letters of the University of Zilina. 2008; 10(4):53-57.

5. Lee S., Jo J.Y., Kim Y. Survey of data locality in Apache Hadoop. 2019 IEEE International Conference on Big Data, Cloud Computing, Data Science & Engineering (BCD). Honolulu, USA; 2019: 46-53.

6. Camacho-Rodriguez J., Chauhan A., Gates A., Koifman E., O'Malley O., Garg V., Haindrich Z., Shelukhin S., Jayachandran P., Seth S., Jaiswal D., Bouguerra S., Bangarwa N., Hariappan S., Agarwal A., Dere J., Dai D., Nair T., Dembla N., Vijayaraghavan G., Hagleitner G. Apache Hive: from MapReduce to enterprise-grade Big Data warehousing. Proceedings of the 2019 International Conference on Management of Data (SIGMOD'19). N.Y., USA: Association for Computing Machinery; 2019: 1773-1786. D01:10.1145/3299869.3314045.

7. Apache Parquet. Available at: https://parquet.apache.org/documentation/latest.

8. Alasta A.F., Enaba M.A. Data warehouse on manpower employment for decision support system. International Journal of Computing, Communication and Instrumentation Engineering. 2014; (l):48-53.

9. Cappa F., Oriani R., Peruffo E., McCarthy I.P. Big Data for creating and capturing value in the digitalized environment: unpacking the effects of volume, variety and veracity on firm performance. Journal of Product Innovation Management. 2021; 38(l):49-67.

10. Martins P., Tome P., Wanzeller C., Sa F., Abbasi M. Comparing Oracle and PostgreSQL, performance and optimization. Trends and Applications in Information Systems and Technologies. Springer, Cham; 2021: 1366. DC)I:10.1007/978-3-030-72651-5_46.

11. Truica C.-O., Boicea A., Radulescu F. Asynchronous replication in Microsoft SQL Server, PostgreSQL and MySQL. International Conference on Cyber Science and Engineering. China, Guangzhou; 2013: 50-55.

12. Li Y., Manoharan S. A performance comparison of SQL and NoSQL databases. 2013 IEEE Pacific Rim Conference on Communications, Computers and Signal Processing (PACRIM). 2013: 15-19. DOI: 10.1109/PACRIM. 2013.6625441.

13. Cattell R. Scalable SQL and NoSQL data stores. SIGMOD Record. 2010; 39(1): 12 27. DOI: 10.1145/1978915.1978919.

14. Parker Z., Poe S., Vrbsky S. Comparing NoSQL MongoDB to an SQL DB. Proceedings of the 51st ACM Southeast Conference (ACMSE'13). N.Y., USA: Association for Computing Machinery; 2013: 1-6. DOI: 10.1145/2498328.2500047.

15. Jung M., Youn S., Bae J., Choi Y. A study on data input and output performance comparison of MongoDB and PostgreSQL in the Big Data environment. 2015 8th International Conference on Database Theory and Application (DTA). Jeju, Korea (South): IEEE; 2015: 14-17. D01:10.1109/DTA.2015.14.

16. Kumar R., Gupta N., Charu Sh., Bansal S., Yadav K. Comparison of SQL with HiveQL. International Journal for Research in Technological Studies. 2014; l(9):28-30.

17. Ahmed S., Ali M.U., Ferzund J., Sarwar M.A., Rehman A., Mehmood A. Modern data formats for Big Bioinformatics Data analytics. International Journal of Advanced Computer Science and Applications. 2017; 8(4):366-377. D01:10.14569/IJACSA.2017.080450.

18. Plase D., Niedrite L., Taranovs R. A comparison of HDFS compact data formats: Avro Versus Parquet. Mokslas-Lietuvos Ateitis/Science-Future of Lithuania. 2017; 9(3):267-276.

19. Izergin D.A., Eremeev M.A., Magomedov S.G., Smirnov S J. Information security evaluation for Android mobile operating system. Russian Technological Journal. 2019; 7(6): 11 55. DOI: 10.32362/2500-316X-2019-7-6-44-55. (In Russ.)

20. Nikulchev E., Ilin D., Gusev A. Technology stack selection model for software design of digital platforms. Mathematics. 2021; 9(4):308. D01:10.3390/math9040308.

21. Patroni. Available at: https://patroni.readthedocs.io/en/latest (accessed March 01, 2022).

22. etcd. Available at: https://etcd.io (accessed March 01, 2022).

23. Belov V., Kosenkov A.N., Nikulchev E. Experimental characteristics study of data storage formats for data marts development within Data Lakes. Applied Sciences. 2021; 11(18):8651. DOI: 10.3390/ appl 1188651.

24. Chaudhuri S., Dayal U. An overview of data warehousing and OLAP technology. SIGMOD Record. 1997; 26(l):65-74. D01:10.1145/248603.248616.

25. Popescul A., Flake G.W., Lawrence S., Ungar L.H., Giles C.L. Clustering and identifying temporal trends in document databases. Proceedings IEEE Advances in Digital Libraries 2000. Washington, USA; 2000: 173-182. D01:10.1109/ADL.2000.848380.

26. Li D., Han L., Ding Y. SQL query optimization methods of relational database system. 2010 Second International Conference on Computer Engineering and Applications. Bali, Island; 2010: 557-560. D01:10.1109/ICCEA.2010.113.

i Надоели баннеры? Вы всегда можете отключить рекламу.