Нам нужно запустить несколько операторов слияния для одной и той же таблицы в Snowflake. Одной из проблем, с которыми мы сталкиваемся сейчас, является тот факт, что каждое выражение слияния (которое приводит к обновлениям), похоже, блокирует другие слияния. Каждый из операторов слияния имеет дело с данными, которые принадлежат непересекающемуся столбцу Key, то есть Tenant. Объем данных неравномерно распределен между арендаторами.
Итак, мы подумали, что, может быть, если мы кластеризируем таблицу, используя Tenant в качестве ключа кластеризации (я читаю документацию, в которой говорится, что кластеризация не помогает в небольших таблицах, но Я думал, что в любом случае я сделаю это), в итоге мы получим микроперегородку на каждого Арендатора, и, следовательно, блокировка обновлений больше не будет происходить. Но мы замечаем, что ключ кластеризации не гарантирует уникальное микропределение для каждого Арендатора. К сожалению, как и ожидалось, для 100 арендаторов было только 23 перегородки, и блокировка продолжалась.
При проверке блокировки мы видим, что она удерживается на РАЗДЕЛАХ (я предполагаю, что это микроперегородка).
Мне было интересно, есть ли какой-нибудь механизм в Снежинке, который может улучшить блокировку обновлений ИЛИ способ контролировать данные, поступающие в микроперегородку.