Skip to content

Синхронизация и ETL

Если датасет переведён в режим Извлечение, платформа выгружает данные из источников в своё хранилище и виджеты читают готовую витрину. Этим управляет окно Синхронизация в верхней панели редактора датасета.

Сначала переключите режим

В режиме «Прямой запрос» окно открывается, но настройки не действуют: платформа предупреждает «Синхронизация недоступна в режиме view». Загрузка работает только в режиме «Извлечение».

Когда нужно извлечение

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

Если данные должны быть всегда свежими, а объём небольшой — оставайтесь на прямом запросе.

Режим и расписание

Стратегия загрузки и расписание

Стратегия загрузки:

СтратегияКак работает
Полная пересборкаКаждый запуск полностью перетирает витрину
ИнкрементальнаяБерутся только изменения по watermark-полю

Для инкрементальной загрузки каждому объекту задаются два поля:

  • Колонка-курсор (watermark) и её тип — по ней платформа понимает, что появилось нового. Отметку последнего успешного запуска она запоминает и в следующий раз берёт только строки за ней.
  • Бизнес-ключ — что считать одной и той же записью. Строка с уже известным ключом не задваивается, а заменяет предыдущую версию.

У инкрементальной загрузки свой ключ сортировки

Задать Ключ сортировки вручную для инкрементального объекта нельзя — платформа не примет настройку: порядок хранения в этом режиме определяется бизнес-ключом.

Расписание задаётся cron-выражением; рядом есть готовые варианты: каждые 6 часов, дважды в день, каждую ночь в 03:00, по будням в 06:00, по выходным в 04:00, еженедельно, первого числа, ежеквартально и «только вручную». Без расписания пересборка запускается только кнопкой Запустить пересборку.

Размер пачки — сколько строк забирать за один батч при загрузке.

Хранение

Настройки хранения витрины

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

Форма витрины определяет, как данные лягут в хранилище:

ВариантЧто происходит
Таблица на объектКаждый объект лежит отдельно, связи считаются при запросе
Одна плоская таблицаОбъекты соединяются при загрузке, запросы читают одну таблицу

Дальше настройки задаются для каждого объекта отдельно — объект выбирается в списке:

  • Ключ сортировки (ORDER BY) — первичный индекс таблицы. Вперёд ставьте колонки, по которым чаще фильтруют. Без ключа таблица читается целиком на каждый запрос.
  • Партиционирование (PARTITION BY) — режет таблицу на куски: запрос за период читает только свои партиции, а старые данные удаляются целиком. Слишком дробные партиции вредят, разумный ориентир — от месяца.
  • Индексы пропуска — позволяют не читать куски данных, где искомого значения заведомо нет. Полезны для колонок вне ключа сортировки.

История запусков

Вкладка История показывает статистику: сколько запусков за 7 дней было успешными, среднее время сборки и прирост строк в день. Ниже — список запусков.

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

На демо-датасете из 1 284 строк полная пересборка занимает меньше двух секунд: прочитано и записано одинаковое число строк — расхождение между ними как раз и означает, что часть данных отсеялась или схлопнулась по бизнес-ключу.

Что ещё не работает

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

ВкладкаЗамыселСостояние
ФильтрыУсловия отбора на стороне источника, чтобы уменьшить объём загрузкиБэкенд не сохраняет условия
ПреобразованияСопоставление колонок источника и витрины: приведение типа, нормализация, формулаНе сохраняются на бэкенде
УведомленияОповещения об успешных и неуспешных запускахКаналы не настраиваются