Sdílet prostřednictvím


Konfigurace nastavení kanálu pro dynamické tabulky Delta

Tento článek obsahuje podrobnosti o konfiguraci nastavení kanálu pro rozdílové živé tabulky. Delta Live Tables poskytuje uživatelské rozhraní pro konfiguraci a úpravu nastavení kanálu. Uživatelské rozhraní také nabízí možnost zobrazení a úpravy nastavení ve formátu JSON.

Poznámka:

Většinu nastavení můžete nakonfigurovat pomocí uživatelského rozhraní nebo specifikace JSON. Některé pokročilé možnosti jsou k dispozici pouze pomocí konfigurace JSON.

Databricks doporučuje seznámit se s nastavením Delta Live Tables pomocí uživatelského rozhraní. V případě potřeby můžete přímo upravit konfiguraci JSON v pracovním prostoru. Konfigurační soubory JSON jsou také užitečné při nasazování kanálů do nových prostředí nebo při použití rozhraní příkazového řádku nebo rozhraní REST API.

Úplný odkaz na nastavení konfigurace JSON tabulky Delta Live Tables najdete v tématu Konfigurace kanálu Delta Live Tables.

Volba edice produktu

Vyberte produktovou edici Delta Live Tables s funkcemi, které jsou pro vaše požadavky na kanál nejvhodnější. K dispozici jsou následující edice produktů:

  • Core ke spouštění úloh ingestování streamování. Core Tuto edici vyberte, pokud kanál nevyžaduje pokročilé funkce, jako je záznam dat změn (CDC) nebo očekávané rozdílové živé tabulky.
  • Pro ke spouštění úloh ingestování streamování a CDC. Edice Pro produktu podporuje všechny Core funkce a podporu pro úlohy, které vyžadují aktualizaci tabulek na základě změn ve zdrojových datech.
  • Advanced ke spouštění úloh ingestování streamování, úloh CDC a úloh, které vyžadují očekávání. Produktová Advanced edice podporuje funkce a CorePro edice a také podporuje vynucení omezení kvality dat s očekáváními Delta Live Tables.

Edici produktu můžete vybrat při vytváření nebo úpravě kanálu. Pro každý kanál můžete vybrat jinou edici. Podívejte se na stránku produktu Delta Live Tables.

Poznámka:

Pokud kanál obsahuje funkce, které vybraná edice produktu nepodporuje, například očekávání, zobrazí se chybová zpráva s důvodem chyby. Kanál pak můžete upravit a vybrat příslušnou edici.

Volba režimu kanálu

Kanál můžete aktualizovat nepřetržitě nebo ručně spouštěnými triggery na základě režimu kanálu. Viz Průběžná versus aktivovaná spuštění kanálu.

Výběr zásad clusteru

Uživatelé musí mít oprávnění k nasazení výpočetních prostředků pro konfiguraci a aktualizaci kanálů Delta Live Tables. Správci pracovního prostoru můžou nakonfigurovat zásady clusteru tak, aby uživatelům poskytovaly přístup k výpočetním prostředkům pro delta živé tabulky. Viz Definice omezení výpočetních prostředků kanálu Delta Live Tables.

Poznámka:

  • Zásady clusteru jsou volitelné. Obraťte se na správce pracovního prostoru, pokud nemáte výpočetní oprávnění požadovaná pro rozdílové živé tabulky.

  • Pokud chcete zajistit správné použití výchozích hodnot zásad clusteru, nastavte apply_policy_default_values hodnotu v truekonfiguracích clusteru v konfiguraci kanálu:

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

Konfigurace knihoven zdrojového kódu

Pomocí selektoru souborů v uživatelském rozhraní Delta Live Tables můžete nakonfigurovat zdrojový kód definující váš kanál. Zdrojový kód kanálu je definovaný v poznámkových blocích Databricks nebo ve skriptech SQL nebo Pythonu uložených v souborech pracovního prostoru. Při vytváření nebo úpravě kanálu můžete přidat jeden nebo více poznámkových bloků nebo souborů pracovního prostoru nebo kombinaci poznámkových bloků a souborů pracovního prostoru.

Vzhledem k tomu, že Delta Live Tables automaticky analyzuje závislosti datových sad za účelem vytvoření grafu zpracování pro váš kanál, můžete přidat knihovny zdrojového kódu v libovolném pořadí.

Můžete také upravit soubor JSON tak, aby zahrnoval zdrojový kód Delta Live Tables definovaný ve skriptech SQL a Pythonu uložených v souborech pracovního prostoru. Následující příklad obsahuje poznámkové bloky a soubory pracovního prostoru:

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

Určení umístění úložiště

Můžete zadat umístění úložiště pro kanál, který publikuje do metastoru Hive. Primární motivací pro určení umístění je řídit umístění úložiště objektů pro data zapsaná kanálem.

Vzhledem k tomu, že všechny tabulky, data, kontrolní body a metadata pro kanály delta živých tabulek jsou plně spravovány rozdílovými živými tabulkami, většina interakcí s datovými sadami Delta Live Tables probíhá prostřednictvím tabulek registrovaných v metastoru Hive nebo v katalogu Unity.

Určení cílového schématu pro výstupní tabulky kanálu

I když je to volitelné, měli byste určit cíl publikování tabulek vytvořených kanálem, kdykoli se přesunete mimo vývoj a testování nového kanálu. Publikování kanálu do cíle zpřístupňuje datové sady pro dotazování jinde v prostředí Azure Databricks. Viz Publikování dat z Delta Live Tables do metastore Hive nebo Použití katalogu Unity s kanály Delta Live Tables.

Konfigurace nastavení výpočetních prostředků

Každý kanál dynamických tabulek Delta má dva přidružené clustery:

  • Cluster updates zpracovává aktualizace kanálu.
  • Cluster maintenance spouští úlohy každodenní údržby.

Konfigurace používaná těmito clustery je určena atributem clusters zadaným v nastavení kanálu.

Pomocí popisků clusteru můžete přidat nastavení výpočetních prostředků, která platí jenom pro určitý typ clusteru. Při konfiguraci clusterů kanálů můžete použít tři popisky:

Poznámka:

Nastavení popisku clusteru je možné vynechat, pokud definujete pouze jednu konfiguraci clusteru. Popisek default se použije u konfigurací clusteru, pokud není k dispozici žádné nastavení popisku. Nastavení popisku clusteru se vyžaduje jenom v případě, že potřebujete přizpůsobit nastavení pro různé typy clusterů.

  • Popisek default definuje nastavení výpočetních prostředků, která se mají použít pro updates clustery i maintenance clustery. Použití stejného nastavení u obou clusterů zlepšuje spolehlivost údržby tím, že zajišťuje, aby se na cluster údržby použily požadované konfigurace, například přihlašovací údaje pro přístup k datům pro umístění úložiště.
  • Popisek maintenance definuje nastavení výpočetních prostředků, která se použijí jenom na maintenance cluster. Pomocí popisku maintenance můžete také přepsat nastavení nakonfigurovaná popiskem default .
  • Popisek updates definuje nastavení, která se použijí jenom pro updates cluster. updates Pomocí popisku nakonfigurujte nastavení, která by se neměla v clusteru maintenance použít.

Nastavení definované pomocí default popisků se updates sloučí, aby se vytvořila konečná konfigurace clusteruupdates. Pokud je stejné nastavení definované pomocí obou default i updates popisků, přepíše nastavení definované popiskem updates nastavení definované popiskem default .

Následující příklad definuje konfigurační parametr Sparku, který se přidá pouze do konfigurace clusteru updates :

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

Delta Live Tables poskytuje podobné možnosti pro nastavení clusteru jako jiné výpočetní prostředky v Azure Databricks. Stejně jako u jiných nastavení kanálu můžete upravit konfiguraci JSON pro clustery a určit možnosti, které se v uživatelském rozhraní nenachází. Viz Výpočty.

Poznámka:

  • Vzhledem k tomu, že modul runtime Delta Live Tables spravuje životní cyklus clusterů kanálů a spouští vlastní verzi databricks Runtime, nemůžete některá nastavení clusteru nastavit ručně v konfiguraci kanálu, jako jsou verze Sparku nebo názvy clusterů. Viz atributy clusteru, které nejsou nastaveny uživatelem.
  • Kanály Delta Live Tables můžete nakonfigurovat tak, aby využívaly Photon. Podívejte se, co je Photon?

Výběr typů instancí pro spuštění kanálu

Delta Live Tables ve výchozím nastavení vybere typy instancí pro ovladače a pracovní uzly, které spouští váš kanál, ale typy instancí můžete nakonfigurovat také ručně. Můžete například vybrat typy instancí, abyste zlepšili výkon kanálu nebo vyřešili problémy s pamětí při spuštění kanálu. Typy instancí můžete nakonfigurovat při vytváření nebo úpravách kanálu pomocí rozhraní REST API nebo v uživatelském rozhraní Delta Live Tables.

Konfigurace typů instancí při vytváření nebo úpravě kanálu v uživatelském rozhraní Delta Live Tables:

  1. Klikněte na tlačítko Nastavení.
  2. V části Upřesnit nastavení kanálu vyberte v rozevíracích nabídkách Typ pracovního procesu a Typ ovladače typy instancí pro kanál.

Pokud chcete nakonfigurovat typy instancí v nastavení JSON kanálu, klikněte na tlačítko JSON a zadejte konfigurace typů instancí v konfiguraci clusteru:

Poznámka:

Aby se zabránilo přiřazování nepotřebných prostředků ke maintenance clusteru, použije updates tento příklad popisek k nastavení typů instancí pouze updates pro cluster. Pokud chcete přiřadit typy instancí k oběma updates i maintenance clusterům, použijte default popisek nebo vynecháte nastavení popisku. Popisek default se použije u konfigurací clusteru kanálu, pokud není zadané žádné nastavení pro popisek. Viz Konfigurace nastavení výpočetních prostředků.

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

Použití automatického škálování ke zvýšení efektivity a snížení využití prostředků

Pomocí rozšířeného automatického škálování optimalizujte využití clusteru vašich kanálů. Vylepšené automatické škálování přidává další prostředky jenom v případě, že systém určí, že tyto prostředky zvýší rychlost zpracování kanálu. Prostředky se uvolní, když už je nepotřebujete, a clustery se vypnou hned po dokončení všech aktualizací kanálu.

Další informace o rozšířeném automatickém škálování, včetně podrobností o konfiguraci, najdete v tématu Optimalizace využití clusteru kanálů Delta Live Tables pomocí rozšířeného automatického škálování.

Zpoždění vypnutí výpočetních prostředků

Vzhledem k tomu, že se cluster Delta Live Tables automaticky vypne, když se nepoužívá, odkazování na zásadu clusteru, která se nastavuje autotermination_minutes v konfiguraci clusteru, způsobí chybu. Pokud chcete řídit chování vypnutí clusteru, můžete použít vývojový nebo produkční režim nebo použít pipelines.clusterShutdown.delay nastavení v konfiguraci kanálu. Následující příklad nastaví hodnotu pipelines.clusterShutdown.delay na 60 sekund:

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

Pokud je povolený režim production, výchozí hodnota pro pipelines.clusterShutdown.delay je 0 seconds. Pokud je povolený režim development, výchozí hodnota je 2 hours.

Vytvoření clusteru s jedním uzlem

Pokud jste v nastavení clusteru nastavili num_workers hodnotu 0, cluster se vytvoří jako cluster s jedním uzlem. Konfigurace clusteru s automatickým škálováním a nastavení min_workers na 0 a max_workers na 0 také vytvoří cluster s jedním uzlem.

Pokud nakonfigurujete cluster automatického škálování a nastavíte ho jenom min_workers na 0, cluster se nevytvořil jako cluster s jedním uzlem. Cluster má až do ukončení vždy alespoň jeden aktivní pracovní proces.

Příklad konfigurace clusteru pro vytvoření clusteru s jedním uzlem v Delta Live Tables:

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

Konfigurace značek clusteru

Značky clusteru můžete použít k monitorování využití pro vaše clustery kanálů. Značky clusteru můžete přidat do uživatelského rozhraní Delta Live Tables při vytváření nebo úpravách kanálu nebo úpravou nastavení JSON pro clustery kanálů.

Konfigurace cloudového úložiště

Pokud chcete získat přístup ke službě Azure Storage, musíte nakonfigurovat požadované parametry, včetně přístupových tokenů, pomocí spark.conf nastavení v konfiguracích clusteru. Příklad konfigurace přístupu k účtu úložiště Azure Data Lake Storage Gen2 (ADLS Gen2) najdete v tématu Zabezpečený přístup k přihlašovacím údajům úložiště s tajnými kódy v kanálu.

Parametrizace kanálů

Kód Pythonu a SQL, který definuje datové sady, je možné parametrizovat nastavením kanálu. Parametrizace umožňuje následující případy použití:

  • Oddělení dlouhých cest a dalších proměnných od kódu
  • Snížení množství dat zpracovaných ve vývojových nebo přípravných prostředích za účelem urychlení testování
  • Opětovné použití stejné logiky transformace pro zpracování z více zdrojů dat

Následující příklad používá startDate hodnotu konfigurace k omezení vývojového kanálu na podmnožinu vstupních dat:

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"
  }
}

Interval triggeru kanálů

Můžete použít pipelines.trigger.interval k řízení intervalu triggeru pro tok, který aktualizuje tabulku nebo celý kanál. Vzhledem k tomu, že aktivovaný kanál zpracovává každou tabulku pouze jednou, používá se pipelines.trigger.interval pouze s průběžnými kanály.

Databricks doporučuje nastavit pipelines.trigger.interval jednotlivé tabulky z důvodu různých výchozích hodnot streamování a dávkových dotazů. Hodnotu kanálu nastavte jenom v případě, že zpracování vyžaduje řízení aktualizací pro celý graf kanálu.

Nastavili pipelines.trigger.interval jste tabulku pomocí spark_conf Pythonu nebo SET v SQL:

@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 ...

Pokud chcete nastavit pipelines.trigger.interval kanál, přidejte ho do objektu configuration v nastavení kanálu:

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

Povolit uživatelům bez oprávnění správce zobrazit protokoly ovladačů z kanálu s podporou katalogu Unity

Ve výchozím nastavení mají oprávnění pouze vlastník kanálu a správci pracovního prostoru zobrazit protokoly ovladačů z clusteru, na kterém běží kanál s podporou katalogu Unity. Přístup k protokolům ovladačů můžete povolit pro libovolného uživatele s oprávněními CAN MANAGE, CAN VIEW nebo CAN RUN přidáním následujícího konfiguračního parametru Sparku do objektu configuration v nastavení kanálu:

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

Přidání e-mailových oznámení pro události kanálu

Můžete nakonfigurovat jednu nebo více e-mailových adres pro příjem oznámení, když dojde k následujícímu:

  • Aktualizace kanálu se úspěšně dokončí.
  • Aktualizace kanálu selže, a to buď s možností opakování, nebo chybou, která se neopakuje. Tuto možnost vyberte, pokud chcete dostávat oznámení o všech selháních kanálu.
  • Aktualizace kanálu selže s chybou, která se neopakuje (závažná). Tuto možnost vyberte, pokud chcete dostávat oznámení pouze v případě, že dojde k neopakovatelné chybě.
  • Jeden tok dat selže.

Konfigurace e-mailových oznámení při vytváření nebo úpravě kanálu:

  1. Klikněte na Přidat oznámení.
  2. Zadejte jednu nebo více e-mailových adres pro příjem oznámení.
  3. Kliknutím na zaškrtávací políčko u každého typu oznámení odešlete na nakonfigurované e-mailové adresy.
  4. Klikněte na Přidat oznámení.

Řízení správy náhrobků pro dotazy typu 1 typu SCD

Následující nastavení lze použít k řízení chování správy náhrobků pro DELETE události během zpracování typu 1 SCD:

  • pipelines.applyChanges.tombstoneGCThresholdInSeconds: Nastavte tuto hodnotu tak, aby odpovídala nejvyššímu očekávanému intervalu v sekundách mezi daty mimo pořadí. Výchozí hodnota je 172800 sekund (2 dny).
  • pipelines.applyChanges.tombstoneGCFrequencyInSeconds: Toto nastavení určuje, jak často se v sekundách kontrolují náhrobky pro vyčištění. Výchozí hodnota je 1800 sekund (30 minut).

Viz APPLY CHANGES API: Zjednodušení zachytávání dat změn v rozdílových živých tabulkách.

Konfigurace oprávnění kanálu

Ke správě oprávnění k kanálu musíte mít CAN MANAGE oprávnění nebo IS OWNER oprávnění.

  1. Na bočním panelu klikněte na Rozdílové živé tabulky.

  2. Vyberte název kanálu.

  3. Klikněte na nabídku Svislé tři tečkykebab a vyberte Oprávnění.

  4. V části Oprávnění Nastavení vyberte rozevírací nabídku Vybrat uživatele, skupinu nebo instanční objekt... a pak vyberte uživatele, skupinu nebo instanční objekt.

    Dialogové okno Nastavení oprávnění

  5. V rozevírací nabídce oprávnění vyberte oprávnění.

  6. Klikněte na tlačítko Přidat.

  7. Klikněte na Uložit.

Povolení úložiště stavů RocksDB pro dynamické tabulky Delta

Správu stavu na základě RocksDB můžete povolit nastavením následující konfigurace před nasazením kanálu:

{
  "configuration": {
     "spark.sql.streaming.stateStore.providerClass": "com.databricks.sql.streaming.state.RocksDBStateStoreProvider"
  }
}

Další informace o úložišti stavů RocksDB, včetně doporučení konfigurace pro RocksDB, najdete v tématu Konfigurace úložiště stavů RocksDB v Azure Databricks.