실시간 모드 제한 사항

이 페이지에서는 구조적 스트리밍의 실시간 모드에 대한 알려진 제한 사항에 대해 설명합니다.

원본 제한 사항

Kinesis의 경우 실시간 모드는 폴링 모드를 지원하지 않습니다. 또한 자주 다시 분할하면 대기 시간에 부정적인 영향을 미칠 수 있습니다.

공용 구조체 제한 사항

Union 연산자에는 다음과 같은 몇 가지 제한 사항이 있습니다.

  • 자체 통합은 지원되지 않습니다.
    • Kafka의 경우 동일한 원본 데이터 프레임 개체 및 공용 구조체 파생 데이터 프레임을 사용할 수 없습니다. 해결 방법으로 동일한 원본에서 읽은 다른 DataFrame을 사용합니다.
    • Kinesis의 경우 동일한 구성을 사용하여 동일한 Kinesis 원본에서 파생된 데이터 프레임을 통합할 수 없습니다. 해결 방법으로 다른 DataFrame을 사용하는 대신 각 DataFrame에 다른 consumerName 옵션을 할당할 수 있습니다.
  • 상태 저장 연산자(예: aggregate, , deduplicatetransformWithState)는 Union 앞에 정의할 수 없습니다.
  • 일괄 처리 소스와의 병합은 지원되지 않습니다.

mapPartitions 제한

mapPartitions Scala 및 유사한 Python API(mapInPandas, mapInArrow)는 전체 입력 파티션의 반복기를 사용하고 입력과 출력 간의 임의 매핑을 사용하여 전체 출력의 반복기를 생성합니다. 이러한 API는 전체 출력을 차단하여 실시간 모드에서 성능 문제를 일으킬 수 있으므로 대기 시간이 늘어나게 됩니다. 이러한 API의 의미 체계는 워터마크 전파를 잘 지원하지 않습니다.

복합 데이터 형식 변환과 결합된 스칼라 UDF를 사용하여 유사한 기능을 구현합니다. filter

transformWithStateInPandas 지원되지 않음

연산자는 transformWithStateInPandas 실시간 모드에서 지원되지 않습니다. 실시간 모드를 사용하여 Python 사용자 지정 상태 저장 처리가 필요한 경우 행 기반 transformWithState API를 대신 사용합니다. 행 기반 API는 pandas DataFrames 대신 개체를 사용하여 Row 동일한 상태 저장 처리 기능을 제공합니다.

실시간 모드의 transformWithStatetransformWithState 동작에 대한 자세한 내용은 리알타임 모드 예제 행 기반 API를 사용하는 작업 Python 예제를 참조하세요.