Állapot nélküli streamelési lekérdezések optimalizálása

Ez a lap a Databricks Runtime 18.0-s és újabb verziójában elérhető állapot nélküli streamelési lekérdezésekhez elérhető optimalizálási funkciókat ismerteti.

Az állapot nélküli strukturált streamelési lekérdezések köztes állapot fenntartása nélkül dolgozzák fel az adatokat. Ezek a lekérdezések nem használnak állapotalapú operátorokat, például stream-aggregációkat vagy dropDuplicatesstream-stream-illesztéseket. Ilyenek például a stream–statikus összekapcsolásokat használó lekérdezések, a Delta Lake-táblákkal végzett MERGE INTO, valamint azok az egyéb műveletek, amelyek csak azt követik nyomon, hogy mely sorokat dolgozták fel a forrástól a nyelőig.

Adaptív lekérdezésvégrehajtás és automatikusan optimalizált shuffle

Az Azure Databricks támogatja az adaptív lekérdezések végrehajtását (AQE) és az automatikusan optimalizált shuffle-t (AOS) állapot nélküli streamelési lekérdezésekhez. Ezek a funkciók segítenek optimalizálni a stream-statikus illesztéseket használó streamelési számítási feladatokat Delta MERGE INTO Lake-táblákkal és hasonló műveletekkel.

Ha engedélyezni szeretné az AQE-t állapot nélküli streamelési lekérdezésekhez, állítsa a következő konfigurációt a következőre true: . Ez alapértelmezés szerint engedélyezve van:

spark.sql.adaptive.streaming.stateless.enabled true

Ha engedélyezni szeretné az AOS-t állapot nélküli streamelési lekérdezésekhez, engedélyezze az AQE-t, és állítsa be a következő konfigurációt:

spark.sql.shuffle.partitions auto

Az shuffle partíciók módosítása a lekérdezés újraindítása során

Az állapot nélküli streamelési lekérdezések támogatják az shuffle partíciók számának módosítását a lekérdezés újraindításakor. Ez lehetővé teszi a párhuzamosság olyan beállítását, amely képes kezelni a különböző bemeneti adatmennyiségeket.

Ez a funkció különösen hasznos az előzmény-visszatöltési forgatókönyvekben. Feldolgozhatja például a korábbi visszatöltést magasabb párhuzamossággal, majd csökkentheti a párhuzamosságot a valós idejű bemenethez.

Az shuffle partíciók számának módosításához állítsa be a következő konfigurációt a kívánt értékre, és indítsa újra a lekérdezést:

spark.sql.shuffle.partitions <number>