Чтобы быть более точным, временное окно события закрывается при поступлении подходящего водяного знака - что с генератором водяного знака ограниченной упорядоченности произойдет (1), если поступит событие, которое находится достаточно далеко от окна, или (2) если события приходят из конечного источника, который достигает своего конца, потому что в этом случае Flink отправит водяной знак с отметкой времени Long.MAX_VALUE, которая закроет все открытые окна времени события. Однако с Кафкой в качестве источника этого не произойдет.
Лучше всего отредактировать свое приложение, чтобы оно прошло менее 2100 параметров хранимой процедуры. Это ограничение СУБД , которое не может быть увеличено .
Вы можете сделать несколько вещей:
Если вы передаете 2100 параметров одной хранимой процедуре, вы просто делаете что-то неправильно. Не повышайте лимит и не пытайтесь обойти эту мерзость, выясните, как все делать правильно.
Я получил ту же ошибку при использовании явно невинного запроса LINQ to SQL. Я просто хотел получить все записи, идентификаторы которых были среди тех, что хранятся в массиве:
dataContext.MyTable.Where(item => ids.Contains(item.Id)).ToArray();
Оказалось, что массив идентификаторов содержит более 2100 элементов, и кажется, что DataContext добавляет один параметр для каждого элемента в массиве в итоговом SQL-запросе.
В конце концов, это была ошибка в моем коде, поскольку в массиве ids не должно было быть такого количества элементов. Но в любом случае стоит иметь в виду, что при использовании таких конструкций в LINQ to SQL требуется дополнительная проверка.