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í generate cesty pracovního prostoru ve stylu FUSE pomocí zápisu, jako je 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 .

Sync, nasadit a spustit kód

dbx umožň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ávat kód a vytvářet nebo update 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 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 set 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 set rozhraní příkazového řádku Databricks verze 0.218.0 nebo vyšší, přeskoč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 update do Rozhraní příkazového řádku Databricks verze 0.218.0 nebo novější. Přečtěte si Instalaci nebo update rozhraní příkazového řádku Databricks.
  2. Set Nastavení 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í pomocí osobního přístupového tokenu pro 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 souborů YAML a souborů schema 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 dokončování kódu, následovně.

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. Generate souboru JSON schema konfigurace sady prostředků Databricks pomocí rozhraní příkazového řádku Databricks ke spuštění příkazu bundle schema a přesměrování výstupu do souboru JSON. Například generate 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í 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 váš konfigurační soubor JSON sady prostředků Databricks schema je na jiné cestě, než je uvedeno v předchozím komentáři, nahraďte bundle_config_schema.json úplnou cestou k vašemu souboru schema.

  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. Generate souboru JSON schema konfigurace sady prostředků Databricks pomocí rozhraní příkazového řádku Databricks ke spuštění příkazu bundle schema a přesměrování výstupu do souboru JSON. Například generate 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 JSON sady schema a pak dokončil mapování schema JSON, a to podle pokynů v Konfigurace vlastního schemaJSON .

  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í JSON schema a poskytuje rady pro dokončování kódu.

IntelliJ IDEA Ultimate

  1. Generate souboru JSON schema konfigurace sady prostředků Databricks pomocí rozhraní příkazového řádku Databricks ke spuštění příkazu bundle schema a přesměrování výstupu do souboru JSON. Například generate 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, aby rozpoznával konfigurační JSON schema soubor svazku, a poté dokončete mapování JSON schema podle pokynů v tématu Konfigurace vlastního JSON schema.

  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í JSON schema 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 ú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 pipeline definované sadou můžete propojit s existujícími úlohami a pipeline v pracovním prostoru Azure Databricks, abyste je udrželi propojené v sync. Viz Vazba prostředků balíčku.

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 conf/deployment.yml následující objekty v předchozím databricks.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)
  • dbx Funkce Jinja
  • Vlastnosti založené na názvu