Sdílet prostřednictvím


Migrace z dbx na sady

Důležité

Databricks doporučuje používat sady prostředků Databricks místo dbx Databricks Labs. Související články o tom, které dbx byly vyřazeny, a nemusí být aktualizovány.

Tento článek popisuje, jak migrovat projekty pro dbx Databricks Labs do sad prostředků Databricks. Viz Úvod do dbx by Databricks Labs a Co jsou sady prostředků Databricks?.

Před migrací si všimněte následujících omezení a porovnání funkcí mezi dbx databricks Labs a sadami prostředků Databricks.

Omezení

Následující funkce podporované službou dbx Databricks Labs jsou omezené, neexistují nebo vyžadují alternativní řešení v sadě prostředků Databricks.

  • Sestavení artefaktů JAR není v balíčcích podporováno.
  • Notace FUSE pro cesty pracovního prostoru není podporována v balíčcích (například /Workspace/<path>/<filename>). Sady však můžete instruovat, aby během nasazení vygenerovaly cesty pracovního prostoru ve stylu FUSE pomocí zápisu, například /Workspace/${bundle.file_path}/<filename>.

Porovnání funkcí

Před migrací si všimněte, jak se v sadách prostředků Databricks 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ředat proměnné prostředí buď vložené, 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 prostředků poskytují podporu pro šablony Go 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, básně a Flit. Uživatelé mohou zadat možnost sestavení v build části souboru projektu deployment.yml .

Sady prostředků umožňují uživatelům sestavovat, nasazovat a spouštět soubory kol Pythonu. Uživatelé můžou využít integrovanou whl položku v souboru sady databricks.yml .

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

dbxumožňuje nahrávat kód odděleně od generování prostředků pracovního prostoru, jako jsou úlohy Azure Databricks.

Balíčky vždy nahrávají kód a vytvářejí nebo aktualizují prostředky pracovního prostoru najednou. 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 Sadami prostředků Databricks, jste připraveni migrovat z dbx prostředků 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

Sady prostředků Databricks jsou obecně dostupné v Rozhraní příkazového řádku Databricks 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 Instalace nebo aktualizace 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í tokenů pat azure Databricks. Další typy ověřování Azure Databricks najdete v tématu Ověřování 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), jako je 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 k poskytnutí pokynů pro doplňování kódu následujícím způsobem.

Visual Studio Code

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

  2. Vygenerujte konfigurační soubor schématu JSON sady prostředků Databricks pomocí rozhraní příkazového řádku Databricks a spusťte bundle schema příkaz a přesměrujte výstup do souboru JSON. Například vygenerujte soubor pojmenovaný 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í editoru 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 soubor schématu JSON konfigurace sady prostředků Databricks v předchozím komentáři 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 konfigurační soubor schématu JSON sady prostředků Databricks pomocí rozhraní příkazového řádku Databricks a spusťte bundle schema příkaz a přesměrujte výstup do souboru JSON. Například vygenerujte soubor pojmenovaný 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 sady, a pak dokončete mapování schématu JSON podle pokynů v části 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 konfigurační soubor schématu JSON sady prostředků Databricks pomocí rozhraní příkazového řádku Databricks a spusťte bundle schema příkaz a přesměrujte výstup do souboru JSON. Například vygenerujte soubor pojmenovaný 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í soubor schématu JSON sady a pak dokončil mapování schématu JSON podle pokynů v části 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 dbx conf 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 úlohu Azure Databricks, kanál Delta Live Tables nebo kanál MLOps, měli byste se ujistit, že je konfigurační soubor sady syntakticky správný. Provedete to spuštěním bundle validate příkazu z kořenového adresáře sady:

databricks bundle validate

Informace o nástroji Najdete v bundle validatetématu Ověření sady.

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 deploynasazení sady naleznete v tématu Nasazení sady.

Tip

Úlohy a kanály definované sadou můžete propojit s existujícími úlohami a kanály v pracovním prostoru Azure Databricks, aby byly synchronizované. Viz Vytvoření vazby prostředků sady prostředků.

Krok 7: Spuštění sady

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

Informace o bundle runspuštění úlohy nebo kanálu najdete v tématu Spuštění úlohy nebo kanálu.

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

Pokud používáte GitHub pro CI/CD, můžete pomocí GitHub Actions spouštět databricks bundle deploy příkazy automaticky databricks bundle run na základě konkrétních událostí pracovního postupu GitHubu a dalších kritérií. Viz Spuštění pracovního postupu CI/CD se sadou prostředků Databricks a 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 aplikace 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 konfigurace sady prostředků Databricks.

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

{
  "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 databricks.yml v souborech a nemají žádná alternativní řešení:

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

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

Nastavení dbxnasazení jsou ve výchozím nastavení v souboru ve složce projektu conf . Viz referenční informace k 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 konfigurace sady prostředků Databricks.

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

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

V souborech nejsou podporovány databricks.yml následující objekty v předchozím conf/deployment.yml souboru tohoto příkladu a nemají žádná alternativní ř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 Azure Databricks Jobs 2.0 (místo toho použijte formát Úlohy 2.1)
  • dbxFunkce Jinja
  • Vlastnosti založené na názvu