الترحيل من dbx إلى الحزم
هام
توصي Databricks باستخدام حزم أصول Databricks بدلا من dbx
Databricks Labs. تم إيقاف المقالات ذات الصلة حول dbx
وقد لا يتم تحديثها.
توضح هذه المقالة كيفية ترحيل المشاريع ل dbx
بواسطة Databricks Labs إلى Databricks Asset Bundles. راجع مقدمة إلى dbx بواسطة Databricks Labs وما هي حزم أصول Databricks؟.
قبل الترحيل، لاحظ القيود التالية ومقارنات الميزات بين dbx
بواسطة Databricks Labs وDatabricks Asset Bundles.
القيود
الوظائف التالية المدعومة في dbx
Databricks Labs محدودة أو غير موجودة أو تتطلب حلولا بديلة في Databricks Asset Bundles.
- إنشاء البيانات الاصطناعية JAR غير مدعوم في الحزم.
- رمز FUSE لمسارات مساحة العمل غير معتمد في الحزم (على سبيل المثال،
/Workspace/<path>/<filename>
). ومع ذلك، يمكنك إرشاد الحزم لإنشاء مسارات مساحة عمل على غرار FUSE أثناء عمليات النشر باستخدام تدوين مثل/Workspace/${bundle.file_path}/<filename>
.
مقارنات الميزات
قبل الترحيل، لاحظ كيفية تنفيذ الميزات التالية ل dbx
Databricks Labs في Databricks Asset Bundles.
القوالب والمشاريع
dbx
توفير الدعم ل Templating Jinja. يمكنك تضمين قوالب Jinja في تكوين النشر وتمرير متغيرات البيئة إما مضمنة أو من خلال ملف متغيرات. على الرغم من عدم الموصى به، dbx
يوفر أيضا دعما تجريبيا لوظائف المستخدم المخصصة.
توفر الحزم الدعم لقوالب Go لإعادة استخدام التكوين. يمكن للمستخدمين إنشاء مجموعات استنادا إلى قوالب تم إنشاؤها مسبقا. هناك تماثل كامل تقريبا ل templating، باستثناء وظائف المستخدم المخصصة.
بناء الإدارة
dbx
يوفر دعم البناء من خلال pip wheel
والشعر وFlit. يمكن للمستخدمين تحديد خيار الإنشاء في build
قسم من ملف المشروع deployment.yml
.
تمكن الحزم المستخدمين من إنشاء ملفات عجلة Python ونشرها وتشغيلها. يمكن للمستخدمين الاستفادة من الإدخال المضمن في whl
ملف المجموعة databricks.yml
.
مزامنة التعليمات البرمجية ونشرها وتشغيلها
dbx
تمكين تحميل التعليمات البرمجية بشكل منفصل عن إنشاء موارد مساحة العمل مثل وظائف Azure Databricks.
تقوم الحزم دائما بتحميل التعليمات البرمجية وإنشاء موارد مساحة العمل أو تحديثها في نفس الوقت. وهذا يبسط عمليات النشر ويتجنب حظر الشروط للوظائف قيد التقدم بالفعل.
ترحيل مشروع dbx إلى مجموعة
بعد ملاحظة القيود السابقة ومقارنات الميزات بين dbx
Databricks Labs وDatabricks Asset Bundles، فأنت جاهز للترحيل من dbx
إلى الحزم.
توصي Databricks بالاحتفاظ بمشروعك dbx
في المجلد الأصلي لبدء dbx
ترحيل مشروعك وأن يكون لديك مجلد منفصل وفارغ تنسخ محتويات المشروع الأصلي dbx
فيه. سيكون هذا المجلد المنفصل هو مجموعتك الجديدة. قد تواجه مشكلات غير متوقعة إذا بدأت في تحويل مشروعك dbx
في مجلده الأصلي إلى مجموعة ثم ارتكبت بعض الأخطاء أو تريد البدء من جديد من البداية،
الخطوة 1: تثبيت Databricks CLI وإعداده
تتوفر حزم أصول Databricks بشكل عام في Databricks CLI الإصدار 0.218.0 وما فوق. إذا قمت بالفعل بتثبيت وإعداد Databricks CLI الإصدار 0.218.0 أو أعلى، فانتقل إلى الخطوة 2.
إشعار
الحزم غير متوافقة مع إصدارات Databricks CLI 0.18 والإصدارات أدناه.
- تثبيت أو تحديث إلى Databricks CLI الإصدار 0.218.0 أو أعلى. راجع تثبيت Databricks CLI أو تحديثه.
- قم بإعداد Databricks CLI للمصادقة مع مساحات عمل Azure Databricks المستهدفة، على سبيل المثال باستخدام مصادقة رمز الوصول الشخصي Azure Databricks. بالنسبة إلى أنواع مصادقة Azure Databricks الأخرى، راجع المصادقة ل Databricks CLI.
الخطوة 2: إنشاء ملف تكوين المجموعة
إذا كنت تستخدم IDE مثل Visual Studio Code أو PyCharm Professional أو IntelliJ IDEA Ultimate الذي يوفر الدعم لملفات YAML وملفات مخطط JSON، يمكنك استخدام IDE الخاص بك ليس فقط لإنشاء ملف تكوين المجموعة ولكن للتحقق من بناء جملة الملف وتنسيقه وتوفير تلميحات إكمال التعليمات البرمجية، كما يلي.
تعليمة Visual Studio برمجية
أضف دعم خادم لغة YAML إلى Visual Studio Code، على سبيل المثال عن طريق تثبيت ملحق YAML من Visual Studio Code Marketplace.
إنشاء ملف مخطط JSON لتكوين مجموعة أصول Databricks باستخدام Databricks CLI لتشغيل
bundle schema
الأمر وإعادة توجيه الإخراج إلى ملف JSON. على سبيل المثال، قم بإنشاء ملف باسمbundle_config_schema.json
داخل الدليل الحالي، كما يلي:databricks bundle schema > bundle_config_schema.json
استخدم Visual Studio Code لإنشاء ملف تكوين مجموعة أو فتحه داخل الدليل الحالي. حسب الاصطلاح، يسمى
databricks.yml
هذا الملف .أضف التعليق التالي إلى بداية ملف تكوين المجموعة:
# yaml-language-server: $schema=bundle_config_schema.json
إشعار
في التعليق السابق، إذا كان ملف مخطط JSON لتكوين Databricks Asset Bundle في مسار مختلف، فاستبدل
bundle_config_schema.json
بالمسار الكامل لملف المخطط الخاص بك.استخدم ميزات خادم لغة YAML التي أضفتها سابقا. لمزيد من المعلومات، راجع وثائق خادم لغة YAML.
PyCharm Professional
إنشاء ملف مخطط JSON لتكوين مجموعة أصول Databricks باستخدام Databricks CLI لتشغيل
bundle schema
الأمر وإعادة توجيه الإخراج إلى ملف JSON. على سبيل المثال، قم بإنشاء ملف باسمbundle_config_schema.json
داخل الدليل الحالي، كما يلي:databricks bundle schema > bundle_config_schema.json
قم بتكوين PyCharm للتعرف على ملف مخطط JSON لتكوين المجموعة، ثم أكمل تعيين مخطط JSON، باتباع الإرشادات الواردة في تكوين مخطط JSON مخصص.
استخدم PyCharm لإنشاء ملف تكوين مجموعة أو فتحه. حسب الاصطلاح، يسمى
databricks.yml
هذا الملف . أثناء الكتابة، يتحقق PyCharm من بناء جملة مخطط JSON وتنسيقه ويوفر تلميحات إكمال التعليمات البرمجية.
IntelliJ IDEA Ultimate
إنشاء ملف مخطط JSON لتكوين مجموعة أصول Databricks باستخدام Databricks CLI لتشغيل
bundle schema
الأمر وإعادة توجيه الإخراج إلى ملف JSON. على سبيل المثال، قم بإنشاء ملف باسمbundle_config_schema.json
داخل الدليل الحالي، كما يلي:databricks bundle schema > bundle_config_schema.json
قم بتكوين IntelliJ IDEA للتعرف على ملف مخطط JSON لتكوين المجموعة، ثم أكمل تعيين مخطط JSON، باتباع الإرشادات الواردة في تكوين مخطط JSON مخصص.
استخدم IntelliJ IDEA لإنشاء ملف تكوين مجموعة أو فتحه. حسب الاصطلاح، يسمى
databricks.yml
هذا الملف . أثناء الكتابة، يتحقق IntelliJ IDEA من بناء جملة مخطط JSON وتنسيقه ويوفر تلميحات إكمال التعليمات البرمجية.
الخطوة 3: تحويل إعدادات مشروع dbx إلى databricks.yml
قم بتحويل الإعدادات الموجودة في dbx
ملف المشروع .dbx/project.json
إلى الإعدادات المكافئة في ملف الحزمة databricks.yml
. للحصول على التفاصيل، راجع تحويل إعدادات مشروع dbx إلى databricks.yml.
الخطوة 4: تحويل إعدادات نشر dbx إلى databricks.yml
قم بتحويل الإعدادات الموجودة في dbx
مجلد المشروع conf
إلى الإعدادات المكافئة في ملف الحزمة databricks.yml
. للحصول على التفاصيل، راجع تحويل إعدادات نشر dbx إلى databricks.yml.
الخطوة 5: التحقق من صحة المجموعة
قبل نشر البيانات الاصطناعية أو تشغيل مهمة Azure Databricks أو مسار Delta Live Tables أو مسار MLOps، يجب التأكد من أن ملف تكوين الحزمة الخاص بك صحيح من الناحية التركيبية. للقيام بذلك، قم بتشغيل bundle validate
الأمر من جذر الحزمة:
databricks bundle validate
للحصول على معلومات حول bundle validate
، راجع التحقق من صحة مجموعة.
الخطوة 6: نشر الحزمة
لنشر أي بيانات اصطناعية محلية محددة إلى مساحة العمل البعيدة bundle deploy
، قم بتشغيل الأمر من جذر المجموعة. إذا لم يتم تحديد خيارات الأوامر، يتم استخدام الهدف الافتراضي المعلن في ملف تكوين الحزمة:
databricks bundle deploy
لنشر البيانات الاصطناعية ضمن سياق هدف معين، حدد -t
الخيار (أو --target
) جنبا إلى جنب مع اسم الهدف كما هو معلن داخل ملف تكوين المجموعة. على سبيل المثال، بالنسبة إلى هدف تم الإعلان عنه باسم development
:
databricks bundle deploy -t development
للحصول على معلومات حول bundle deploy
، راجع نشر مجموعة.
تلميح
يمكنك ربط المهام والتدفقات المعرفة باحزمة بالوظائف والتدفقات الموجودة في مساحة عمل Azure Databricks للحفاظ على مزامنتها. راجع ربط موارد المجموعة.
الخطوة 7: تشغيل الحزمة
لتشغيل مهمة أو مسار معين، قم بتشغيل bundle run
الأمر من جذر الحزمة. يجب تحديد المهمة أو المسار المعلن داخل ملف تكوين الحزمة. -t
إذا لم يتم تحديد الخيار، يتم استخدام الهدف الافتراضي كما هو معلن داخل ملف تكوين المجموعة. على سبيل المثال، لتشغيل مهمة مسماة hello_job
ضمن سياق الهدف الافتراضي:
databricks bundle run hello_job
لتشغيل مهمة مسماة hello_job
ضمن سياق هدف تم الإعلان عنه بالاسم development
:
databricks bundle run -t development hello_job
للحصول على معلومات حول bundle run
، راجع تشغيل مهمة أو مسار.
(اختياري) الخطوة 8: تكوين الحزمة ل CI/CD باستخدام GitHub
إذا كنت تستخدم GitHub ل CI/CD، يمكنك استخدام إجراءات GitHub لتشغيل databricks bundle deploy
الأمرين و databricks bundle run
تلقائيا، استنادا إلى أحداث سير عمل GitHub المحددة ومعايير أخرى. راجع تشغيل سير عمل CI/CD باستخدام مجموعة أصول Databricks وإجراءات GitHub.
تحويل إعدادات مشروع dbx إلى databricks.yml
بالنسبة إلى dbx
، تكون إعدادات المشروع بشكل افتراضي في ملف مسمى project.json
في مجلد المشروع .dbx
. راجع مرجع ملف المشروع.
بالنسبة إلى الحزم، تكون تكوينات الحزمة بشكل افتراضي في ملف يسمى databricks.yml
داخل المجلد الجذر للحزمة. راجع تكوين مجموعة أصول Databricks.
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
}
الملف المقابل databricks.yml
كما يلي:
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.
الكائنات التالية في الملف السابق conf/project.json
لهذا المثال غير معتمدة في databricks.yml
الملفات وليس لها حلول بديلة:
inplace_jinja_support
storage_type
الكائنات الإضافية المسموح بها التالية في conf/project.json
الملفات غير معتمدة في databricks.yml
الملفات وليس لها حلول بديلة:
enable-context-based-upload-for-execute
enable-failsafe-cluster-reuse-with-assets
تحويل إعدادات نشر dbx إلى databricks.yml
بالنسبة إلى dbx
، تكون إعدادات النشر بشكل افتراضي في ملف داخل مجلد المشروع conf
. راجع مرجع ملف النشر. يحتوي ملف إعدادات النشر بشكل افتراضي على أحد أسماء الملفات التالية:
deployment.yml
deployment.yaml
deployment.json
deployment.yml.j2
deployment.yaml.j2
deployment.json.j2
بالنسبة إلى الحزم، تكون إعدادات النشر بشكل افتراضي في ملف مسمى databricks.yml
داخل المجلد الجذر للحزمة. راجع تكوين مجموعة أصول Databricks.
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"
الملف المقابل databricks.yml
كما يلي:
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
الكائن التالي في الملف السابق conf/deployment.yml
لهذا المثال غير معتمد في databricks.yml
الملفات وليس لديه حلول بديلة:
build
(على الرغم من الاطلاع على تطوير ملف عجلة Python باستخدام Databricks Asset Bundles)
الكائنات والوظائف الإضافية المسموح بها التالية في conf/deployment.yml
الملفات غير معتمدة في databricks.yml
الملفات وليس لها حلول بديلة ما لم يذكر خلاف ذلك:
access_control_list
custom
(استخدم نقاط ارتساء YAML القياسية بدلا من ذلك)deployment_config
- تنسيق وظائف Azure Databricks 2.0 (استخدم تنسيق Jobs 2.1 بدلا من ذلك)
dbx
ميزات Jinja- الخصائص المستندة إلى الاسم