Begränsningar i realtidsläge

På den här sidan beskrivs kända begränsningar för realtidsläge i Strukturerad direktuppspelning.

Källbegränsningar

För Kinesis stöder realtidsläget inte avsökningsläge. Dessutom kan frekventa ompartitioner påverka svarstiden negativt.

Unionsbegränsningar

Unionsoperatören har vissa begränsningar:

  • Självunion stöds inte:
    • För Kafka kan du inte använda samma källdataramobjekt och union härledda dataramar från det. Som en lösning använder du olika DataFrames som läser från samma källa.
    • För Kinesis kan du inte förena dataramar som härletts från samma Kinesis-källa med samma konfiguration. Som en lösning kan du i stället för att använda olika DataFrames tilldela ett annat consumerName alternativ till varje DataFrame.
  • Tillståndskänsliga operatorer (till exempel aggregate, deduplicate, transformWithState) kan inte definieras före unionen.
  • Sammanfogning med batchkällor stöds inte.

mapPartitions Begränsning

mapPartitions i Scala och liknande API:er för Python (mapInPandas, mapInArrow) tar en iterator för hela indatapartitionen och skapar en iterator för hela utdata med godtycklig mappning mellan indata och utdata. Dessa API:er kan orsaka prestandaproblem i realtidsläge genom att blockera hela utdata, vilket ökar svarstiden. Semantiken för dessa API:er stöder inte effektivt vattenstämpelspridning.

Använd skalära UDF:er i kombination med Transformera komplexa datatyper eller filter i stället för att uppnå liknande funktioner.

transformWithStateInPandas stöds inte

Operatorn transformWithStateInPandas stöds inte i realtidsläge. Om du behöver anpassad tillståndskänslig bearbetning i Python med realtidsläge använder du det radbaserade transformWithState API:et i stället. Det radbaserade API:et har samma tillståndskänsliga bearbetningsfunktioner med hjälp av Row objekt i stället för Pandas DataFrames.

Se transformWithState i realtidsläge för information om transformWithState beteende i realtidsläge och Real-time-lägesexempel för ett fungerande Python exempel med hjälp av radbaserat API.