إنشاء مجموعة يدويا
في هذا البرنامج التعليمي، يمكنك إنشاء مجموعة أصول Databricks من البداية. تتكون هذه الحزمة البسيطة من دفتري ملاحظات وتعريف مهمة Azure Databricks لتشغيل دفاتر الملاحظات هذه. ثم تحقق من صحة المهمة ونشرها وتشغيلها في مساحة عمل Azure Databricks. تعمل هذه الخطوات على أتمتة التشغيل السريع بعنوان إنشاء سير العمل الأول باستخدام وظيفة Azure Databricks.
المتطلبات
- Databricks CLI الإصدار 0.218.0 أو أعلى. للتحقق من الإصدار المثبت من Databricks CLI، قم بتشغيل الأمر
databricks -v
. لتثبيت Databricks CLI، راجع تثبيت Databricks CLI أو تحديثه. - تم تكوين المصادقة ل Databricks CLI. راجع المصادقة ل Databricks CLI.
- يجب أن تحتوي مساحة عمل Databricks البعيدة على ملفات مساحة عمل ممكنة. راجع ما هي ملفات مساحة العمل؟.
الخطوة 1: إنشاء المجموعة
تحتوي المجموعة على البيانات الاصطناعية التي تريد نشرها وإعدادات الموارد التي تريد تشغيلها.
- إنشاء أو تحديد دليل فارغ على جهاز التطوير الخاص بك.
- قم بالتبديل إلى الدليل الفارغ في المحطة الطرفية أو افتحه في IDE الخاص بك.
تلميح
يمكنك أيضا استخدام دليل يحتوي على مستودع مستنسخ من موفر Git. يمكنك هذا من إدارة حزمتك باستخدام التحكم في الإصدار الخارجي والتعاون بسهولة أكبر مع المطورين الآخرين ومحترفي تكنولوجيا المعلومات في مشروعك.
إذا اخترت استنساخ مستودع لهذا العرض التوضيحي، توصي Databricks بأن يكون المستودع فارغا أو يحتوي على ملفات أساسية فقط مثل README
و .gitignore
. وإلا، قد تتم مزامنة أي ملفات موجودة مسبقا في المستودع دون داع إلى مساحة عمل Azure Databricks.
الخطوة 2: إضافة دفاتر ملاحظات إلى المشروع
في هذه الخطوة، يمكنك إضافة دفتري ملاحظات إلى مشروعك. يحصل دفتر الملاحظات الأول على قائمة بأسماء الأطفال الأكثر توجها منذ عام 2007 من مصادر البيانات العامة لوزارة الصحة في نيويورك. راجع أسماء الأطفال: الاتجاه حسب الاسم: بداية 2007 على موقع القسم على الويب. ثم يحفظ دفتر الملاحظات الأول هذه البيانات إلى وحدة تخزين كتالوج Azure Databricks Unity المسماة my-volume
في مخطط مسمى default
في كتالوج يسمى main
. يستعلم دفتر الملاحظات الثاني عن البيانات المحفوظة ويعرض العدد المجمع لأسماء الأطفال حسب الاسم الأول والجنس في عام 2014.
من جذر الدليل، قم بإنشاء دفتر الملاحظات الأول، ملف يسمى
retrieve-baby-names.py
.أضف التعليمات البرمجية
retrieve-baby-names.py
التالية إلى الملف:# Databricks notebook source import requests response = requests.get('http://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv') csvfile = response.content.decode('utf-8') dbutils.fs.put("/Volumes/main/default/my-volume/babynames.csv", csvfile, True)
إنشاء دفتر الملاحظات الثاني، ملف باسم
filter-baby-names.py
، في نفس الدليل.أضف التعليمات البرمجية
filter-baby-names.py
التالية إلى الملف:# Databricks notebook source babynames = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/Volumes/main/default/my-volume/babynames.csv") babynames.createOrReplaceTempView("babynames_table") years = spark.sql("select distinct(Year) from babynames_table").toPandas()['Year'].tolist() years.sort() dbutils.widgets.dropdown("year", "2014", [str(x) for x in years]) display(babynames.filter(babynames.Year == dbutils.widgets.get("year")))
الخطوة 3: إضافة ملف مخطط تكوين مجموعة إلى المشروع
إذا كنت تستخدم IDE مثل Visual Studio Code أو PyCharm Professional أو IntelliJ IDEA Ultimate الذي يدعم ملفات YAML وملفات مخطط JSON، يمكنك استخدام IDE الخاص بك ليس فقط لإنشاء ملف مخطط تكوين المجموعة ولكن للتحقق من بناء جملة ملف تكوين حزمة المشروع وتنسيقه. بينما يستند ملف تكوين المجموعة الذي تقوم بإنشائه لاحقا في الخطوة 5 إلى YAML، فإن ملف مخطط تكوين المجموعة في هذه الخطوة يستند إلى JSON.
تعليمة 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
في الخطوة 5، ستضيف التعليق التالي إلى بداية ملف تكوين المجموعة، والذي يربط ملف تكوين المجموعة بملف مخطط JSON المحدد:
# yaml-language-server: $schema=bundle_config_schema.json
إشعار
في التعليق السابق، إذا كان ملف مخطط JSON لتكوين Databricks Asset Bundle في مسار مختلف، فاستبدل
bundle_config_schema.json
بالمسار الكامل لملف المخطط الخاص بك.
PyCharm Professional
إنشاء ملف مخطط JSON لتكوين مجموعة أصول Databricks باستخدام Databricks CLI لتشغيل
bundle schema
الأمر وإعادة توجيه الإخراج إلى ملف JSON. على سبيل المثال، قم بإنشاء ملف باسمbundle_config_schema.json
في الدليل الحالي، كما يلي:databricks bundle schema > bundle_config_schema.json
قم بتكوين PyCharm للتعرف على ملف مخطط JSON لتكوين المجموعة، ثم أكمل تعيين مخطط JSON، باتباع الإرشادات الواردة في تكوين مخطط JSON مخصص.
في الخطوة 5، ستستخدم PyCharm لإنشاء ملف تكوين مجموعة أو فتحه. حسب الاصطلاح، يسمى
databricks.yml
هذا الملف .
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 مخصص.
في الخطوة 5، ستستخدم IntelliJ IDEA لإنشاء ملف تكوين مجموعة أو فتحه. حسب الاصطلاح، يسمى
databricks.yml
هذا الملف .
الخطوة 4: إعداد المصادقة
في هذه الخطوة، يمكنك إعداد المصادقة بين Databricks CLI على جهاز التطوير ومساحة عمل Azure Databricks. تفترض هذه المقالة أنك تريد استخدام مصادقة OAuth من مستخدم إلى جهاز (U2M) وملف تعريف تكوين Azure Databricks المطابق المسمى DEFAULT
للمصادقة.
إشعار
مصادقة U2M مناسبة لتجربة هذه الخطوات في الوقت الفعلي. بالنسبة إلى مهام سير العمل التلقائية بالكامل، توصي Databricks باستخدام مصادقة OAuth من جهاز إلى جهاز (M2M) بدلا من ذلك. راجع إرشادات إعداد مصادقة M2M في المصادقة.
استخدم Databricks CLI لبدء إدارة الرمز المميز OAuth محليا عن طريق تشغيل الأمر التالي لكل مساحة عمل هدف.
في الأمر التالي، استبدل
<workspace-url>
بعنوان URL الخاص ب Azure Databricks لكل مساحة عمل، على سبيل المثالhttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
يطالبك Databricks CLI بحفظ المعلومات التي أدخلتها كملف تعريف تكوين Azure Databricks. اضغط
Enter
لقبول اسم ملف التعريف المقترح، أو أدخل اسم ملف تعريف جديد أو موجود. تتم الكتابة فوق أي ملف تعريف موجود بنفس الاسم بالمعلومات التي أدخلتها. يمكنك استخدام ملفات التعريف لتبديل سياق المصادقة بسرعة عبر مساحات عمل متعددة.للحصول على قائمة بأي ملفات تعريف موجودة، في محطة طرفية منفصلة أو موجه أوامر، استخدم Databricks CLI لتشغيل الأمر
databricks auth profiles
. لعرض الإعدادات الموجودة لملف تعريف معين، قم بتشغيل الأمرdatabricks auth env --profile <profile-name>
.في مستعرض الويب الخاص بك، أكمل الإرشادات التي تظهر على الشاشة لتسجيل الدخول إلى مساحة عمل Azure Databricks.
لعرض قيمة رمز OAuth المميز الحالي لملف التعريف والطوابع الزمنية لانتهاء الصلاحية القادمة للرمز المميز، قم بتشغيل أحد الأوامر التالية:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
إذا كان لديك ملفات تعريف متعددة بنفس
--host
القيمة، فقد تحتاج إلى تحديد--host
الخيارات و-p
معا لمساعدة Databricks CLI في العثور على معلومات الرمز المميز OAuth المتطابقة الصحيحة.
الخطوة 5: إضافة ملف تكوين مجموعة إلى المشروع
في هذه الخطوة، يمكنك تحديد كيفية نشر دفتري الملاحظات وتشغيلهما. لهذا العرض التوضيحي، تريد استخدام مهمة Azure Databricks لتشغيل دفتر الملاحظات الأول ثم دفتر الملاحظات الثاني. نظرا لأن دفتر الملاحظات الأول يحفظ البيانات ويعلم دفتر الملاحظات الثاني عن البيانات المحفوظة، فأنت تريد انتهاء تشغيل دفتر الملاحظات الأول قبل بدء تشغيل دفتر الملاحظات الثاني. يمكنك تصميم هذه الأهداف في ملف تكوين مجموعة في مشروعك.
- من جذر الدليل، قم بإنشاء ملف تكوين الحزمة، ملف يسمى
databricks.yml
. - أضف التعليمات البرمجية
databricks.yml
التالية إلى الملف، مع<workspace-url>
استبدال بعنوان URL لكل مساحة عمل، على سبيل المثالhttps://adb-1234567890123456.7.azuredatabricks.net
. يجب أن يتطابق عنوان URL هذا مع عنوان URL الموجود في ملفك.databrickscfg
:
تلميح
السطر الأول، بدءا من # yaml-language-server
، مطلوب فقط إذا كان IDE يدعمه. راجع الخطوة 3 سابقا للحصول على التفاصيل.
# yaml-language-server: $schema=bundle_config_schema.json
bundle:
name: baby-names
resources:
jobs:
retrieve-filter-baby-names-job:
name: retrieve-filter-baby-names-job
job_clusters:
- job_cluster_key: common-cluster
new_cluster:
spark_version: 12.2.x-scala2.12
node_type_id: Standard_DS3_v2
num_workers: 1
tasks:
- task_key: retrieve-baby-names-task
job_cluster_key: common-cluster
notebook_task:
notebook_path: ./retrieve-baby-names.py
- task_key: filter-baby-names-task
depends_on:
- task_key: retrieve-baby-names-task
job_cluster_key: common-cluster
notebook_task:
notebook_path: ./filter-baby-names.py
targets:
development:
workspace:
host: <workspace-url>
لتخصيص الوظائف، تتوافق التعيينات في إعلان الوظيفة مع حمولة الطلب، المعبر عنها بتنسيق YAML، لعملية إنشاء الوظيفة كما هو موثق في POST /api/2.1/jobs/create في مرجع REST API.
تلميح
يمكنك تحديد الإعدادات لمجموعات الوظائف الجديدة ودمجها وتجاوزها في الحزم باستخدام التقنيات الموضحة في تجاوز إعدادات نظام المجموعة في Databricks Asset Bundles.
الخطوة 6: التحقق من صحة ملف تكوين حزمة المشروع
في هذه الخطوة، يمكنك التحقق مما إذا كان تكوين المجموعة صالحا.
استخدم Databricks CLI لتشغيل
bundle validate
الأمر، كما يلي:databricks bundle validate
إذا تم إرجاع ملخص لتكوين المجموعة، فنجح التحقق من الصحة. إذا تم إرجاع أي أخطاء، قم بإصلاح الأخطاء، ثم كرر هذه الخطوة.
إذا قمت بإجراء أي تغييرات على حزمتك بعد هذه الخطوة، فيجب عليك تكرار هذه الخطوة للتحقق مما إذا كان تكوين الحزمة لا يزال صالحا.
الخطوة 7: نشر المشروع المحلي إلى مساحة العمل البعيدة
في هذه الخطوة، يمكنك نشر دفتري ملاحظات محليين إلى مساحة عمل Azure Databricks البعيدة وإنشاء مهمة Azure Databricks في مساحة العمل الخاصة بك.
استخدم Databricks CLI لتشغيل
bundle deploy
الأمر كما يلي:databricks bundle deploy -t development
تحقق مما إذا كان قد تم نشر دفتري ملاحظات محليين: في الشريط الجانبي لمساحة عمل Azure Databricks، انقر فوق مساحة العمل.
انقر في مجلد Users >>
<your-username>
.bundle > baby-names > development > files. يجب أن يكون دفترا الملاحظات في هذا المجلد.تحقق مما إذا كانت المهمة قد تم إنشاؤها: في الشريط الجانبي لمساحة عمل Azure Databricks، انقر فوق مهام سير العمل.
في علامة التبويب Jobs ، انقر فوق retrieve-filter-baby-names-job.
انقر فوق علامة التبويب المهام. يجب أن تكون هناك مهمتان: استرداد-baby-names-task وتصفية-baby-names-task.
إذا أجريت أي تغييرات على مجموعتك بعد هذه الخطوة، فيجب عليك تكرار الخطوات من 6 إلى 7 للتحقق مما إذا كان تكوين الحزمة لا يزال صالحا ثم إعادة نشر المشروع.
الخطوة 8: تشغيل المشروع المنشور
في هذه الخطوة، يمكنك تشغيل وظيفة Azure Databricks في مساحة العمل الخاصة بك.
استخدم Databricks CLI لتشغيل
bundle run
الأمر، كما يلي:databricks bundle run -t development retrieve-filter-baby-names-job
انسخ قيمة
Run URL
التي تظهر في المحطة الطرفية الخاصة بك والصق هذه القيمة في مستعرض الويب لفتح مساحة عمل Azure Databricks.في مساحة عمل Azure Databricks، بعد اكتمال المهمتين بنجاح وإظهار أشرطة العناوين الخضراء، انقر فوق مهمة filter-baby-names-task لمشاهدة نتائج الاستعلام.
إذا قمت بإجراء أي تغييرات على حزمتك بعد هذه الخطوة، فيجب عليك تكرار الخطوات من 6 إلى 8 للتحقق مما إذا كان تكوين الحزمة لا يزال صالحا، وإعادة نشر المشروع، وتشغيل المشروع المعاد توزيعه.
الخطوة 9: التنظيف
في هذه الخطوة، يمكنك حذف دفتري الملاحظات المنشورين والمهمة من مساحة العمل الخاصة بك.
استخدم Databricks CLI لتشغيل
bundle destroy
الأمر، كما يلي:databricks bundle destroy
تأكيد طلب حذف الوظيفة: عند مطالبتك بتدمير الموارد بشكل دائم، اكتب
y
واضغطEnter
على .تأكيد طلب حذف دفاتر الملاحظات: عند مطالبتك بتدمير المجلد المنشور مسبقا وكافة ملفاته بشكل دائم، اكتب
y
واضغطEnter
على .
يؤدي تشغيل الأمر إلى bundle destroy
حذف المهمة المنشورة والمجلد الذي يحتوي على دفتري الملاحظات المنشورين فقط. لا يحذف هذا الأمر أي تأثيرات جانبية، مثل الملف الذي babynames.csv
أنشأه دفتر الملاحظات الأول. لحذف babybnames.csv
الملف، قم بما يلي:
- في الشريط الجانبي لمساحة عمل Azure Databricks، انقر فوق كتالوج.
- انقر فوق Browse DBFS.
- انقر فوق المجلد FileStore.
- انقر فوق سهم القائمة المنسدلة إلى جانب babynames.csv، ثم انقر فوق حذف.
- إذا كنت تريد أيضا حذف الحزمة من جهاز التطوير الخاص بك، يمكنك الآن حذف الدليل المحلي من الخطوة 1.