Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Apache Spark strukturált streamingje az adatokat növekményesen dolgozza fel. A triggerintervallumok szabályozzák, hogy a strukturált streamelés milyen gyakran ellenőrizze az új adatokat. A közel valós idejű feldolgozáshoz, az ütemezett adatbázis-frissítésekhez vagy az összes új adat kötegelt feldolgozásához konfigurálhat triggerintervallumokat egy napra vagy egy hétre.
Mivel mi az az automatikus betöltő? 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.
Fontos
Azure Databricks azt javasolja, hogy állítson be egy eseményindító módot, amely kiegyensúlyozza a késést és a használati eset költségeit. Ellenkező esetben előfordulhat, hogy a felhőszolgáltató váratlan tárolási költségeit látja. Részletekért tekintse meg a felhőbeli tárolási költségek szabályozása című témakört.
Eseményindító módok áttekintése
Az alábbi táblázat a strukturált streamelésben elérhető trigger módokat foglalja össze:
| Eseményindító mód | Példa szintaxisra (Python) | Legjobb |
|---|---|---|
| Meghatározatlan (alapértelmezett) | N/A | Általános célú streamelés 3–5 másodperces késéssel. Egyenértékű a processingTime eseményindítóval 0 ms-os időközökkel. A streamfeldolgozás folyamatosan fut, amíg új adatok érkeznek. |
| Feldolgozási idő | .trigger(processingTime='10 seconds') |
Költség és teljesítmény kiegyensúlyozása. Csökkenti a többletterhelést azáltal, hogy megakadályozza, hogy a rendszer túl gyakran ellenőrizze az adatokat. |
| Most már elérhető | .trigger(availableNow=True) |
Ütemezett növekményes kötegelt feldolgozás. A streaming feladat elindításakor a rendelkezésre álló adatokat dolgozza fel. |
| Valós idejű mód | .trigger(realTime='5 minutes') |
Rendkívül alacsony késésű, másodperc alatti feldolgozást igénylő üzemeltetési számítási feladatok, például csalásészlelés vagy valós idejű személyre szabás. Nyilvános előzetes verzió. Az "5 perc" a mikro tétel hosszúságát jelzi. Használjon 5 percet a kötegenkénti terhelés minimalizálásához, például a lekérdezések fordításához. |
| Folyamatos | .trigger(continuous='1 second') |
Nem támogatott. Ez egy kísérleti funkció a Spark OSS-ben. Használjon valós idejű módot. |
:::megjegyzés Kiszolgáló nélküli számítás
Kiszolgáló nélküli számításon csak Trigger.AvailableNow() és Trigger.Once() támogatott. A Databricks javasolja Trigger.AvailableNow().
A kiszolgáló nélküli számítás folyamatos streameléséhez használja a Trigger vagy folyamatos folyamat módot folyamatos módban.
Lásd a streamelési korlátozásokat.
:::
processingTime: Időalapú trigger-intervallumok
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').
Ennek az intervallumnak a konfigurációja határozza meg, hogy a rendszer milyen gyakran végez ellenőrzéseket annak ellenőrzéséhez, hogy új adatok érkeztek-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.
AvailableNow: Növekményes kötegfeldolgozás
Fontos
A Databricks Runtime 11.3 LTS és újabb verziókban a Trigger.Once kivezetésre került. Minden növekményes kötegfeldolgozási számítási feladathoz használható Trigger.AvailableNow .
Az AvailableNow 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 a maxBytesPerTrigger. A méretezési lehetőségek adatforrásonként eltérőek.
Támogatott adatforrások
Azure Databricks támogatja a Trigger.AvailableNow használatát több különféle strukturált stream forrásból származó növekményes kötegelt feldolgozáshoz. Az alábbi táblázat tartalmazza az egyes adatforrásokhoz szükséges minimálisan támogatott Databricks Runtime-verziót:
| Forrás | A Databricks runtime minimális verziója |
|---|---|
| Fájlforrások (JSON, Parquet stb.) | 9.1 LTS |
| Delta-tó | 10,4 LTS |
| Automatikus betöltő | 10,4 LTS |
| Apache Kafka | 10,4 LTS |
| Kinézis | 13,1 |
OpenSharing (responseFormat=delta; responseFormat=parquet 1.4.0-s vagy újabb verziót igényel delta-sharing-client ) |
18.0 |
realTime: Rendkívül alacsony késésű üzemeltetési munkaterhelések
A strukturált streamelés valós idejű módja 1 másodperc alatt éri el a végpontok közötti késést, és gyakori esetekben 300 ms körül van. A valós idejű mód hatékony konfigurálásáról és használatáról további információt a Strukturált streamelés valós idejű módjában talál.
Az Apache Spark további eseményindító-intervallummal rendelkezik, amelyet folyamatos feldolgozásnak nevezünk. Ez a mód a Spark 2.3 óta kísérletiként van besorolva. Azure Databricks nem támogatja vagy nem javasolja ezt a módot. Használjon valós idejű módot kis késésű használati esetekhez.
Feljegyzés
Az ezen az oldalon található folyamatos feldolgozási mód nem kapcsolódik a Spark Declarative Pipelines rendszerben használt folyamatos feldolgozáshoz.
Felhőbeli tárolási költségek szabályozása
Ha nem állít be eseményindító módot, a strukturált streamelés alapértelmezés szerint az eseményindító módot processingTime és az intervallumot 0állítja be, amely néhány ezredmásodpercenként ellenőrzi az új adatokat. Ez nagy mennyiségű felhőalapú tárolási API-hívást generálhat naponta, és váratlan díjakat eredményezhet a felhőszolgáltatótól.
Azure Databricks javasolja, hogy a késési és költségkövetelményeknek megfelelő eseményindító üzemmódot konfiguráljon. Az processingTime időalapú triggerintervallum konfigurálásáról további információt talál.
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.
Az intervallumok módosításakor megjelenő viselkedés
Ha egy strukturált streamlekérdezés leáll, miközben egy mikroköteg feldolgozása folyamatban van, a mikro kötegnek befejeződnie kell az új eseményindító-időköz alkalmazása előtt. Az eseményindító időközének módosítása után megfigyelheti, hogy egy mikroköteg-folyamat a korábban megadott konfigurációval rendelkezik. A következők az átmenet utáni várható viselkedést ismertetik.
-
Az időalapú intervallumtól a következőig
AvailableNow: A mikro köteg növekményes kötegként dolgozható fel az összes elérhető rekordfolyamat előtt. -
Időalapú intervallum a(z)
AvailableNow-tól: A feldolgozás folytatódhat az összes olyan rekord esetében, amely az utolsóAvailableNowfeladat indításakor volt elérhető.
Lekérdezési hibákból való helyreállítás
Ha növekményes köteggel próbál helyreállítani egy lekérdezési hibát, az eseményindító időközének módosítása nem oldja meg a problémát. Az előző sikertelen kötegnek be kell fejeződnie, mert a strukturált streamelés idempotens mikrokötegeket igényel. Tekintse meg az Apache Spark hibatűrési szemantikáját.
A hiba megoldásához skálázza fel a számítási kapacitást, például növelje a feldolgozó csomópontok méretét. Ritkán előfordulhat, hogy újra kell indítania a streamet egy új ellenőrzőponttal.