Skip to content

Сущности

Пользователь

SyncMaster поддерживает многопользовательскую систему и доступ на основе ролей (см. Роли и разрешения). Для любого взаимодействия требуется аутентификация пользователя, анонимный доступ не допускается.

Пользователи автоматически получают доступ после успешного входа в систему, специальной регистрации не требуется.

Группа

Все типы сущностей (Подключение, Передача, Выполнение, Очередь) могут быть созданы только внутри определенной группы. Группы независимы друг от друга и имеют глобально уникальное имя.

imageimage

Группу может создать любой пользователь, которому автоматически назначается роль OWNER. Эта роль позволяет добавлять участников в группу и назначать им определенные роли:

image

Подключение

Подключение описывает, как SyncMaster может получить доступ к конкретной базе данных или файловой системе. Оно включает тип (например, s3, hive, postgres), параметры подключения (например, host, port, protocol) и данные авторизации (комбинация user / password).

Подключения имеют уникальные имена в пределах группы.

imageimageimage

Трансфер

Трансфер — это сердце SyncMaster. Он описывает, какие данные следует извлечь из источника (подключение к БД + имя таблицы, подключение к файловой системе + путь к каталогу), и какова цель (БД или файловая система).

Передачи имеют уникальное имя в пределах группы.

imageimageimageimage

Можно добавить преобразования между этапами чтения и записи:

imageimageimage

Другие возможности переноса:

  • Выбор различных стратегий чтения (полный, пошаговый)
  • Выполнение переноса по расписанию (ежечасно, ежедневно, еженедельно и т. д.)
  • Задание определённых ресурсов (ЦП, ОЗУ) для каждого выполнения переноса

image

Запуск

Каждый раз при запуске передачи (вручную или по расписанию) SyncMaster создаёт отдельный запуск, который отслеживает состояние процесса ETL, URL-адрес журналов рабочих процессов и т. д.

imageimage

Очередь

Очередь позволяет привязать определённую передачу к набору SyncMaster Worker

Очередь имеет уникальное имя в пределах группы и глобально уникальное поле slug, которое генерируется при создании очереди.

imageimage

Передачи невозможно создать без очереди. Если к очереди не привязан ни один исполнитель, созданные запуски не будут выполнены.

Диаграмма сущностей

---
title: Entity Diagram
---
erDiagram
    direction LR
    User {
        id        
        username
        is_active
        is_superuser
        created_at
        updated_at
    }

    Group {
        id        
        name
        description
        owner_id
        created_at
        updated_at
    }

    Connection {
        id        
        group_id
        type
        name
        description
        data
        created_at
        updated_at
    }

    Queue {
        id        
        name
        slug
        description
        created_at
        updated_at
    }


    Transfer {
        id        
        group_id
        name
        source_connection_id
        target_connection_id
        strategy_params
        target_params
        transformations
        resources
        is_scheduled
        schedule
        queue_id
        created_at
        updated_at
    }

    Run {
        id
        transfer_id
        started_at
        ended_at
        status
        type
        log_url
        transfer_dump
        created_at
        updated_at
    }

    Run ||--o{ Transfer: contains   

    Transfer ||--o{ Queue: contains
    Transfer ||--o{ Connection: contains
    Transfer ||--o{ Group: contains
    Connection ||--o{ Group: contains
    Queue ||--o{ Group: contains
    Group }o--o{ User: contains
    Group ||--o{ User: contains