ETL модуль
ETL модуль
В данном разделе дано описание настройки и конфигрирование работы модуля vault-2. Модуль осуществляет постоянную выгрузку данных в отдельное хранилище, структура которого подготовлена для загрузки OLAP хранилища.
Описание правил формирования данных для выгрузки описано в разделе Администрирование.
Требования к запуску модуля
- Для работы модуля необходима БД Postgres версии 11 и выше
- в СУБД необходимо создать БД и две схемы:
CREATE DATABASE dwh
WITH
OWNER = postgres
ENCODING = 'UTF8'
LC_COLLATE = 'ru_RU.UTF-8'
LC_CTYPE = 'ru_RU.UTF-8'
TABLESPACE = pg_default
CONNECTION LIMIT = -1;
COMMENT ON DATABASE dwh
IS 'ETL хранилище данных ';
CREATE SCHEMA dwh
AUTHORIZATION postgres;
CREATE SCHEMA stage
AUTHORIZATION postgres;
- Для локальной установки на сервер требуется JDK11
Установка модуля в K8
Для установки vault-2 используется helm скрипт 'stable/vault'. Данные для запуса описываются в файле values.yaml, который имеет следующую структуру
Параметр | Описание | Комментарий |
---|---|---|
imageSecrets | Секция задает секрет логина пароля для доступа к реестру докеров | если уже есть секрет, необходимо указать его имя и указать enabled=false |
imageCredential | данные реестра докеров | |
image | задает образ модуля в реестре | |
datasource | секция задает параметры подключения к dwh | |
semdatasource | секция задает параметры подключения к оперативной БД платформы | |
vault.interval | интервал выгрузки фактов в DWH из оперативного хранилища в месяцах (по умолчанию 12) | |
vault.batch_size | размер порцию строк для записи в БД (по умолчанию 1000) | |
cassandra.query_timeout | таймаут (в секундах, по умолчанию 2 сек.) запроса данных из таблиц measureinterval, calcinterval, signaltransit | использовать только, если реально на получении данных возникнет ошибка pt2s при выгрузке данных в БД Cassandra |
Пример запуска, обновления:
helm install dwh_example -f values.yaml stable/vault -n <namespace>
helm upgrade dwh_example -f values.yaml stable/vault -n <namespace>
Установка на локальную машину
Создать директорию /opt/vault-2 и поместить в нее vault-2.jar, application.yml
mkdir /opt/vault-2
cp vault-2.jar /opt/vault-2
cp application.yml /opt/vault-2
Создать директорию для логов:
mkdir -p /var/log/vault-2
Настроить к ней путь в конфиге application.yml:
logging:
path: /var/log/vault-2
Запуск
java -jar vault-2.jar
application.yml
содержит структуру, аналогично описанной выше .
Для запуска модуля как сервиса Linux выполниет следующие шаги:
- Создать символьную ссылку в директории /etc/init.d
cd /etc/init.d
chmod +x /opt/vault-2/vault-2.jar
ln -s /opt/vault-2/vault-2.jar vault-2
- Перечитать список сервисов linux
systemctl daemon-reload
- Запуск и остановку сервиса можно осуществлять стандартными командами, т.е.
service vault-2 start
service vault-2 status
service vault-2 stop
Управление перегрузкой данных
Модуль vault записывает окна периодов выгрузки в таблицу dwh.public.valuelog. Если требуется перезагрузить данные, выполните следующие действия:
- Остановите vault;
- В таблице valuelog удалите периоды, которые следует перезагрузить;
- Запустите vault.