Ограничения режима реального времени

На этой странице описываются известные ограничения для режима реального времени в структурированной потоковой передаче.

Ограничения источника

Для Kinesis режим реального времени не поддерживает режим опроса. Кроме того, частые повторы могут негативно повлиять на задержку.

Ограничения объединения

Оператор Union имеет некоторые ограничения:

  • Объединение с самим собой не поддерживается:
    • Для Kafka нельзя использовать тот же объект кадра исходных данных и производные кадры данных объединения. В качестве обходного решения используйте различные кадры данных, которые считываются из одного источника.
    • Для Kinesis нельзя объединить кадры данных, производные от одного источника Kinesis с той же конфигурацией. В качестве обходного решения вместо использования разных кадров данных можно назначить другой consumerName параметр каждому кадру данных.
  • Операторы с отслеживанием состояния (например, aggregate, deduplicate, transformWithState) не могут быть определены перед объединением.
  • Объединение с пакетными источниками не поддерживается.

mapPartitions Ограничение

mapPartitions в Scala и аналогичных API Python (mapInPandas, mapInArrow) принимает итератор всей входной секции и создает итератор всего вывода с произвольным сопоставлением между входными и выходными данными. Эти API могут вызвать проблемы с производительностью в режиме реального времени, блокируя весь вывод, что увеличивает задержку. Семантика этих API не поддерживает распространение водяного знака.

Используйте скалярные определяемые пользователем функции в сочетании с преобразованием сложных типов данных или filter для достижения аналогичных возможностей.

transformWithStateInPandas не поддерживается

Оператор transformWithStateInPandas не поддерживается в режиме реального времени. Если требуется настраиваемая обработка с отслеживанием состояния в Python с режимом реального времени, используйте вместо этого API на основе строк transformWithState. API на основе строк предоставляет те же возможности обработки с отслеживанием состояния с помощью Row объектов, а не pandas DataFrames.

Дополнительные сведения о поведении > в< режиме реального времени см. в <> в режиме реального времени и примеры режимаreal-time для примера рабочего Python с помощью API на основе строк.