3. Структура программы

В данном разделе приведены сведения о структуре программы, ее составных частях, о связях между составными частями и о связях с другими программами.

3.1. Структура программы

Функционально, витрина данных НСУД состоит из следующих частей:

  • ProStore - Интеграционная система, обеспечивающая единый интерфейс к хранилищу разнородных данных. Определяет структуры данных, запись и чтение данных витрины. Позволяет работать со входящими в состав хранилища СУБД одинаковым образом, используя единый синтаксис запросов SQL и единую логическую схему данных.

  • СУБД хранилища:

  • Arenadata DB (ADB) — СУБД с массивно-параллельной архитектурой (Massive parallel processing, MPP), построенная на основе Greenplum;

  • Arenadata QuickMarts (ADQM) — кластерная колоночная СУБД на основе Yandex ClickHouse;

  • Arenadata Grid (ADG) — система распределенных вычислений в оперативной памяти, построенная на основе Tarantool.

  • СМЭВ3-адаптер – Необходим для подключения витрины к СМЭВ 3 как информационной системы участника взаимодействия. Обеспечивает загрузку запросов из очереди ИС УВ СМЭВ 3, формирование и отправку ответов в СМЭВ 3, инициативное формирование уведомлений об изменении данных в экземпляре ПО «Витрина данных НСУД» и отправку уведомлений в СМЭВ 3.

  • ПОДД-адаптер - Необходим для подключения витрины к ПОДД СМЭВ, как информационной системы участника взаимодействия. Обеспечивает загрузку запросов из очереди ИС УВ в ПОДД СМЭВ, формирование и отправку ответов в ПОДД СМЭВ, инициативное формирование уведомлений об изменении данных в экземпляре ПО «Витрина данных НСУД», отправку уведомлений в ПОДД СМЭВ, регистрацию реплики данных ИС УВ, подписки на репликацию и поддержку реплики в актуальном состоянии;

  • ETL - решение, используемое при выгрузке данных из различных источников ведомств и дальнейшего хранения их в Витрине ProStore для чтения, использования и взаимодействия с другими ведомствами;

  • REST-адаптер- сервис, реализующий публикацию конечных точек API для обработки запросов с использованием спецификации OpenAPI версии 3. Используется для сохранения обратной совместимости получения данных из ведомства по REST.

3.2. Составные части программы

3.2.1. Состав компонентов в дистрибутиве

Перечень типового ПО ведомственной витрины данных НСУД приведен в таблице ниже (см. Таблица 3.6)

Таблица 3.6 Состав типового ПО ведомственной витрины данных НСУД

Компонент

Версия

Дополнительно

Менеджер кластера (ADCM)

20 20.12.16.15-7aaf9b59

https:// docs.arenadata.io/ad cm/user/install.html

ProStore

3.4.0

ht tps://g.info.gov.ru/ datamart/nsud-datama rts/-/blob/master/%D 0%94%D0%B8%D1%81%D1% 82%D1%80%D0%B8%D0%B1 %D1%83%D1%82%D0%B8%D 0%B2%D1%8B%20%D0%9F% D0%9E%20%D0%92%D0%B8 %D1%82%D1%80%D0%B8%D 0%BD%20%D0%B4%D0%B0% D0%BD%D0%BD%D1%8B%D1 %85%20%D0%9D%D0%A1%D 0%A3%D0%94/%

JDBC-драйвер ProStore

3.4.0

ht tps://g.info.gov.ru/ datamart/nsud-datama rts/-/blob/master/%D 0%94%D0%B8%D1%81%D1% 82%D1%80%D0%B8%D0%B1 %D1%83%D1%82%D0%B8%D 0%B2%D1%8B%20%D0%9F% D0%9E%20%D0%92%D0%B8 %D1%82%D1%80%D0%B8%D 0%BD%20%D0%B4%D0%B0% D0%BD%D0%BD%D1%8B%D1 %85%20%D0%9D%D0%A1%D 0%A3%D0%94/%D0%94%D0 %B8%D1%81%D1%82%D1%8 0%D0%B8%D0%B1%D1%83% D1%82%D0%B8%D0%B2%D1 %8B%20DTM/Arena Data%20Core%20&%20Se rvices/aDTM-3.4.0-ma ster@c3279ff89d8.zip

Сервис мониторинга статусов Kafka (DTM .KafkaStatusMonitor)

3.4.0

ht tps://g.info.gov.ru/ datamart/nsud-datama rts/-/blob/master/%D 0%94%D0%B8%D1%81%D1% 82%D1%80%D0%B8%D0%B1 %D1%83%D1%82%D0%B8%D 0%B2%D1%8B%20%D0%9F% D0%9E%20%D0%92%D0%B8 %D1%82%D1%80%D0%B8%D 0%BD%20%D0%B4%D0%B0% D0%BD%D0%BD%D1%8B%D1 %85%20%D0%9D%D0%A1%D 0%A3%D0%94/%D0%94%D0 %B8%D1%81%D1%82%D1%8 0%D0%B8%D0%B1%D1%83% D1%82%D0%B8%D0%B2%D1 %8B%20DTM/Arena Data%20Core%20&%20Se rvices/aDTM-3.4.0-ma ster@c3279ff89d8.zip

Кластер серверов ADS Community Edition (Kafka, Zookeeper)

ADS: 1.5.0, включается в себя:

Kafka: 2.4,

Zookeeper: 3.5.6

https://store.ar enadata.io/#products /arenadata_streaming

Кластер серверов MPP-СУБД (ADB Community Edition)

6.13.0

Установка опциональна

https://ci .arenadata.io/artifa ctory/ADB/6.13.0_are nadata13/centos/7/en terprise/x86_64/kafk a-fdw-0.10-377.git3f e5e36.el7.x86_64.rpm

Кластер серверов Column-СУБД (ADQM Community Edition)

2.9

Установка опциональна

https://docs.aren adata.io/adqm/instal l/adcm/ru/index.html

https://clickhou se.tech/docs/ru/gett ing-started/install/

Кластер серверов In-memory-СУБД (ADG Community Edition)

2.5

Установка опциональна

Memstorage (mem storage-0.3.2-0.rpm)

https://g.info.gov.r u/datamart/nsud-data marts/-/blob/master/ %D0%94%D0%B8%D1%81%D 1%82%D1%80%D0%B8%D0% B1%D1%83%D1%82%D0%B8 %D0%B2%D1%8B%20%D0%9 F%D0%9E%20%D0%92%D0% B8%D1%82%D1%80%D0%B8 %D0%BD%20%D0%B4%D0%B 0%D0%BD%D0%BD%D1%8B% D1%85%20%D0%9D%D0%A1 %D0%A3%D0%94/%D0%94% D0%B8%D1%81%D1%82%D1 %80%D0%B8%D0%B1%D1%8 3%D1%82%D0%B8%D0%B2% D1%8B%20:DTM/Bun dles%20for%20ADCM/me mstorage-0.3.2-0.rpm

Kafka (librdkafka- 1.5.0-1.el7.x86_64.r pm)

https://g.i nfo.gov.ru/datamart/ nsud-datamarts/-/blo b/master/%D0%94%D0%B 8%D1%81%D1%82%D1%80% D0%B8%D0%B1%D1%83%D1 %82%D0%B8%D0%B2%D1%8 B%20%D0%9F%D0%9E%20% D0%92%D0%B8%D1%82%D1 %80%D0%B8%D0%BD%20%D 0%B4%D0%B0%D0%BD%D0% BD%D1%8B%D1%85%20%D0 %9D%D0%A1%D0%A3%D0%9 4/%D0%94%D0%B8%D1%81 %D1%82%D1%80%D0%B8%D 0%B1%D1%83%D1%82%D0% B8%D0%B2%D1%8B%20Pro store/Bundles%20for% 20ADCM/librdkafka-1. 5.0-1.el7.x86_64.rpm

Авро-схема (avroc-1.10 .0-1.el7.x86_64.rpm)

https:/ /g.info.gov.ru/datam art/nsud-datamarts/- /blob/master/%D0%94% D0%B8%D1%81%D1%82%D1 %80%D0%B8%D0%B1%D1%8 3%D1%82%D0%B8%D0%B2% D1%8B%20%D0%9F%D0%9E %20%D0%92%D0%B8%D1%8 2%D1%80%D0%B8%D0%BD% 20%D0%B4%D0%B0%D0%BD %D0%BD%D1%8B%D1%85%2 0%D0%9D%D0%A1%D0%A3% D0%94/%D0%94%D0%B8%D 1%81%D1%82%D1%80%D0% B8%D0%B1%D1%83%D1%82 %D0%B8%D0%B2%D1%8B%2 0DTM/Bundles%20 for%20ADCM/avroc-1.1 0.0-1.el7.x86_64.rpm

libzstd-1. 4.5-3.el7.x86_64.rpm

https:// g.info.gov.ru/datama rt/nsud-datamarts/-/ blob/master/%D0%94%D 0%B8%D1%81%D1%82%D1% 80%D0%B8%D0%B1%D1%83 %D1%82%D0%B8%D0%B2%D 1%8B%20%D0%9F%D0%9E% 20%D0%92%D0%B8%D1%82 %D1%80%D0%B8%D0%BD%2 0%D0%B4%D0%B0%D0%BD% D0%BD%D1%8B%D1%85%20 %D0%9D%D0%A1%D0%A3%D 0%94/%D0%94%D0%B8%D1 %81%D1%82%D1%80%D0%B 8%D0%B1%D1%83%D1%82% D0%B8%D0%B2%D1%8B%20 DTM/Bundles%20f or%20ADCM/libzstd-1. 4.5-3.el7.x86_64.rpm

Группа коннекторов Kafka Greenplum

3.4.0

http:// github.com/arenadata /kafka-pxf-connector

h ttps://github.com/ar enadata/kafka-adb-os

Группа коннекторов Kafka Clickhouse

3.4.0

https://github. com/arenadata/kafka- clickhouse-connector

Группа коннекторов Kafka Tarantool

3.4.0

Является частью ADG

СМЭВ3-адптер

3.4.0

http s://g.info.gov.ru/da tamart/nsud-datamart s/-/blob/master/%D0% 94%D0%B8%D1%81%D1%82 %D1%80%D0%B8%D0%B1%D 1%83%D1%82%D0%B8%D0% B2%D1%8B%20%D0%9F%D0 %9E%20%D0%92%D0%B8%D 1%82%D1%80%D0%B8%D0% BD%20%D0%B4%D0%B0%D0 %BD%D0%BD%D1%8B%D1%8 5%20%D0%9D%D0%A1%D0% A3%D0%94/%D0%94%D0%B 8%D1%81%D1%82%D1%80% D0%B8%D0%B1%D1%83%D1 %82%D0%B8%D0%B2%D1%8 B%20%D0%A1%D0%9C%D0% AD%D0%923%20%D0%90%D 0%B4%D0%B0%D0%BF%D1% 82%D0%B5%D1%80/smev3 -connector-3.4.1.jar

Установка опциональна

Сервисная база данных СМЭВ3 адаптера PostrgeSQL

10 и выше

Является частью СМЭВ3-адаптер

ПОДД-адаптер

3.4.0

https://g. info.gov.ru/datamart /nsud-datamarts/-/bl ob/master/%D0%94%D0% B8%D1%81%D1%82%D1%80 %D0%B8%D0%B1%D1%83%D 1%82%D0%B8%D0%B2%D1% 8B%20%D0%9F%D0%9E%20 %D0%92%D0%B8%D1%82%D 1%80%D0%B8%D0%BD%20% D0%B4%D0%B0%D0%BD%D0 %BD%D1%8B%D1%85%20%D 0%9D%D0%A1%D0%A3%D0% 94/%D0%94%D0%B8%D1%8 1%D1%82%D1%80%D0%B8% D0%B1%D1%83%D1%82%D0 %B8%D0%B2%D1%8B%20%D 0%9F%D0%9E%D0%94%D0% 94%20%D0%90%D0%B4%D0 %B0%D0%BF%D1%82%D0%B 5%D1%80/DTM-adapter- reader-das-3.4.0-3-2 0210323.072335-6.jar

Установка опциональна

База данных ПОДД коннектора «MariaDB»

10.5.3

Является частью ПОДД-адаптер

Диспетчер сообщений для PODD «Kafka» (ADSP)

2.4.0

Установка опциональна

https://store.ar enadata.io/#products /arenadata_streaming

ETL

Apache Airflow 2.0.1

Apache Spark 3.0.1

Apache Hadoop 3.2.1

Tarantool 6.13.0

Apache Airflow 2.0.1

https://github.co m/apache/airflow.git

Apache Spark 3.0.1

https://git hub.com/big-data-eur ope/docker-spark.git

Apache Hadoop 3.2.1

https://gith ub.com/big-data-euro pe/docker-hadoop.git

Tarantool 6.13.0

https://github.com/ tarantool/docker.git

REST-адаптер

1.0

https://g.info.gov. ru/datamart/nsud-dat amarts/-/blob/master /%D0%94%D0%B8%D1%81% D1%82%D1%80%D0%B8%D0 %B1%D1%83%D1%82%D0%B 8%D0%B2%D1%8B%20%D0% 9F%D0%9E%20%D0%92%D0 %B8%D1%82%D1%80%D0%B 8%D0%BD%20%D0%B4%D0% B0%D0%BD%D0%BD%D1%8B %D1%85%20%D0%9D%D0%A 1%D0%A3%D0%94/%D0%94 %D0%B8%D1%81%D1%82%D 1%80%D0%B8%D0%B1%D1% 83%D1%82%D0%B8%D0%B2 %D1%8B%20%D0%A1%D0%B 5%D1%80%D0%B2%D0%B5% D1%80%20%D0%9A%D0%BE %D0%BD%D0%B5%D1%87%D 0%BD%D1%8B%D1%85%20% D0%A2%D0%BE%D1%87%D0 %B5%D0%BA/swagger2pe bble-adapter-3.4.0-2 0210407.085926-8.jar

Установка опциональна

«Установка опциональна» означает - что необходимость установки компонента определяется из схемы развертывания витрины в конкретном ведомстве.

Конкретная конфигурация Витрины данных определяется Участником взаимодействия на этапе реализации Витрины данных в составе ИТ-инфраструктуры Участника взаимодействия.

Состав и назначение серверов, участвующих в функционировании типового ПО ведомственной витрины данных НСУД, приведено в Таблица 3.7.

Таблица 3.7 Состав и назначение серверов типового ПО ведомственной витрины данных НСУД

Компонент

Дополнительно

Менеджер кластера (ADCM)

Управляющая консоль

JDBC-драйвер ProStore

Предоставляет JDBC-интерфейс подключения из сторонних систем к ProStore`

ProStore (ядро Витрины)

Принимает и направляет на исполнение SQL запросы, поступающие от JDBC – драйвера. Отслеживает выполнение данных запросов.

Сервис мониторинга статусов Kafka (DTM.KafkaStatusMonitor)

Отслеживает состояние топиков брокера сообщений Kafka

Кластер серверов ADS Community Edition (Kafka, Zookeeper)

Брокер сообщений и сервисная СУБД (возможно несколько серверов)

Кластер серверов MPP-СУБД (ADB Community Edition)

MPP-СУБД

ADBM – первичный мастер

ADBS – хосты сегментов

(возможно несколько серверов)

Кластер серверов Column-СУБД (ADQM Community Edition)

Column-СУБД (возможно несколько серверов)

Кластер серверов In-memory-СУБД (ADG Community Edition)

In-memory-СУБД (возможно несколько серверов)

Группа коннекторов Kafka Greenplum

Коннекторы между Kafka и СУБД Greenplum (устанавливается вместе с СУБД)

Группа коннекторов Kafka Clickhouse

Коннекторы между Kafka и СУБД Clickhouse

(устанавливается отдельно)

Группа коннекторов Kafka Tarantool

Коннекторы между Kafka и СУБД Tarantool

(устанавливается вместе с СУБД)

СМЭВ3-адаптер

Установка опциональна

Сервисная база данных СМЭВ3 адаптера PostrgeSQL

Является частью СМЭВ3-адаптера

ПОДД Коннектор

Установка опциональна

База данных ПОДД-адаптера «MariaDB»

Является частью ПОДД-адаптера

Apache Airflow

Менеджер процессов Apache Spark, является частью ETL

Apache Spark

Фреймворк для реализации распределенной обработки неструктурированных и слабоструктурированных данных, является частью ETL. Состоит из:

Apache Spark мастер управляющий исполнителями Apache Spark ETL

Apache Spark исполнители ETL (несколько серверов)

Apache Hadoop

Набор утилит, библиотек и фреймворк для разработки и выполнения распределённых программ, работающих на кластерах из множества узлов

Tarantool

СУБД ETL (несколько серверов)

REST-адаптер

Публикатор конечных точек API

Установка опциональна

3.2.2. Схема развертывания

На рисунке ниже (см. Рисунок - 3.24) приведена схема развертывания для типового ПО ведомственной витрины данных НСУД

Схема развертывания

Рисунок - 3.24 Схема развертывания

3.3. Связи между составными частями

3.3.1. Общая архитектура решения

Схематичное отображение общей архитектуры решения приведено на рисунке ниже (см. Рисунок - 3.25)

Общая архитектура решения

Рисунок - 3.25 Общая архитектура решения

3.3.2. Архитектура ProStore

3.3.2.1. Схема компонентов ProStore

Схема компонентов ProStore представлена на рисунке ниже (см. Рисунок - 3.26).

Схема компонентов ProStore

Рисунок - 3.26 Схема компонентов ProStore

ПО ProStore включает в себя следующие части:

  • JDBC-драйвер – размещается на стороне системы, использующей ProStore (клиента ProStore), и предоставляет JDBC-интерфейс подключения из этой системы к ProStore; взаимодействует с сервисом исполнения запросов по REST API, предоставляемым сервисом исполнения запросов;

  • ProStore – анализирует и исполняет SQL-запросы; предоставляет REST API для JDBC-драйвер и взаимодействует с сервисом мониторинга статусов Kafka по REST API, предоставляемым сервисом мониторинга статусов Kafka;

  • сервис мониторинга статусов Kafka (KafkaStatusMonitor) – отслеживает состояние топиков брокера сообщений Kafka; предоставляет REST API для ProStore.

3.3.2.2. Связи ProStore с другими программами

ProStore взаимодействует со следующим внешним ПО:

  • информационной системой-клиентом (по JDBC-интерфейсу),

  • сервисной базой данных (по API ZooKeeper),

  • СУБД хранилища данных (по интерфейсу JDBC или REST API — в зависимости от типа СУБД хранилища данных),

  • адаптерами (по API адаптеров);

  • брокером сообщений Kafka (по API Kafka).

Схема взаимодействия ProStore с внешним ПО показана на Рисунок - 3.27

Схема взаимодействия ProStore с внешним ПО

Рисунок - 3.27 Схема взаимодействия ProStore с внешним ПО

3.3.3. Cвязи между составными частями

Взаимосвязи между составными частями витрины приведены в Таблица 3.8.

Таблица 3.8 Взаимодействие между составными частями

Клиент

Сервер

Способ взаимодействия

Описание

Сервисная СУБД

Ядро витрины

TCP

Хран ение/получение метаданных

СУБД хранилища

Apache Kafka

Адаптер ПОДД

ETL

Ядро витрины ProStore

Хранилище СУБД

JDBC

REST API

в зависимости от типа СУБД хранилища данных

П еренаправление запросов в конкретную СУБД

REST-адаптер

Ядро витрины

JDBC

Исполнение запросов

ETL

Ядро витрины

Kafka (Диспетчер сообщений)

JDBC

Исполнение запросов

ПОДД-адаптер

Ядро витрины

Kafka (Диспетчер сообщений)

JDBC

Исполнение запросов

СМЭВ3-адаптер

Ядро витрины

Kafka (Диспетчер сообщений)

JDBC

Исполнение запросов

3.3.4. Связи с другими программами

Связи витрины со сторонними программами приведены в см. Таблица 3.9.

Таблица 3.9 Связи с другими программами

Клиент

Сервер

Способ взаимодействия

Описание

ETL

Файловое хранилище ведомства

S3, FTP и т.п.

Считывание CSV файлов с данными, импортируемыми в витрину

ETL

БД ведомства

JDBC Driver

Считывание данных, импортируемых в витрину

Внутренняя ИС Ведомств

Сервер конечных точек

REST API

Имитация поведения, существующего REST API

Внутренняя ИС Ведомств

Ядро витрины

JDBC Driver

Доступ к БД ведомства

ПОДД-адаптер

Агент ПОДД

Kafka

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

СМЭВ3-адаптер

СМЭВ3

SOAP

Запрос необходимости подготовки данных, передача подготовленных данных

СМЭВ3-адаптер

ViPNet PKI

HTTP

Получение электронной подписи для запроса в СМЭВ3