Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Основные тезисы с встреч #25

Open
Kkhludneva opened this issue Apr 19, 2024 · 8 comments
Open

Основные тезисы с встреч #25

Kkhludneva opened this issue Apr 19, 2024 · 8 comments
Assignees
Labels
communications Issue for capturing ideas and progress

Comments

@Kkhludneva
Copy link
Collaborator

Kkhludneva commented Apr 19, 2024

Под этим issue будут фиксироваться основные тезисы со встреч с заказчиком и командных созвонов

@Kkhludneva Kkhludneva added the communications Issue for capturing ideas and progress label Apr 19, 2024
@Kkhludneva Kkhludneva self-assigned this Apr 19, 2024
@Kkhludneva
Copy link
Collaborator Author

Kkhludneva commented Apr 19, 2024

Встреча с заказчиком 19.04

Обсудили сделанное:

https://docs.google.com/document/d/1uGMz5Q09hnye_OM5p7RjPq6g8G6BVsEi4Oe6x_i3pZ8/edit

Планы на ближайшее время:

ELT:

  1. Организовать загрузку pbf файлов в промежуточное хранилище
    a) выбор промежуточного хранилища
    b) скрипт для загрузки
    c) оркестрация в airflow
  2. Из pbf в PostGis c помощью osm2pgsql - по умолчанию получаем разбиение данных по геометрическим примитивам.
  3. Оптимизация полученного хранилища под запросы: реструктуризация бд (разбиение данных оптимальным образом), индексы.
    Имеет место территориальное деление/деление по слоям/шардирование (исходя из того, что пользователи чаще обращаются к данным о своем регионе)
    https://habr.com/ru/articles/807931/

ВРЕМЕННЫЕ ДЕЛЬТЫ:

  1. Получение дельт - параллельно с разработкой ELT
  2. Актуализация (накат дельт) - когда будет решен вопрос со структурой БД (ELT п.3)

ПРОЧЕЕ:

Если останутся силы, попробовать добавить другие источники (помимо OSM)

@Guywash-Ka
Copy link
Collaborator

Командная встреча 19.04

Рассуждения и дальнейшие планы:

  • Закончить разбираться с уже поставленными целями на временные дельты и на dbt
  • Обсудили, где будем разворачивать систему. Пришли к тому, что сначала будем разворачивать все в облаке на линукс сервере, возможно позже добавление Airflow
  • Решили параллельно начать делать MVP из частей, в которых больше всего уверены (например решили, что будем брать постгрес, поэтому будем пробовать писать автоматизацию на развертывание БД и небольшие скрипты на загрузку данных в БД из .pbf)
  • Обсудили, что пока что не будем использовать промежуточные хранилища (например s3) и будем сохранять файлы локально.

Это план на ближайшие 4 дня, потом будем двигаться дальше

@Kkhludneva
Copy link
Collaborator Author

Kkhludneva commented Apr 29, 2024

Командный созвон 29.04

Написан bash скрипт для первичного скачивания pbf, установки postgres, расширения postgis и загрузки pbf файлов в базу данных

Решили, что будем разделять данные по регионам так, как они разделены в geofabric:

central-fed-district
central-fed-district
crimean-fed-district
far-eastern-fed-district
kaliningrad
north-caucasus-fed-district
northwestern-fed-district
siberian-fed-district
south-fed-district
ural-fed-district
volga-fed-district

Остановились на этом так как и pbf, и временные дельты доступны для скачивания в таком разбиении.
По каждому региону будем хранить таблицы с геометрическими примитивами (line, point, polygon, roads)

План на ближайшее время:

  1. Придумать, как применять дельты к вышеописанной структуре БД
  2. Переделать bash скрипт под скачивание регионов по-отдельности, переименовывание таблиц (к названиям таблиц по-умолчанию добавить название соответствующего региона)

@potomushozhenya дополни, пожалуйста, если что-то упустила

@potomushozhenya
Copy link
Collaborator

potomushozhenya commented Apr 29, 2024

Нужно еще доделать скрипт, который делал Родион, так, чтобы он загружал pbf с предоставленной ссылки и загружал в БД

@Kkhludneva
Copy link
Collaborator Author

Kkhludneva commented May 14, 2024

Командный созвон 14.05

Итоги:

  • Написан скрипт для настройки окружения, первичного скачивания pbf регионов
    и загрузки их в БД
  • По каждому региону сохраняем 4 таблицы с геом примитивами. Названия таблиц имеют вид: central_fed_district_points и т.п.
  • Сделали применение дельт к БД.
    Ближайшие планы:
  • Изменить именование таблиц, чтобы можно было загружать pbf не только России, но и любой территории по миру. Названия будут иметь вид: russia_central_fed_district_points _lines и т.п.
  • Настроить оркестрацию процессов в Airflow. Будет 3 процесса:

DAG1: Первичная настройка окружения и загрузка таблиц по регионам.
Запуск процесса - по кнопке.

DAG2: Применение дельт:

  1. Скачивание дельт
  2. Применение к БД
    Запуск процесса - 1 раз в N дней.

DAG3: Загрузка нового региона

  1. Скачивание нового pdf
  2. pdf --osm2pgsql--> соответствующие таблицы
    Запуск процесса - по кнопке.

Так, функционал итогового продукта будет включать в себя:

  • Получаем хранилище пространственных данных, разделенных по регионам. Процесс настройки окружения и - - создания БД автоматизирован.

  • Реализован процесс актуализации данных (наката временных дельт).

  • Реализована возможность добавления новых территорий (с geofabric)

  • Статус выполнения вышеописанных процессов можно отслеживать в Airflow.

Схема прототипа загружена в репозиторий.

@sevryukov
Copy link

@nikita03565 посмотри, пожалуйста.

@Kkhludneva FYI

@nikita03565
Copy link
Collaborator

@Kkhludneva @potomushozhenya

DAG1: Первичная настройка окружения

есть предложение настройку окружения не помещать в даги, но возможно существует недопонимание что именно эта настройка в себя включает

установка постгреса, питона нужной версии, самого airflow лучше бы должна (но не обязательно) как-то происходить автоматически в самом начале один раз и больше ее повторять по таймеру или по кнопке через airflow должно быть не нужно. есть какая-то мотивация уметь повторять настройку окружения через даги? а чтобы запускать даги нужно как-то установить перед этим airflow
первый даг тогда может скачивать начальные pbf файлы и загружать их в бд. второй и третий хороши как они описаны сейчас

@Kkhludneva
Copy link
Collaborator Author

Kkhludneva commented May 21, 2024

Добрый день, коллеги! @sevryukov @nikita03565

Докладываю о состоянии проекта к моменту презентации на демо дне:

Немного отклонились от плана, но функционал системы остался тем же:

  1. Автоматизирована настройка окружения: postgres, необходимые расширения к нему и airflow устанавливаются автоматически запуском bash скрипта. Этот же скрипт загружает несколько регионов в базу данных.
  2. Настроена актуализация данных в хранилище с помощью Apache Airflow: скачивание и применение дельт происходит раз в сутки.
  3. Есть возможность добавить любой новый регион с geofabrik: для этого нужно передать ссылку на pbf региона в качестве параметра при запуске соответствующего bash скрипта, и система загрузит его в базу данных; дельты к новому региону тоже будут применяться.

Всё работает под ос linux / windows+wsl

@potomushozhenya поправь, если что-то упустила

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
communications Issue for capturing ideas and progress
Projects
Status: No status
Development

No branches or pull requests

5 participants