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 и продвинутыми обходными решениями.

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