اقرأ باللغة الإنجليزية

مشاركة عبر


مهمة dbt للوظائف

استخدم مهمة dbt لتكوين وتشغيل مشاريع dbt على Azure Databricks.

هام

عند تشغيل مهام dbt، يقوم Databricks بإدخال DBT_ACCESS_TOKEN الأساسي الذي تم تكوينه في حقل Run As .

تكوين مهمة dbt

أضف مهمة dbt من علامة التبويب المهام في واجهة مستخدم الوظائف عن طريق القيام بما يلي:

  1. في القائمة المنسدلة النوع ، حدد dbt.

  2. في القائمة المنسدلة Source، يمكنك تحديد Workspace لاستخدام مشروع dbt الموجود في مجلد مساحة عمل Azure Databricks أو موفر Git لمشروع موجود في مستودع Git بعيد.

    • إذا حددت مساحة العمل، فاستخدم متصفح الملفات المتوفر لتحديد دليل Project.

    • إذا حددت موفر Git، فانقر فوق Edit لإدخال معلومات Git لمستودع المشروع. راجع استخدام Git مع الوظائف.

      إذا لم يكن مشروعك في الدليل الجذر للمرجع، فاستخدم حقل دليل Project لتحديد المسار إليه.

  3. مربعات نص أوامر dbt افتراضيا إلى الأوامر dbt deps، dbt seed، وتشغيل dbt. يتم تشغيل الأوامر المتوفرة بترتيب تسلسلي. يمكنك إضافة هذه الحقول أو إزالتها أو تحريرها حسب الضرورة لسير العمل. راجع ما هي أوامر dbt؟.

  4. في مستودع SQL، حدد مستودع SQL لتشغيل SQL الذي تم إنشاؤه بواسطة dbt. تعرض القائمة المنسدلة لمستودع SQL مستودعات SQL بلا خادم ومحترفة فقط.

  5. حدد كتالوج Warehouse. إذا تم إلغاء الإعداد، يتم استخدام مساحة العمل الافتراضية.

  6. حدد مخطط مستودع. بشكل افتراضي، يتم استخدام المخطط default .

  7. اختر حساب dbt CLI لتشغيل dbt Core. توصي Databricks باستخدام حساب بلا خادم للوظائف أو حساب الوظائف الكلاسيكية المكونة مع مجموعة عقدة واحدة.

  8. حدد إصدارا dbt-databricks للمهمة.

    إذا كنت تستخدم Serverless الحوسبة، فاستخدم حقل البيئة والمكتبات لتحديد بيئة جديدة أو تحريرها أو إضافتها. راجع تثبيت تبعيات دفتر الملاحظات.

    بالنسبة لكافة تكوينات الحوسبة الأخرى، يتم ملء حقل المكتبات التابعة dbt-databricks>=1.0.0,<2.0.0 بشكل افتراضي. احذف هذا الإعداد و+ إضافة مكتبة PyPi لتثبيت إصدار.

    ملاحظة

    توصي Databricks بتثبيت مهام dbt الخاصة بك إلى إصدار معين من حزمة dbt-databricks لضمان استخدام نفس الإصدار للتطوير وتشغيل الإنتاج. توصي Databricks بالإصدار 1.6.0 أو أحدث من حزمة dbt-databricks.

  9. انقر فوق إنشاء مهمة.

ما هي أوامر dbt؟

يسمح لك حقل أوامر dbt بتحديد الأوامر لتشغيلها باستخدام واجهة سطر الأوامر dbt (CLI). للحصول على تفاصيل كاملة حول dbt CLI، راجع وثائق dbt.

تحقق من وثائق dbt للحصول على الأوامر التي يدعمها الإصدار المحدد من dbt.

تمرير الخيارات إلى أوامر dbt

يتيح لك بناء جملة تحديد عقدة dbt تحديد الموارد لتضمينها أو استبعادها في تشغيل معين. أوامر مثل run وتقبل build العلامات بما في ذلك --select و --exclude. راجع مستندات نظرة عامة على بناء جملة dbt للحصول على وصف كامل.

تتحكم علامات التكوين الإضافية في كيفية تشغيل dbt لمشروعك. راجع عمود خيارات سطر الأوامر في مستندات dbt الرسمية للحصول على قائمة بالعلامات المتوفرة.

تأخذ بعض العلامات وسيطات موضعية. بعض وسيطات العلامات هي سلاسل. راجع وثائق dbt للحصول على أمثلة وتفسيرات.

تمرير المتغيرات إلى أوامر dbt

استخدم العلامة --vars لتمرير القيم الثابتة أو الديناميكية إلى الأوامر في حقول أوامر dbt.

يمكنك تمرير JSON محدد باقتباس واحد إلى --vars. يجب تحديد كافة المفاتيح والقيم في JSON باقتباس مزدوج، كما في المثال التالي:

dbt run --vars '{"volume_path": "/Volumes/path/to/data", "date": "2024/08/16"}'

أمثلة على أوامر dbt ذات المعلمات

يمكنك الرجوع إلى قيم المهام ومعلمات الوظيفة ومعلمات الوظيفة الديناميكية عند العمل مع dbt. يتم استبدال القيم كنص عادي في حقل أوامر dbt قبل تشغيل الأمر. للحصول على معلومات حول تمرير القيم بين المهام أو الرجوع إلى بيانات تعريف الوظائف، راجع تحديد معلمات المهام.

تفترض هذه الأمثلة أنه تم تكوين معلمات المهمة التالية:

اسم المعلمة قيمة المعلمة
volume_path /Volumes/path/to/data
table_name my_table
select_clause --select "tag:nightly"
dbt_refresh --full-refresh

توضح الأمثلة التالية طرقا صالحة للإشارة إلى هذه المعلمات:

dbt run '{"volume_path": "{{job.parameters.volume_path}}"}'
dbt run --select "{{job.parameters.table_name}}"
dbt run {{job.parameters.select_clause}}
dbt run {{job.parameters.dbt_refresh}}
dbt run '{"volume_path": "{{job.parameters.volume_path}}"}' {{job.parameters.dbt_refresh}}

يمكنك أيضا الرجوع إلى المعلمات الديناميكية وقيم المهام، كما في الأمثلة التالية:

dbt run --vars '{"date": "{{job.start_time.iso_date}}"}'
dbt run --vars '{"sales_count": "{{tasks.sales_task.values.sales_count}}"}'