3. Установка программы

Внимание

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

Состав компонентов и номер версии см. в разделе «4. Проверка Программы» настоящего Руководства (см. table_container_list_lite).

Требования к серверному оборудованию, телекоммуникационному оборудованию и каналам связи приведены в разделе «Минимальный состав технических средств» документа «Руководство администратора».

Требования к программному обеспечению (см. раздел «Минимальный состав программных средств» документа «Руководство администратора»).

3.1. Настройка конфигурационного файла

Чтобы запустить процесс установки программы с помощью Ansible, необходимо настроить конфигурационный файл. Для этого выполните следующие действия:

1. Переименовать файл custom.example.yml расположенный в папке ansible/group_vars/ в custom.yml. Для этого выполните команду:

cp -n ansible/group_vars/custom.example.yml ansible/group_vars/custom.yml
  1. В файле custom.yml указать корректные значения для следующих переменных:

  • server_ip - адреса сервера. Укажите IP-адрес сервера, на который будет установлена программа. Например:

server_ip: "172.16.10.59"
  • server_user_name - имя пользователя операционной системы. Укажите имя пользователя операционной системы сервера, под которым будет производиться установка программы (см. раздел Создание пользователя), например:

server_user_name: datamart
  • podd_kafka_topic_prefix - префикс перед именем топиков для ПОДД-агента. Например:

podd_kafka_topic_prefix: "user_prefix."

Внимание

В качестве префикса рекомендуется использовать мнемонику витрины. После определения параметра префикса следует обязательно ставить символ . (точка)! Пример: podd_kafka_topic_prefix: "prod_vitrina98."

3.2. Установка программы

Для установки программы выполните команду:

docker-ansible-cmd ansible-playbook -i hosts install.yml

Начнется процесс установки программы (см. Рисунок - 3.4):

Процесс установки

Рисунок - 3.4 Процесс установки

Установка программы завершена. При успешной установке параметр failed должен иметь значение - 0 (см. Рисунок - 3.4). Это значит, что все компоненты программы установлены, а необходимые взаимосвязи между ними настроены корректно.

После установки программы следует провести ее проверку.

4. Проверка программы

Процесс установки программы описан в разделе Установка программы.

Для проверки установки программы следует выполнить следующие действия:

  1. Открыть в браузере web-интерфейс Portainer для управления docker-контейнерами по адресу:

IP:9000
  • IP - адрес сервера.

  • 9000 - порт сервера.

  1. Введите логин и пароль администратора Portainer. По умолчанию - admin/ LongPassword (см. Рисунок - 4.4).

Авторизация в Portainer

Рисунок - 4.4 Авторизация в Portainer

  1. Чтобы определить и автоматически настроить локальную среду нажмите значок Get Started (см. Рисунок - 4.5).

Окно «Quick Setup»

Рисунок - 4.5 Окно «Quick Setup»

  1. На главной странице нажмите ссылку local (см. Рисунок - 4.6).

Окно «Home»

Рисунок - 4.6 Окно «Home»

  1. Нажмите значок Containers (см. Рисунок - 4.7).

Окно «Containers»

Рисунок - 4.7 Окно «Containers»

  1. В разделе Container list просмотреть наличие компонентов в дистрибутиве программы (table_container_list_lite):

Компоненты программы приведены в разделе Состав компонентов в дистрибутиве документа «Техническое описание программы ПО «Витрина данных НСУД»».

  1. Подключиться к программе по SSH (например, через Putty). Выполнить запрос:

Пример запроса:

curl -X POST -H "Content-Type: application/json" -d '{"requestId": "797de19a-54e2-4c9c-af6e-a9ee312230b5","datamartMnemonic": "base01","sql": "CHECK_VERSIONS()"}' http://0.0.0.0:9090/query/execute

Пример успешного ответа (см. Рисунок - 4.8).

Проверка подключения к базе данных Prostore

Рисунок - 4.8 Проверка подключения к базе данных Prostore

  1. Подключиться к Grafana.

Для этого следует перейти по адресу: http://<имя сервера>:3000 и выполнить авторизацию (указаны значения по умолчанию):

  • логин: admin;

  • пароль: admin.

Проверить, что показатели Healthcheck Leaviness и Readiness (дашборд Lite) работают (индикатор зеленого цвета).

  1. Просмотреть лог-файл установки (ansible/ansible.log). Лог-файл не должен содержать записей с ошибками установки.

5. Обновление программы

Установка обновления происходит путем перезаписи файлов предыдущей версии программы файлами обновления. Все предыдущие настройки программы (адреса серверов, порты и т.д.) останутся без изменений.

Далее приведены рекомендации по проведению обновления программы в зависимости от версии программы.

Внимание

Перед началом обновления выполните резервное копирование.

5.1. Обновление с версии 1.0.0 до версии 1.0.1

Внимание

Данное обновление предусмотрено только для перехода с версии программы 1.0.0 до версии 1.0.1.

Чтобы обновить программу необходимо выполнить следующие действия (подробная инструкция по обновлению ниже):

  1. Выполнить резервное копирование.

  2. Скопировать архив с обновлением программы на сервер.

  3. Распаковать архив с обновлением.

  4. Запустить процесс обновления.

  5. Проверить, что обновление прошло успешно.

5.1.1. Резервное копирование

Внимание

Действия этого раздела необходимо выполнять под созданной учетной записью datamart (см. раздел Создание пользователя).

Для того чтобы выполнить резервное копирование создайте архив текущей версии с указанием актуальной даты копирования.

Например:

tar -czvf dtm-lite-2022-01-17.tgz ansible/ images/ jdbc/ rpms/

5.1.2. Копирование архива с обновлением программы на сервер

Для загрузки на сервер архива с файлами обновления программы используйте SFTP-клиент (например, WinSCP или Filezilla).

Для авторизации используйте логин и пароль учетной записи администратора datamart созданной при установке ОС (см. раздел Создание пользователя).

  1. Подключитесь по SSH к серверу (см. раздел Подключение к серверу через SSH-клиент PuTTY), используя логин и пароль учетной записи администратора.

2. Загрузите файл с архивом в домашнюю директорию пользователя datamart командой:

mv ~/dtm-lite-1.0.1.tgz /home/datamart/

где,

  • dtm-lite-1.0.1.tgz - название архива программы.

  • datamart - имя пользователя.

5.1.3. Распаковка архива с обновлением

Внимание

Перед тем как выполнить разархивирование рекомендуется просмотреть/скопировать значения переменных (IP-адрес сервера, префикс и т.д.), которые использовались в предыдущей версии программы в файле ansible/group_vars/all/main.yml. После распаковки архива с обновлением программы данные из этого файла будут удалены.

Чтобы распаковать архив, выполните команду:

tar -xzvf dtm-lite-1.0.1.tgz

5.1.4. Процесс обновления программы

Чтобы запустить процесс обновления программы с помощью Ansible, необходимо выполнить следующие действия:

1. Переименовать файл custom.example.yml расположенный в папке ansible/group_vars/ в custom.yml. Для этого выполните команду:

cp -n ansible/group_vars/custom.example.yml ansible/group_vars/custom.yml
  1. В файле custom.yml указать корректные значения для следующих переменных:

  • server_ip - адреса сервера. Укажите IP-адрес сервера, на который будет установлено обновление программы. Например:

server_ip: "172.16.10.59"
  • server_user_name - имя пользователя операционной системы. Укажите имя пользователя операционной системы сервера, под которым устанавливается обновление (см. раздел Создание пользователя), например:

server_user_name: datamart
  • podd_kafka_topic_prefix - префикс перед именем топиков для ПОДД-агента (указывается опционально). Например:

podd_kafka_topic_prefix: "user_prefix."

Внимание

В качестве префикса рекомендуется использовать мнемонику витрины. После определения параметра префикса следует обязательно ставить символ . (точка)! Пример: podd_kafka_topic_prefix: "prod_vitrina98."

Чтобы запустить процесс обновления программы выполните команду:

docker-ansible-cmd ansible-playbook -i hosts install.yml

Начнется процесс обновления программы (см. рис. ниже):

Обновление программы

Рисунок - 5.1 Обновление программы

Установка обновления завершена.

После завершения обновления необходимо убедиться, что обновление программы прошло успешно.

5.1.5. Проверка обновления программы до версии 1.0.1

Для проверки обновления программы необходимо выполнить следующие действия:

  1. Убедиться, что после установки обновления нет ошибок в работе программы.

  2. Убедиться, что параметр failed (см. рис. выше) после установки обновления имеет значение - 0. Это значит, что все необходимые компоненты программы были обновлены, а необходимые взаимосвязи между ними настроены корректно.

3. Открыть Portainer и проверить, что версии компонентов соответствуют указанным ниже:

csv-uploader:1.0.12
podd-adapter:5.0.7
query-execution:5.2.2

5.2. Обновление с версии 1.0.1 до версии выше

Чтобы обновить программу необходимо выполнить следующие действия:

  1. Выполнить резервное копирование.

  2. Скопировать архив с обновлением программы на сервер.

  3. Распаковать архив с обновлением.

  4. Запустить процесс обновления.

  5. Проверить, что обновление прошло успешно.

5.2.1. Резервное копирование

Внимание

Действия этого раздела необходимо выполнять под созданной учетной записью datamart (см. раздел Создание пользователя).

Для того чтобы выполнить резервное копирование создайте архив текущей версии с указанием актуальной даты копирования.

Например:

tar -czvf dtm-lite-2022-01-17.tgz ansible/ images/ jdbc/ rpms/

5.2.2. Копирование архива с обновлением программы на сервер

Для загрузки на сервер архива с файлами обновления программы используйте SFTP-клиент (например, WinSCP или Filezilla).

Для авторизации используйте логин и пароль учетной записи администратора datamart созданной при установке ОС (см. раздел Создание пользователя).

  1. Подключитесь по SSH к серверу (см. раздел Подключение к серверу через SSH-клиент PuTTY), используя логин и пароль учетной записи администратора.

2. Загрузите файл с архивом в домашнюю директорию пользователя datamart командой:

mv ~/dtm-lite-<номер версии>.tgz /home/datamart/

где,

  • dtm-lite-<номер версии>.tgz - название архива программы.

  • datamart - имя пользователя.

5.2.3. Распаковка архива с обновлением

Чтобы распаковать архив, выполните команду:

tar -xzvf dtm-lite-<номер версии>.tgz

5.2.4. Процесс обновления программы

Чтобы запустить процесс обновления программы с помощью Ansible, необходимо выполните команду:

docker-ansible-cmd ansible-playbook -i hosts install.yml

Начнется процесс обновления программы (см. рис. ниже):

Обновление программы

Рисунок - 5.2 Обновление программы

Установка обновления завершена.

После завершения обновления необходимо убедиться, что обновление программы прошло успешно.

5.2.5. Проверка обновления программы

Для проверки обновления программы необходимо выполнить следующие действия:

  1. Убедиться, что после установки обновления нет ошибок в работе программы.

  2. Убедиться, что параметр failed (см. рис. выше) после установки обновления имеет значение - 0. Это значит, что все необходимые компоненты программы были обновлены, а необходимые взаимосвязи между ними настроены корректно.

  3. Открыть Portainer и проверить, что версии компонентов соответствуют указанным в table_container_list_lite

6. Приложение

6.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

1. Выполнить команду

iptables-restore -n /etc/iptables.conf

2. Создать файл

/etc/systemd/system/iptables.service
  1. Сохранить в файл

[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
  1. Включить iptables, для этого выполнить команду

sudo systemctl enable --now iptables

или выполнить следующие две команды:

sudo systemctl enable iptables
sudo systemctl start iptables

После обновления правил в файле /etc/iptables.conf, выполнить следующую команду:

sudo systemctl restart iptables

6.2. Просмотр выполнения загрузки данных в программу

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

6.2.1. Настройка подключения к базе данных

Для подключения к базе данных программы необходимо выполнить следующие действия:

  • получить у системного программиста учетные записи для доступа к базе данных (название БД, логин и пароль пользователя БД);

  • установить и настроить программу DBeaver (менеджер баз данных);

  • установить и настроить JDBC-драйвер для работы с базой данных программы;

  • выполнить проверку подключения к базе данных.

6.2.1.1. Установка программы DBeaver

DBeaver — это бесплатное программное обеспечение с открытым исходным кодом для управления базами данных (БД). Для взаимодействия с реляционными БД в программе используется программный интерфейс JDBC (через JDBC-драйвер).

С помощью программы DBeaver оператор может выполнить следующие действия:

  • настроить доступ и подключится к БД;

  • проверить работоспособность БД.

Для установки DBeaver скачайте дистрибутив программы с официального сайта https://dbeaver.io/download/.

Внимание

Необходимо выбрать дистрибутив программы для операционной системы, которая установлена на вашем компьютере.

6.2.1.1.1. Установка DBeaver для ОС Linux

(В данном разделе описан процесс установки DBeaver, в операционную систему Linux Ubuntu, версия 20.04).

  1. В строке поиска Ubuntu Software введите название программы DBeaver (см. Рисунок - 6.1).

Поиск DBeaver

Рисунок - 6.1 Поиск DBeaver

  1. В предложенном списке (см.рис. выше) выберите программу DBeaver.

  2. Запустите установку программы, для этого нажмите кнопку Install (см. Рисунок - 6.2).

Установка DBeaver

Рисунок - 6.2 Установка DBeaver

  1. Дождитесь окончания процесса копирования файлов (см. Рисунок - 6.3).

Процесс копирования файлов программы

Рисунок - 6.3 Процесс копирования файлов программы

  1. После завершения копирования файлов на экране монитора отобразится окно с сообщением об успешной установке программы (см. Рисунок - 6.4).

Завершение установки программы

Рисунок - 6.4 Завершение установки программы

6.2.1.1.2. Установка DBeaver для ОС Windows
  1. Запустите установочный файл от имени администратора (см. Рисунок - 6.5).

Запуск установочного файла от имени администратора

Рисунок - 6.5 Запуск установочного файла от имени администратора

  1. В открывшемся окне (см. Рисунок - 6.6) выберите язык установки:

Выбор языка установки

Рисунок - 6.6 Выбор языка установки

  1. В окне «Мастер установки DBeaver Community» нажмите кнопку Далее (см. Рисунок - 6.7).

Окно «Мастер установки DBeaver Community»

Рисунок - 6.7 Окно «Мастер установки DBeaver Community»

  1. В открывшемся окне «Лицензионное соглашение» нажмите кнопку Принимаю (см. Рисунок - 6.8).

Лицензионное соглашение

Рисунок - 6.8 Лицензионное соглашение

  1. В окне «Выбор пользователя» выберите пользователей компьютера, которым будет доступна программа и нажмите кнопку Далее (см. Рисунок - 6.9).

Выбор пользователя

Рисунок - 6.9 Выбор пользователя

  1. В окне «Компоненты устанавливаемой программы» выберите компоненты программы, которые требуется установить (см. Рисунок - 6.10) и нажмите кнопку Далее.

Выбор компонентов программы для установки

Рисунок - 6.10 Выбор компонентов программы для установки

  1. В открывшемся окне «Выбор папки установки» вы можете выбрать папку установки или оставить путь к папке установки по умолчанию. Чтобы изменить папку установки нажмите кнопку Обзор и выберите требуемую папку. Для продолжения установки нажмите кнопку Далее (см. Рисунок - 6.11).

Выбор папки установки

Рисунок - 6.11 Выбор папки установки

  1. В окне «Папка в меню «Пуск» выберите папку, в которую будет помещен ярлык программы или установите маркер в поле «Не создавать ярлыки», в этом случае ярлык программы не будет создан (см. Рисунок - 6.12). Нажмите кнопку Установить для продолжения процесса установки.

Выбор папки в меню «Пуск»

Рисунок - 6.12 Выбор папки в меню «Пуск»

  1. В окне «Копирование файлов» будет отображен процесс копирования установочных файлов программы (см. Рисунок - 6.13).

Копирование файлов программы

Рисунок - 6.13 Копирование файлов программы

  1. Дождитесь окончания процесса копирования файлов. После завершения процесса установки на экране монитора отобразится окно «Завершение работы мастера установки» (см. Рисунок - 6.14). Нажмите кнопку Готово.

Завершение работы мастера установки

Рисунок - 6.14 Завершение работы мастера установки

6.2.1.2. Установка и настройка JDBC-драйвера

Для дальнейшей работы c программой оператору необходимо настроить подключение к базам данных программы. Для этого необходимо установить и настроить JDBC-драйвер.

Дистрибутив с актуальной версией JDBC-драйвер находится в установочном пакете с программой.

6.2.1.2.1. Установка и настройка JDBC-драйвера для ОС Windows

Чтобы установить JDBC-драйвер и настроить подключение к базам данных в программе Dbeaver, работающей под операционной системой Windows, выполните следующие действия:

  1. Откройте программу Dbeaver.

  2. В главном меню программы выберите «Базы данных» и нажмите пункт Управление драйверами (см. Рисунок - 6.15).

Управление драйверами

Рисунок - 6.15 Управление драйверами

  1. В открывшемся окне «Менеджер драйверов» нажмите кнопку Новый (см. Рисунок - 6.16).

Окно «Менеджер драйверов»

Рисунок - 6.16 Окно «Менеджер драйверов»

  1. В открывшемся окне «Создать драйвер» (см. Рисунок - 6.17) заполните следующую информацию:

  • Имя драйвера: DtmDriver;

  • Имя класса: ru.datamart.prostore.jdbc.Driver;

  • Шаблон URL: jdbc:prostore://{host}:{port}.

Окно «Создать драйвер»

Рисунок - 6.17 Окно «Создать драйвер»

  1. Установите маркер в поле «Без авторизации» и «Пустой пароль».

  2. Перейдите на вкладку Библиотека (см. Рисунок - 6.18), нажмите кнопку Добавить файл и укажите путь к jar-файлу JDBC-драйвера.

Вкладка «Библиотека»

Рисунок - 6.18 Вкладка «Библиотека»

  1. Нажмите кнопку «Ок».

  2. Проверьте, что драйвер был добавлен в программу. Для этого откройте окно «Менеджер драйверов» (База данных > Управление драйверами) и в поисковой строке введите название драйвера – DtmDriver (см. Рисунок - 6.19).

Поиск DtmDriver в Менеджере драйверов

Рисунок - 6.19 Поиск DtmDriver в Менеджере драйверов

6.2.1.2.2. Подключение к базе данных

Для подключения к базам данных через JDBC-драйвер, выполните следующие действия:

  1. Откройте Dbeaver.

  2. В главном меню программы выберите пункт База данных > Новое соединение.

  3. В окне «Создать соединение» в поисковой строке введите dtmdriver (см. Рисунок - 6.20).

Установка нового соединения с базой данных

Рисунок - 6.20 Установка нового соединения с базой данных

  1. Выберите DtmDriver и нажмите кнопку Далее

В окне «Настройка соединения» (см. Рисунок - 6.21) заполните следующие поля:

  • Хост - DNS-name или IP адрес сервера базы данных. Например, 172.16.0.17.

  • Порт - порт для сервера базы данных, например, 9090.

В результате выполненных действий, в поле JDBC URL будет отображено следующее значение jdbc:prostore://172.16.0.17:9090 (см. рис. ниже).

Настройка соединения

Рисунок - 6.21 Настройка соединения

  1. Нажмите кнопку Тест соединения для проверки подключения.

В случае успешного подключение отобразится сообщение о корректном подключении (см. Рисунок - 6.22).

Сообщение об успешном подключении к БД

Рисунок - 6.22 Сообщение об успешном подключении к БД

  1. Закройте окно проверки соединения, для этого нажмите кнопку ОК.

  2. В окне «Настройка базового соединения» нажмите кнопку Готово.

6.2.1.2.3. Установка и настройка драйвера JDBC-драйвер для ОС Linux

(В данном разделе описан процесс установки драйвера в Dbeaver, работающий под управлением операционной системы Linux Ubuntu, версия 20.04).

Чтобы установить драйвер и настроить подключение к базам данных, выполните следующие действия:

  1. Откройте программу Dbeaver.

  2. В главном меню программы выберите «Database» и нажмите пункт Driver Manager (см. Рисунок - 6.23).

Управление драйверами

Рисунок - 6.23 Управление драйверами

  1. В открывшемся окне «Driver Manager» нажмите кнопку New (см. Рисунок - 6.24).

Окно «Driver Manager»

Рисунок - 6.24 Окно «Driver Manager»

  1. В открывшемся окне «Create new driver» (см. Рисунок - 6.25) заполните следующую информацию:

  • Driver Name: DtmDriver;

  • Class Name: ru.datamart.prostore.jdbc.Driver;

  • URL Template: jdbc:prostore://{host}:{port}.

Окно «Create new driver»

Рисунок - 6.25 Окно «Create new driver»

  1. Установите маркер в поле «No authentication» и «Allow Empty Password».

  2. Во вкладке «Libraries» укажите путь к jar-файлу с JDBC-драйвер.

  3. Нажмите кнопку Ок.

  4. Проверьте, что драйвер был добавлен в программу. Для этого в окне «Driver Manager» в поисковой строке введите название драйвера – DtmDriver (см. Рисунок - 6.26).

Окно «Поиск DtmDriver в Driver Manager»

Рисунок - 6.26 Окно «Поиск DtmDriver в Driver Manager»

6.2.1.2.4. Подключение к базе данных

Для подключения к базам данных через JDBC-драйвер, выполните следующие действия:

  1. Откройте программу Dbeaver.

  2. В главном меню программы выберите пункт Database > Connect to a Database.

  3. В окне «Connect to a Database» в поисковой строке введите dtmdriver (см. Рисунок - 6.27).

Поиск DtmDriver при создании нового подключения

Рисунок - 6.27 Окно Поиск DtmDriver при создании нового подключения

  1. Выберите DtmDriver (см. Рисунок - 6.28).

Установка нового соединения с базой данных

Рисунок - 6.28 Установка нового соединения с базой данных

  1. В окне «Connection Settings» (см. Рисунок - 6.29) заполните следующие поля:

  • Хост - DNS-name или IP адрес сервера базы данных. Например, 172.16.0.17.

  • Порт - порт для сервера базы данных, например, 9090.

Настройка базового подключения

Рисунок - 6.29 Настройка базового подключения

  1. Нажмите кнопку «Connection test» для проверки подключения.

  2. В случае успешного подключение отобразится сообщение об успешном подключении (см. Рисунок - 6.30).

Сообщение об успешном подключении к БД

Рисунок - 6.30 Сообщение об успешном подключении к БД

  1. Нажмите кнопку Ok

6.2.2. Проверка загрузки данных в БД

Данная проверка описывает возможность загрузки данных и проверку того, что данные были загружены. Для проверки загрузки данных следует выполнить следующие действия:

  • создать в программе тестовую базу данных test_upload_data с тремя таблицами: Passenger, Ticket и Trip;

  • проверить, что записи в таблицах отсутствуют;

  • загрузить через CSV-uploader в таблицы Ticket и Trip тестовые данные;

  • проверить, что данные в таблицы Ticket и Trip были загружены, а в таблице Passenger записи отсутствуют.

Внимание

Проверку загрузки данных следует проводить на тестовом стенде.

Внимание

В случае использования VPN следует проверить его настройки и подключение.

6.2.2.1. Создание тестовой БД

  1. Откройте программу Dbeaver, установите подключение к БД программы и проверьте, что логическая БД test_upload_data отсутствует, для этого выполните следующий sql-запрос:

SELECT *
FROM INFORMATION_SCHEMA.schemata
WHERE schema_name = UPPER('test_upload_data');
  1. Убедитесь, что БД отсутствует (см. Рисунок - 6.31).

Проверка БД *test_upload_data*: База данных отсутствует

Рисунок - 6.31 Проверка БД test_upload_data: База данных отсутствует

  1. Подготовьте 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>
  1. Откройте web-интерфейс CSV-uploader.

  2. Во вкладке «Загрузка структуры», в поле выбора файла XML для загрузки в Витрину выберите XML-файл (MetadataRequest_test_upload_data.xml) созданный в п.2.

  3. Нажмите кнопку «Загрузить» (см. Рисунок - 6.32).

Загрузка XML-файла со структурой витрины

Рисунок - 6.32 Загрузка XML-файла со структурой витрины

  1. В случае успешной загрузки, отобразится сообщение «Структура витрины успешно создана» (см. Рисунок - 6.33).

Сообщение «Структура витрины успешно создана»

Рисунок - 6.33 Сообщение «Структура витрины успешно создана»

  1. Откройте программу Dbeaver, установите подключение к БД программы и проверьте, что логическая БД test_upload_data создана, для этого выполните запрос:

SELECT *
FROM INFORMATION_SCHEMA.schemata
WHERE schema_name = UPPER('test_upload_data');

SQL-запрос вернул одну строку, в которой поле SCHEMA_NAME имеет значение TEST_UPLOAD_DATA (см. Рисунок - 6.34).

Проверка БД *test_upload_data*: База данных создана

Рисунок - 6.34 Проверка БД test_upload_data: База данных создана

  1. Убедитесь, что в созданной БД существуют таблицы: Passenger, Ticket и Trip. Для этого выполните запрос к БД:

SELECT *
FROM INFORMATION_SCHEMA.tables
WHERE table_schema = UPPER('test_upload_data');

SQL-запрос вернул записи о созданных логических таблицах (см. Рисунок - 6.35).

Проверка таблиц БД

Рисунок - 6.35 Проверка таблиц БД

  1. Проверьте количество записей в таблицах: 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-запрос вернул нулевое значении (см. Рисунок - 6.36). Это значит, что записи в таблицах отсутствуют.

Проверка таблиц БД

Рисунок - 6.36 Проверка таблиц БД

6.2.2.2. Загрузка данных

  1. Скачайте CSV-файлы (tickets.csv, trips.csv).

  2. Откройте web-интерфейс CSV-uploader и перейдите на вкладку Загрузка.

  3. Выберите режим «Вставка».

  4. Установите переключатель в режим Автоматическое определение таблицы.

  5. В поле CSV выберите CSV-файлы (tickets.csv и trips.csv) для загрузки в БД (см. Рисунок - 6.37).

Загрузка данных из CSV-файла

Рисунок - 6.37 Загрузка данных из CSV-файла

  1. Отобразится сообщение Отправка запроса на загрузку… (см. Рисунок - 6.38).

Отправка запроса на загрузку

Рисунок - 6.38 Отправка запроса на загрузку

В случае успешной загрузки файла отобразится сообщение Операция выполнена успешно (см. Рисунок - 6.39).

Сообщение «Операция выполнена успешно»

Рисунок - 6.39 Сообщение «Операция выполнена успешно»

  1. Выполните проверку загрузки данных. Для этого последовательно выполните следующие запросы к БД:

Проверка таблицы passenger

SELECT COUNT(*) FROM test_upload_data.passenger;

SQL-запрос вернул нулевое значении т.к загрузки данных в эту таблицу не было (см. Рисунок - 6.40).

Проверка таблицы *passenger*

Рисунок - 6.40 Проверка таблицы passenger

Проверка таблицы ticket

SELECT COUNT(*) FROM test_upload_data.ticket;

SQL-запрос вернул значение 5000 (см. Рисунок - 6.41).

Проверка таблицы *ticket*

Рисунок - 6.41 Проверка таблицы ticket

Проверка таблицы trip

SELECT COUNT(*) FROM test_upload_data.trip;

SQL-запрос вернул значение 500 (см. Рисунок - 6.42).

Проверка таблицы *trip*

Рисунок - 6.42 Проверка таблицы trip

С дополнительной информацией по работе с программой Dbeaver (настройка, выполнение запросов, просмотр таблиц и т.д.) можно ознакомиться на официальном сайте разработчика программы https://dbeaver.io/.