Документы

Коммерческая аналитика. Руководство по установке

Требование к окружению

1. Тип процессора: x86 64-bit
Количество ядер: 12+
2. Тактовая частотапроцессора: 2,6 ГГц
3. Поддержкапроцессором SSE 4.2
4. Оперативная память:32 Гб
5. Объем дисковогопространства: 500 Гб
6. Операционная система:Linux (Ubuntu 20.04.4)
7. Доступ к сети интернет для установки пакетов Загрузка и установка пакетов для ETL обработки данных

Загрузка и установка пакетов для ETL обработки данных

1.Установка ClickHouse

1.1. Поддерживает ли текущийпроцессор SSE 4.2:
grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE4.2 not supported"
1.2. Из DEB пакетов
sudo apt-get install -y apt-transport-https ca-certificates dirmngr
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv8919F6BD2B48D754 echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee \
/etc/apt/sources.list.d/clickhouse.list sudo apt-get update
sudo apt-get install-y clickhouse-server clickhouse-client sudo service clickhouse-server start
1.3.Настройка Clickhouse в /etc/clickhouse-server/config.xml
1.3.1. <listen_host>::</listen_host>
1.3.2. раскомментируем <grpc_port>9100</grpc_port> (по этому портуработает API-запросы из web-приложения)
1.3.3. устанавливаем <user_files_path>/</user_files_path> в корень
1.3.4. перегружаем службу service: clickhouse-server restart
1.3.5. добавляем сервис clickhouse-server в system: systemctl enable clickhouse-server.service

2.Устанавливаем PostreSQL

2.1.sudo apt update
2.2.sudo apt -y upgrade
2.3.sudo apt install postgresql postgresql-contrib
2.3.1. Создаем пользователя sudo su – postgres
psql
create user infovizion with superuser password'password'; exit

3.Установка pgAdmin 4 (на базе Python)

3.1. Проверка версии и обновление

python3 –v
apt-get install python3 pip
sudo apt install-y build-essential libssl-dev libffi-dev python3-dev libpq-devpython3-dev libkrb5-dev nginx pip3 install virtualenv

3.2. Создадим директории

sudo mkdir -p /var/lib/pgadmin4/sessions sudo mkdir /var/lib/pgadmin4/storage sudo mkdir /var/log/pgadmin4

3.3. Назначим root как владельца для директорий

sudo chown -R root /var/lib/pgadmin4/ sudo chown -R root /var/log/pgadmin4/

3.4. Создаем изолированное виртуальное окружение

virtualenv .pgadmin4 cd .pgadmin4 source bin/activate
Скачиваем pgadmin4 v5.7:
Установим Cython:
pip3 installCython
Установим pgadmin: pip3 installpgadmin4-5.7-py3-none-any.whl

3.5. Настроем серверную среду:

nano ~/.pgadmin4/lib/python3.8/site-packages/pgadmin4/config_local.py
Добавим в файл следующие строки:
DEFAULT_SERVER = '0.0.0.0'
DEFAULT_SERVER_PORT = 5050
LOG_FILE = '/var/log/pgadmin4/pgadmin4.log' SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db' SESSION_DB_PATH = '/var/lib/pgadmin4/sessions' STORAGE_DIR = '/var/lib/pgadmin4/storage' SERVER_MODE = True
Настроем pgadmin:
python3 lib/python3.8/site-packages/pgadmin4/setup.py
в процессе настройки нужно создать учетную запись, которую мы будет использовать для входа в web морду pgadmin
NOTE: Configuring authentication for SERVER mode.
Enter the email address and password to use for the initialpgAdmin user account: Email address: youremail@address
Password:
Retype password:
Выйдем из virtualenv: deactivate

3.6. Права доступа:

sudo chown -R www-data:www-data /var/lib/pgadmin4/ sudo chown -R www-data:www-data /var/log/pgadmin4/

3.7. Создадим скрипт для запуска pgadmin

sudo nano /usr/local/bin/pgadmin.sh
#!/bin/bash
. /root/.pgadmin4/bin/activate # virtualenv is now active.
#
nohup python3 /root/.pgadmin4/lib/python3.8/site-packages/pgadmin4/pgAdmin4.py & sudo chmod +x /usr/local/bin/pgadmin.sh
Запустим в скрипт : sudo /usr/local/bin/pgadmin.sh
Ответ в консоль : sudo apt install net-toolНажмем Enter чтобы вернутся в консоль.
Проверим запущенный процесс: sudo netstat -anlp | grep 5050
Вывод в консоль: tcp 0 0 0.0.0.0:5050 0.0.0.0:* LISTEN 1259/python

3.8. Устанавливаем автозагрузку при старте системы:

crontab –e
@reboot /usr/local/bin/pgadmin.sh

4.Загружаем и настраиваем ETL

Используя WinSCP Загружаем структуру каталогов и ETL скрипты в /etc/QlikDocs/Project1
Настраиваем на стороне клиентавыгрузку данных в ZIP формате на серверпо SSH

5.Настраиваем планировщик заданий

Для обновления лицензии на web-приложении, напримерProject1, вешаемв cron задачу crontab-e
# 01:00 Start SCHELUDER AUTO -- ETL base on Clickhouse
0 1 * * * python3 /etl/QlikDocs/Project1/2.Transformation/3.Scripts/Scheduler.py

6.Загружаем и настраиваем Веб

6.1. Создаемнеобходимые директории

sudo mkdir -p /usr/local/analytics sudo mkdir /usr/local/analytics/web
sudo mkdir /usr/local/analytics/.sessions sudo mkdir /usr/local/analytics/perf sudo mkdir /usr/local/analytics/export sudo mkdir /var/log/analytics

6.2. Копируем в /usr/local/analytics

analytics.exe config.yaml

6.3.Создаем в /usr/local/analytics/web следующую структуру

web/project1/conf/conf2.meta web/project1/web/all web source files

6.4. Разархивируем web.zip в подкаталоги web

sudo apt-get installunzip
sudo unzip /usr/local/analytics/web/web.zip -d /usr/local/analytics /web/project1/web

6.5. Правим config.yaml указываем установленные ранее в п.2.4.3логин/пароль от PostreSQL

6.6. Правим права доступа

sudo chown -R www-data:www-data /usr/local/analytics/
sudo chown www-data:www-data /usr/local/analytics/analytics.exe sudo chmod +x /usr/local/analytics/analytics.exe
sudo chown -R www-data:www-data /var/log/analytics/

6.7. Инициируем БД

/usr/local/analytics/analytics.exe db init --force-recreate-db--dangerous --conf config.yaml --directory /usr/local/analytics

6.8. Проверяем развертку БД в pgAdmin.Для этого создадимтам server localhost. Заходим на http://адрес_сервера.ru:5050

Create Server Name: localhost Host: localhost User: infovizion
Password: password

6.9. Запускаем сервис: /usr/local/analytics/analytics.exe --directory /usr/local/analytics --conf config.yaml server start

6.10. Для обновления лицензии, вешаем в cronзадачу crontab –e

#09:00 UPDATE lic
0 9 * * * /usr/local/analytics/license update --output /usr/local/analytics/analytics.lic --conf
/usr/local/analytics/config.yaml >/var/log/analytics/update_lic.log 2>&1

6.11. Служба / демон для запуска Analytics

6.11.1. Создаем файл демона
cd ~
sudo nano analytics.service
6.11.2. Содержание файла [Unit] Description=Analytics
Documentation=https://infovizion.ru Wants=network-online.target After=network-online.target
AssertFileIsExecutable=/usr/local/analytics/analytics.exe
[Service] WorkingDirectory=/usr/local/analytics/ User=www-data
Group=www-data
ExecStart=/usr/local/analytics/analytics.exe --directory /usr/local/analytics --conf config.yaml server start
# Let systemdrestart this servicealways Restart=always
# Specifies the maximum file descriptor number that can be openedby this process LimitNOFILE=65536
# Disable timeoutlogic and wait until processis stopped TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
# Built for ${project.name}-${project.version} (${project.name})
6.11.3. Переносим и активируем демон sudo mv analytics.service /etc/systemd/system sudo systemctl daemon-reload
sudo systemctl enableanalytics sudo systemctl start analytics

6.12. Отдельный пользователь ssh

6.12.1.Создаем пользователя: sudo adduser infovizion
6.12.2.Добавляем его в группу www-data: sudo usermod-a -G www-data infovizion
6.12.3.Ещё раз на всякий случайвыдаем права на папки
sudo chmod g+w /usr/local/analytics sudo chmod-R g+w /var/log/analytics

6.13. Меняем часовойпояс на время клиента

6.13.1.Список всех зон timedatectl list-timezones
6.13.2.Устанавливаемзону в соответствии со списком(в примере +7 Красноярск)
sudo timedatectl set-timezone Asia/Krasnoyarsk