Migrace z dbx na sady

Důležité

Databricks doporučuje používat balíčky deklarativní automatizace místo dbx od Databricks Labs. Související články týkající se dbx byly zrušeny a pravděpodobně nebudou aktualizovány.

Tento článek popisuje, jak migrovat projekty od Databricks Labs na Deklarativní Automatizační Balíčky. Viz Úvod do dbx by Databricks Labs a Co jsou deklarativní automatizační sady?.

Před migrací si všimněte následujících omezení a porovnání funkcí mezi dbx od Databricks Labs a deklarativními balíčky automatizace.

Porovnání funkcí

Před migrací si všimněte, jak se v deklarativních balíčcích automatizace implementují následující funkce pro dbx Databricks Labs.

Šablony a projekty

dbx poskytovat podporu pro šablonování Jinja. Šablony Jinja můžete zahrnout do konfigurace nasazení a předávat proměnné prostředí buď přímo v textu, nebo prostřednictvím souboru proměnných. I když se nedoporučuje, dbx poskytuje také experimentální podporu vlastních uživatelských funkcí.

Sady poskytují podporu pro Go šablony pro opakované použití konfigurace. Uživatelé můžou vytvářet sady založené na předem připravených šablonách. Pro šablonování existuje téměř úplná parita s výjimkou vlastních uživatelských funkcí.

Správa sestavení

dbx poskytuje podporu budování prostřednictvím pip wheel, Poetry a Flit. Uživatelé mohou zadat možnost sestavení v build části souboru projektu deployment.yml .

Balíčky umožňují uživatelům sestavovat, nasazovat a spouštět Python wheel soubory. Uživatelé můžou využít integrovanou whl položku v souboru sady databricks.yml .

Synchronizace, nasazení a spuštění kódu

dbx umožňuje nahrávat kód nezávisle na generování prostředků pracovního prostoru, jako jsou Lakeflow Jobs.

Balíčky vždy nahrávají kód a vytvářejí nebo aktualizují prostředky pracovního prostoru současně. To zjednodušuje nasazení a zabraňuje blokování podmínek pro úlohy, které už probíhají.

Migrace projektu dbx do sady

Jakmile si povšimnete předchozích omezení a porovnání funkcí mezi dbx službami Databricks Labs a deklarativními automatizačními sadami, jste připraveni migrovat z dbx na sady.

Databricks doporučuje zahájit dbx migraci projektu, ponechat projekt dbx v původní složce a mít samostatnou prázdnou složku, do které zkopírujete obsah původního dbx projektu. Tato samostatná složka bude vaší novou sadou. Pokud začnete převádět dbx projekt v původní složce na sadu, můžete narazit na neočekávané problémy a pak udělat nějaké chyby nebo začít znovu od začátku.

Krok 1: Instalace a nastavení rozhraní příkazového řádku Databricks

Balíčky deklarativní automatizace jsou obecně dostupné v Databricks CLI verze 0.218.0 a vyšší. Pokud jste už nainstalovali a nastavili Databricks CLI verze 0.218.0 nebo vyšší, přejděte k kroku 2.

Poznámka:

Balíčky nejsou kompatibilní s rozhraním příkazového řádku Databricks verze 0.18 a níže.

  1. Nainstalujte nebo aktualizujte rozhraní příkazového řádku Databricks verze 0.218.0 nebo novější. Viz Instalaci nebo aktualizaci rozhraní příkazového řádku Databricks.
  2. Nastavte rozhraní příkazového řádku Databricks pro ověřování s cílovými pracovními prostory Azure Databricks, například pomocí ověřování Usobním přístupovým tokenem (starší verze) . Další typy ověřování Azure Databricks najdete v tématu Authentication pro rozhraní příkazového řádku Databricks.

Krok 2: Vytvoření konfiguračního souboru sady

Pokud používáte integrované vývojové prostředí (IDE), například Visual Studio Code, PyCharm Professional nebo IntelliJ IDEA Ultimate, která poskytuje podporu pro soubory YAML a soubory schématu JSON, můžete použít integrované vývojové prostředí (IDE) nejen k vytvoření konfiguračního souboru sady, ale ke kontrole syntaxe a formátování souboru a poskytnutí tipů pro doplňování kódu, Takto.

Visual Studio Code

  1. Přidejte podporu jazykového serveru YAML do Visual Studio Code, například instalací rozšíření YAML z Visual Studio Code Marketplace.

  2. Vygenerujte soubor schématu JSON konfigurace balíku pomocí Databricks CLI spuštěním příkazu bundle schema a přesměrováním výstupu do souboru JSON. Například vygenerujte soubor s názvem bundle_config_schema.json v aktuálním adresáři následujícím způsobem:

    databricks bundle schema > bundle_config_schema.json
    
  3. Pomocí Visual Studio Code vytvořte nebo otevřete konfigurační soubor sady v aktuálním adresáři. Podle konvence má tento soubor název databricks.yml.

  4. Na začátek konfiguračního souboru sady přidejte následující komentář:

    # yaml-language-server: $schema=bundle_config_schema.json
    

    Poznámka:

    Pokud je v předchozím komentáři soubor schématu JSON konfigurace sady v jiné cestě, nahraďte bundle_config_schema.json úplnou cestou k souboru schématu.

  5. Použijte funkce jazykového serveru YAML, které jste přidali dříve. Další informace najdete v dokumentaci k jazykovému serveru YAML.

PyCharm Professional

  1. Vygenerujte soubor schématu JSON konfigurace balíku pomocí Databricks CLI spuštěním příkazu bundle schema a přesměrováním výstupu do souboru JSON. Například vygenerujte soubor s názvem bundle_config_schema.json v aktuálním adresáři následujícím způsobem:

    databricks bundle schema > bundle_config_schema.json
    
  2. Nakonfigurujte PyCharm tak, aby rozpoznal konfigurační soubor schématu JSON balíčku, a poté dokončete mapování schématu JSON podle pokynů v Konfigurace vlastního schématu JSON.

  3. Pomocí PyCharm vytvořte nebo otevřete konfigurační soubor sady. Podle konvence má tento soubor název databricks.yml. Při psaní PyCharm kontroluje syntaxi a formátování schématu JSON a poskytuje rady pro dokončování kódu.

IntelliJ IDEA Ultimate

  1. Vygenerujte soubor schématu JSON konfigurace balíku pomocí Databricks CLI spuštěním příkazu bundle schema a přesměrováním výstupu do souboru JSON. Například vygenerujte soubor s názvem bundle_config_schema.json v aktuálním adresáři následujícím způsobem:

    databricks bundle schema > bundle_config_schema.json
    
  2. Nakonfigurujte IntelliJ IDEA tak, aby rozpoznal konfigurační JSON schéma balíčku, a poté dokončete mapování schématu JSON podle pokynů v Konfigurace vlastního schématu JSON.

  3. K vytvoření nebo otevření konfiguračního souboru sady použijte IntelliJ IDEA. Podle konvence má tento soubor název databricks.yml. Při psaní IntelliJ IDEA kontroluje syntaxi a formátování schématu JSON a poskytuje rady pro dokončování kódu.

Krok 3: Převod nastavení projektu dbx na databricks.yml

Převeďte nastavení v dbx souboru projektu .dbx/project.json na ekvivalentní nastavení v souboru sady databricks.yml . Podrobnosti najdete v tématu Převod nastavení projektu dbx na databricks.yml.

Krok 4: Převod nastavení nasazení dbx na databricks.yml

Převeďte nastavení ve složce projektu dbxconf na ekvivalentní nastavení v souboru vaší sady databricks.yml . Podrobnosti najdete v tématu Převod nastavení nasazení dbx na databricks.yml.

Krok 5: Ověření sady

Než nasadíte artefakty nebo spustíte Azure Databricks úlohu, kanál :nebo MLOps, měli byste se ujistit, že je konfigurační soubor sady syntakticky správný. To proveďte spuštěním příkazu bundle validate z kořenového adresáře balíku:

databricks bundle validate

Informace o bundle validate najdete v databricks bundle validate.

Krok 6: Nasazení sady

Pokud chcete do vzdáleného pracovního prostoru nasadit všechny zadané místní artefakty, spusťte bundle deploy příkaz z kořenového adresáře sady. Pokud nejsou zadány žádné možnosti příkazu, použije se výchozí cíl deklarovaný v konfiguračním souboru sady:

databricks bundle deploy

Pokud chcete nasadit artefakty v kontextu konkrétního cíle, zadejte -t možnost (nebo --target) spolu s názvem cíle, jak je deklarováno v konfiguračním souboru sady. Například pro cíl deklarovaný s názvem development:

databricks bundle deploy -t development

Informace o bundle deploy najdete v tématu nasazení sady databricks.

Návod

Úlohy a pipeline definované sadou můžete propojit s existujícími úlohami a pipeline v pracovním prostoru Azure Databricks, aby zůstaly synchronizované. Viz databricks bundle deployment bind.

Krok 7: Spusťte balíček

Pokud chcete spustit konkrétní úlohu nebo kanál, spusťte bundle run příkaz z kořenového adresáře sady. Musíte zadat úlohu nebo kanál deklarovaný v konfiguračním souboru sady. Pokud není zadána -t možnost, použije se výchozí cíl deklarovaný v konfiguračním souboru sady. Pokud chcete například spustit úlohu pojmenovanou hello_job v kontextu výchozího cíle:

databricks bundle run hello_job

Spuštění úlohy pojmenované hello_job v kontextu cíle deklarovaného názvem development:

databricks bundle run -t development hello_job

Pro informace o bundle run najdete v programu databricks bundle run.

(Volitelné) Krok 8: Konfigurace sady pro CI/CD pomocí GitHub

Pokud používáte GitHub pro CI/CD, můžete pomocí GitHub Actions spustit příkazy databricks bundle deploy a databricks bundle run automaticky na základě konkrétních událostí pracovního postupu GitHub a dalších kritérií. Viz GitHub Actions.

Převod nastavení projektu dbx na databricks.yml

Nastavení dbxprojektu jsou ve výchozím nastavení v souboru pojmenovaném project.json ve složce projektu .dbx . Viz referenční informace k souboru Project.

V případě balíčků jsou konfigurace sady ve výchozím nastavení v souboru pojmenovaném databricks.yml v kořenové složce sady. Viz Konfiguraci deklarativních balíčků automatizace.

Pro soubor conf/project.json s následujícím ukázkovým obsahem:

{
  "environments": {
    "default": {
      "profile": "charming-aurora",
      "storage_type": "mlflow",
      "properties": {
        "workspace_directory": "/Workspace/Shared/dbx/charming_aurora",
        "artifact_location": "/Workspace/Shared/dbx/projects/charming_aurora"
      }
    }
  },
  "inplace_jinja_support": true
}

Odpovídající databricks.yml soubor je následující:

bundle:
  name: <some-unique-bundle-name>

targets:
  default:
    workspace:
      profile: charming-aurora
      root_path: /Shared/dbx/charming_aurora
      artifact_path: /Shared/dbx/projects/charming_aurora
    resources:
      # See an example "resources" mapping in the following section.

Následující objekty v předchozím conf/project.json souboru tohoto příkladu nejsou podporovány v databricks.yml souborech a nemají žádná alternativní řešení:

  • inplace_jinja_support
  • storage_type

Následující další povolené objekty v conf/project.json souborech nejsou podporovány v databricks.yml souborech a nemají žádné náhradní řešení:

  • enable-context-based-upload-for-execute
  • enable-failsafe-cluster-reuse-with-assets

Převod nastavení nasazení dbx na databricks.yml

Pro konfiguraci dbx jsou nastavení nasazení ve výchozím souboru ve složce projektu conf. Viz referenci souboru nasazení. Soubor nastavení nasazení má ve výchozím nastavení jeden z následujících názvů:

  • deployment.yml
  • deployment.yaml
  • deployment.json
  • deployment.yml.j2
  • deployment.yaml.j2
  • deployment.json.j2

Pro sady jsou nastavení nasazení ve výchozím nastavení v souboru pojmenovaném databricks.yml v kořenové složce sady. Viz Konfiguraci deklarativních balíčků automatizace.

Pro soubor conf/deployment.yml s následujícím ukázkovým obsahem:

build:
  python: 'pip'

environments:
  default:
    workflows:
      - name: 'workflow1'
        tasks:
          - task_key: 'task1'
            python_wheel_task:
              package_name: 'some-pkg'
              entry_point: 'some-ep'

Odpovídající databricks.yml soubor je následující:

bundle:
  name: <some-unique-bundle-name>

targets:
  default:
    workspace:
      # See an example "workspace" mapping in the preceding section.
    resources:
      jobs:
        workflow1:
          tasks:
            - task_key: task1
              python_wheel_task:
                package_name: some-pkg
                entry_point: some-ep

Soubory conf/deployment.yml nepodporují následující objekty v předchozím databricks.yml souboru tohoto příkladu a nemají žádná řešení:

Následující další povolené objekty a funkce v conf/deployment.yml souborech nejsou podporovány v databricks.yml souborech a nemají žádná alternativní řešení, pokud není uvedeno jinak:

  • access_control_list
  • custom (místo toho používejte standardní ukotvení YAML)
  • deployment_config
  • Formát Úlohy Lakeflow 2.0 (místo toho použijte formát Úlohy 2.1)
  • dbx Funkce Jinja
  • Vlastnosti založené na názvu