Amazon анонсировала Multi-Dataset Relationships для сервиса бизнес-аналитики QuickSight. Новая функция позволяет аналитикам определять логические связи между разными наборами данных и выполнять их объединение в момент выполнения запроса, вместо того чтобы предварительно сводить все таблицы в один денормализованный датасет. Такой подход устраняет необходимость заранее проектировать плоские структуры, что сокращает время подготовки данных и упрощает поддержку отчётности.
Архитектура Multi-Dataset Relationships включает два уровня: физический (внутри отдельного датасета) и логический (между датасетами в QuickSight Topic). На физическом уровне можно объединять таблицы с помощью join, union или SQL-трансформаций. На логическом уровне датасеты остаются независимыми — каждый сохраняет свою исходную детализацию и схему. QuickSight выполняет runtime inner join только тогда, когда визуализация, вычисляемое поле или вопрос к Q&A обращается к полям из разных датасетов. Текущая версия поддерживает только внутренние соединения, но в будущем ожидается добавление других типов.
| Аспект | Традиционная модель (single-dataset) | Модель на основе отношений (relationships) |
|---|---|---|
| Подготовка данных | Требуется предварительное объединение таблиц в один датасет | Связи определяются один раз, объединение выполняется на лету |
| Детализация | Разные уровни детализации смешиваются, меры дублируются | Каждый датасет сохраняет свою детализацию |
| Повторное использование | Для каждого отчёта создаётся свой датасет | Один Topic может обслуживать множество сценариев |
| Обновление данных | Зависит от единого расписания обновления датасета | Каждый датасет имеет независимый график обновления |
| Безопасность | RLS обычно применяется на уровне объединённого датасета | RLS выполняется на этапе runtime-объединения |
Преимущества нового механизма включают: сокращение предварительной обработки (определение связей один раз), сохранение родной детализации каждого датасета, повторное использование одной структуры Topic для разных аналитических сценариев, упрощение управления правами доступа и независимые расписания обновления данных. Row-level security применяется во время выполнения объединений, обеспечивая согласованные политики доступа. Функция также решает проблему разрастания датасетов (dataset sprawl), когда для каждого отчёта создаётся отдельная плоская таблица. Для углублённого изучения паттернов моделирования AWS выпустил вторую часть серии с примерами SQL и продвинутыми обходными решениями.
Функция устраняет необходимость заранее денормализовать таблицы, что сокращает затраты на подготовку данных и упрощает поддержку.



