Технологии

Оптимальные форматы обмена данными в распределенных системах

Владимир Агамиров, кандидат технических наук, доцент кафедры «Бизнес-информатика» Факультета цифровой экономики и массовых коммуникаций МТУСИ

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

В настоящее время структуры передаваемых данных подразделяются на табличные (формат CSV) и иерархические (формат JSON).

Рассмотрим систему обмена данными на примере распределенной системы, часть звеньев которой хранит данные в распределенной базе данных ClickHouse (разработка Яндекс), представляющей собой кластер из главного сервера и нескольких (десятков/сотен) серверов, на которых осуществляется распределение и репликация данных, которая имеет встроенные инструменты обмена в реальном времени как в формате CSV, так и в формате JSON.

Типы источников данных для обмена на базе ClickHouse [4]:

Локальный файл (CSV, JSON)

HTTP(s)

Другие базы данных:

ODBC

MySQL

3.3. ClickHouse

3.4 MongoDB

3.5 Redis

3.6 Cassandra

3.7 PostgreSQL

Наличие процедуры обмена локальными файлами по протоколу HTTP и другими современными базами данных (в том числе с другими экземплярами баз данных ClickHouse) обеспечивает возможность для звеньев распределенной системы на базе ClickHouse обмениваться данными в формате CSV и JSON через Интернет между собой, а также с другими звеньями распределенной системы.

Для реализации такого обмена на главном сервере кластера распределенной базы ClickHouse в файле конфигурации настраивается связь с источниками данных из вышеуказанного списка. Причем каждый источник группы 1 (локальный файл CSV, JSON) является источником переменной структуры, но с постоянным местоположением на главном сервере кластера (примеры 1 и 2).

Пример 1: настройка одного из источников группы 1 (локальный файл CSV, JSON) на сервере ClickHouse – csv-файл «ext-dict-test.csv» в папке /home/av/dict/, где av – [имя пользователя] (путь к этому файлу указан в файле конфигурации главного сервера кластера):

Пример 2: команды (на языке SQL), осуществляющие связь распределенных таблиц базы ClickHouse с источником из Примера 1 (файлом CSV):

SELECT * FROM dictionary(‘ext-dict-test’);

Пример результата выполнения команды (выбрана часть данных):

  1. SELECT dictGetOrDefault(‘ext-dict-test’, ‘c1’, number + 1, toUInt32(number * 10)) AS val, toTypeName(val) AS type, number + 1 as num 

FROM system.numbers 

LIMIT 4; 

Пример результата выполнения команды (выбрана часть данных): 

Ко второй группе относятся данные обновляемые в реальном времени через Интернет в форматах CSV или JSON соответственно из других источников группы 3 (других баз данных). При этом каждый источник группы 1 (локальный файл CSV, JSON) связан с отдельными распределенными таблицами кластера ClickHouse, таким образом замыкая процесс обмена данными в реальном времени между узлами рассматриваемой распределенной системы. 

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

Сергей Гатауллин, декан Факультета «Цифровая экономика и массовые коммуникации» МТУСИ  

Наборы данных и больших данных являются основой цифровой экономики. «Данные – новая нефть», эта цитата основателя одной из крупнейших в мире компаний в сфере электронной коммерции стала девизом всех без исключения бигтехов современности. Технологии обработки больших данных и искусственного интеллекта тесно связаны и должны обеспечить в ближайшем десятилетии прирост национального ВВП на уровне 1-2 %.  

Статьи по теме

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

2 × два =

Кнопка «Наверх»