Megosztás a következőn keresztül:


Munkafolyamatok ütemezése és vezénylálása

A Databricks-munkafolyamatok olyan eszközökkel rendelkeznek, amelyekkel ütemezheti és vezényelheti az adatfeldolgozási feladatokat az Azure Databricksben. A Databricks-munkafolyamatok használatával konfigurálhatja a Databricks-feladatokat.

Ez a cikk az éles számítási feladatok Databricks-feladatok használatával történő kezelésével kapcsolatos fogalmakat és választási lehetőségeket ismerteti.

Mik azok a Databricks-feladatok?

A feladat az azure Databricks éles számítási feladatainak ütemezésére és vezénylására szolgáló elsődleges egység. A feladatok egy vagy több tevékenységből állnak. A feladatok és feladatok együttesen lehetővé teszik a következők konfigurálását és üzembe helyezését:

  • Egyéni logika, beleértve a Sparkot, az SQL-t, az OSS Pythont, az ML-t és az tetszőleges kódot.
  • Erőforrások kiszámítása egyéni környezetekkel és kódtárakkal.
  • Ütemezések és eseményindítók a számítási feladatok futtatásához.
  • Feltételes logika a tevékenységek közötti folyamat szabályozásához.

A feladatok eljárási megközelítést biztosítanak a tevékenységek közötti kapcsolatok meghatározásához. A Delta Live Tables-folyamatok deklaratív megközelítést biztosítanak az adathalmazok és az átalakítások közötti kapcsolatok meghatározásához. A Delta Live Tables-folyamatokat feladatként is belefoglalhatja egy feladatba. Feladatokhoz lásd a Delta Live Tables folyamatfeladatát.

A feladatok összetettsége a Databricks-jegyzetfüzetet futtató egyetlen tevékenységtől a feltételes logikával és függőségekkel futó feladatok ezreiig terjedhet.

Hogyan konfigurálhatom és futtathatom a feladatokat?

Feladatokat a Feladatok felhasználói felületen, a Databricks parancssori felületén vagy a Jobs API meghívásával hozhat létre és futtathat. A felhasználói felület vagy az API használatával kijavíthat és újra futtathat egy sikertelen vagy megszakított feladatot. A feladatfuttatási eredményeket a felhasználói felület, a parancssori felület, az API és az értesítések (például e-mail, webhook célhely vagy Slack-értesítések) használatával figyelheti.

Ha a feladatok konfigurálásához és vezényléséhez infrastrukturális (IaC) megközelítést szeretne használni, használja a Databricks-eszközcsomagokat (DAB-k). A csomagok a feladatok és tevékenységek YAML-definícióit tartalmazhatják, a Databricks parancssori felülettel kezelhetők, és megoszthatók és futtathatók különböző cél-munkaterületeken (például fejlesztés, előkészítés és éles környezet). A feladatok konfigurálásához és vezényléséhez használt DAB-król a Databricks Asset Bundles című témakörben olvashat.

A Databricks parancssori felületének használatáról a Mi a Databricks parancssori felület? A Jobs API használatáról a Jobs API-t tekintheti meg.

Mi a feladat minimális konfigurációja?

Az Azure Databricks összes feladatához a következők szükségesek:

  • A futtatandó logikát tartalmazó forráskód (például Databricks-jegyzetfüzet).
  • Számítási erőforrás a logika futtatásához. A számítási erőforrás lehet kiszolgáló nélküli számítás, klasszikus feladatok számítása vagy teljes körű számítás. Lásd: Számítási feladatok konfigurálása.
  • A feladat futtatásának ütemezése. Igény szerint kihagyhatja az ütemezés beállítását, és manuálisan aktiválhatja a feladatot.
  • Egyedi név.

Feljegyzés

Ha a kódot Databricks-jegyzetfüzetekben fejleszti, az Ütemezés gombbal feladatként konfigurálhatja a jegyzetfüzetet. Lásd: Ütemezett jegyzetfüzet-feladatok létrehozása és kezelése.

Mi az a tevékenység?

A tevékenységek egy feladat lépéseként futtatandó logikai egységet jelölnek. A tevékenységek összetettek lehetnek, és a következők lehetnek:

  • Egy jegyzetfüzet
  • EGY JAR
  • SQL-lekérdezések
  • DLT-folyamat
  • Másik feladat
  • Folyamatfeladatok szabályozása

A tevékenységek végrehajtási sorrendjét a közöttük lévő függőségek megadásával szabályozhatja. A feladatokat konfigurálhatja úgy, hogy egymás után vagy párhuzamosan fussanak.

A feladatok a tevékenységek állapotadataival és metaadataival működnek együtt, de a tevékenység hatóköre elkülönítve van. Tevékenységértékekkel megoszthatja a környezetet az ütemezett tevékenységek között. Lásd: Tevékenységértékek használata a tevékenységek közötti információk átadásához.

Milyen vezérlőfolyamat-beállítások érhetők el a feladatokhoz?

Feladatok és feladatok feladatok konfigurálásakor testre szabhatja azokat a beállításokat, amelyek a teljes feladat és az egyes feladatok futását szabályozzák. Ezek a lehetőségek a következők:

Triggertípusok

Feladat konfigurálásakor meg kell adnia egy eseményindító típusát. Az alábbi triggertípusok közül választhat:

Dönthet úgy is, hogy manuálisan indítja el a feladatot, de ez elsősorban bizonyos használati esetekre van fenntartva, például:

  • Külső vezénylési eszközzel rest API-hívásokkal aktiválhat feladatokat.
  • Ritkán futó feladatához manuális beavatkozásra van szükség az adatminőségi problémák érvényesítése vagy megoldása érdekében.
  • Olyan számítási feladatot futtat, amelyet csak egyszer vagy néhány alkalommal kell futtatni, például migrálást.

Lásd a Databricks-feladatok eseményindítótípusait.

Újrapróbálkozások

Az újrapróbálkozással megadhatja, hogy egy adott tevékenység hányszor fusson újra, ha a feladat hibaüzenettel meghiúsul. A hibák gyakran átmenetiek, és az újraindítással oldódnak meg. Az Azure Databricks egyes funkciói, például a strukturált streamelés sémafejlődése, feltételezik, hogy újrapróbálkozással futtatja a feladatokat a környezet alaphelyzetbe állításához és a munkafolyamat folytatásához.

Ha újrapróbálkozások megadását adja meg egy tevékenységhez, a tevékenység a megadott számú alkalommal újraindul, ha hibát tapasztal. Nem minden feladatkonfiguráció támogatja az újrapróbálkozásokat. Lásd: Újrapróbálkozési szabályzat beállítása.

Ha folyamatos trigger módban fut, a Databricks automatikusan újrapróbálkozott exponenciális visszakapcsolással. Tekintse meg a folyamatos feladatok hibáinak kezelését ismertető témakört.

Feltételes tevékenységek futtatása

A Futtatás, ha tevékenységtípussal feltételes feltételeket adhat meg a későbbi tevékenységekhez más tevékenységek eredményei alapján. Tevékenységeket adhat hozzá a feladathoz, és felsőbb rétegtől függő tevékenységeket adhat meg. Ezeknek a tevékenységeknek az állapota alapján konfigurálhat egy vagy több alsóbb rétegbeli tevékenységet a futtatáshoz. A feladatok a következő függőségeket támogatják:

  • Minden sikeres volt
  • Legalább egy sikeres volt
  • Egyik sem volt sikertelen
  • Minden kész
  • Legalább egy sikertelen
  • Minden sikertelen

Lásd: Tevékenységfüggőségek konfigurálása

Ha/más feltételes tevékenységek

Az If/else tevékenységtípussal feltételes értékeket adhat meg valamilyen érték alapján. Lásd: Elágaztatási logika hozzáadása egy feladathoz a Ha/más tevékenységgel.

A feladatok támogatják taskValues a logikában definiált feladatokat, és lehetővé teszik bizonyos számítások vagy állapotok eredményeinek visszaadását egy tevékenységből a feladatkörnyezetbe. Ha/egyéb feltételeket határozhat meg, feladatparaméterek vagy dinamikus értékek alapjántaskValues.

Az Azure Databricks a következő operandusokat támogatja a feltételes műveletekhez:

  • ==
  • !=
  • >
  • >=
  • <
  • <=

Lásd még:

Minden tevékenységhez

For each A tevékenység használatával futtasson egy másik tevékenységet egy ciklusban, és adjon át egy másik paraméterkészletet a tevékenység minden iterációjának.

For each A feladat feladathoz való hozzáadásához két tevékenységet kell definiálni: a For each tevékenységet és a beágyazott tevékenységet. A beágyazott tevékenység a tevékenység minden iterációjához For each futtatandó feladat, amely a Databricks-feladatok szokásos tevékenységtípusai közé tartozik. A paraméterek beágyazott tevékenységnek való átadásához több metódus is támogatott.

Lásd: Paraméteres Azure Databricks-feladatfeladat futtatása ciklusban.

Időtartam küszöbértéke

Megadhat egy időtartam küszöbértéket, amely figyelmeztetést küld, vagy egy adott időtartam túllépése esetén leállít egy tevékenységet vagy feladatot. A beállítás konfigurálásához például a következők tartoznak:

  • Vannak olyan tevékenységei, amelyek hajlamosak elakadni egy lefagyott állapotban.
  • Figyelmeztetnie kell egy mérnököt, ha egy munkafolyamat SLA-ja túllépte a korlátot.
  • A váratlan költségek elkerülése érdekében egy nagy fürttel konfigurált feladat meghiúsul.

Lásd: A feladatok várható befejezési idejének vagy időtúllépésének konfigurálása, valamint a tevékenységek várható befejezési idejének vagy időtúllépésének konfigurálása.

Egyidejűség

A legtöbb feladat az 1 egyidejű feladat alapértelmezett egyidejűségével van konfigurálva. Ez azt jelenti, hogy ha egy korábbi feladatfuttatás nem fejeződött be az új feladat aktiválásának idejére, a következő feladatfuttatás kihagyásra kerül.

Bizonyos használati esetek a nagyobb egyidejűség érdekében léteznek, de a legtöbb számítási feladathoz nincs szükség a beállítás módosítására.

Az egyidejűség konfigurálásáról további információt a Databricks Jobs üzenetsor-kezelési és egyidejűségi beállításaiban talál.

Hogyan figyelhetem a feladatokat?

A feladatok felhasználói felülete lehetővé teszi a feladatok futtatásának megtekintését, beleértve a folyamatban lévő futtatásokat is. Lásd a Databricks-feladatok monitorozását és megfigyelhetőségét.

Értesítéseket kaphat, ha egy feladat vagy tevékenység elindul, befejeződik vagy meghiúsul. Értesítéseket küldhet egy vagy több e-mail-címre vagy rendszercélra. Lásd: E-mail- és rendszerértesítések hozzáadása feladateseményekhez.

A rendszertáblák olyan sémát lakeflow tartalmaznak, amelyben megtekintheti a fiókjában a feladattevékenységhez kapcsolódó rekordokat. Lásd: Feladatok rendszertábla-referenciája.

A feladatok rendszertábláihoz számlázási táblákkal is csatlakozhat, így nyomon követheti a feladatok költségeit a fiókban. Lásd: Feladatköltségek monitorozása rendszertáblákkal.

Korlátozások

Az alábbi korlátozások érvényesek:

  • Egy munkaterület legfeljebb 2000 egyidejű tevékenységfuttatásra korlátozódik. 429 Too Many Requests válasz jelenik meg, ha olyan futtatást kér, amelyet a rendszer nem tud azonnal elindítani.
  • A munkaterület egy órán belül létrehozható feladatainak száma legfeljebb 10000 lehet (beleértve a "futtatások elküldését"). Ez a korlát a REST API- és jegyzetfüzet-munkafolyamatokkal létrehozott feladatokra is vonatkozik.
  • Egy munkaterület legfeljebb 12000 mentett feladatot tartalmazhat.
  • Egy feladat legfeljebb 100 tevékenységet tartalmazhat.

Kezelhetim a munkafolyamatokat programozott módon?

A Databricks olyan eszközökkel és API-kkal rendelkezik, amelyekkel programozott módon ütemezheti és vezényelheti munkafolyamatait, beleértve a következőket:

További információ a fejlesztői eszközökről: Fejlesztői eszközök.

Munkafolyamat vezénylése az Apache AirFlow-tal

Az Apache Airflow használatával kezelheti és ütemezheti az adat-munkafolyamatokat. Az Airflow használatával egy Python-fájlban definiálhatja a munkafolyamatot, az Airflow pedig felügyeli a munkafolyamat ütemezését és futtatását. Lásd: Azure Databricks-feladatok vezénylése az Apache Airflow használatával.

Munkafolyamat-vezénylés az Azure Data Factoryvel

Az Azure Data Factory (ADF) egy felhőalapú adatintegrációs szolgáltatás, amellyel adattárolási, áthelyezési és feldolgozási szolgáltatásokat írhat automatizált adatfolyamokba. Az ADF használatával egy Azure Databricks-feladatot vezényelhet egy ADF-folyamat részeként.

Az ADF beépített támogatással rendelkezik a Databricks-jegyzetfüzetek, Python-szkriptek vagy kód ADF-folyamatok JAR-jeibe csomagolt futtatásához is.

A Databricks-jegyzetfüzetek ADF-folyamatokban való futtatásáról a Databricks-jegyzetfüzet futtatása az Azure Data Factory Databricks-notebook-tevékenységével, majd az adatok átalakítása Databricks-jegyzetfüzet futtatásával című témakörben olvashat.

Ha tudni szeretné, hogyan futtathat Python-szkripteket egy ADF-folyamatban, olvassa el az Adatok átalakítása Python-tevékenység Azure Databricksben való futtatásával című témakört.

Ha meg szeretné tudni, hogyan futtathat JAR-ban csomagolt kódot egy ADF-folyamatban, olvassa el az Adatok átalakítása JAR-tevékenység azure Databricksben való futtatásával című témakört.