Вспомогательный репозиторий продукта Nedra.Data PLATFORM. Основной репозиторий продукта доступен по ссылке
Nedra.Data PLATFORM (backend repository)
Развёртка окружения для разработки
-
Клонировать репозиторий
-
Установить все зависимости проекта
poetry install
Для установки без dev и/или airflow групп зависимостей можно сделать
poetry install –without airflow,dev
-
Установить значения для переменных окружения Backend и Airflow (например, через .env файл в корне проекта)
- examples/.env.example - пример .env файла, который можно скопировать, заполнить недостающую информацию и использовать в качестве источника переменных окружения необходимых для запуска
-
Запустить
poetry run python src\main.py
Проверка кода
Установка git хуков
poetry run pre-commit install
Ручной запуск всех хуков в репозитории:
poetry run pre-commit run --all-files
Ручной запуск всех хуков на определённом файле:
poetry run pre-commit run --files src/main.py
Описание переменных окружения Backend API
После равно указаны значения по-умолчанию которые будут подставлены в случае отсутствия переменной окружения
Airflow
-
Адрес сервиса Airflow
AIRFLOW_URL=
-
Имя сервисного пользователя Airflow
AIRFLOW_API_USER=
-
Пароль сервисного пользователя Airflow
AIRFLOW_API_PASSWORD=
Веб-сервер приложения (uvicorn)
-
Хост к которому будет привязан сокет
APP_SERVER_HOST=0.0.0.0
-
Порт к которому будет привязан сокет
APP_SERVER_PORT=8000
-
Включение режима отладки
APP_SERVER_DEBUG=True
-
Включение миграций БД
APP_ENABLE_MIGRATIONS=True
-
Тип используемого хранилища
APP_STORAGE_TYPE=HDFS
-
Название приложения
APP_INFO_TITLE=Nedra Data Platform API
-
Описание приложения
APP_INFO_DESCRIPTION=Nedra Data Platform Description
-
Версия приложения (если переменная не задана, то значение берется из файла version.json)
APP_INFO_VERSION=1.0.0
Подключение к брокеру (Kafka)
-
Хост брокера
BROKER_HOST=
-
Порт брокера
BROKER_PORT=
Из переданных значений собирается строка подключения для клиента брокера
Подключение к DataHub
-
Адрес DataHub
DATAHUB_URL=
-
Токен DataHub
DATAHUB_TOKEN=
Подключение к БД (Postgres)
-
Хост СУБД
DB_HOST=
-
Порт СУБД
DB_PORT=
-
Пользователь СУБД
DB_USER=
-
Пароль для пользователя СУБД
DB_PASSWORD=
-
Имя БД
DB_NAME=
Из переданных значений собирается строка подключения для клиента СУБД
Подключение к ElasticSearch
-
Хост ElasticSearch
ELASTICSEARCH_HOST=
-
Порт ElasticSearch
ELASTICSEARCH_PORT=
-
Индекс ElasticSearch
ELASTICSEARCH_INDEX=
-
Таймаут запросов к ElasticSearch
ELASTICSEARCH_REQUEST_TIMEOUT=30
Подключение к хранилищу Hadoop
-
Хост Web API Hadoop (внешний хост, используется для доступа извне, например, из локально развернутого приложения)
HDFS_WEB_HOST=
-
Хост Web API Hadoop (внешний порт, используется для доступа извне, например, из локально развернутого приложения)
HDFS_WEB_PORT=
-
Внешний Хост Hadoop
HDFS_WEB_URL_EXTERNAL=
-
Хост Hadoop (внутренний хост, используется для взаимодействия между элементами одной инфраструктуры)
HDFS_STORE_HOST=
-
Порт Hadoop (внутренний порт, используется для взаимодействия между элементами одной инфраструктуры)
HDFS_STORE_PORT=
-
Хост Hive Metastore
HDFS_METASTORE_HOST=
-
Порт Hive Metastore
HDFS_METASTORE_PORT=
-
Директория, в которую осуществляется запись
HDFS_TOPIC_DIR=
-
Имя сервисного пользователя Hadoop
HDFS_USER=
Подключение к Kafka Connect
-
Хост Kafka Connect
KAFKA_CONNECT_HOST=
-
Порт Kafka Connect
KAFKA_CONNECT_PORT=
Подключение к Schema Registry
-
Хост Schema Registry
SCHEMA_REGISTRY_HOST=
-
Порт Schema Registry
SCHEMA_REGISTRY_PORT=
Из переданных значений собирается строка подключения для клиента Schema Registry
-
Хост внутренней Schema Registry
SCHEMA_REGISTRY_INSIDE_HOST=
-
Порт внутренней Schema Registry
SCHEMA_REGISTRY_INSIDE_PORT=
Из переданных значений собирается строка подключения для клиента Schema Registry
Подключение к Trino
-
Хост Trino
TRINO_HOST=
-
Порт Trino
TRINO_PORT=
-
Имя пользователя Trino
TRINO_USER=
Описание переменных окружения Airflow
После равно указаны значения по-умолчанию которые будут подставлены в случае отсутствия переменной окружения
-
Тип используемого хранилища
AIRFLOW_VAR_STORAGE_TYPE=HDFS
Подключение к БД (Postgres)
AIRFLOW_CONN_NDP_DB='{ "conn_type": null, "login": null, "password": null, "host": null, "port": null, "schema": null }'
Подключение к Trino
AIRFLOW_CONN_NDP_TRINO={ "conn_type": null, "login": null, "password": null, "host": null, "port": null, "schema": null }
Подключение к Kafka Connect
-
URL Kafka Connect
AIRFLOW_VAR_BROKER_URL=
Подключение к Schema Registry
-
URL Schema Registry
AIRFLOW_VAR_SCHEMA_REGISTRY_URL=
Подключение к ElasticSearch
-
Хост ElasticSearch
AIRFLOW_VAR_ELASTICSEARCH_HOST=
-
Порт ElasticSearch
AIRFLOW_VAR_ELASTICSEARCH_PORT=
-
Размер массива данных, отправляемых в ElasticSearch при индексации
AIRFLOW_VAR_ELASTICSEARCH_CHUNK_SIZE=10000
Подключение к хранилищу Hadoop
-
Хост Web API Hadoop (внешний хост, используется для доступа извне, например, из локально развернутого приложения)
AIRFLOW_VAR_HDFS_URL=
-
Имя сервисного пользователя Hadoop
AIRFLOW_VAR_HDFS_USER=
-
Хост Hadoop (внутренний хост, используется для взаимодействия между элементами одной инфраструктуры)
AIRFLOW_VAR_HDFS_STORE_URL=
-
Хост Web API Hadoop (внешний адрес, используется для доступа извне, например, из локально развернутого приложения)
AIRFLOW_VAR_HDFS_WEB_URL_EXTERNAL=
Описание
Backend-репозиторий продукта Nedra.Data PLATFORM