محتويات الدورة

dbt / الأساسي: أسس المشروع والنماذج / الدرس 3

تفصيل النموذج وأنواعه وSQL التجاري

حدد معنى الصف وتفسير البيانات قبل تحويل الإعارات إلى تحليلات قابلة لإعادة الاستخدام.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • صرّح بالمفاتيح والوحدات وNULL ومعنى الوقت في النموذج.
  • افصل لغة SQL وسلوك القاعدة عن قوالب dbt.

سمِّ الحقيقة التي يمثلها الصف الواحد

قد يمثل نموذج حقيقة الإعارة دورة إعارة واحدة أوحدثاً أويوماً منها. ينتج كل تفصيل مفاتيح وقياسات مختلفة. قد يحول عد الصفوف دون تحديده تاريخ أحداث إلى عدد إعارات متضخم. يستخدم نموذج الدورة المختار loan_id مفتاحاً مقصوداً ويحفظ وقت الاقتراض والإرجاع. يحتاج القصد فحص المكرر والغائب فعلياً؛ فلا يفرض اسم يبدأ fct_ شيئاً. احفظ القاعدة مع SQL والتوثيق حتى يشير الربط والتحديث والاختبار إلى الحقيقة نفسها.

فسّر الحقول عمداً عند حدود المصدر

يحفظ المقطع الهوية ويشتق حالة مضبوطة من وجود returned_at. يفترض أن NULL تعني عدم الإرجاع وفق العقد، لا فشل التحليل. إذا حُولت أوقات معيبة إلى NULL سابقاً، صُنفت خطأ كإعارات مفتوحة. احفظ نتائج التحليل منفصلة قبل المنطق التجاري. الأنواع والاقتباس والمنطقة وحساب التاريخ تخص القاعدة والمحوّل المختارين. لا تجعل ترجمة dbt تحويلاً محمولاً بين القواعد ولا تثبت قبوله.

jinja مثال تقني توضيحي؛ النتائج المنطقية مستنتجة ولم تُختبر على المحرك.
select
  loan_id, branch_id, borrowed_at, returned_at,
  case when returned_at is null then 'open' else 'returned' end as loan_state
from {{ ref('stg_loans') }}

يفترض عقد وجود وقت متحققاً وصفاً مقصوداً لكل إعارة. ليس مثال لغة SQL عامة اختُبرت على محرك.

قد يضاعف الربط المرجعي الحقيقة المنمذجة

قد يكرر ربط الإعارة بعدة صفوف تاريخ فرع كل إعارة رغم سلامة المعرّفات ظاهرياً. اختر نسخة الفرع المناسبة أوقاعدة الزمن قبل الجمع. ويحفظ الربط الأيسر غير المطابق فقط إذا لم ترفض الشروط اللاحقة NULL المرجع. قرر رفض الفرع الغائب أوحفظه كمجهول أواستبعاده عمداً. هذه قرارات نمذجة لا يقررها dbt. تشرح حافة ref ترتيب البناء، ولا تثبت تفرّد المفتاح أوعدد الربط الصحيح.

جمّع عند تفصيل تقرير معلن

يجمع التقرير صفوف الدورة حسب الفرع ويعد المفتوح شرطياً. يتجاهل COUNT للتعبير غير المطابق NULL، بينما يحدد COUNT(*) مجتمع المدخل. لفرع بثلاث إعارات مقصودة اثنتان مفتوحتان تكون القيم3 و2. يعتمد التوقع على تفصيل الدورة والتحقق السابق. إذا رُبطت أحداث المصدر دون اختزال، فقد يخطئ العددان مع بقاء نسبتهما معقولة. طابق الهويات والمجاميع لا نسبة مريحة وحدها.

jinja مثال تقني توضيحي؛ النتائج المنطقية مستنتجة ولم تُختبر على المحرك.
select branch_id, count(*) as total_loans,
 count(case when loan_state = 'open' then 1 end) as open_loans
from {{ ref('fct_loans') }}
group by branch_id

لمثال فرع ثابت بثلاث دورات واثنتين مفتوحتين، العددان المنطقيان3 و2. لا يُضمن ترتيب العرض دون ORDER BY.

تحتاج صحة النموذج دليل الكمية والهوية

يسمي سجل قبول مفيد نطاق المصدر وفحص المفاتيح والمرفوض واصطلاح الوقت ومطابقة القياسات. اختبر المدخل الخالي والفرع NULL والتاريخ المكرر وتصحيح الإرجاع المتأخر. قد ينجح نموذج خالٍ في اختبارات بلا بيانات، فتظل توقعات المجتمع مستقلة. لا تخفِ الأخطاء بـDISTINCT أوCOALESCE قبل المعنى. لا تنفذ الدورة استعلاماً مترجماً أونموذجاً؛ تتحقق النماذج المحلية من الأعداد ومنطق الربط فقط، لا المحسّن أوالأنواع أوقيود القاعدة.

الأخطاء الشائعة وإصلاحها

يُسمى عدد الصفوف عدد إعارات دون تحديد التفصيل

لماذا يحدث؟
عوملت أحداث أونسخ ربط كدورات مستقلة.
كيف تصلحه؟
أعلن مفتاح الحقيقة وطابق الهويات المساهمة.
كيف تتجنب تكراره؟
راجع التفصيل قبل القياس والربط.

تصبح أوقات الإرجاع المعيبة إعارات مفتوحة

لماذا يحدث؟
دُمج فشل التحليل مع NULL للإرجاع الغائب المشروع.
كيف تصلحه؟
احفظ نتائج التحليل واعزل الوقت المعيب.
كيف تتجنب تكراره؟
اختبر الغائب والمعيب مستقلين.

تخفي DISTINCT عيب مرجع مكرر

لماذا يحدث؟
حل حذف تكرار المخرج محل قاعدة علاقة مبررة.
كيف تصلحه؟
أصلح اختيار نسخة المصدر وتحقق من المفتاح.
كيف تتجنب تكراره؟
احفظ أمثلة تعدد المطابقة في اختبارات النموذج.

اختبر فهمك

1. تحتوي ثلاثة صفوف دورة إعارة اثنتين مفتوحتين. ماذا يعد تقرير الفرع؟

اعرض الحل المشروح

يعرض3 إعارات و2 مفتوحة وفق التفصيل المتحقق. تحقق من الهويات وربط الفرع لا النسبة فقط. إذا مثلت الصفوف أحداثاً، فأعد تصميم النموذج أوالقياس قبل القبول.

2. هل يثبت توليد Jinja الناجح دعم القاعدة لتحويل SQL في النموذج؟

اعرض الحل المشروح

لا. يولد نصاً ضمن سياق المشروع. يحدد المحوّل والقاعدة اللغة والنوع والتنفيذ. استخدم وثائق الهدف واختباراً مستقلاً مصرحاً، ولا تسمِّ فحص قالب محلي اختبار مستودع.

أهم ما تعلمته

  • تفصيل النموذج عقد مشترك للربط والقياسات والاختبارات.
  • لا تلغي قوالب dbt دلالات قاعدة البيانات.

المراجع الرسمية