# Подключение Apache Superset

В этой статье мы пройдем процесс подключения Apache Superset к аналитической базе данных. Чтобы сделать материал более наглядным, мы также создадим панель мониторинга, которая подключается к аналитической базе данных и отслеживает состояние транспортных средств в режиме реального времени — всё с использованием Apache Superset.

{% hint style="info" %}
Это руководство является частью **IoT Query** наборa документации и специально охватывает подключение Power BI к вашему хранилищу данных. Если вы всё ещё выбираете BI‑инструмент, обратитесь к [Выбор инструментов BI](https://www.navixy.com/docs/analytics/ru/iot-query/connection-setup/selecting-bi-tools) обзору.
{% endhint %}

## Функции панели мониторинга

* Отображение общего количества объектов
* Визуализация статусов движения транспортных средств (движется/остановлено/припарковалось)
* Визуализация статусов подключения (активен/в простое/офлайн)
* Подробная таблица с текущим статусом всех транспортных средств
* Фильтрация по типу транспортного средства, группе, статусу движения и статусу подключения
* Возможности экспорта данных и отчетов
* Настраиваемые уведомления и оповещения

## Технические требования

* Docker и Docker Compose
* Минимум 4 ГБ ОЗУ (рекомендуется 8 ГБ)
* 20 ГБ свободного дискового пространства
* Linux/Windows с WSL2/macOS
* Python 3.8+
* Доступ в интернет для подключения к базе данных

## Установка и настройка

### 1. Установка с помощью Docker (рекомендуемый метод)

1. Установите Docker и Docker Compose, следуя официальной документации:

* [Установка Docker](https://docs.docker.com/engine/install/)
* [Установка Docker Compose](https://docs.docker.com/compose/install/)

2. Скачайте официальный файл docker-compose:

{% code overflow="wrap" %}

```sh
curl -fL https://raw.githubusercontent.com/apache/superset/master/docker-compose-non-dev.yml -o docker-compose.yml
```

{% endcode %}

3. Запустите Superset:

```sh
docker-compose up -d
```

4. Создайте администратора:

```sh
docker-compose exec superset superset fab create-admin \
  --username admin \
  --firstname Superset \
  --lastname Admin \
  --email admin@superset.com \
  --password admin
```

5. Инициализируйте базу данных:

```sh
docker-compose exec superset superset db upgrade
```

6. Загрузите примеры и инициализируйте роли:

```sh
docker-compose exec superset superset init
```

### 2. Установка через pip (для разработки)

1. Создайте виртуальное окружение:

```sh
python -m venv venv
source venv/bin/activate  # для Linux/macOS
# или
.\venv\Scripts\activate  # для Windows
```

2. Установите Superset:

```sh
pip install apache-superset
```

3. Инициализируйте базу данных:

```sh
superset db upgrade
```

4. Создайте администратора:

```sh
export FLASK_APP=superset
superset fab create-admin
```

5. Загрузите примеры и инициализируйте роли:

```sh
superset init
```

6. Запустите Superset:

```sh
superset run -p 8088 --with-threads --reload --debugger
```

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

1. Войдите в Superset (по умолчанию: <http://localhost:8088>)
2. Перейдите в Data → Databases
3. Нажмите "+" чтобы добавить новую базу данных
4. Заполните параметры подключения:
   1. Database: PostgreSQL
   2. SQLAlchemy URI: `postgresql://${DB_USER}:${DB_PASS}@${DB_HOST}:${DB_PORT}/${DB_NAME}`
   3. Display Name: Analytics Database
   4. Extra: `{"engine_params": {"connect_args": {"sslmode": "require"}}}`
5. Нажмите **Test Connection** чтобы проверить подключение
6. Сохраните настройки

### Справочник параметров подключения

<table><thead><tr><th width="177.9090576171875">Параметр Lakehouse</th><th>Расположение настройки в Apache Superset</th><th>Примечания</th></tr></thead><tbody><tr><td><strong>Хост</strong></td><td><code>DB_HOST</code> в SQLAlchemy URI</td><td>Адрес сервера базы данных, указанный в вашем приветственном письме</td></tr><tr><td><strong>Порт</strong></td><td><code>DB_PORT</code> в SQLAlchemy URI</td><td>По умолчанию 5432 для PostgreSQL</td></tr><tr><td><strong>Имя базы данных</strong></td><td><code>DB_NAME</code> в SQLAlchemy URI</td><td>Назначенное вам имя базы данных</td></tr><tr><td><strong>Имя пользователя</strong></td><td><code>DB_USER</code> в SQLAlchemy URI</td><td>Ваше имя пользователя базы данных</td></tr><tr><td><strong>Пароль</strong></td><td><code>DB_PASS</code> в SQLAlchemy URI</td><td>Ваш защищённый пароль базы данных</td></tr><tr><td><strong>Режим SSL</strong></td><td><code>connect_args</code> в параметрах Extra</td><td>Установите значение <strong>require</strong> в JSON‑конфигурации Extra</td></tr><tr><td><strong>Схема</strong></td><td>Настройка набора данных</td><td>Укажите схему (<code>raw_business_data</code> или <code>raw_telematics_data</code>) в каждом наборе данных</td></tr></tbody></table>

## Импорт панели мониторинга и диаграмм

1. Клонируйте репозиторий [bi-integratons](https://github.com/SquareGPS/bi-intergrations) репозиторий:

```sh
git clone https://github.com/SquareGPS/bi-intergrations.git
```

2. В Superset перейдите в **Settings → Import/Export**
3. Импортируйте файлы в следующем порядке:
   1. `datasets.json` - datasets
   2. `charts.json` - charts
   3. `dashboards.json` - dashboards
4. После импорта обновите подключения к базам данных в каждом наборе данных

## Устранение неполадок

### Проблемы с подключением к базе данных

* **Ошибка подключения:** Проверьте правильность учетных данных и параметров подключения
* **Ошибка брандмауэра:** Убедитесь, что ваш IP‑адрес добавлен в allowlist
* **Проблемы с SSL:** Проверьте настройки SSL в параметрах подключения

### Проблемы с производительностью

* **Медленная загрузка визуализаций:**
  * Оптимизируйте SQL‑запросы
  * Уменьшите количество одновременно отображаемых элементов
  * Используйте кэширование результатов
* **Высокое потребление памяти:**
  * Увеличьте ресурсы Docker‑контейнера
  * Оптимизируйте запросы к базе данных

### Другие проблемы

Вот несколько трюков, которые могут помочь исправить распространённые проблемы:

1. Проверьте логи Superset:

```
docker-compose logs superset
```

2. Перезапустите контейнеры:

```
docker-compose restart
```

3. Очистите кэш браузера
4. Проверьте версию Superset и при необходимости обновите

## Дальнейшие шаги

После успешного подключения Power BI к вашему **IoT Query** экземпляру, мы рекомендуем вам:

* Изучите доступные схемы данных, просматривая раздел [Обзор схемы](https://www.navixy.com/docs/analytics/ru/iot-query/schema-overview) чтобы лучше понять структуру данных и взаимосвязи.
* Начните с простых запросов, ориентированных на конкретные бизнес‑сущности, прежде чем создавать сложные панели — ознакомьтесь с нашим [примером запросов](https://www.navixy.com/docs/analytics/ru/example-queries) в качестве примера.

### **Поддержка**

По техническим вопросам или запросам доступа к демонстрационной базе данных, пожалуйста, свяжитесь: <support@squaregps.com>
