7. Приложение 1. Настройка firewall (Iptables)
Утилита iptables - это межсетевой экран для операционных систем Linux.
Настройка iptables производится в командной строке, с помощью правил iptables можно разрешать или блокировать прохождение трафика.
Для выполнения настройки межсетевого экрана необходимо создать конфигурационный файл iptables.conf в папке etc/:
/etc/iptables.conf
Далее, необходимо скопировать в файл следующие настройки:
*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:FILTERS - [0:0]
:DOCKER-USER - [0:0]
-F INPUT
-F DOCKER-USER
-F FILTERS
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp --icmp-type any -j ACCEPT
-A INPUT -j FILTERS
-A DOCKER-USER -o docker0 -j FILTERS
-A FILTERS -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FILTERS -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A FILTERS -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT
-A FILTERS -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A FILTERS -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
-A FILTERS -j REJECT --reject-with icmp-host-prohibited
COMMIT
Выполнить команду:
iptables-restore -n /etc/iptables.conf
Создать файл:
/etc/systemd/system/iptables.service
Сохранить в файл:
[Unit]
Description=Restore iptables firewall rules
Before=network-pre.target
[Service]
Type=oneshot
ExecStart=/sbin/iptables-restore -n /etc/iptables.conf
[Install]
WantedBy=multi-user.target
Включить iptables, для этого выполнить команду:
sudo systemctl enable --now iptables
или выполнить следующие две команды:
sudo systemctl enable iptables
sudo systemctl start iptables
После обновления правил в файле /etc/iptables.conf, выполнить следующую команду:
sudo systemctl restart iptables
8. Приложение 2. Просмотр выполнения загрузки данных в программу
В данном приложении описан порядок проверки загрузки данных в программу, а также необходимые настройки для подключения к базе данных программы.
8.1. Настройка подключения к базе данных
Для подключения к базе данных программы необходимо выполнить следующие действия:
получить у системного программиста учетные записи для доступа к базе данных (название БД, логин и пароль пользователя БД);
установить и настроить программу DBeaver (менеджер баз данных);
установить и настроить JDBC-драйвер для работы с базой данных программы;
выполнить проверку подключения к базе данных.
8.1.1. Установка программы DBeaver
DBeaver — это бесплатное программное обеспечение с открытым исходным кодом для управления базами данных (БД). Для взаимодействия с реляционными БД в программе используется программный интерфейс JDBC (через JDBC-драйвер).
С помощью программы DBeaver оператор может выполнить следующие действия:
настроить доступ и подключится к БД;
проверить работоспособность БД.
Для установки DBeaver скачайте дистрибутив программы с официального сайта https://dbeaver.io/download/.
Внимание
Необходимо выбрать дистрибутив программы для операционной системы, которая установлена на вашем компьютере.
8.1.1.1. Установка DBeaver для ОС Linux
(В данном разделе описан процесс установки DBeaver, в операционную систему Linux Ubuntu, версия 20.04).
В строке поиска Ubuntu Software введите название программы DBeaver (см. Рисунок - 8.1).
Рисунок - 8.1 Поиск DBeaver
В предложенном списке (см.рис. выше) выберите программу DBeaver.
Запустите установку программы, для этого нажмите кнопку Install (см. Рисунок - 8.2).
Рисунок - 8.2 Установка DBeaver
Дождитесь окончания процесса копирования файлов (см. Рисунок - 8.3).
Рисунок - 8.3 Процесс копирования файлов программы
После завершения копирования файлов на экране монитора отобразится окно с сообщением об успешной установке программы (см. Рисунок - 8.4).
Рисунок - 8.4 Завершение установки программы
8.1.1.2. Установка DBeaver для ОС Windows
Запустите установочный файл от имени администратора (см. Рисунок - 8.5).
Рисунок - 8.5 Запуск установочного файла от имени администратора
В открывшемся окне (см. Рисунок - 8.6) выберите язык установки:
Рисунок - 8.6 Выбор языка установки
В окне «Мастер установки DBeaver Community» нажмите кнопку Далее (см. Рисунок - 8.7).
Рисунок - 8.7 Окно «Мастер установки DBeaver Community»
В открывшемся окне «Лицензионное соглашение» нажмите кнопку Принимаю (см. Рисунок - 8.8).
Рисунок - 8.8 Лицензионное соглашение
В окне «Выбор пользователя» выберите пользователей компьютера, которым будет доступна программа и нажмите кнопку Далее (см. Рисунок - 8.9).
Рисунок - 8.9 Выбор пользователя
В окне «Компоненты устанавливаемой программы» выберите компоненты программы, которые требуется установить (см. Рисунок - 8.10) и нажмите кнопку Далее.
Рисунок - 8.10 Выбор компонентов программы для установки
В открывшемся окне «Выбор папки установки» вы можете выбрать папку установки или оставить путь к папке установки по умолчанию. Чтобы изменить папку установки нажмите кнопку Обзор и выберите требуемую папку. Для продолжения установки нажмите кнопку Далее (см. Рисунок - 8.11).
Рисунок - 8.11 Выбор папки установки
В окне «Папка в меню «Пуск» выберите папку, в которую будет помещен ярлык программы или установите маркер в поле «Не создавать ярлыки», в этом случае ярлык программы не будет создан (см. Рисунок - 8.12). Нажмите кнопку Установить для продолжения процесса установки.
Рисунок - 8.12 Выбор папки в меню «Пуск»
В окне «Копирование файлов» будет отображен процесс копирования установочных файлов программы (см. Рисунок - 8.13).
Рисунок - 8.13 Копирование файлов программы
Дождитесь окончания процесса копирования файлов. После завершения процесса установки на экране монитора отобразится окно «Завершение работы мастера установки» (см. Рисунок - 8.14). Нажмите кнопку Готово.
Рисунок - 8.14 Завершение работы мастера установки
8.1.2. Установка и настройка JDBC-драйвера
Для дальнейшей работы c программой оператору необходимо настроить подключение к базам данных программы. Для этого необходимо установить и настроить JDBC-драйвер.
Дистрибутив с актуальной версией JDBC-драйвер находится в установочном пакете с программой.
8.1.2.1. Установка и настройка JDBC-драйвера для ОС Windows
Чтобы установить JDBC-драйвер и настроить подключение к базам данных в программе Dbeaver, работающей под операционной системой Windows, выполните следующие действия:
Откройте программу Dbeaver.
В главном меню программы выберите «Базы данных» и нажмите пункт Управление драйверами (см. Рисунок - 8.15).
Рисунок - 8.15 Управление драйверами
В открывшемся окне «Менеджер драйверов» нажмите кнопку Новый (см. Рисунок - 8.16).
Рисунок - 8.16 Окно «Менеджер драйверов»
В открывшемся окне «Создать драйвер» (см. Рисунок - 8.17) заполните следующую информацию:
Имя драйвера:
DtmDriver;Имя класса:
ru.datamart.prostore.jdbc.Driver;Шаблон URL:
jdbc:prostore://{host}:{port}.
Рисунок - 8.17 Окно «Создать драйвер»
Установите маркер в поле «Без авторизации» и «Пустой пароль».
Перейдите на вкладку Библиотека (см. Рисунок - 8.18), нажмите кнопку Добавить файл и укажите путь к jar-файлу JDBC-драйвера.
Рисунок - 8.18 Вкладка «Библиотека»
Нажмите кнопку «Ок».
Проверьте, что драйвер был добавлен в программу. Для этого откройте окно «Менеджер драйверов» (База данных > Управление драйверами) и в поисковой строке введите название драйвера –
DtmDriver(см. Рисунок - 8.19).
Рисунок - 8.19 Поиск DtmDriver в Менеджере драйверов
8.1.2.2. Подключение к базе данных
Для подключения к базам данных через JDBC-драйвер, выполните следующие действия:
Откройте Dbeaver.
В главном меню программы выберите пункт База данных > Новое соединение.
В окне «Создать соединение» в поисковой строке введите
dtmdriver(см. Рисунок - 8.20).
Рисунок - 8.20 Установка нового соединения с базой данных
Выберите DtmDriver и нажмите кнопку Далее
В окне «Настройка соединения» (см. Рисунок - 8.21) заполните следующие поля:
Хост- DNS-name или IP адрес сервера базы данных. Например,172.16.0.17.Порт- порт для сервера базы данных, например,9090.
В результате выполненных действий, в поле JDBC URL будет отображено следующее значение jdbc:prostore://172.16.0.17:9090 (см. рис. ниже).
Рисунок - 8.21 Настройка соединения
Нажмите кнопку Тест соединения для проверки подключения.
В случае успешного подключение отобразится сообщение о корректном подключении (см. Рисунок - 8.22).
Рисунок - 8.22 Сообщение об успешном подключении к БД
Закройте окно проверки соединения, для этого нажмите кнопку ОК.
В окне «Настройка базового соединения» нажмите кнопку Готово.
8.1.2.3. Установка и настройка драйвера JDBC-драйвер для ОС Linux
(В данном разделе описан процесс установки драйвера в Dbeaver, работающий под управлением операционной системы Linux Ubuntu, версия 20.04).
Чтобы установить драйвер и настроить подключение к базам данных, выполните следующие действия:
Откройте программу Dbeaver.
В главном меню программы выберите «Database» и нажмите пункт Driver Manager (см. Рисунок - 8.23).
Рисунок - 8.23 Управление драйверами
В открывшемся окне «Driver Manager» нажмите кнопку New (см. Рисунок - 8.24).
Рисунок - 8.24 Окно «Driver Manager»
В открывшемся окне «Create new driver» (см. Рисунок - 8.25) заполните следующую информацию:
Driver Name:
DtmDriver;Class Name:
ru.datamart.prostore.jdbc.Driver;URL Template:
jdbc:prostore://{host}:{port}.
Рисунок - 8.25 Окно «Create new driver»
Установите маркер в поле «No authentication» и «Allow Empty Password».
Во вкладке «Libraries» укажите путь к jar-файлу с JDBC-драйвер.
Нажмите кнопку Ок.
Проверьте, что драйвер был добавлен в программу. Для этого в окне «Driver Manager» в поисковой строке введите название драйвера – DtmDriver (см. Рисунок - 8.26).
Рисунок - 8.26 Окно «Поиск DtmDriver в Driver Manager»
8.1.2.4. Подключение к базе данных
Для подключения к базам данных через JDBC-драйвер, выполните следующие действия:
Откройте программу Dbeaver.
В главном меню программы выберите пункт Database > Connect to a Database.
В окне «Connect to a Database» в поисковой строке введите
dtmdriver(см. Рисунок - 8.27).
Рисунок - 8.27 Окно Поиск DtmDriver при создании нового подключения
Выберите DtmDriver (см. Рисунок - 8.28).
Рисунок - 8.28 Установка нового соединения с базой данных
В окне «Connection Settings» (см. Рисунок - 8.29) заполните следующие поля:
Хост- DNS-name или IP адрес сервера базы данных. Например,172.16.0.17.Порт- порт для сервера базы данных, например,9090.
Рисунок - 8.29 Настройка базового подключения
Нажмите кнопку «Connection test» для проверки подключения.
В случае успешного подключение отобразится сообщение об успешном подключении (см. Рисунок - 8.30).
Рисунок - 8.30 Сообщение об успешном подключении к БД
Нажмите кнопку Ok
8.1.3. Проверка загрузки данных в БД
Данная проверка описывает возможность загрузки данных и проверку того, что данные были загружены. Для проверки загрузки данных следует выполнить следующие действия:
создать в программе тестовую базу данных
test_upload_dataс тремя таблицами:Passenger,TicketиTrip;проверить, что записи в таблицах отсутствуют;
загрузить через CSV-uploader в таблицы
TicketиTripтестовые данные;проверить, что данные в таблицы
TicketиTripбыли загружены, а в таблицеPassengerзаписи отсутствуют.
Внимание
Проверку загрузки данных следует проводить на тестовом стенде.
Внимание
В случае использования VPN следует проверить его настройки и подключение.
8.1.4. Создание тестовой БД
Откройте программу Dbeaver, установите подключение к БД программы и проверьте, что логическая БД
test_upload_dataотсутствует, для этого выполните следующий sql-запрос:
SELECT *
FROM INFORMATION_SCHEMA.schemata
WHERE schema_name = UPPER('test_upload_data');
Убедитесь, что БД отсутствует (см. Рисунок - 8.31).
Рисунок - 8.31 Проверка БД test_upload_data: База данных отсутствует
Подготовьте XML-файл (
MetadataRequest_test_upload_data.xml) со следующим содержанием:
<?xml version='1.0' encoding='utf-8'?>
<ns:PODDMetadataRequest
xmlns:ns="urn://x-artefacts-podd-gosuslugi-local/metadata/datamart/2/1.6.0"
xmlns:ns1="urn://x-artefacts-podd-gosuslugi-local/metadata/types/1.4.0">
<ns:requestId>00000000-0000-0000-0000-000000000001</ns:requestId>
<ns:metadata>
<ns1:datamart>
<ns1:id>1806436d-437a-400d-b32e-aa15c1a2d4bc</ns1:id>
<ns1:mnemonic>test_upload_data</ns1:mnemonic>
<ns1:description>test_upload_data</ns1:description>
<ns1:tenantId>c52f062e-af97-4a44-a33f-d1a94024d0cf</ns1:tenantId>
<ns1:version>
<ns1:major>1</ns1:major>
<ns1:minor>0</ns1:minor>
</ns1:version>
<ns1:supportedFrom>2021-01-01T00:00:00</ns1:supportedFrom>
<ns1:datamartClass>
<ns1:id>4c4ff97b-938b-4db6-9f4d-ae21046e4d20</ns1:id>
<ns1:mnemonic>Passenger</ns1:mnemonic>
<ns1:description>Passenger</ns1:description>
<ns1:classAttribute>
<ns1:id>6fe29bdb-7db1-405a-a05c-b49c541c92bd</ns1:id>
<ns1:mnemonic>Code</ns1:mnemonic>
<ns1:description>Code</ns1:description>
<ns1:type>LONG</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>e590e7b3-b611-4891-bbd1-a5e256105e73</ns1:id>
<ns1:mnemonic>Id</ns1:mnemonic>
<ns1:description>Id</ns1:description>
<ns1:type>STRING</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>c97a8102-6ad0-4dbd-934d-c82b83a4d83f </ns1:id>
<ns1:mnemonic>FirstName</ns1:mnemonic>
<ns1:description>FirstName</ns1:description>
<ns1:type>STRING</ns1:type>
<ns1:length>36</ns1:length>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>d2312bfb-7ec0-4c95-9026-0f6dea48c5d9</ns1:id>
<ns1:mnemonic>MiddleName</ns1:mnemonic>
<ns1:description>MiddleName</ns1:description>
<ns1:type>STRING</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>7b63db89-bd0e-4c92-8bc0-e609175937b9</ns1:id>
<ns1:mnemonic>LastName</ns1:mnemonic>
<ns1:description>LastName</ns1:description>
<ns1:type>STRING</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>8f3e7f95-f66b-4d4a-b2eb-55a3e6134c3e</ns1:id>
<ns1:mnemonic>Birthday</ns1:mnemonic>
<ns1:description>Birthday</ns1:description>
<ns1:type>DATE</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>e3658240-b405-4838-99af-d32cd063c463</ns1:id>
<ns1:mnemonic>Passport</ns1:mnemonic>
<ns1:description>Passport</ns1:description>
<ns1:type>STRING</ns1:type>
</ns1:classAttribute>
<ns1:primaryKey>
<ns1:id>6fe29bdb-7db1-405a-a05c-b49c541c92bd</ns1:id>
<ns1:mnemonic>Code</ns1:mnemonic>
<ns1:description>Code</ns1:description>
<ns1:type>
<ns1:id>00000000-0000-0000-0000-000000000001</ns1:id>
<ns1:value>LONG</ns1:value>
</ns1:type>
</ns1:primaryKey>
</ns1:datamartClass>
<ns1:datamartClass>
<ns1:id>cafe41db-3878-4796-ba60-cbd54f042c63</ns1:id>
<ns1:mnemonic>Ticket</ns1:mnemonic>
<ns1:description>Ticket</ns1:description>
<ns1:classAttribute>
<ns1:id>bc90563b-168a-4faa-9394-7b7390dd0d92</ns1:id>
<ns1:mnemonic>Id</ns1:mnemonic>
<ns1:description>Id</ns1:description>
<ns1:type>STRING</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>ac93618f-752b-44d5-a77c-23a3c9eb069b</ns1:id>
<ns1:mnemonic>PassengerId</ns1:mnemonic>
<ns1:description>PassengerId</ns1:description>
<ns1:type>STRING</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>51355519-2d59-426e-b199-9589930acaaa</ns1:id>
<ns1:mnemonic>TripId</ns1:mnemonic>
<ns1:description>TripId</ns1:description>
<ns1:type>STRING</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>fe92c245-929e-4684-b9c9-22bda6939c09</ns1:id>
<ns1:mnemonic>Number</ns1:mnemonic>
<ns1:description>Number</ns1:description>
<ns1:type>LONG</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>4a32ded4-c970-4874-b0b1-2e3eed8b6483</ns1:id>
<ns1:mnemonic>ByCard</ns1:mnemonic>
<ns1:description>ByCard</ns1:description>
<ns1:type>BOOLEAN</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>35f59c80-fcc3-483c-9cd3-dc3afb606d66</ns1:id>
<ns1:mnemonic>Price</ns1:mnemonic>
<ns1:description>Price</ns1:description>
<ns1:type>DOUBLE</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>8b46ff55-6853-458c-851d-6e1666da918b</ns1:id>
<ns1:mnemonic>Sold</ns1:mnemonic>
<ns1:description>Sold</ns1:description>
<ns1:type>TIMESTAMP</ns1:type>
</ns1:classAttribute>
<ns1:primaryKey>
<ns1:id>fe92c245-929e-4684-b9c9-22bda6939c09</ns1:id>
<ns1:mnemonic>Number</ns1:mnemonic>
<ns1:description>Number</ns1:description>
<ns1:type>
<ns1:id>00000000-0000-0000-0000-000000000001</ns1:id>
<ns1:value>LONG</ns1:value>
</ns1:type>
</ns1:primaryKey>
</ns1:datamartClass>
<ns1:datamartClass>
<ns1:id>76268090-60ee-4960-8268-1b91f4186e87</ns1:id>
<ns1:mnemonic>Trip</ns1:mnemonic>
<ns1:description>Trip</ns1:description>
<ns1:classAttribute>
<ns1:id>bd173e24-ea7e-4869-9d43-9f57f5b0a82f</ns1:id>
<ns1:mnemonic>Id</ns1:mnemonic>
<ns1:description>Id</ns1:description>
<ns1:type>STRING</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>1ed32816-8bdb-4d35-9f66-8c08df13ad28</ns1:id>
<ns1:mnemonic>Number</ns1:mnemonic>
<ns1:description>Number</ns1:description>
<ns1:type>INTEGER</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>78f587fa-b53e-4912-b631-0c4a249d20b6</ns1:id>
<ns1:mnemonic>Duration</ns1:mnemonic>
<ns1:description>Duration</ns1:description>
<ns1:type>STRING</ns1:type>
</ns1:classAttribute>
<ns1:classAttribute>
<ns1:id>1750c564-20a7-4e07-988a-b382227123e4</ns1:id>
<ns1:mnemonic>Length</ns1:mnemonic>
<ns1:description>Length</ns1:description>
<ns1:type>FLOAT</ns1:type>
</ns1:classAttribute>
<ns1:primaryKey>
<ns1:id>1ed32816-8bdb-4d35-9f66-8c08df13ad28</ns1:id>
<ns1:mnemonic>Number</ns1:mnemonic>
<ns1:description>Number</ns1:description>
<ns1:type>
<ns1:id>00000000-0000-0000-0000-000000000002</ns1:id>
<ns1:value>INTEGER</ns1:value>
</ns1:type>
</ns1:primaryKey>
</ns1:datamartClass>
</ns1:datamart>
</ns:metadata>
</ns:PODDMetadataRequest>
Откройте web-интерфейс CSV-uploader.
Во вкладке «Загрузка структуры», в поле выбора файла
XMLдля загрузки в Витрину выберите XML-файл (MetadataRequest_test_upload_data.xml) созданный в п.2.Нажмите кнопку «Загрузить» (см. Рисунок - 8.32).
Рисунок - 8.32 Загрузка XML-файла со структурой витрины
В случае успешной загрузки, отобразится сообщение «Структура витрины успешно создана» (см. Рисунок - 8.33).
Рисунок - 8.33 Сообщение «Структура витрины успешно создана»
Откройте программу Dbeaver, установите подключение к БД программы и проверьте, что логическая БД
test_upload_dataсоздана, для этого выполните запрос:
SELECT *
FROM INFORMATION_SCHEMA.schemata
WHERE schema_name = UPPER('test_upload_data');
SQL-запрос вернул одну строку, в которой поле SCHEMA_NAME имеет значение TEST_UPLOAD_DATA (см. Рисунок - 8.34).
Рисунок - 8.34 Проверка БД test_upload_data: База данных создана
Убедитесь, что в созданной БД существуют таблицы:
Passenger,TicketиTrip. Для этого выполните запрос к БД:
SELECT *
FROM INFORMATION_SCHEMA.tables
WHERE table_schema = UPPER('test_upload_data');
SQL-запрос вернул записи о созданных логических таблицах (см. Рисунок - 8.35).
Рисунок - 8.35 Проверка таблиц БД
Проверьте количество записей в таблицах:
Passenger,TicketиTrip. Для этого выполните запрос к БД:
SELECT COUNT(*) FROM test_upload_data.passenger;
SELECT COUNT(*) FROM test_upload_data.ticket;
SELECT COUNT(*) FROM test_upload_data.trip;
SQL-запрос вернул нулевое значении (см. Рисунок - 8.36). Это значит, что записи в таблицах отсутствуют.
Рисунок - 8.36 Проверка таблиц БД
8.1.5. Загрузка данных
Скачайте CSV-файлы (
tickets.csv,trips.csv).Откройте web-интерфейс CSV-uploader и перейдите на вкладку Загрузка.
Выберите режим «Вставка».
Установите переключатель в режим Автоматическое определение таблицы.
В поле CSV выберите CSV-файлы (
tickets.csvиtrips.csv) для загрузки в БД (см. Рисунок - 8.37).
Рисунок - 8.37 Загрузка данных из CSV-файла
Отобразится сообщение Отправка запроса на загрузку… (см. Рисунок - 8.38).
Рисунок - 8.38 Отправка запроса на загрузку
В случае успешной загрузки файла отобразится сообщение Операция выполнена успешно (см. Рисунок - 8.39).
Рисунок - 8.39 Сообщение «Операция выполнена успешно»
Выполните проверку загрузки данных. Для этого последовательно выполните следующие запросы к БД:
Проверка таблицы passenger
SELECT COUNT(*) FROM test_upload_data.passenger;
SQL-запрос вернул нулевое значении т.к загрузки данных в эту таблицу не было (см. Рисунок - 8.40).
Рисунок - 8.40 Проверка таблицы passenger
Проверка таблицы ticket
SELECT COUNT(*) FROM test_upload_data.ticket;
SQL-запрос вернул значение 5000 (см. Рисунок - 8.41).
Рисунок - 8.41 Проверка таблицы ticket
Проверка таблицы trip
SELECT COUNT(*) FROM test_upload_data.trip;
SQL-запрос вернул значение 500 (см. Рисунок - 8.42).
Рисунок - 8.42 Проверка таблицы trip
С дополнительной информацией по работе с программой Dbeaver (настройка, выполнение запросов, просмотр таблиц и т.д.) можно ознакомиться на официальном сайте разработчика программы https://dbeaver.io/.
9. Приложение 3. Рекомендации по конфигурированию инфраструктуры Типового «ПО Витрина данных»
9.1. Рекомендованные параметры технических средств
Для получения показателей производительности проведено нагрузочное тестирование Типового ПО «Витрина данных» конфигурации Стандарт и Лайт, при максимальном количестве выполняемых запросов в секунду на уровне 250 RPS.
Конфигурация |
Значение RPS |
Характеристики |
|---|---|---|
Стандарт |
250 |
|
Лайт |
250 |
Ниже приведены рекомендованные характеристики для каждой из конфигурации.
Рекомендованные требования к серверному оборудования приведены в Таблица 9.2.
Сервер |
Назначение |
CPU |
RAM, ГБ |
HDD |
Количество |
|---|---|---|---|---|---|
Prostore |
Сервис исполнения запросов |
4 |
8 |
50 |
1 |
BLOB- адаптер |
BLOB- адаптер |
4 |
16 |
50 |
2 |
Сервис формирования документов |
2 |
8 |
50 |
2 |
|
СМЭВ QL Сервер |
4 |
8 |
50 |
1 |
|
СМЭВ3-адаптер |
СМЭВ3-адаптер |
4 |
8 |
50 |
1 |
CSV-Uploader |
4 |
8 |
50 |
1 |
|
СМЭВ4-адаптер - Модуль исполнения запросов |
4 |
8 |
50 |
2 |
|
СМЭВ4-адаптер - Модуль MPPR |
4 |
8 |
50 |
2 |
|
СМЭВ4-адаптер - Модуль MPPW |
4 |
16 |
50 |
2 |
|
СМЭВ4-адаптер - Модуль импорта данных ТП |
2 |
4 |
50 |
2 |
|
СМЭВ4-адаптер - Модуль группировки данных ТП |
2 |
4 |
50 |
2 |
|
СМЭВ4-адаптер - Модуль дефрагментации чанков табличных параметров |
4 |
8 |
50 |
2 |
|
СМЭВ4-адаптер - Модуль подписок |
4 |
8 |
50 |
2 |
|
СМЭВ4-адаптер - Модуль Группировки чанков репликаций |
2 |
4 |
50 |
2 |
|
Data-Uploader |
4 |
8 |
50 |
1 |
|
REST-Uploader |
4 |
8 |
50 |
1 |
|
Counter-provider |
2 |
4 |
50 |
1 |
|
REST-адаптер |
REST-адаптер |
2 |
4 |
50 |
1 |
ETL |
4 |
8 |
50 |
1 |
|
Backup manager |
2 |
4 |
50 |
1 |
|
Arenadata Cluster Manager (ADCM) |
4 |
16 |
200 |
1 |
|
Arenadata Streaming (ADS) |
Apache ZooKeeper |
4 |
4 |
5 |
1 |
Apache Kafka |
4 |
4 |
5 |
2 |
|
Мониторинг и администрирование (установка опциональна) |
Grafana |
32 |
32 |
1000 |
3 |
Prometheus |
|||||
Graylog |
|||||
МongoDB |
|||||
Elasticsearch (master) |
|||||
Elasticsearch (data) |
|||||
Filebeat |
|||||
Node Exporter |
Рекомендованные требования к серверному оборудования приведены в Таблица 9.3.
Требования |
Минимальные |
Рекомендуемые |
|---|---|---|
Процессор (CPU) |
4 ядра |
24 ядра |
Оперативная память (RAM) |
16 Гб |
128 Гб |
Жесткий диск (HDD) |
100 Гб |
500 Гб |
9.2. Рекомендованные параметры программных средств
Рекомендованные требования к программному обеспечению приведены в Таблица 9.4.
Название |
Описание |
Версия |
|---|---|---|
Операционная система (выбор опционален) |
CentOS РЕД ОС АЛЬТ Сервер 8 СП Astra Linux 1.7 (уровень защищенности «Воронеж») |
7.9 7.2 8 1.7 |
Docker |
Программное обеспечение для автоматизации развёртывания и управления приложениями |
20.10.2 |
Java SE 17 |
Среда разработки для создания приложений с использованием языка программирования Java |
17.0.7 |
Рекомендованные требования к программному обеспечению приведены в Таблица 9.5.
Название |
Описание |
Версия |
|---|---|---|
Операционная система (выбор опционален) |
CentOS РЕД ОС АЛЬТ Сервер 8 СП Astra Linux 1.7 (уровень защищенности «Воронеж») |
7.9 7.2 8 1.7 |
Docker |
Программное обеспечение для автоматизации развёртывания и управления приложениями |
20.10.2 |
9.3. Показатели производительности при использовании рекомендуемых операционных систем
Тестирование проведено на запросах LLR, за исполнение которых отвечает модуль исполнения запросов podd-adapter-query, отправляющий запросы в ядро витрины Prostore для получения выборки данных.
Тестовая модель данных составляет 1,5 млн. уникальных записей в таблице vehicleregdata.
Ключи генерируемых данных используют диапазон от 1 до 1,5 млн., объём одной записи равен 100 байт.
Пример запроса:
select vrd.reestrid, vrd.vehicleguid, vrd.vehiclevin, vrd.vehiclevin2, vrd.vehiclechassisnum, vrd.vehiclebodynum, vrd.vehicleregnoname, vrd.operationregdocissuer, vrd.vehicleptsissuer, vrd.vehicleproducername, vrd.operationregdoc, vrd.vehicleptstypename, vrd.holderaddressregionname, vrd.holderaddressstreet, vrd.holderaddressmundistrict from gibdd_db.vehicleregdata vrd where vrd.vehiclevin = \'${vin}\' OR vrd.vehiclevin2 = \'${vin}\' OR (vrd.vehiclechassisnum = \'${vin}\' OR vrd.vehiclebodynum = \'${vin}\') AND vrd.reestriscurrent = \'1\' limit 1
В качестве генератора нагрузки для модуля исполнения запросов, используемого в режиме LLR, задействуется группа продюсеров, которая отправляет запросы на получение одной записи по ключу в топик query.rq.
Фильтруемое значение для запросов выбирается случайным образом из предварительно сгенерированного набора данных.
Из топика query.rq модуль адаптера забирает запрос и отправляет его в ядро витрины для получения ответа, который затем помещается в топик query.rs.
Затем группа потоков потребителя производит чтение ответов, полученных от адаптера, позволяя зафиксировать время, затраченное на получение данных - от отправки запроса в топик query.rq до получения ответа в топике query.rs.
9.3.1. Профиль нагрузки испытаний
Профиль нагрузки был выбран следующим образом (см. Рисунок - 9.1):
Общее время работы сценария 20 минут;
Первые 10 минут общее количество выполняемых запросов в секунду растёт от 10 до 250 RPS;
Следующие 10 минут теста общее количество выполняемых запросов в секунду остаётся неизменным и поддерживается на уровне 250 RPS.
Рисунок - 9.1 Профиль нагрузки
9.3.2. Результаты тестирования конфигурации Стандарт
С указанным профилем нагрузки было выполнено 227567 запросов LLR по ключу, (см. Рисунок - 9.2).
Рисунок - 9.2 Результаты нагрузки
Работа нагрузки охарактеризована как стабильная, RPS соответствуют ожидаемым (см. Рисунок - 9.3).
В процессе выполнения нагрузки ошибок не возникло.
Рисунок - 9.3 Результаты нагрузки
Рисунок - 9.4 Утилизация ресурсов модуля исполнения запросов
Рисунок - 9.5 Утилизация ресурсов Prostore
Рекомендуемые технические параметры Типового ПО «Витрина данных» конфигурации Стандарт, приведенные в Таблица 9.2 подтверждены нагрузочными испытаниями, среднее время выполнения запросов, а также уровень утилизации системных ресурсов сопоставимы с результатами, полученными на заявленных операционных системах.
9.3.3. Результаты тестирования конфигурации Лайт
С указанным профилем нагрузки было выполнено 227841 запросов LLR по ключу, (см. Рисунок - 9.6).
Рисунок - 9.6 Результаты нагрузки
Работа нагрузки охарактеризована как стабильная, RPS соответствуют ожидаемым (см. Рисунок - 9.7).
В процессе выполнения нагрузки ошибок не возникло.
Рисунок - 9.7 Результаты нагрузки
Рисунок - 9.8 Общий сводный график утилизации системных ресурсов
Рекомендуемые технические параметры Типового ПО «Витрина данных» конфигурации Лайт, приведенные в Таблица 9.3 подтверждены нагрузочными испытаниями, среднее время выполнения запросов, а также уровень утилизации системных ресурсов соответствуют ожидаемым результатам.