Перейти к содержанию

Конфигурация баз данных#

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

VLMatch — функция для выполнения вычислений по сравнению биометрических шаблонов. Библиотека VLMatch компилируется для конкретной версии базы данных. Не используйте библиотеку, созданную для другой версии базы данных. Например, библиотеку, созданная для PostgreSQL версии 16 нельзя использовать для PostgreSQL версии 12.

В разделах ниже приводятся команды для СУБД PostgreSQL. Для Oracle приводятся только команды по компиляции библиотеки VLMatch (см. раздел "Компиляция библиотеки VLMatch для Oracle" в разделе "Дополнительная информация").

Настройка InfluxDB#

Если InfluxDB уже развернут в вашем кластере Kubernetes, убедитесь, что следующие данные заданы корректно:

  • Имя пользователя и пароль

  • Название бакета и организации

  • Токен администратора

Важно! Вышеописанные данные необходимо указать в дамп-файле с настройками LUNA PLATFORM для того, чтобы сервисы получили доступ к InfluxDB. Однако настройки сервиса Configurator нельзя задать в дамп-файле, поэтому их нужно задать в Helm чарте сервиса Configurator следующим образом:

env:
  - name: VL_SETTINGS.INFLUX_MONITORING.SEND_DATA_FOR_MONITORING
    value: "1"
  - name: VL_SETTINGS.INFLUX_MONITORING.ORGANIZATION
    value: "luna"
  - name: VL_SETTINGS.INFLUX_MONITORING.TOKEN
    value: "12345678"
  - name: VL_SETTINGS.INFLUX_MONITORING.BUCKET
    value: "luna_monitoring"
  - name: VL_SETTINGS.INFLUX_MONITORING.HOST
    value: "influxdb"
  - name: VL_SETTINGS.INFLUX_MONITORING.PORT
    value: "8086"
  - name: VL_SETTINGS.INFLUX_MONITORING.USE_SSL
    value: "0"
  - name: VL_SETTINGS.INFLUX_MONITORING.FLUSHING_PERIOD
    value: "1"

Настройки InfluxDB также можно указать в переменных окружения в Helm чарте каждого сервиса.

Компиляция библиотеки VLMatch#

Примечание. В следующей инструкции приведен пример для СУБД PostgreSQL 16 на CentOS 8.

Все файлы, требуемые для компиляции расширения, заданного пользователем (UDx), в VLMatch, можно найти в следующей директории:

/var/lib/luna/luna_v.5.67.0/extras/VLMatch/postgres/

Для компиляции функции VLMatch UDx необходимо:

  • установить репозиторий RPM:
dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
  • установить PostgreSQL:
dnf install postgresql16-server
  • установить окружение для разработки:
dnf install postgresql16-devel
  • установить пакет gcc:
dnf install gcc-c++
  • установить CMAKE. Необходима версия 3.5 или выше.

  • открыть скрипт make.sh в текстовом редакторе. Он включает в себя пути к используемой на данный момент версии PostgreSQL. Измените следующие значения (при необходимости):

SDK_HOME задает путь к домашней директории PostgreSQL. По умолчанию это /usr/pgsql-16/include/server;

LIB_ROOT задает путь к библиотечной корневой директории PostgreSQL. По умолчанию это /usr/pgsql-16/lib.

  • открыть директорию скрипта make.sh и запустить его:
cd /var/lib/luna/luna_v.5.67.0/extras/VLMatch/postgres/ 
chmod +x make.sh
./make.sh

Перенесите сгенерированный файл VLMatchSource.so в СУБД PostgreSQL.

Создание пользователя и баз данных#

В данном разделе приводятся примеры команд для создания пользователя и баз данных на примере СУБД PostgreSQL.

Создайте пользователя базы данных.

psql -U postgres -c 'create role luna;'

Присвойте пользователю пароль.

psql -U postgres -c "ALTER USER luna WITH PASSWORD 'luna';"

Создайте базы данных для всех сервисов:

psql -U postgres -c 'CREATE DATABASE luna_configurator;'
psql -U postgres -c 'CREATE DATABASE luna_accounts;'
psql -U postgres -c 'CREATE DATABASE luna_handlers;'
psql -U postgres -c 'CREATE DATABASE luna_backport3;'
psql -U postgres -c 'CREATE DATABASE luna_faces;'
psql -U postgres -c 'CREATE DATABASE luna_events;'
psql -U postgres -c 'CREATE DATABASE luna_tasks;'
psql -U postgres -c 'CREATE DATABASE luna_lambda;'

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

psql -U postgres -c 'GRANT ALL PRIVILEGES ON DATABASE luna_configurator TO luna;'
psql -U postgres -c 'GRANT ALL PRIVILEGES ON DATABASE luna_accounts TO luna;'
psql -U postgres -c 'GRANT ALL PRIVILEGES ON DATABASE luna_handlers TO luna;'
psql -U postgres -c 'GRANT ALL PRIVILEGES ON DATABASE luna_backport3 TO luna;'
psql -U postgres -c 'GRANT ALL PRIVILEGES ON DATABASE luna_faces TO luna;'
psql -U postgres -c 'GRANT ALL PRIVILEGES ON DATABASE luna_events TO luna;'
psql -U postgres -c 'GRANT ALL PRIVILEGES ON DATABASE luna_tasks TO luna;'
psql -U postgres -c 'GRANT ALL PRIVILEGES ON DATABASE luna_lambda TO luna;'

Разрешите пользователю авторизацию в базах данных:

psql -U postgres -c 'ALTER ROLE luna WITH LOGIN;'

Примечание. Обратите внимание, что имя пользователя и пароль указывается в настройках LUNA PLATFORM для соединения сервисов с БД.

Добавление функций VLMatch в БД Faces и Events#

Определите функцию VLMatch в базах данных Faces и Events:

psql -d luna_faces -c "CREATE FUNCTION VLMatch(bytea, bytea, int) RETURNS float8 AS 'VLMatchSource.so', 'VLMatch' LANGUAGE C PARALLEL SAFE;"
psql -d luna_events -c "CREATE FUNCTION VLMatch(bytea, bytea, int) RETURNS float8 AS 'VLMatchSource.so', 'VLMatch' LANGUAGE C PARALLEL SAFE;"

Установка PostGIS для БД Events#

Сервис Events требует расширения PostGIS для работы с координатами.

Поскольку PostGIS является расширением для PostgreSQL, его версия обычно соответствует версии PostgreSQL, с которой оно совместимо.

Самостоятельно установите расширение для используемой версии PostgreSQL, используя официальную документацию.

Для PostgreSQL 16 требуется версия PostGIS 3.4.