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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Окно «Quick Setup»

Окно «Quick Setup»

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

Окно «Home»

Окно «Home»

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

Окно «Containers»

Окно «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

Пример успешного ответа (см. image9_link).

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

Проверка подключения к базе данных 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.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. Проверка обновления программы

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

  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 (см. search_DBeaver).

Поиск DBeaver

Поиск DBeaver

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

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

Установка DBeaver

Установка DBeaver

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Окно «Driver Manager»

Окно «Driver Manager»

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

  • Driver Name: DtmDriver;

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

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

Окно «Create new driver»

Окно «Create new driver»

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Выберите DtmDriver (см. driver_select).

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

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

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

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

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

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

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

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

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

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

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

  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. Убедитесь, что БД отсутствует (см. test_upload_data).

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

Проверка БД 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. Нажмите кнопку «Загрузить» (см. xml_load).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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-запрос вернул нулевое значении (см. test_upload_data_6). Это значит, что записи в таблицах отсутствуют.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SELECT COUNT(*) FROM test_upload_data.passenger;

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

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

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

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

SELECT COUNT(*) FROM test_upload_data.ticket;

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

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

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

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

SELECT COUNT(*) FROM test_upload_data.trip;

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

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

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

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