Инкрементный ETL в коде первая таблица связи «многие ко многим» - PullRequest
0 голосов
/ 14 января 2019

Я настраиваю хранилище данных (в SQL Server) вместе с нашими инженерами, мы почти все запустили. Наше основное приложение также использует SQL Server в качестве бэкэнда и стремится быть первым в коде при использовании структуры сущностей. В большинстве таблиц мы добавили столбец, такой как updatedAt, чтобы обеспечить добавочную загрузку в наше хранилище данных, но есть таблица связей «многие ко многим», созданная структурой сущностей, которую мы не можем изменить. Таблица состоит из двух столбцов GUID с составным ключом, поэтому они не могут повторяться, как целое число или даты. Сейчас мы в основном выясняем, как включить добавочную нагрузку для этой таблицы, но информации пока мало.

После некоторого поиска я чаще всего сталкивался с сообщениями, в которых объяснялось, как невозможно вручную добавить столбцы (например, updatedAt) в таблицу сопоставлений, например, здесь Сначала создайте код, многие ко многим, с дополнительными полями в таблице ассоциаций . Предлагаются разделить таблицу на две таблицы «один ко многим». Мы хотели бы предотвратить это, если это возможно.

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

Еще одна мысль состояла в том, чтобы добавить столбец в самой базе данных, а не в коде, со значением по умолчанию текущей даты и времени. Но это также может быть невозможным / несовместимым со структурой сущностей, так как это нарушает первый принцип кода.

Мы что-то упустили? Есть ли другие решения для этого? Идеальным решением было бы решение, основанное на коде, или решение в процессе ETL, не затрагивающее базовое приложение, не меняя слишком много. Любые предложения приветствуются.

...