| Περιγραφή: |
В данной работе изложена концепция создания и экспериментального исследования программной системы, обеспечивающей централизованный SQL-интерфейс в запросах к гетерогенным базам данных (PostgreSQL, Oracle, MySQL, MongoDB, Redis, Cassandra). Рассмотрены реляционные и нереляционные базы данных, структура SELECT-запроса и его диалектические отличия между PostgreSQL, Oracle, MySQL. Проанализированы существующие методы извлечения и объединения данных из гетерогенных базах данных. Рассмотрены инструменты распределенной обработки данных, парсинга, а также методы детектирования диалекта SQL. Предложена и спроектирована архитектура системы извлечения данных на основе Apache Spark и SQLGlot. Разработан прототип системы, поддерживающей детектирование диалектов SQL Oracle Database, PostgreSQL, MySQL и распараллеливание процессов обработки разнородных данных. Проведено тестирование на наборе данных IMDb, в ходе которого была измерена производительность системы при выполнении SQL-запросов различной сложности. Результаты показали, что система успешно обрабатывает многотабличные запросы на миллионах строк, корректно выполняет фильтрацию и поддерживает работу с диалектно-специфичными конструкциями. При взаимодействии с СУБД PostgreSQL, Oracle и MySQL система продемонстрировала сопоставимую, а в отдельных случаях — более высокую производительность по сравнению с существующими решениями. This paper describes the concept of creating and experimentally researching a software system that provides a centralized SQL interface for queries against heterogeneous databases (PostgreSQL, Oracle, MySQL, MongoDB, Redis, Cassandra). Relational and non-relational databases, the structure of the SELECT query and its dialectical differences between PostgreSQL, Oracle, MySQL are considered. The existing methods of extracting and combining data from heterogeneous databases are analyzed. Distributed data processing, parsing, and SQL dialect detection tools are considered. The architecture of a data extraction system based on Apache Spark and SQLGlot is proposed and designed. A prototype system has been developed that supports detection of SQL dialects Oracle Database, PostgreSQL, MySQL and parallelization of heterogeneous data processing processes. Testing was conducted on the IMDb dataset, during which the system performance was measured when executing SQL queries of varying complexity. The results showed that the system successfully processes multi-tabular queries on millions of rows, performs filtering correctly, and supports working with dialect-specific constructs. When interacting with PostgreSQL, Oracle, and MySQL databases, the system demonstrated comparable and, in some cases, higher performance compared to existing solutions. |