В 10-минутных пакетных запусках мы получаем инкрементные данные из источника в формате CSV, которые мы загружаем в хранилище, а затем инкрементную таблицу, которая может иметь дубликаты (например: - инкрементная таблица ORDERS_I и ORDERS_I_V - это представление, которое имеет разделение по логике для фильтрации дубликаты). У нас есть главная таблица ORDER_P, в которой нет дубликатов. Мы нажимаем I на P ежедневно.
Для целей отчетности мы используем ORDERS_I_V + ORDER_P, но у нас возникают проблемы с производительностью.
Решение
1) Используйте Merge для вставки в ORDER_P каждые 10 минут. Мы можем достичь предела квоты, если у нас будет много таблиц, которые следуют этой схеме.
2) Мы можем сделать перезапись результата ORDERS_I_V + ORDER_P в ORDER_P каждые 10 минут. Стоимость может быть высокой и все равно достигнет предела квоты, если мы будем следовать этому для многих таблиц.
3) Неполная загрузка инкрементных данных в ORDER_P и выполнение разбиения по выражениям для фильтрации дубликатов с использованием представления.
Любые комментарии о том, что является наилучшей практикой для добавления инкрементных данных в режиме реального времени и поддержания производительности в корпоративной среде с сотнями таблиц.
С уважением,
Срикант