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:
- Eseményindítók
- Próbálkozás
- Feltételes tevékenységek futtatása
- Ha/más feltételes tevékenységek
- Minden tevékenységhez
- Időtartam küszöbértékei
- Egyidejűségi beállítások
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:
- Tevékenységértékek használata a tevékenységek közötti információátadáshoz
- Mi az a dinamikus értékhivatkozás?
- Feladatok paraméterezése
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:
- A Databricks parancssori felülete
- Databricks-eszközcsomagok
- Databricks-bővítmény a Visual Studio Code-hoz
- Databricks SDK-k
- Feladatok REST API
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.