Войти Регистрация
Data base

260. Кому писать за доступом к чужой базе

Лёгкая

Neo4j · Neo4j 5.26.20

В Авито граф инфраструктуры лежит в Neo4j: точки интерфейса, эндпоинты, сервисы, хранилища, а ещё команды, люди и роли из 1С и LDAP. Частый вопрос к графу — кому писать за доступом к чужой базе. Ответ ищут так: от хранилища к сервису, который им владеет, от сервиса к команде-владельцу, в команде — техлид.

В нашей модели: (:Service)-[:OWNS]->(:Storage) — сервис владеет хранилищем, (:Service)-[:USES]->(:Storage) — сервис только читает из него, (:Team)-[:OWNS]->(:Service), (:Person)-[:MEMBER_OF {role}]->(:Team). Роль человека — свойство связи, потому что в разных командах у одного человека разные роли. Кадровая система ещё вешает метку :TechLead на всех, кто техлид хоть где-то.

Нужны имена техлидов команды-владельца хранилища pg-orders, по алфавиту.

В работе: Каталог инфраструктуры в графе: поиск ответственного за ресурс.

Как проверяем Движка Neo4j в браузере пока нет, поэтому здесь не запрос, а выбор решения. Выберите один вариант. После ответа — почему каждый вариант верный или нет. Ответ один на подход: после него показываем разбор.
MATCHнаправление связейсвойства связейметки

Источник: доклад Авито о графе инфраструктуры Persistent Fabric, текст в блоге Авито на Хабре, 2019. Условие пересказано своими словами.

Какой запрос вернёт техлидов команды-владельца pg-orders?

  • Путь только по OWNS, роль — из свойства связи MEMBER_OF
  • Путь по OWNS или USES, чтобы не потерять сервисы
  • Фильтр по метке :TechLead у человека
  • Все участники команды-владельца