قوالب مشروع مجموعة أصول Databricks
تصف هذه المقالة بناء جملة قوالب مجموعة أصول Databricks. تمكن الحزم الإدارة البرمجية لسير عمل Azure Databricks. راجع ما هي حزم أصول Databricks؟
تمكن قوالب الحزم المستخدمين من إنشاء حزم بطريقة متسقة وقابلة للتكرار، من خلال إنشاء بنيات المجلدات وخطوات الإنشاء والمهام والاختبارات وسمات البنية الأساسية كتعليمية أخرى ل DevOps (IaC) الشائعة عبر مسار توزيع بيئة التطوير.
على سبيل المثال، إذا قمت بتشغيل وظائف Databricks التي تتطلب حزما مخصصة مع خطوة تجميع تستغرق وقتا طويلا عند التثبيت، يمكنك تسريع حلقة التطوير الخاصة بك عن طريق إنشاء قالب حزمة يدعم بيئات الحاويات المخصصة.
تحدد قوالب الحزمة بنية الدليل للحزمة التي سيتم إنشاؤها، وتتضمن databricks.yml.tmpl
قالب ملف تكوين بالإضافة databricks_template_schema.json
إلى ملف يحتوي على متغيرات مطالبة المستخدم.
استخدام قالب مجموعة افتراضي
لاستخدام قالب حزمة Azure Databricks الافتراضي لإنشاء حزمتك، استخدم الأمر Databricks CLIbundle init
، مع تحديد اسم القالب الافتراضي الذي يجب استخدامه. على سبيل المثال، ينشئ الأمر التالي مجموعة باستخدام قالب حزمة Python الافتراضي:
databricks bundle init default-python
إذا لم تحدد قالب افتراضيا، bundle init
يقدم الأمر مجموعة القوالب المتوفرة التي يمكنك الاختيار منها.
يوفر Azure Databricks قوالب المجموعة الافتراضية التالية:
قالب | الوصف |
---|---|
default-python |
قالب لاستخدام Python مع Databricks. ينشئ هذا القالب حزمة مع مهمة ومسار Delta Live Tables. راجع default-python. |
default-sql |
قالب لاستخدام SQL مع Databricks. يحتوي هذا القالب على ملف تكوين يحدد مهمة تقوم بتشغيل استعلامات SQL على مستودع SQL. راجع default-sql. |
dbt-sql |
قالب يستفيد من dbt-core للتطوير المحلي وحزم النشر. يحتوي هذا القالب على التكوين الذي يحدد مهمة ذات مهمة dbt، بالإضافة إلى ملف تكوين يحدد ملفات تعريف dbt لوظائف dbt المنشورة. راجع dbt-sql. |
mlops-stacks |
قالب مكدس كامل متقدم لبدء مشاريع MLOps Stacks جديدة. راجع mlops-stacks وDatabricks Asset Bundles ل MLOps Stacks. |
استخدام قالب حزمة مخصص
لاستخدام قالب حزمة بخلاف قوالب حزمة Azure Databricks الافتراضية، مرر المسار المحلي أو عنوان URL البعيد للقالب إلى الأمر Databricks CLIbundle init
.
على سبيل المثال، يستخدم الأمر التالي القالب الذي dab-container-template
تم إنشاؤه في البرنامج التعليمي لقالب الحزمة المخصصة:
databricks bundle init /projects/my-custom-bundle-templates/dab-container-template
إنشاء قالب حزمة مخصص
تستخدم قوالب الحزمة بناء جملة قالب حزمة Go. راجع وثائق قالب حزمة Go.
كحد أدنى، يجب أن يحتوي مشروع قالب المجموعة على:
databricks_template_schema.json
ملف في جذر المشروع يعرف متغير مطالبة مستخدم واحد لاسم مشروع المجموعة.databricks.yml.tmpl
ملف موجود فيtemplate
مجلد يحدد التكوين لأي حزم تم إنشاؤها باستخدام القالب. إذا كان الملف يشيرdatabricks.yml.tmpl
إلى أي قوالب تكوين إضافية*.yml.tmpl
، فحدد موقعها فيinclude
التعيين.
يمكنك اختياريا إضافة مجلدات فرعية وملفات إلى template
المجلد الذي تريد نسخه معكوسا في حزم تم إنشاؤها بواسطة القالب.
تعريف متغيرات مطالبة المستخدم
الخطوة الأولى في إنشاء قالب مجموعة أساسية هي إنشاء مجلد مشروع قالب وملف مسمى databricks_template_schema.json
في جذر المشروع. يحتوي هذا الملف على المتغيرات التي يوفر المستخدمون قيم الإدخال لها عند استخدام القالب لإنشاء مجموعة باستخدام bundle init
. يتبع تنسيق هذا الملف مواصفات مخطط JSON.
mkdir basic-bundle-template
touch basic-bundle-template/databricks_template_schema.json
أضف ما يلي إلى databricks_template_schema.json
الملف، ثم احفظ الملف:
{
"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."
}
في هذا الملف:
project_name
هو اسم متغير الإدخال الوحيد.default
هي قيمة افتراضية اختيارية إذا لم يتم توفير قيمة من قبل المستخدم كجزء--config-file
منbundle init
الأمر، أو تم تجاوزها من قبل المستخدم في موجه الأوامر.description
هو مطالبة المستخدم المقترنة بمتغير الإدخال، إذا لم يتم توفير قيمة من قبل المستخدم كجزء--config-file
منbundle init
الأمر.order
هو ترتيب اختياري تظهر فيه كل مطالبة مستخدم إذا لم يتم توفير قيمة من قبل المستخدم كجزء--config-file
منbundle init
الأمر. إذاorder
لم يتم توفيرها، فسيظهر المستخدم بالترتيب الذي يتم سردها به في المخطط.success_message
هي رسالة اختيارية يتم عرضها عند إنشاء مشروع ناجح.
إنشاء بنية المجلد
بعد ذلك، قم بإنشاء المجلد المطلوب template
وإنشاء بنية المجلد داخله. سيتم عكس هذه البنية بواسطة حزم تم إنشاؤها باستخدام هذا القالب. ضع أيضا أي ملفات تريد تضمينها في هذه المجلدات. يخزن قالب الحزمة الأساسي هذا الملفات في src
مجلد ويتضمن دفتر ملاحظات بسيطا واحدا.
mkdir -p basic-bundle-template/template/src
touch basic-bundle-template/template/src/simple_notebook.ipynb
أضف ما يلي إلى simple_notebook.ipynb
الملف:
print("Hello World!")
تعبئة ملفات قالب التكوين
الآن قم بإنشاء الملف المطلوب databricks.yml.tmpl
في template
المجلد:
touch basic-bundle-template/template/databricks.yml.tmpl
قم بتعبئة هذا الملف بقالب التكوين الأساسي YAML. ينشئ قالب التكوين هذا اسم المجموعة ووظيفة واحدة باستخدام ملف دفتر الملاحظات المحدد والبيئتين الهدفين للحزم التي تم إنشاؤها باستخدام هذا القالب. كما أنه يستفيد من استبدال الحزمة، وهو ما يوصى به بشدة. راجع استبدالات الحزمة.
# 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 -}}
اختبار قالب الحزمة
وأخيرا، اختبر القالب الخاص بك. أنشئ مجلد مشروع حزمة جديد، ثم استخدم Databricks CLI لتهيئة مجموعة جديدة باستخدام القالب:
mkdir my-test-bundle
cd my-test-bundle
databricks bundle init ../basic-bundle-template
بالنسبة إلى المطالبة، What is your bundle project name?
اكتب my_test_bundle
.
بمجرد إنشاء حزمة الاختبار، يتم إخراج رسالة النجاح من ملف المخطط. إذا قمت بفحص محتويات my-test-bundle
المجلد، يجب أن ترى ما يلي:
my-test-bundle
├── databricks.yml
└── src
└── simple_notebook.ipynb
وتم الآن تخصيص ملف databricks.yml:
# 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
مشاركة القالب
إذا كنت ترغب في مشاركة قالب الحزمة هذا مع الآخرين، يمكنك تخزينه في التحكم بالإصدار مع أي موفر يدعمه Git ويمكن للمستخدمين الوصول إليه. لتشغيل bundle init
الأمر باستخدام عنوان URL Git، تأكد من أن databricks_template_schema.json
الملف في الموقع الجذر بالنسبة إلى عنوان URL Git هذا.
تلميح
يمكنك وضع databricks_template_schema.json
الملف في مجلد مختلف، بالنسبة إلى جذر المجموعة. يمكنك بعد ذلك استخدام bundle init
خيار الأمر --template-dir
للإشارة إلى هذا المجلد، الذي يحتوي على databricks_template_schema.json
الملف.
الخطوات التالية
- استعرض القوالب الإضافية التي تم إنشاؤها وصيانتها بواسطة Databricks. راجع مستودع نماذج الحزمة في GitHub.
- لاستخدام مكدسات MLOps مع قوالب مجموعة أصول Databricks، راجع حزم أصول Databricks ل MLOps Stacks.
- تعرف على المزيد حول قولبة حزمة Go. راجع وثائق قالب حزمة Go.