.. _install_prostore_lite: Установка программы =================== .. attention:: Перед установкой программы необходимо обязательно выполнить предварительные действия по настройке (см. раздел :ref:`preactions`). Состав компонентов и номер версии см. в разделе «4. Проверка Программы» настоящего Руководства (см. :numref:`table_container_list_lite`). Требования к серверному оборудованию, телекоммуникационному оборудованию и каналам связи приведены в разделе «Минимальный состав технических средств» документа «Руководство администратора». Требования к программному обеспечению (см. раздел «Минимальный состав программных средств» документа «Руководство администратора»). Настройка конфигурационного файла --------------------------------- Чтобы запустить процесс установки программы с помощью Ansible, необходимо настроить конфигурационный файл. Для этого выполните следующие действия: 1. Переименовать файл ``custom.example.yml`` расположенный в папке *ansible/group_vars/* в ``custom.yml``. Для этого выполните команду: :: cp -n ansible/group_vars/custom.example.yml ansible/group_vars/custom.yml 2. В файле ``custom.yml`` указать корректные значения для следующих переменных: - ``server_ip`` - адреса сервера. Укажите IP-адрес сервера, на который будет установлена программа. Например: :: server_ip: "172.16.10.59" - ``server_user_name`` - имя пользователя операционной системы. Укажите имя пользователя операционной системы сервера, под которым будет производиться установка программы (см. раздел :ref:`datamart_user_lite`), например: :: server_user_name: datamart - ``podd_kafka_topic_prefix`` - префикс перед именем топиков для ПОДД-агента. Например: :: podd_kafka_topic_prefix: "user_prefix." .. attention:: В качестве префикса рекомендуется использовать мнемонику витрины. После определения параметра префикса следует обязательно ставить символ ``.`` (точка)! Пример: ``podd_kafka_topic_prefix: "prod_vitrina98."`` .. _install_prostore: Установка программы ------------------- Для установки программы выполните команду:: docker-ansible-cmd ansible-playbook -i hosts install.yml Начнется процесс установки программы (см. :numref:`progress_install`): .. _progress_install: .. figure:: img/progress_install_lig.png :align: center :alt: Процесс установки Процесс установки Установка программы завершена. При успешной установке параметр ``failed`` должен иметь значение - ``0`` (см. :numref:`progress_install`). Это значит, что все компоненты программы установлены, а необходимые взаимосвязи между ними настроены корректно. После установки программы следует провести ее проверку. Проверка программы ================== .. _check_install_prostore: Процесс установки программы описан в разделе :ref:`install_prostore_lite`. Для проверки установки программы следует выполнить следующие действия: 1. Открыть в браузере web-интерфейс **Portainer** для управления docker-контейнерами по адресу: .. code-block:: IP:9000 - ``IP`` - адрес сервера. - ``9000`` - порт сервера. 2. Введите логин и пароль администратора Portainer. По умолчанию - ``admin``/ ``LongPassword`` (см. :numref:`authorization_docker`). .. _authorization_docker: .. figure:: img/image5-1_lig.png :align: center :alt: Авторизация в Portainer Авторизация в Portainer 3. Чтобы определить и автоматически настроить локальную среду нажмите значок **Get Started** (см. :numref:`Portainer`). .. _Portainer: .. figure:: img/image5_lig.png :align: center :alt: Окно «Quick Setup» Окно «Quick Setup» 4. На главной странице нажмите ссылку **local** (см. :numref:`local_link`). .. _local_link: .. figure:: img/image6_lig.png :align: center :alt: Окно «Home» Окно «Home» 5. Нажмите значок **Containers** (см. :numref:`Containers`). .. _Containers: .. figure:: img/image7_lig.png :align: center :alt: Окно «Containers» Окно «Containers» 6. В разделе *Container list* просмотреть наличие компонентов в дистрибутиве программы (:numref:`table_container_list_lite`): .. Проверить соответствие компонентов и версий в дистрибутиве программы (документ "Техническое описание") Состав компонентов в дистрибутиве программы версии 1.11.1 (см. :numref:`table_container_list_lite`). .. _table_container_list_lite: .. table:: Состав компонентов в дистрибутиве программы версии 1.11.1 ======================= ========== ============================== Наименование компонента Версия Техническое наименование ======================= ========== ============================== graylog 4.2.7 graylog:4.2.7 podd-adapter-query 1.11.1 podd-adapter:1.11.1 podd-adapter-mppr 1.11.1 podd-adapter-mppr:1.11.1 podd-adapter-mppw 1.11.1 podd-adapter-mppw:1.11.1 podd-adapter-replicator 1.11.1 podd-adapter-replicator:1.11.1 podd-adapter-group-repl 1.11.1 podd-adapter-group-repl:1.11.1 csv-uploader 1.11.1 csv-uploader:1.11.1 query-execution 6.5.0 query-execution:6.5.0 status-monitor 6.5.0 status-monitor:6.5.0 PostgreSQL 13.4 PostgreSQL:13.4 PG-connector 0.6.0 PG connector:0.6.0 kafka-postgres-writer 0.6.1 kafka-postgres-writer:0.6.1 kafka-postgres-reader 0.6.1 kafka-postgres-reader:0.6.1 ======================= ========== ============================== 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 Пример успешного ответа (см. :numref:`image9_link`). .. _image9_link: .. figure:: img/image9_lig.png :align: center :alt: Проверка подключения к базе данных Prostore Проверка подключения к базе данных Prostore 8. Подключиться к Grafana. Для этого следует перейти по адресу: ``http://<имя сервера>:3000`` и выполнить авторизацию (указаны значения по умолчанию): - логин: admin; - пароль: admin. Проверить, что показатели Healthcheck Leaviness и Readiness (дашборд Lite) работают (индикатор зеленого цвета). 9. Просмотреть лог-файл установки (ansible/ansible.log). Лог-файл не должен содержать записей с ошибками установки. Обновление программы ==================== Установка обновления происходит путем перезаписи файлов предыдущей версии программы файлами обновления. Все предыдущие настройки программы (адреса серверов, порты и т.д.) останутся без изменений. Далее приведены рекомендации по проведению обновления программы в зависимости от версии программы. .. attention:: Перед началом обновления выполните резервное копирование. Обновление с версии 1.0.0 до версии 1.0.1 ----------------------------------------- .. attention:: Данное обновление предусмотрено только для перехода с версии программы 1.0.0 до версии 1.0.1. Чтобы обновить программу необходимо выполнить следующие действия (подробная инструкция по обновлению ниже): #. Выполнить резервное копирование. #. Скопировать архив с обновлением программы на сервер. #. Распаковать архив с обновлением. #. Запустить процесс обновления. #. Проверить, что обновление прошло успешно. Резервное копирование ~~~~~~~~~~~~~~~~~~~~~ .. attention:: Действия этого раздела необходимо выполнять под созданной учетной записью ``datamart`` (см. раздел :ref:`datamart_user_lite`). Для того чтобы выполнить резервное копирование создайте архив текущей версии с указанием актуальной даты копирования. Например:: tar -czvf dtm-lite-2022-01-17.tgz ansible/ images/ jdbc/ rpms/ Копирование архива с обновлением программы на сервер ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Для загрузки на сервер архива с файлами обновления программы используйте SFTP-клиент (например, WinSCP или Filezilla). Для авторизации используйте логин и пароль учетной записи администратора ``datamart`` созданной при установке ОС (см. раздел :ref:`datamart_user_lite`). 1. Подключитесь по SSH к серверу (см. раздел :ref:`ssh_connect`), используя логин и пароль учетной записи администратора. 2. Загрузите файл с архивом в домашнюю директорию пользователя ``datamart`` командой:: mv ~/dtm-lite-1.0.1.tgz /home/datamart/ где, - ``dtm-lite-1.0.1.tgz`` - название архива программы. - ``datamart`` - имя пользователя. Распаковка архива с обновлением ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. attention:: Перед тем как выполнить разархивирование рекомендуется просмотреть/скопировать значения переменных (IP-адрес сервера, префикс и т.д.), которые использовались в предыдущей версии программы в файле ``ansible/group_vars/all/main.yml``. После распаковки архива с обновлением программы данные из этого файла будут удалены. Чтобы распаковать архив, выполните команду:: tar -xzvf dtm-lite-1.0.1.tgz Процесс обновления программы ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Чтобы запустить процесс обновления программы с помощью Ansible, необходимо выполнить следующие действия: 1. Переименовать файл ``custom.example.yml`` расположенный в папке ``ansible/group_vars/`` в ``custom.yml``. Для этого выполните команду: :: cp -n ansible/group_vars/custom.example.yml ansible/group_vars/custom.yml 2. В файле ``custom.yml`` указать корректные значения для следующих переменных: - ``server_ip`` - адреса сервера. Укажите IP-адрес сервера, на который будет установлено обновление программы. Например: :: server_ip: "172.16.10.59" - ``server_user_name`` - имя пользователя операционной системы. Укажите имя пользователя операционной системы сервера, под которым устанавливается обновление (см. раздел :ref:`datamart_user_lite`), например: :: server_user_name: datamart - ``podd_kafka_topic_prefix`` - префикс перед именем топиков для ПОДД-агента (указывается опционально). Например: :: podd_kafka_topic_prefix: "user_prefix." .. attention:: В качестве префикса рекомендуется использовать мнемонику витрины. После определения параметра префикса следует обязательно ставить символ ``.`` (точка)! Пример: ``podd_kafka_topic_prefix: "prod_vitrina98."`` Чтобы запустить процесс обновления программы выполните команду:: docker-ansible-cmd ansible-playbook -i hosts install.yml Начнется процесс обновления программы (см. рис. ниже): .. figure:: img/progress_install_lig.png :align: center :alt: Обновление программы Обновление программы Установка обновления завершена. После завершения обновления необходимо убедиться, что обновление программы прошло успешно. Проверка обновления программы до версии 1.0.1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Для проверки обновления программы необходимо выполнить следующие действия: 1. Убедиться, что после установки обновления нет ошибок в работе программы. 2. Убедиться, что параметр ``failed`` (см. рис. выше) после установки обновления имеет значение - ``0``. Это значит, что все необходимые компоненты программы были обновлены, а необходимые взаимосвязи между ними настроены корректно. 3. Открыть *Portainer* и проверить, что версии компонентов соответствуют указанным ниже:: csv-uploader:1.0.12 podd-adapter:5.0.7 query-execution:5.2.2 status-monitor:5.2.2 Обновление с версии 1.0.1 до версии выше ---------------------------------------- Чтобы обновить программу необходимо выполнить следующие действия: #. Выполнить резервное копирование. #. Скопировать архив с обновлением программы на сервер. #. Распаковать архив с обновлением. #. Запустить процесс обновления. #. Проверить, что обновление прошло успешно. Резервное копирование ~~~~~~~~~~~~~~~~~~~~~ .. attention:: Действия этого раздела необходимо выполнять под созданной учетной записью ``datamart`` (см. раздел :ref:`datamart_user_lite`). Для того чтобы выполнить резервное копирование создайте архив текущей версии с указанием актуальной даты копирования. Например:: tar -czvf dtm-lite-2022-01-17.tgz ansible/ images/ jdbc/ rpms/ Копирование архива с обновлением программы на сервер ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Для загрузки на сервер архива с файлами обновления программы используйте SFTP-клиент (например, WinSCP или Filezilla). Для авторизации используйте логин и пароль учетной записи администратора ``datamart`` созданной при установке ОС (см. раздел :ref:`datamart_user_lite`). 1. Подключитесь по SSH к серверу (см. раздел :ref:`ssh_connect`), используя логин и пароль учетной записи администратора. 2. Загрузите файл с архивом в домашнюю директорию пользователя ``datamart`` командой:: mv ~/dtm-lite-<номер версии>.tgz /home/datamart/ где, - ``dtm-lite-<номер версии>.tgz`` - название архива программы. - ``datamart`` - имя пользователя. Распаковка архива с обновлением ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Чтобы распаковать архив, выполните команду:: tar -xzvf dtm-lite-<номер версии>.tgz Процесс обновления программы ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Чтобы запустить процесс обновления программы с помощью Ansible, необходимо выполните команду:: docker-ansible-cmd ansible-playbook -i hosts install.yml Начнется процесс обновления программы (см. рис. ниже): .. figure:: img/progress_install_lig.png :align: center :alt: Обновление программы Обновление программы Установка обновления завершена. После завершения обновления необходимо убедиться, что обновление программы прошло успешно. Проверка обновления программы ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Для проверки обновления программы необходимо выполнить следующие действия: 1. Убедиться, что после установки обновления нет ошибок в работе программы. 2. Убедиться, что параметр ``failed`` (см. рис. выше) после установки обновления имеет значение - ``0``. Это значит, что все необходимые компоненты программы были обновлены, а необходимые взаимосвязи между ними настроены корректно. 3. Открыть *Portainer* и проверить, что версии компонентов соответствуют указанным в :numref:`table_container_list_lite` Приложение ========== Настройка 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 3. Сохранить в файл :: [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 4. Включить iptables, для этого выполнить команду :: sudo systemctl enable --now iptables или выполнить следующие две команды:: sudo systemctl enable iptables sudo systemctl start iptables После обновления правил в файле */etc/iptables.conf*, выполнить следующую команду:: sudo systemctl restart iptables Просмотр выполнения загрузки данных в программу ----------------------------------------------- В данном приложении описан порядок проверки загрузки данных в программу, а также необходимые настройки для подключения к базе данных программы. Настройка подключения к базе данных ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Для подключения к базе данных программы необходимо выполнить следующие действия: - получить у системного программиста учетные записи для доступа к базе данных (название БД, логин и пароль пользователя БД); - установить и настроить программу DBeaver (менеджер баз данных); - установить и настроить JDBC-драйвер для работы с базой данных программы; - выполнить проверку подключения к базе данных. Установка программы DBeaver """"""""""""""""""""""""""" DBeaver — это бесплатное программное обеспечение с открытым исходным кодом для управления базами данных (БД). Для взаимодействия с реляционными БД в программе используется программный интерфейс JDBC (через JDBC-драйвер). С помощью программы DBeaver оператор может выполнить следующие действия: - настроить доступ и подключится к БД; - проверить работоспособность БД. Для установки DBeaver скачайте дистрибутив программы с официального сайта https://dbeaver.io/download/. .. attention:: Необходимо выбрать дистрибутив программы для операционной системы, которая установлена на вашем компьютере. Установка DBeaver для ОС Linux ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (В данном разделе описан процесс установки DBeaver, в операционную систему Linux Ubuntu, версия 20.04). 1. В строке поиска *Ubuntu Software* введите название программы *DBeaver* (см. :numref:`search_DBeaver`). .. _search_DBeaver: .. figure:: img/image1_lig.png :align: center :alt: Поиск DBeaver Поиск DBeaver 2. В предложенном списке (см.рис. выше) выберите программу DBeaver. 3. Запустите установку программы, для этого нажмите кнопку *Install* (см. :numref:`install_DBeaver`). .. _install_DBeaver: .. figure:: img/image2_lig.png :align: center :alt: Установка DBeaver Установка DBeaver 4. Дождитесь окончания процесса копирования файлов (см. :numref:`file_copy`). .. _file_copy: .. figure:: img/image3_lig.png :align: center :alt: Процесс копирования файлов программы Процесс копирования файлов программы 5. После завершения копирования файлов на экране монитора отобразится окно с сообщением об успешной установке программы (см. :numref:`install_ready`). .. _install_ready: .. figure:: img/image4_lig.png :align: center :alt: Завершение установки программы Завершение установки программы Установка DBeaver для ОС Windows ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. Запустите установочный файл от имени администратора (см. :numref:`install_admin`). .. _install_admin: .. figure:: img/image5_2_lig.png :align: center :alt: Запуск установочного файла от имени администратора Запуск установочного файла от имени администратора 2. В открывшемся окне (см. :numref:`lang`) выберите язык установки: .. _lang: .. figure:: img/image6_2_lig.png :align: center :alt: Выбор языка установки Выбор языка установки 3. В окне «Мастер установки DBeaver Community» нажмите кнопку **Далее** (см. :numref:`master_install`). .. _master_install: .. figure:: img/image7_2_lig.png :align: center :alt: Окно «Мастер установки DBeaver Community» Окно «Мастер установки DBeaver Community» 4. В открывшемся окне «Лицензионное соглашение» нажмите кнопку **Принимаю** (см. :numref:`lisence`). .. _lisence: .. figure:: img/image8_2_lig.png :align: center :alt: Лицензионное соглашение Лицензионное соглашение 5. В окне «Выбор пользователя» выберите пользователей компьютера, которым будет доступна программа и нажмите кнопку **Далее** (см. :numref:`select_user_lite`). .. _select_user_lite: .. figure:: img/image9_2_lig.png :align: center :alt: Выбор пользователя Выбор пользователя 6. В окне «Компоненты устанавливаемой программы» выберите компоненты программы, которые требуется установить (см. :numref:`select_component`) и нажмите кнопку **Далее**. .. _select_component: .. figure:: img/image10_lig.png :align: center :alt: Выбор компонентов программы для установки Выбор компонентов программы для установки 7. В открывшемся окне «Выбор папки установки» вы можете выбрать папку установки или оставить путь к папке установки по умолчанию. Чтобы изменить папку установки нажмите кнопку **Обзор** и выберите требуемую папку. Для продолжения установки нажмите кнопку **Далее** (см. :numref:`select_folder`). .. _select_folder: .. figure:: img/image11_lig.png :align: center :alt: Выбор папки установки Выбор папки установки 8. В окне «Папка в меню «Пуск» выберите папку, в которую будет помещен ярлык программы или установите маркер в поле «Не создавать ярлыки», в этом случае ярлык программы не будет создан (см. :numref:`select_folder_start`). Нажмите кнопку **Установить** для продолжения процесса установки. .. _select_folder_start: .. figure:: img/image12_lig.png :align: center :alt: Выбор папки в меню «Пуск» Выбор папки в меню «Пуск» 9. В окне «Копирование файлов» будет отображен процесс копирования установочных файлов программы (см. :numref:`soft_copy`). .. _soft_copy: .. figure:: img/image13_lig.png :align: center :alt: Копирование файлов программы Копирование файлов программы 10. Дождитесь окончания процесса копирования файлов. После завершения процесса установки на экране монитора отобразится окно «Завершение работы мастера установки» (см. :numref:`master_end`). Нажмите кнопку **Готово**. .. _master_end: .. figure:: img/image14_lig.png :align: center :alt: Завершение работы мастера установки Завершение работы мастера установки Установка и настройка JDBC-драйвера """"""""""""""""""""""""""""""""""" Для дальнейшей работы c программой оператору необходимо настроить подключение к базам данных программы. Для этого необходимо установить и настроить JDBC-драйвер. Дистрибутив с актуальной версией JDBC-драйвер находится в установочном пакете с программой. Установка и настройка JDBC-драйвера для ОС Windows ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Чтобы установить JDBC-драйвер и настроить подключение к базам данных в программе Dbeaver, работающей под операционной системой Windows, выполните следующие действия: 1. Откройте программу Dbeaver. 2. В главном меню программы выберите «Базы данных» и нажмите пункт **Управление драйверами** (см. :numref:`drivers`). .. _drivers: .. figure:: img/image15_lig.png :align: center :alt: Управление драйверами Управление драйверами 3. В открывшемся окне «Менеджер драйверов» нажмите кнопку **Новый** (см. :numref:`driver_manager`). .. _driver_manager: .. figure:: img/image16_lig.png :align: center :alt: Окно «Менеджер драйверов» Окно «Менеджер драйверов» 4. В открывшемся окне «Создать драйвер» (см. :numref:`driver_create`) заполните следующую информацию: - Имя драйвера: ``DtmDriver``; - Имя класса: ``ru.datamart.prostore.jdbc.Driver``; - Шаблон URL: ``jdbc:prostore://{host}:{port}``. .. _driver_create: .. figure:: img/image17_lig.png :align: center :alt: Окно «Создать драйвер» Окно «Создать драйвер» 5. Установите маркер в поле «Без авторизации» и «Пустой пароль». 6. Перейдите на вкладку **Библиотека** (см. :numref:`library`), нажмите кнопку **Добавить файл** и укажите путь к jar-файлу JDBC-драйвера. .. _library: .. figure:: img/image17_1_lig.png :align: center :alt: Вкладка «Библиотека» Вкладка «Библиотека» 7. Нажмите кнопку «Ок». 8. Проверьте, что драйвер был добавлен в программу. Для этого откройте окно «Менеджер драйверов» (*База данных > Управление драйверами*) и в поисковой строке введите название драйвера – ``DtmDriver`` (см. :numref:`dtmDriver`). .. _dtmDriver: .. figure:: img/image18_lig.png :align: center :alt: Поиск DtmDriver в Менеджере драйверов Поиск DtmDriver в Менеджере драйверов Подключение к базе данных ^^^^^^^^^^^^^^^^^^^^^^^^^ Для подключения к базам данных через JDBC-драйвер, выполните следующие действия: 1. Откройте Dbeaver. 2. В главном меню программы выберите пункт *База данных > Новое соединение*. 3. В окне «Создать соединение» в поисковой строке введите ``dtmdriver`` (см. :numref:`new_connect_lite`). .. _new_connect_lite: .. figure:: img/image19_lig.png :align: center :alt: Установка нового соединения с базой данных Установка нового соединения с базой данных 4. Выберите DtmDriver и нажмите кнопку **Далее** В окне «Настройка соединения» (см. :numref:`set_connect`) заполните следующие поля: - ``Хост`` - DNS-name или IP адрес сервера базы данных. Например, ``172.16.0.17``. - ``Порт`` - порт для сервера базы данных, например, ``9090``. В результате выполненных действий, в поле ``JDBC URL`` будет отображено следующее значение ``jdbc:prostore://172.16.0.17:9090`` (см. рис. ниже). .. _set_connect: .. figure:: img/image20_lig.png :align: center :alt: Настройка соединения Настройка соединения 5. Нажмите кнопку **Тест соединения** для проверки подключения. В случае успешного подключение отобразится сообщение о корректном подключении (см. :numref:`success_connect`). .. _success_connect: .. figure:: img/image21_lig.png :align: center :alt: Сообщение об успешном подключении к БД Сообщение об успешном подключении к БД 6. Закройте окно проверки соединения, для этого нажмите кнопку **ОК**. 7. В окне «Настройка базового соединения» нажмите кнопку **Готово**. Установка и настройка драйвера JDBC-драйвер для ОС Linux ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (В данном разделе описан процесс установки драйвера в Dbeaver, работающий под управлением операционной системы Linux Ubuntu, версия 20.04). Чтобы установить драйвер и настроить подключение к базам данных, выполните следующие действия: 1. Откройте программу Dbeaver. 2. В главном меню программы выберите «Database» и нажмите пункт **Driver Manager** (см. :numref:`driver_manager_linux`). .. _driver_manager_linux: .. figure:: img/image22_lig.png :align: center :alt: Управление драйверами Управление драйверами 3. В открывшемся окне «Driver Manager» нажмите кнопку **New** (см. :numref:`new_driver`). .. _new_driver: .. figure:: img/image23_lig.png :align: center :alt: Окно «Driver Manager» Окно «Driver Manager» 4. В открывшемся окне «Create new driver» (см. :numref:`new_driver_create`) заполните следующую информацию: - Driver Name: ``DtmDriver``; - Class Name: ``ru.datamart.prostore.jdbc.Driver``; - URL Template: ``jdbc:prostore://{host}:{port}``. .. _new_driver_create: .. figure:: img/image24_lig.png :align: center :alt: Окно «Create new driver» Окно «Create new driver» 5. Установите маркер в поле «No authentication» и «Allow Empty Password». 6. Во вкладке «Libraries» укажите путь к jar-файлу с JDBC-драйвер. 7. Нажмите кнопку **Ок**. 8. Проверьте, что драйвер был добавлен в программу. Для этого в окне «Driver Manager» в поисковой строке введите название драйвера – DtmDriver (см. :numref:`driver_search`). .. _driver_search: .. figure:: img/image25_lig.png :align: center :alt: Окно «Поиск DtmDriver в Driver Manager» Окно «Поиск DtmDriver в Driver Manager» Подключение к базе данных ^^^^^^^^^^^^^^^^^^^^^^^^^ Для подключения к базам данных через JDBC-драйвер, выполните следующие действия: 1. Откройте программу Dbeaver. 2. В главном меню программы выберите пункт *Database > Connect to a Database*. 3. В окне «Connect to a Database» в поисковой строке введите ``dtmdriver`` (см. :numref:`driver_search_new`). .. _driver_search_new: .. figure:: img/image26_lig.png :align: center :alt: Поиск DtmDriver при создании нового подключения Окно Поиск DtmDriver при создании нового подключения 4. Выберите DtmDriver (см. :numref:`driver_select`). .. _driver_select: .. figure:: img/image27_lig.png :align: center :alt: Установка нового соединения с базой данных Установка нового соединения с базой данных 5. В окне «Connection Settings» (см. :numref:`connection_set`) заполните следующие поля: - ``Хост`` - DNS-name или IP адрес сервера базы данных. Например, ``172.16.0.17``. - ``Порт`` - порт для сервера базы данных, например, ``9090``. .. _connection_set: .. figure:: img/image28_lig.png :align: center :alt: Настройка базового подключения Настройка базового подключения 6. Нажмите кнопку «Connection test» для проверки подключения. 7. В случае успешного подключение отобразится сообщение об успешном подключении (см. :numref:`connection_test`). .. _connection_test: .. figure:: img/image29_lig.png :align: center :alt: Сообщение об успешном подключении к БД Сообщение об успешном подключении к БД 8. Нажмите кнопку **Ok** Проверка загрузки данных в БД ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Данная проверка описывает возможность загрузки данных и проверку того, что данные были загружены. Для проверки загрузки данных следует выполнить следующие действия: - создать в программе тестовую базу данных ``test_upload_data`` с тремя таблицами: ``Passenger``, ``Ticket`` и ``Trip``; - проверить, что записи в таблицах отсутствуют; - загрузить через *CSV-uploader* в таблицы ``Ticket`` и ``Trip`` тестовые данные; - проверить, что данные в таблицы ``Ticket`` и ``Trip`` были загружены, а в таблице ``Passenger`` записи отсутствуют. .. attention:: Проверку загрузки данных следует проводить на тестовом стенде. .. attention:: В случае использования VPN следует проверить его настройки и подключение. Создание тестовой БД """""""""""""""""""" 1. Откройте программу **Dbeaver**, установите подключение к БД программы и проверьте, что логическая БД ``test_upload_data`` отсутствует, для этого выполните следующий sql-запрос: .. code-block:: sql SELECT * FROM INFORMATION_SCHEMA.schemata WHERE schema_name = UPPER('test_upload_data'); 2. Убедитесь, что БД отсутствует (см. :numref:`test_upload_data`). .. _test_upload_data: .. figure:: img/test_upload_data_1_lig.png :align: center :alt: Проверка БД *test_upload_data*: База данных отсутствует Проверка БД *test_upload_data*: База данных отсутствует 3. Подготовьте XML-файл (``MetadataRequest_test_upload_data.xml``) со следующим содержанием: .. code-block:: xml 00000000-0000-0000-0000-000000000001 1806436d-437a-400d-b32e-aa15c1a2d4bc test_upload_data test_upload_data c52f062e-af97-4a44-a33f-d1a94024d0cf 1 0 2021-01-01T00:00:00 4c4ff97b-938b-4db6-9f4d-ae21046e4d20 Passenger Passenger 6fe29bdb-7db1-405a-a05c-b49c541c92bd Code Code LONG e590e7b3-b611-4891-bbd1-a5e256105e73 Id Id STRING c97a8102-6ad0-4dbd-934d-c82b83a4d83f FirstName FirstName STRING 36 d2312bfb-7ec0-4c95-9026-0f6dea48c5d9 MiddleName MiddleName STRING 7b63db89-bd0e-4c92-8bc0-e609175937b9 LastName LastName STRING 8f3e7f95-f66b-4d4a-b2eb-55a3e6134c3e Birthday Birthday DATE e3658240-b405-4838-99af-d32cd063c463 Passport Passport STRING 6fe29bdb-7db1-405a-a05c-b49c541c92bd Code Code 00000000-0000-0000-0000-000000000001 LONG cafe41db-3878-4796-ba60-cbd54f042c63 Ticket Ticket bc90563b-168a-4faa-9394-7b7390dd0d92 Id Id STRING ac93618f-752b-44d5-a77c-23a3c9eb069b PassengerId PassengerId STRING 51355519-2d59-426e-b199-9589930acaaa TripId TripId STRING fe92c245-929e-4684-b9c9-22bda6939c09 Number Number LONG 4a32ded4-c970-4874-b0b1-2e3eed8b6483 ByCard ByCard BOOLEAN 35f59c80-fcc3-483c-9cd3-dc3afb606d66 Price Price DOUBLE 8b46ff55-6853-458c-851d-6e1666da918b Sold Sold TIMESTAMP fe92c245-929e-4684-b9c9-22bda6939c09 Number Number 00000000-0000-0000-0000-000000000001 LONG 76268090-60ee-4960-8268-1b91f4186e87 Trip Trip bd173e24-ea7e-4869-9d43-9f57f5b0a82f Id Id STRING 1ed32816-8bdb-4d35-9f66-8c08df13ad28 Number Number INTEGER 78f587fa-b53e-4912-b631-0c4a249d20b6 Duration Duration STRING 1750c564-20a7-4e07-988a-b382227123e4 Length Length FLOAT 1ed32816-8bdb-4d35-9f66-8c08df13ad28 Number Number 00000000-0000-0000-0000-000000000002 INTEGER 3. Откройте web-интерфейс *CSV-uploader*. 4. Во вкладке «Загрузка структуры», в поле выбора файла ``XML`` для загрузки в Витрину выберите XML-файл (``MetadataRequest_test_upload_data.xml``) созданный в п.2. 5. Нажмите кнопку «Загрузить» (см. :numref:`xml_load`). .. _xml_load: .. figure:: img/test_upload_data_2_lig.png :align: center :alt: Загрузка XML-файла со структурой витрины Загрузка XML-файла со структурой витрины 6. В случае успешной загрузки, отобразится сообщение «Структура витрины успешно создана» (см. :numref:`structure_create`). .. _structure_create: .. figure:: img/test_upload_data_3_lig.png :align: center :alt: Сообщение «Структура витрины успешно создана» Сообщение «Структура витрины успешно создана» 7. Откройте программу **Dbeaver**, установите подключение к БД программы и проверьте, что логическая БД ``test_upload_data`` создана, для этого выполните запрос: .. code-block:: sql SELECT * FROM INFORMATION_SCHEMA.schemata WHERE schema_name = UPPER('test_upload_data'); SQL-запрос вернул одну строку, в которой поле **SCHEMA_NAME** имеет значение ``TEST_UPLOAD_DATA`` (см. :numref:`test_upload_data_4`). .. _test_upload_data_4: .. figure:: img/test_upload_data_4_lig.png :align: center :alt: Проверка БД *test_upload_data*: База данных создана Проверка БД *test_upload_data*: База данных создана 8. Убедитесь, что в созданной БД существуют таблицы: ``Passenger``, ``Ticket`` и ``Trip``. Для этого выполните запрос к БД: .. code-block:: sql SELECT * FROM INFORMATION_SCHEMA.tables WHERE table_schema = UPPER('test_upload_data'); SQL-запрос вернул записи о созданных логических таблицах (см. :numref:`test_upload_data_5`). .. _test_upload_data_5: .. figure:: img/test_upload_data_5_lig.png :align: center :alt: Проверка таблиц БД Проверка таблиц БД 9. Проверьте количество записей в таблицах: ``Passenger``, ``Ticket`` и ``Trip``. Для этого выполните запрос к БД: .. code-block:: sql SELECT COUNT(*) FROM test_upload_data.passenger; SELECT COUNT(*) FROM test_upload_data.ticket; SELECT COUNT(*) FROM test_upload_data.trip; SQL-запрос вернул нулевое значении (см. :numref:`test_upload_data_6`). Это значит, что записи в таблицах отсутствуют. .. _test_upload_data_6: .. figure:: img/test_upload_data_6_lig.png :align: center :alt: Проверка таблиц БД Проверка таблиц БД Загрузка данных """"""""""""""" 1. Скачайте CSV-файлы (``tickets.csv``, ``trips.csv``). 2. Откройте web-интерфейс *CSV-uploader* и перейдите на вкладку **Загрузка**. 3. Выберите режим «Вставка». 4. Установите переключатель в режим **Автоматическое определение таблицы**. 5. В поле **CSV** выберите CSV-файлы (``tickets.csv`` и ``trips.csv``) для загрузки в БД (см. :numref:`test_upload_data_7`). .. _test_upload_data_7: .. figure:: img/test_upload_data_7_lig.png :align: center :alt: Загрузка данных из CSV-файла Загрузка данных из CSV-файла 6. Отобразится сообщение **Отправка запроса на загрузку...** (см. :numref:`test_upload_data_8`). .. _test_upload_data_8: .. figure:: img/test_upload_data_8_lig.png :align: center :alt: Отправка запроса на загрузку Отправка запроса на загрузку В случае успешной загрузки файла отобразится сообщение **Операция выполнена успешно** (см. :numref:`test_upload_data_9`). .. _test_upload_data_9: .. figure:: img/test_upload_data_9_lig.png :align: center :alt: Сообщение «Операция выполнена успешно» Сообщение «Операция выполнена успешно» 7. Выполните проверку загрузки данных. Для этого последовательно выполните следующие запросы к БД: Проверка таблицы ``passenger`` .. code-block:: sql SELECT COUNT(*) FROM test_upload_data.passenger; SQL-запрос вернул нулевое значении т.к загрузки данных в эту таблицу не было (см. :numref:`test_upload_data_10`). .. _test_upload_data_10: .. figure:: img/test_upload_data_10_lig.png :align: center :alt: Проверка таблицы *passenger* Проверка таблицы *passenger* Проверка таблицы ``ticket`` .. code-block:: sql SELECT COUNT(*) FROM test_upload_data.ticket; SQL-запрос вернул значение ``5000`` (см. :numref:`test_upload_data_11`). .. _test_upload_data_11: .. figure:: img/test_upload_data_11_lig.png :align: center :alt: Проверка таблицы *ticket* Проверка таблицы *ticket* Проверка таблицы ``trip`` .. code-block:: sql SELECT COUNT(*) FROM test_upload_data.trip; SQL-запрос вернул значение ``500`` (см. :numref:`test_upload_data_12`). .. _test_upload_data_12: .. figure:: img/test_upload_data_12_lig.png :align: center :alt: Проверка таблицы *trip* Проверка таблицы *trip* С дополнительной информацией по работе с программой *Dbeaver* (настройка, выполнение запросов, просмотр таблиц и т.д.) можно ознакомиться на официальном сайте разработчика программы https://dbeaver.io/.