Митя, можно поподробнее ? может ссылочку на какую нибудь статью
Можно.
Давай представим, что мы соберёмся делать классический DV в MPP.
У него есть несколько свойств, которые на мой, да и видимо не только на мой взгляд, не нужны в MPP.
Во-первых - хэши в качестве ключей.
Самый их большой плюс - полное расщепление источника в независимых задачах на загрузку H, S, L. Нужно знать только хэш ключа, при этом совершенно не обязательно, чтобы для каждой записи в S была запись в H в каждый момент времени. Ничего не сломается.
Следовательно - можно грузить параллельно.
Самый большой минус - возможное появление дубликатов на "высоких" или "широких" ключах при использовании слабых хэшфункций.
А также кейсы, связанные с хранением натурального ключа в хабе вместе с хэшом, в примерах хренового качества данных - ИНН в ключе лежит месяц, но тут вдруг становится понятно, что он неправильный. И надо как-то поменять (а это значит только перезалить все S_, L_ структуры).
Чтобы избавиться от последнего минуса можно воспользоваться двумя (но может и больше) подходами:
1. Вместо хэша использовать sequence, а при вставке в S_, L_ структуры кодировать id с помощью уже вставленных записей в хаб.
2. Вообще в качетве хаба использовать голый sequence, а натуральный ключ сложить в отдельный сателит (ближе к Anchor).
Оба этих подхода решают минус хэшей, но, разумеется, портят плюс. В теории.
Но на практике, кайфа от параллельной загрузки HSL немного. Особенно если у вас не ночью 1 раз всё грузится, а в течение дня в real-time микробатчами и все объекты асинхронно. Поэтому для синхронизации надо всё равно выделять кусок инкремента и либо врубать изоляцию на serializable для невозможности записи в источник, либо вручную отслеживать окна загрузки. Но это - точка синхронизации. И она портит картинку с параллельностью немного (но незначительно).
Кроме того, без хэшей и на натуральных ключах в MPP возникает дополнительный позитивный эффект:
* Не надо считать хэши
* Можно одинаково сегменитровать/сортировать данные по нодам у таблиц источника и у целевых сателитов/хабов.