Folyamatbeállítások konfigurálása Delta Live-táblákhoz

Ez a cikk részletesen ismerteti a Delta Live Tables folyamatbeállításainak konfigurálását. A Delta Live Tables felhasználói felületet biztosít a folyamatbeállítások konfigurálásához és szerkesztéséhez. A felhasználói felület emellett lehetőséget biztosít a beállítások JSON-ban való megjelenítésére és szerkesztésére is.

Feljegyzés

A legtöbb beállítást a felhasználói felülettel vagy egy JSON-specifikációval konfigurálhatja. Bizonyos speciális beállítások csak a JSON-konfigurációval érhetők el.

A Databricks azt javasolja, hogy ismerkedjen meg a Delta Live Tables beállításaival a felhasználói felületen. Szükség esetén közvetlenül szerkesztheti a JSON-konfigurációt a munkaterületen. A JSON-konfigurációs fájlok akkor is hasznosak, ha folyamatokat helyeznek üzembe új környezetekben, illetve a CLI vagy a REST API használatakor.

A Delta Live Tables JSON-konfigurációs beállításaira való teljes hivatkozásért tekintse meg a Delta Live Tables folyamatkonfigurációit.

Feljegyzés

Mivel a számítási erőforrások teljes mértékben kiszolgáló nélküli folyamatokhoz vannak felügyelve, a számítási beállítások, például a bővített automatikus skálázás, a fürtszabályzatok, a példánytípusok és a fürtcímkék nem érhetők el, amikor a kiszolgáló nélküli (nyilvános előzetes verzió) lehetőséget választja egy folyamathoz.

A konfigurációs paramétereket továbbra is átadhatja egy kiszolgáló nélküli folyamatnak, de a JSON-konfigurációban lévő objektumokban clusters beállított paraméterek figyelmen kívül lesznek hagyva.

A kiszolgáló nélküli DLT-folyamatok engedélyezésével kapcsolatos információkért forduljon az Azure Databricks-fiók csapatához.

Termékkiadás kiválasztása

Válassza ki a Delta Live Tables termékkiadást a folyamat követelményeinek leginkább megfelelő funkciókkal. A következő termékkiadások érhetők el:

  • Core streamelési betöltési számítási feladatok futtatásához. Válassza ki a Core kiadást, ha a folyamat nem igényel speciális funkciókat, például az adatrögzítést (CDC) vagy a Delta Live Tables elvárásait.
  • Pro streamelési és CDC-számítási feladatok futtatásához. A Pro termékkiadás támogatja az összes funkciót, valamint támogatja azokat a Core számítási feladatokat, amelyek a forrásadatok változásain alapuló táblák frissítését igénylik.
  • Advanced streamelési betöltési számítási feladatok, CDC-számítási feladatok és elvárásokat igénylő számítási feladatok futtatásához. A Advanced termékkiadás támogatja a kiadások és Pro a Core kiadások funkcióit, valamint támogatja az adatminőségi korlátozások érvényesítését a Delta Live Tables elvárásaival.

A folyamat létrehozásakor vagy szerkesztésekor kiválaszthatja a termékkiadást. Minden folyamathoz választhat egy másik kiadást. Tekintse meg a Delta Live Tables termékoldalát.

Feljegyzés

Ha a folyamat olyan funkciókat tartalmaz, amelyeket a kiválasztott termékkiadás nem támogat, például elvárásokat, hibaüzenet jelenik meg a hiba okával. Ezután szerkesztheti a folyamatot a megfelelő kiadás kiválasztásához.

Folyamat mód kiválasztása

A folyamat folyamatosan vagy manuális eseményindítókkal is frissíthető a folyamat üzemmódja alapján. Lásd: Folyamatos és aktivált folyamat végrehajtása.

Fürtszabályzat kiválasztása

A felhasználóknak rendelkezniük kell engedéllyel a számítási feladatok telepítéséhez a Delta Live Tables-folyamatok konfigurálásához és frissítéséhez. A munkaterület-rendszergazdák fürtszabályzatokat konfigurálhatnak, hogy hozzáférést biztosítsanak a felhasználóknak a Delta Live Tables számítási erőforrásaihoz. Lásd: A Delta Live Tables-folyamat számításának korlátainak meghatározása.

Feljegyzés

  • A fürtszabályzatok nem kötelezőek. Forduljon a munkaterület rendszergazdájához, ha nem rendelkezik a Delta Live Tableshez szükséges számítási jogosultságokkal.

  • A fürtszabályzat alapértelmezett értékeinek helyes alkalmazásához állítsa be az apply_policy_default_values értéket true a fürtkonfigurációkban a folyamatkonfigurációban:

    {
      "clusters": [
        {
          "label": "default",
          "policy_id": "<policy-id>",
          "apply_policy_default_values": true
        }
      ]
    }
    

Forráskódtárak konfigurálása

A Delta Live Tables felhasználói felületén található fájlválasztóval konfigurálhatja a folyamatot meghatározó forráskódot. A folyamat forráskódja a Databricks-jegyzetfüzetekben vagy a munkaterületfájlokban tárolt SQL- vagy Python-szkriptekben van definiálva. A folyamat létrehozásakor vagy szerkesztésekor hozzáadhat egy vagy több jegyzetfüzetet vagy munkaterületfájlt, illetve jegyzetfüzetek és munkaterületfájlok kombinációját.

Mivel a Delta Live Tables automatikusan elemzi az adathalmaz-függőségeket a folyamat feldolgozási gráfjának létrehozásához, bármilyen sorrendben hozzáadhat forráskódtárakat.

A JSON-fájlt úgy is módosíthatja, hogy tartalmazza a munkaterület fájljaiban tárolt SQL- és Python-szkriptekben definiált Delta Live Tables-forráskódot. Az alábbi példa a Databricks-adattárakból származó jegyzetfüzeteket és munkaterületfájlokat tartalmazza:

{
  "name": "Example pipeline 3",
  "storage": "dbfs:/pipeline-examples/storage-location/example3",
  "libraries": [
    { "notebook": { "path": "/example-notebook_1" } },
    { "notebook": { "path": "/example-notebook_2" } },
    { "file": { "path": "/Repos/<user-name>@databricks.com/Apply_Changes_Into/apply_changes_into.sql" } },
    { "file": { "path": "/Repos/<user-name>@databricks.com/Apply_Changes_Into/apply_changes_into.py" } }
  ]
}

Tárolási hely megadása

Megadhatja a Hive metaadattárban közzétett folyamatok tárolási helyét. A hely meghatározásának elsődleges célja a folyamat által írt adatok objektumtárolási helyének szabályozása.

Mivel a Delta Live Tables-folyamatok összes tábláját, adatát, ellenőrzőpontját és metaadatait teljes mértékben a Delta Élő táblák kezelik, a Delta Live Tables-adatkészletekkel való legtöbb interakció a Hive-metaadattárban vagy a Unity-katalógusban regisztrált táblákon keresztül történik.

Célséma megadása folyamatkimeneti táblákhoz

Bár nem kötelező, meg kell adnia egy célhelyet a folyamat által létrehozott táblák közzétételéhez, amikor túllép egy új folyamat fejlesztési és tesztelési folyamatán. Ha egy folyamatot közzétesz egy célhelyen, az adathalmazok elérhetővé válnak az Azure Databricks-környezet más részein történő lekérdezéshez. Lásd: Adatok közzététele Delta Live Tables-folyamatokból a Hive metaadattárba , vagy a Unity-katalógus használata a Delta Live Tables-folyamatokkal.

A számítási beállítások konfigurálása

Minden Delta Live Tables-folyamat két társított fürtből áll:

  • A updates fürt folyamatfrissítéseket dolgoz fel.
  • A maintenance fürt napi karbantartási feladatokat futtat.

A fürtök által használt konfigurációt a clusters folyamatbeállításokban megadott attribútum határozza meg.

A fürtcímkék használatával olyan számítási beállításokat adhat hozzá, amelyek csak egy adott fürttípusra vonatkoznak. A folyamatfürtök konfigurálásakor három címke használható:

Feljegyzés

A fürtcímke-beállítás elhagyható, ha csak egy fürtkonfigurációt határoz meg. A default címke akkor lesz alkalmazva a fürtkonfigurációkra, ha nincs megadva a címke beállítása. A fürtcímke-beállítás csak akkor szükséges, ha testre kell szabnia a különböző fürttípusok beállításait.

  • A default címke meghatározza a számítási beállításokat, amelyeket a fürtökre és maintenance a updates fürtökre egyaránt alkalmazni kell. Ha mindkét fürtre ugyanazokat a beállításokat alkalmazza, azzal javítja a karbantartási futtatások megbízhatóságát, mivel biztosítja, hogy a szükséges konfigurációk, például egy tárolási hely adathozzáférési hitelesítő adatai legyenek alkalmazva a karbantartási fürtre.
  • A maintenance címke olyan számítási beállításokat határoz meg, amelyeket csak a maintenance fürtre kell alkalmazni. A címkével felülbírálhatja a maintenance címke által default konfigurált beállításokat is.
  • A updates címke olyan beállításokat határoz meg, amelyeket csak a updates fürtre kell alkalmazni. A címkével updates konfigurálhatja a fürtön maintenance nem alkalmazható beállításokat.

Gépház a fürt végső konfigurációjának updates létrehozásához a rendszer egyesíti a címkéket és updates a default címkéket. Ha ugyanazt a beállítást mindkettővel default és updates címkékkel definiálja, a címkével updates definiált beállítás felülírja a default címkével definiált beállítást.

Az alábbi példa egy Spark-konfigurációs paramétert határoz meg, amely csak a fürt konfigurációjába van hozzáadva updates :

{
  "clusters": [
    {
      "label": "default",
      "autoscale": {
        "min_workers": 1,
        "max_workers": 5,
        "mode": "ENHANCED"
      }
    },
    {
      "label": "updates",
      "spark_conf": {
         "key": "value"
      }
    }
  ]
}

A Delta Live Tables hasonló lehetőségeket biztosít a fürtbeállításokhoz, mint az Azure Databricks más számításai. A többi folyamatbeállításhoz hasonlóan a fürtök JSON-konfigurációját is módosíthatja úgy, hogy a felhasználói felületen nem található beállításokat adja meg. Lásd: Compute.

Feljegyzés

  • Mivel a Delta Live Tables futtatókörnyezet kezeli a folyamatfürtök életciklusát, és a Databricks Runtime egyéni verzióját futtatja, nem állíthat be manuálisan bizonyos fürtbeállításokat egy folyamatkonfigurációban, például a Spark-verziót vagy a fürtneveket. Lásd a nem felhasználó által beállított fürtattribútumokat.
  • A Delta Live Tables-folyamatokat konfigurálhatja a Photon használatához. Lásd: Mi a Photon?.

Folyamat futtatásához válassza ki a példánytípusokat

Alapértelmezés szerint a Delta Live Tables kiválasztja a folyamatot futtató illesztőprogram- és feldolgozó csomópontok példánytípusait, de manuálisan is konfigurálhatja a példánytípusokat. Előfordulhat például, hogy a folyamat teljesítményének javítása vagy a folyamat futtatásakor felmerülő memóriaproblémák megoldása érdekében érdemes példánytípusokat választania. A folyamat REST API-val vagy a Delta Live Tables felhasználói felületén történő létrehozásakor vagy szerkesztésekor konfigurálhat példánytípusokat.

Példánytípusok konfigurálása folyamat létrehozásakor vagy szerkesztésekor a Delta Live Tables felhasználói felületén:

  1. Kattintson a Gépház gombra.
  2. A Folyamat beállításai lapon kattintson a JSON gombra.
  3. Adja meg a példánytípus-konfigurációkat a fürtkonfigurációban:

Feljegyzés

Annak érdekében, hogy ne rendeljen felesleges erőforrásokat a maintenance fürthöz, ez a példa a updates címke használatával állítja be csak a updates fürt példánytípusát. A példánytípusok mind a kettőhöz, maintenance mind updates a fürtökhöz való hozzárendeléséhez használja a default címkét, vagy hagyja ki a címke beállítását. A default címke akkor lesz alkalmazva a folyamatfürt-konfigurációkra, ha nincs megadva a címke beállítása. Lásd a számítási beállítások konfigurálását.

{
  "clusters": [
    {
      "label": "updates",
      "node_type_id": "Standard_D12_v2",
      "driver_node_type_id": "Standard_D3_v2",
      "..." : "..."
    }
  ]
}

Az automatikus skálázás használata a hatékonyság növeléséhez és az erőforrás-használat csökkentéséhez

A bővített automatikus skálázás használatával optimalizálhatja a folyamatok fürtkihasználtságát. A továbbfejlesztett automatikus skálázás csak akkor ad hozzá további erőforrásokat, ha a rendszer megállapítja, hogy ezek az erőforrások növelik a folyamat feldolgozási sebességét. A rendszer felszabadítja az erőforrásokat, ha már nincs rá szükség, és a fürtök leállnak, amint az összes folyamatfrissítés befejeződik.

A továbbfejlesztett automatikus skálázás éles folyamatokhoz való konfigurálásakor kövesse az alábbi irányelveket:

  • Hagyja meg a Min workers beállítást az alapértelmezett értéken.
  • Állítsa be a Max workers beállítást egy értékre a költségvetés és a folyamat prioritása alapján.

Számítási leállítás késleltetése

Mivel a Delta Live Tables-fürt automatikusan leáll, ha nincs használatban, a fürtkonfiguráció autotermination_minutes beállítását megadó fürtszabályzatra való hivatkozás hibát okoz. A fürtleállítási viselkedés szabályozásához használhat fejlesztési vagy éles módot, vagy használhatja a pipelines.clusterShutdown.delay beállítást a folyamatkonfigurációban. Az alábbi példa 60 másodpercre állítja be a pipelines.clusterShutdown.delay értékét:

{
    "configuration": {
      "pipelines.clusterShutdown.delay": "60s"
    }
}

Ha a production mód van engedélyezve, a pipelines.clusterShutdown.delay alapértelmezett értéke 0 seconds. Ha a development mód van engedélyezve, az alapértelmezett érték 2 hours.

Egyetlen csomópontfürt létrehozása

Ha a fürt beállításai között 0 értékre van állítva num_workers , a fürt egyetlen csomópontos fürtként jön létre. Egy automatikus skálázású fürt konfigurálása, illetve a min_workers 0 értékűre és a max_workers 0 értékűre állítása szintén egy csomópontos fürtöt eredményez.

Ha automatikus skálázási fürtöt konfigurál, és csak min_workers 0 értékre állítja be, akkor a fürt nem egyetlen csomópontfürtként jön létre. A fürtnek folyamatosan legalább egy aktív feldolgozója lesz a leállásig.

Példa-fürtkonfiguráció egy egy csomópontos fürt létrehozásához a Delta Live Tablesben:

{
    "clusters": [
      {
        "num_workers": 0
      }
    ]
}

Fürtcímkék konfigurálása

A fürtcímkék segítségével nyomon követheti a csővezetékfürtök használatát. A Delta Live Tables felhasználói felületen a csővezeték létrehozásakor vagy szerkesztésekor, vagy a csővezeték-klaszterek JSON-beállításainak szerkesztésével adhat hozzá klasztercímkéket.

Felhőbeli tárterület konfigurálása

Az Azure Storage eléréséhez konfigurálnia kell a szükséges paramétereket, beleértve a hozzáférési jogkivonatokat is a fürtkonfigurációk beállításainak használatávalspark.conf. Az Azure Data Lake Storage Gen2 (ADLS Gen2) tárfiókhoz való hozzáférés konfigurálására példa: Biztonságos hozzáférés a tároló hitelesítő adataihoz titkos kulcsokkal egy folyamatban.

Folyamatok paraméterezése

Az adathalmazokat meghatározó Python- és SQL-kód paraméterezhető a folyamat beállításai alapján. A paraméterezés a következő használati eseteket teszi lehetővé:

  • Hosszú útvonalak és más változók elválasztása a kódtól.
  • A tesztelés felgyorsítása érdekében csökkentse a fejlesztési vagy előkészítési környezetekben feldolgozott adatok mennyiségét.
  • Ugyanazt az átalakítási logikát használja újra több adatforrásból történő feldolgozáshoz.

Az alábbi példa a startDate konfigurációs érték használatával korlátozza a fejlesztési folyamatot a bemeneti adatok egy részhalmazára:

CREATE OR REFRESH LIVE TABLE customer_events
AS SELECT * FROM sourceTable WHERE date > '${mypipeline.startDate}';
@dlt.table
def customer_events():
  start_date = spark.conf.get("mypipeline.startDate")
  return read("sourceTable").where(col("date") > start_date)
{
  "name": "Data Ingest - DEV",
  "configuration": {
    "mypipeline.startDate": "2021-01-02"
  }
}
{
  "name": "Data Ingest - PROD",
  "configuration": {
    "mypipeline.startDate": "2010-01-02"
  }
}

Folyamatok eseményindító időköze

Egy tábla vagy egy teljes folyamat folyamatfrissítésének eseményindító időközét szabályozhatja pipelines.trigger.interval . Mivel egy aktivált folyamat csak egyszer dolgozza fel az egyes táblákat, a pipelines.trigger.interval rendszer csak folyamatos folyamatokkal használja.

A Databricks az egyes táblák beállítását pipelines.trigger.interval javasolja a streamelés és a kötegelt lekérdezések eltérő alapértelmezett beállításai miatt. Csak akkor állítsa be a folyamat értékét, ha a feldolgozáshoz a teljes folyamatdiagram frissítéseinek szabályozása szükséges.

pipelines.trigger.interval Beállíthat egy táblát spark_conf Pythonban vagy SET SQL-ben:

@dlt.table(
  spark_conf={"pipelines.trigger.interval" : "10 seconds"}
)
def <function-name>():
    return (<query>)
SET pipelines.trigger.interval=10 seconds;

CREATE OR REFRESH LIVE TABLE TABLE_NAME
AS SELECT ...

A folyamat beállításához pipelines.trigger.interval adja hozzá az configuration objektumhoz a folyamat beállításai között:

{
  "configuration": {
    "pipelines.trigger.interval": "10 seconds"
  }
}

Annak engedélyezése, hogy a nem rendszergazdai felhasználók megtekinthessék az illesztőprogram-naplókat egy Unity-katalógust használó folyamatból

Alapértelmezés szerint csak a folyamat tulajdonosának és a munkaterület rendszergazdáinak van engedélye megtekinteni a Unity Catalog-kompatibilis folyamatot futtató fürt illesztőprogram-naplóit. A KÖVETKEZŐ Spark-konfigurációs paraméter configuration hozzáadásával engedélyezheti az illesztőprogram-naplók elérését minden olyan felhasználó számára, aki rendelkezik a CAN MANAGE, CAN VIEW vagy CAN RUN engedélyekkel:

{
  "configuration": {
    "spark.databricks.acl.needAdminPermissionToViewLogs": "false"
  }
}

E-mail-értesítések hozzáadása folyamateseményekhez

Egy vagy több e-mail-címet úgy konfigurálhat, hogy értesítéseket kapjon az alábbiak esetén:

  • A folyamat frissítése sikeresen befejeződött.
  • A folyamatfrissítés sikertelen, újrapróbálkozással vagy nem újrapróbálkozással. Ha bejelöli ezt a lehetőséget, értesítést szeretne kapni az összes folyamathibáról.
  • A folyamatfrissítés nem újrapróbálkozható (végzetes) hibával meghiúsul. Ha ezt a beállítást választja, csak akkor kap értesítést, ha nem újrapróbálkozható hiba történik.
  • Egyetlen adatfolyam meghiúsul.

E-mail-értesítések konfigurálása folyamat létrehozásakor vagy szerkesztésekor:

  1. Kattintson az Értesítés hozzáadása gombra.
  2. Adjon meg egy vagy több e-mail-címet az értesítések fogadásához.
  3. Kattintson az egyes értesítéstípusok jelölőnégyzetére a konfigurált e-mail-címekre való küldéshez.
  4. Kattintson az Értesítés hozzáadása gombra.

1. típusú SCD-lekérdezések sírkőkezelésének vezérlése

Az alábbi beállításokkal szabályozható a sírkőkezelés DELETE viselkedése az SCD 1. típusú feldolgozása során:

  • pipelines.applyChanges.tombstoneGCThresholdInSeconds: Állítsa be ezt az értéket úgy, hogy az megfeleljen a rendelésen kívüli adatok közötti legmagasabb elvárt időköznek másodpercben. Az alapértelmezett érték 172800 másodperc (2 nap).
  • pipelines.applyChanges.tombstoneGCFrequencyInSeconds: Ez a beállítás azt szabályozza, hogy a rendszer másodpercek alatt milyen gyakran ellenőrzi a sírköveket a törléshez. Az alapértelmezett érték 1800 másodperc (30 perc).

Lásd: Egyszerűsített változásadat-rögzítés a VÁLTOZÁSOK ALKALMAZÁSA API-val a Delta Live Tablesben.