Федеративный запрос к данным: как читать источник без полной копии

Что означает федеративный запрос, когда данные можно оставить в исходной системе и какие ограничения есть у такого подхода.

Отдельные шкафы данных соединены прозрачным мостом, по которому проходят лишь некоторые карточки.

Данные остались в рабочей системе

У компании есть рабочая база заказов и отдельная среда для аналитики. Аналитику нужны сведения о нескольких последних заказах, но переносить всю базу ради одного вопроса неудобно. Один из вариантов — обратиться к источнику через соединение и получить нужный результат. Такой способ называют федеративным запросом: аналитическая система запрашивает данные в другой системе, где они продолжают храниться.

Это не волшебная общая база. Системы остаются разными, соединение требует разрешений, а часть результата всё равно передаётся между ними для ответа пользователю. В документации Google Cloud федеративный запрос описан именно как обращение к внешней операционной базе из аналитической среды. Для понимания, зачем иногда создают отдельное хранилище, полезна статья о базе данных и хранилище.

Как аналитика видит источник

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

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

Условный пример

Условный отдел продаж ведёт заказы в рабочей базе, а аналитики готовят еженедельный отчёт. Для разового вопроса о последних обращениях они могут запросить только нужный период через соединение. Из миллиона исторических строк не требуется заранее делать отдельную полную копию только ради этой проверки. Но если такой отчёт одновременно открывают сотни сотрудников, повторные обращения способны перегрузить рабочую базу.

Поэтому важно согласовать с владельцем системы допустимую нагрузку, права и время обновления. Иногда для аналитики используют читающую копию рабочей базы. Так повседневная работа с заказами меньше зависит от тяжёлых аналитических вопросов. Конкретная архитектура всегда зависит от нагрузки и требований к свежести данных, а не от привлекательности самого слова «федерация».

Почему ответ может приходить дольше

Аналитическая среда ждёт, пока внешний источник выполнит свою часть работы и передаст результат. Сеть, расстояние между системами, скорость источника и объём ответа влияют на время. Документация Google Cloud прямо предупреждает: федеративные запросы могут быть медленнее чтения данных, уже размещённых в аналитическом хранилище. Внешние таблицы имеют похожее ограничение по скорости и могут зависеть от изменений исходных данных во время чтения.

Другой риск — разные определения полей и форматов в системах. Если отчёт соединяет сведения из нескольких мест, нужно проверить, одинаково ли они понимают дату, идентификатор клиента и статус заказа. Быстрый доступ к источнику не заменяет согласования смысла данных. Хранение больших наборов как отдельных объектов рассмотрено в статье об объектном хранилище.

Когда лучше перенести данные

Если отчёт нужен регулярно, затрагивает много строк и должен работать быстро без влияния на рабочую базу, перенос выбранных данных в аналитическое хранилище часто удобнее. Появляется собственный график обновления, контроль качества и предсказуемая нагрузка. Цена — дополнительная копия, её хранение и необходимость объяснить пользователю, насколько свежи сведения.

Для редкого вопроса по небольшому объёму федеративное чтение может быть разумным первым шагом. Сравнивайте варианты по четырём вопросам: какой объём нужен, насколько важна свежесть, какова нагрузка на источник и кто отвечает за доступ. Выстраивать такие решения учатся на программе «Архитектор данных», где выбор способа связи между системами рассматривают в контексте всей архитектуры.

Архитектор данных
Курс
Новинка
Архитектор данных

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

С нуля
Теория и практика
Диплом по окончании
12 990
₽/мес
Узнать подробнее

Источники

Читайте также

Обучить команду или нанять специалиста по данным: как выбрать
47

Обучить команду или нанять специалиста по данным: как выбрать

Как руководителю определить, какие навыки развивать внутри команды, когда нужна новая роль и почему обучение и найм часто дополняют друг друга.
Вертикальное и горизонтальное масштабирование данных: в чём разница
46

Вертикальное и горизонтальное масштабирование данных: в чём разница

Когда системе добавляют мощность одного сервера, когда делят работу между несколькими и почему увеличение ресурсов само по себе не решает любую проблему.
Журнал изменений данных: как выяснить, кто и когда изменил набор
43

Журнал изменений данных: как выяснить, кто и когда изменил набор

Что можно узнать из журнала действий с данными, как он помогает разбирать ошибки и почему его записи не показывают всю историю сами по себе.

Занятия проходят
в Нова Дата СДО

Вебинары, практика и общение с преподавателем — в одном окне браузера.

Посмотреть интерфейс платформы
Календарь обучения в Нова Дата СДО
Курсы студента в Нова Дата СДО
Редактор кода для практики в Нова Дата СДО
Вебинары и расписание Ваши курсы Код в браузере
Нова Дата СДО — в реестре российского ПОРеестровая запись № 34931
Заявка отправлена
Отправим вам подборку курсов в течение 5 минут. С вами также свяжется наш специалист и даст карьерную консультацию.
Персональный промокод
На курс «Инженер по парсингу данных»
Введите код при оплате, чтобы применить скидку к программе.