Šablony projektů Sady prostředků Databricks
Tento článek popisuje syntaxi pro šablony sady prostředků Databricks. Sady prostředků umožňují programovou správu pracovních postupů Azure Databricks. Podívejte se , co jsou sady prostředků Databricks?
Šablony sad umožňují uživatelům vytvářet sady konzistentním, opakovatelným způsobem, a to vytvořením struktur složek, kroků sestavení a úloh, testů a dalších atributů infrastruktury jako kódu DevOps (IaC) běžných v rámci kanálu nasazení vývojového prostředí.
Pokud například rutinně spouštíte úlohy Databricks, které vyžadují vlastní balíčky s časově náročným krokem kompilace při instalaci, můžete urychlit vývojovou smyčku vytvořením šablony sady, která podporuje vlastní prostředí kontejnerů.
Šablony sady definují adresářovou strukturu sady, která se vytvoří, a obsahují databricks.yml.tmpl
šablonu konfiguračního souboru a databricks_template_schema.json
soubor obsahující proměnné příkazového řádku uživatele.
Použití výchozí šablony sady
Pokud chcete k vytvoření sady prostředků použít výchozí šablonu sady Azure Databricks, použijte příkaz Rozhraní příkazového řádku bundle init
Databricks a zadejte název výchozí šablony, která se má použít. Následující příkaz například vytvoří sadu s použitím výchozí šablony sady Pythonu:
databricks bundle init default-python
Pokud nezadáte výchozí šablonu, zobrazí příkaz sadu dostupných šablon, bundle init
ze kterých si můžete vybrat.
Azure Databricks poskytuje následující výchozí šablony sad:
Template | Popis |
---|---|
default-python |
Šablona pro použití Pythonu s Databricks Tato šablona vytvoří sadu s úlohou a kanálem Delta Live Tables. Viz default-python. |
default-sql |
Šablona pro použití SQL s Databricks Tato šablona obsahuje konfigurační soubor, který definuje úlohu, která spouští dotazy SQL ve službě SQL Warehouse. Viz default-sql. |
dbt-sql |
Šablona, která využívá dbt-core pro místní vývoj a sady prostředků pro nasazení. Tato šablona obsahuje konfiguraci, která definuje úlohu s úlohou dbt, a konfigurační soubor, který definuje profily dbt pro nasazené úlohy dbt. Viz dbt-sql. |
mlops-stacks |
Pokročilá úplná šablona zásobníku pro spouštění nových projektů MLOps Stacks. Viz sady prostředků mlops a sady prostředků Databricks pro zásobníky MLOps. |
Použití vlastní šablony sady
Pokud chcete použít jinou šablonu sady než výchozí šablony sady Azure Databricks, předejte místní cestu nebo vzdálenou adresu URL šablony do příkazu Rozhraní příkazového řádku bundle init
Databricks.
Následující příkaz například používá šablonu vytvořenou dab-container-template
v kurzu vlastní šablony sady prostředků:
databricks bundle init /projects/my-custom-bundle-templates/dab-container-template
Vytvoření vlastní šablony sady
Šablony balíčků používají syntaxi šablon balíčků Go. Projděte si dokumentaci k šabloně balíčku Go.
Minimálně projekt šablony sady musí mít:
databricks_template_schema.json
Soubor v kořenovém adresáři projektu, který definuje jednu proměnnou výzvy uživatele pro název projektu sady.databricks.yml.tmpl
Soubor umístěný vetemplate
složce, která definuje konfiguraci pro všechny sady vytvořené pomocí šablony. Pokud vášdatabricks.yml.tmpl
soubor odkazuje na jakékoli další*.yml.tmpl
šablony konfigurace, zadejte jejich umístění vinclude
mapování.
Do složky, kterou chcete zrcadlit, můžete volitelně přidat podsložky a soubory template
vytvořené šablonou.
Definování proměnných výzvy uživatele
Prvním krokem při vytváření základní šablony sady je vytvoření složky projektu šablony a souboru pojmenovaného databricks_template_schema.json
v kořenovém adresáři projektu. Tento soubor obsahuje proměnné, pro které uživatelé zadávají vstupní hodnoty při použití šablony k vytvoření sady pomocí bundle init
. Formát tohoto souboru se řídí specifikací schématu JSON.
mkdir basic-bundle-template
touch basic-bundle-template/databricks_template_schema.json
Do souboru přidejte následující databricks_template_schema.json
a pak soubor uložte:
{
"properties": {
"project_name": {
"type": "string",
"default": "basic_bundle",
"description": "What is the name of the bundle you want to create?",
"order": 1
}
},
"success_message": "\nYour bundle '{{.project_name}}' has been created."
}
V tomto souboru:
project_name
je jediný název vstupní proměnné.default
je volitelná výchozí hodnota, pokud uživatel--config-file
v rámcibundle init
příkazu nezadá hodnotu nebo ji přepíše uživatel na příkazovém řádku.description
je výzva uživatele přidružená ke vstupní proměnné, pokud uživatel--config-file
jako součástbundle init
příkazu nezadá hodnotu.order
je volitelné pořadí, ve kterém se zobrazí výzva každého uživatele, pokud uživatel--config-file
jako součástbundle init
příkazu nezadá hodnotu. Pokudorder
není zadaný, zobrazí se výzva uživatele v pořadí, ve kterém jsou uvedeny ve schématu.success_message
je volitelná zpráva, která se zobrazí po úspěšném vytvoření projektu.
Sestavení struktury složek
Dále vytvořte požadovanou template
složku a sestavte v ní strukturu složek. Tato struktura bude zrcadlit sadami vytvořenými pomocí této šablony. Do těchto složek také umístěte všechny soubory, které chcete zahrnout. Tato základní šablona sady obsahuje soubory ve src
složce a obsahuje jeden jednoduchý poznámkový blok.
mkdir -p basic-bundle-template/template/src
touch basic-bundle-template/template/src/simple_notebook.ipynb
Do souboru přidejte následující simple_notebook.ipynb
:
print("Hello World!")
Naplnění souborů šablon konfigurace
Teď ve složce vytvořte požadovaný databricks.yml.tmpl
soubor template
:
touch basic-bundle-template/template/databricks.yml.tmpl
Tento soubor naplňte základní šablonou konfigurace YAML. Tato šablona konfigurace vytvoří název sady prostředků, jednu úlohu pomocí zadaného souboru poznámkového bloku a dvě cílová prostředí pro sady vytvořené pomocí této šablony. Využívá také náhrady svazků, které se důrazně doporučují. Podívejte se na náhrady balíčků.
# This is the configuration for the Databricks Asset Bundle {{.project_name}}.
bundle:
name: {{.project_name}}
# The main job for {{.project_name}}
resources:
jobs:
{{.project_name}}_job:
name: {{.project_name}}_job
tasks:
- task_key: notebook_task
job_cluster_key: job_cluster
notebook_task:
notebook_path: ../src/simple_notebook.ipynb
job_clusters:
- job_cluster_key: job_cluster
new_cluster:
node_type_id: i3.xlarge
spark_version: 13.3.x-scala2.12
targets:
# The deployment targets. See https://docs.databricks.com/en/dev-tools/bundles/deployment-modes.html
dev:
mode: development
default: true
workspace:
host: {{workspace_host}}
prod:
mode: production
workspace:
host: {{workspace_host}}
root_path: /Shared/.bundle/prod/${bundle.name}
{{- if not is_service_principal}}
run_as:
# This runs as {{user_name}} in production. Alternatively,
# a service principal could be used here using service_principal_name
user_name: {{user_name}}
{{end -}}
Otestování šablony sady
Nakonec šablonu otestujte. Vytvořte novou složku projektu sady prostředků a pak pomocí rozhraní příkazového řádku Databricks inicializujete novou sadu pomocí šablony:
mkdir my-test-bundle
cd my-test-bundle
databricks bundle init ../basic-bundle-template
Do příkazového řádku What is your bundle project name?
zadejte my_test_bundle
.
Po vytvoření testovací sady bude výstupem zpráva o úspěchu ze souboru schématu. Pokud prozkoumáte obsah my-test-bundle
složky, měli byste vidět následující:
my-test-bundle
├── databricks.yml
└── src
└── simple_notebook.ipynb
Soubor databricks.yml je teď přizpůsobený:
# This is the configuration for the Databricks Asset Bundle my-test-bundle.
bundle:
name: my-test-bundle
# The main job for my-test-bundle
resources:
jobs:
my-test-bundle_job:
name: my-test-bundle_job
tasks:
- task_key: notebook_task
job_cluster_key: job_cluster
notebook_task:
notebook_path: ../src/simple_notebook.ipynb
job_clusters:
- job_cluster_key: job_cluster
new_cluster:
node_type_id: i3.xlarge
spark_version: 13.3.x-scala2.12
targets:
# The 'dev' target, used for development purposes. See [_](https://docs.databricks.com/en/dev-tools/bundles/deployment-modes.html#development-mode)
dev:
mode: development
default: true
workspace:
host: https://my-host.cloud.databricks.com
# The 'prod' target, used for production deployment. See [_](https://docs.databricks.com/en/dev-tools/bundles/deployment-modes.html#production-mode)
prod:
mode: production
workspace:
host: https://my-host.cloud.databricks.com
root_path: /Shared/.bundle/prod/${bundle.name}
run_as:
# This runs as someone@example.com in production. Alternatively,
# a service principal could be used here using service_principal_name
user_name: someone@example.com
Sdílení šablony
Pokud chcete tuto šablonu sady sdílet s ostatními, můžete ji uložit ve správě verzí u libovolného poskytovatele, kterého Git podporuje a ke kterému mají uživatelé přístup. Pokud chcete příkaz spustit bundle init
s adresou URL Gitu, ujistěte se, že databricks_template_schema.json
je soubor v kořenovém umístění vzhledem k této adrese URL Gitu.
Tip
Soubor můžete umístit databricks_template_schema.json
do jiné složky vzhledem ke kořenovému adresáři sady. Potom můžete pomocí bundle init
možnosti příkazu --template-dir
odkazovat na tuto složku, která obsahuje databricks_template_schema.json
soubor.
Další kroky
- Projděte si další šablony vytvořené a spravované službou Databricks. Podívejte se na úložiště ukázek balíčků na GitHubu.
- Pokud chcete používat zásobníky MLOps se šablonami sady prostředků Databricks, přečtěte si téma Sady prostředků Databricks pro zásobníky MLOps.
- Přečtěte si další informace o šablonování balíčků Go. Projděte si dokumentaci k šabloně balíčku Go.