Strukturált streamelési eseményindító időközeinek konfigurálása

Az Apache Spark strukturált streamelése növekményesen dolgozza fel az adatokat; A kötegelt feldolgozás eseményindító-időközének szabályozásával strukturált streamelést használhat számítási feladatokhoz, beleértve a közel valós idejű feldolgozást, az adatbázisok 5 percenkénti vagy óránkénti frissítését, vagy az összes új adat kötegelt feldolgozását egy napra vagy hétre.

Mivel a Databricks Auto Loader strukturált streamelést használ az adatok betöltéséhez, a triggerek működésének megértése biztosítja a legnagyobb rugalmasságot a költségek szabályozásához, miközben a kívánt gyakorisággal tölti be az adatokat.

Időalapú triggerintervallumok megadása

A strukturált streamelés az időalapú triggerintervallumokat "rögzített időközű mikrokötegekként" jelöli. processingTime A kulcsszó használatával adjon meg egy időtartamot sztringként, például.trigger(processingTime='10 seconds').

Ha túl kicsi (több tíz másodpercnél rövidebb) időközt trigger ad meg, a rendszer szükségtelen ellenőrzéseket végezhet annak ellenőrzésére, hogy új adatok érkeznek-e. Konfigurálja a feldolgozási időt a késési követelmények és a forrásba érkező adatok sebességének kiegyenlítésére.

Növekményes kötegelt feldolgozás konfigurálása

Fontos

A Databricks Runtime 11.3 LTS-ben és újabb verziókban a Trigger.Once beállítás elavult. A Databricks minden növekményes kötegfeldolgozási számítási feladathoz ajánlott használni Trigger.AvailableNow .

A jelenleg elérhető eseményindító beállítás növekményes kötegként használja fel az összes rendelkezésre álló rekordot, és konfigurálhatja a köteg méretét olyan beállításokkal, mint maxBytesPerTrigger például (a méretezési beállítások adatforrásonként eltérőek).

Az Azure Databricks számos strukturált streamforrás növekményes kötegelt feldolgozását támogatja Trigger.AvailableNow . Az alábbi táblázat tartalmazza az egyes adatforrásokhoz szükséges minimálisan támogatott Databricks Runtime-verziót:

Source A Databricks runtime minimális verziója
Fájlforrások (JSON, Parquet stb.) 9.1 LTS
Delta Lake 10,4 LTS
Automatikus betöltő 10,4 LTS
Apache Kafka 10,4 LTS
Kinesis 13.1

Mi az alapértelmezett triggerintervallum?

A strukturált streamelés alapértelmezés szerint rögzített időközű, 500 ms-et tartalmazó mikro kötegekre van beállítva. A Databricks azt javasolja, hogy mindig adjon meg egy testre szabott trigger megoldást annak ellenőrzéséhez, hogy új adatok érkeztek-e, és hogy feldolgozzuk-e az alulméretezett kötegeket.

Az eseményindítók futások közötti időközeinek módosítása

Ugyanazzal az ellenőrzőponttal módosíthatja a futtatások közötti eseményindító-időközt.

Ha egy strukturált streamelési feladat leáll egy mikroköteg feldolgozása közben, a mikro kötegnek be kell fejeződnie az új eseményindító-időköz alkalmazása előtt. Ilyen esetben megfigyelhet egy mikroköteg-feldolgozást a korábban megadott beállításokkal az eseményindító időközének módosítása után.

Az időalapú intervallumról a használatra AvailableNowvaló áttérés esetén ez mikroköteg-feldolgozást eredményezhet az összes elérhető rekord növekményes kötegként való feldolgozása előtt.

Ha időalapú intervallumra vált AvailableNow , az azt eredményezheti, hogy az utolsó AvailableNow feladat aktiválásakor elérhető összes rekord feldolgozása folytatódik. This is the expected behavior.

Megjegyzés:

Ha növekményes köteghez társított lekérdezési hibákból próbál helyreállni, az eseményindító időközének módosítása nem oldja meg ezt a problémát, mert a köteget még be kell fejezni. A Databricks azt javasolja, hogy a probléma megoldásához a köteg feldolgozásához használt számítási kapacitást skálázzák fel. Ritkán előfordulhat, hogy újra kell indítania a streamet egy új ellenőrzőponttal.

Mi a folyamatos feldolgozási mód?

Az Apache Spark támogatja a folyamatos feldolgozásnak nevezett további triggerintervallumot. Ez a mód a Spark 2.3 óta kísérletiként van besorolva; forduljon az Azure Databricks-fiók csapatához, hogy biztosan tisztában legyen a feldolgozási modell kompromisszumaival.

Vegye figyelembe, hogy ez a folyamatos feldolgozási mód egyáltalán nem kapcsolódik a Delta Live Tablesben alkalmazott folyamatos feldolgozáshoz.