Обязанности:
- Очистить и трансформировать данные о людях и их связях из реляционной базы данных MS SQL Server
- Вычислить прямые и производные родственные связи на основе неверифицированной (содержащей ошибки) информации и сформировать итоговую реляционную структуру (таблицы узлов и ребер), представляющую собой готовый граф родственных связей.
Результаты, которые ожидаются от кандидата:
- Таблица «Узлы» (Nodes): Справочник уникальных персон (с суррогатными ключами, устранением дублей).
- Таблица «Ребра» (Edges): Таблица связей, содержащая как прямые (факты из исходной БД), так и вычисленные/производные связи.
- Матрица степеней родства (опционально, но желательно): Таблица или функция, позволяющая для любой пары узлов определить степень родства (например, 1-я степень, 2-я степень, свойственники).
- Документация: Описание бизнес-логики (как именно вычислялись производные связи) и карта трансформации данных.
Требования:
- Продвинутое знание MS SQL Server (T-SQL):
- Уверенное написание сложных запросов, использование оконных функций.
- Критически важно: Глубокое понимание и опыт работы с рекурсивными запросами (Recursive CTE), так как они необходимы для обхода иерархий и поиска путей в графе (например, поиск степени родства между двумя людьми).
- Понимание моделей данных:
- Умение проектировать реляционные таблицы для хранения графов в формате Edge List (Список ребер: Source_Node_ID, Target_Node_ID, Relationship_Type, Weight/Confidence).
- Понимание разницы между ориентированными и неориентированными графами и как это отражается в таблице (например, связь "супруг" — неориентированная, "родитель" — ориентированная).
- Работа с качеством данных (Data Quality):
- Опыт решения задач дедупликации (слияния дублей записей о людях).
- Умение работать с неполными данными, противоречиями и «висячими» ссылками.
- Алгоритмическая логика в SQL:
- Умение писать SQL-скрипты для вычисления транзитивных связей (например, вычисление связи «Двоюродный брат» через цепочку «Родитель -> Родитель -> Ребенок»).
- Понимание логики родства (Генеалогическая логика):
- Способность формализовать правила родства. Кандидат должен понимать, как из базовых связей (Родитель, Ребёнок, Супруг) математически/логически выводятся сложные связи Братья/Сёстры, Дядя/Тётя, Двоюродные братья/сёстры, Бабушки/Дедушки).
- Обработка краевых случаев (Edge Cases):
- Умение закладывать в логику обработки нестандартных ситуаций: повторные браки, сводные братья/сестры , усыновление/удочерение, разводы, случаи, когда один из родителей неизвестен.
- Выявление аномалий:
- Способность написать скрипты для поиска логических ошибок в исходных данных (например, циклы: А — родитель Б, Б — родитель В, В — родитель А; или человек старше своего «родителя»).
Мы предлагаем:
- Лидер рынка: Работа в крупной, стабильной и аккредитованной Минцифры IT компании.
- Стабильность: Официальное оформление по ТК РФ, полностью "белая" заработная плата.
- Здоровье: Расширенный пакет ДМС со стоматологией для вас.
- Активный отдых: Спортивные активности (командные соревнования), увлекательные корпоративы и тимбилдинги.
- Поддержка семьи: Подарки для детей к праздникам и семейные мероприятия, предоставляем материальную поддержку при рождении ребенка, заключении брака и в других значимых жизненных ситуациях.
- Удобство: Офис в 5 минутах от м. Савеловская, гибкое начало рабочего дня.
- Команда: Присоединяйся к коллективу экспертов, где ценят взаимопомощь и профессионализм.
Компания входит в реестр IT компаний «Минцифры».