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

Power BI / متقدم: الأداء والتسليم المحكوم / الدرس 17

التحديث التزايدي وعقود التقسيم

حدد نوافذ زمنية بلا تداخل واحتفاظ التاريخ وسلوك التغييرات المتأخرة قبل الاعتماد على سياسة تحديث تزايدي.

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

أهداف الدرس

  • شرح افتراضات وسيطي RangeStart وRangeEnd.
  • التحقق من الحدود الشاملة والمستثناة ببيانات صغيرة.
  • فصل تعريف السياسة عن معالجة تقسيمات الخدمة الفعلية.

حدد نافذتي الحفظ والتحديث

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

رشح بوسائط دقيقة

يستخدم الإعداد الشائع وسيطي Date/Time حساسي حالة الأحرف باسم RangeStart وRangeEnd، ويرشح عمود التاريخ والوقت المقصود. يوضح M الأول محليا بداية شاملة ونهاية مستثناة. ينتمي صف 1 يناير فقط إلى النافذة ذات اليوم الواحد. في السياسة الفعلية توفر الخدمة نطاقات التقسيم؛ ولا تثبت قيم المثال الثابتة تشغيل أتمتة التقسيم. طابق نوع العمود والوسيط واحفظ عرف المنطقة الزمنية. قد يكرر شمول الطرفين صف الحد بين نافذتين متجاورتين، وقد يفقده استثناء الطرفين. ينبغي أن يكون العرف جزءا موثقا من العقد.

powerquery تعبير نافذة نصف مفتوحة غير منفذ
let
    RangeStart = #datetime(2026, 1, 1, 0, 0, 0),
    RangeEnd = #datetime(2026, 1, 2, 0, 0, 0),
    Source = #table(type table [When = datetime, Amount = number], {{#datetime(2026, 1, 1, 0, 0, 0), 40}, {#datetime(2026, 1, 2, 0, 0, 0), 30}}),
    Window = Table.SelectRows(Source, each [When] >= RangeStart and [When] < RangeEnd)
in
    Window

يضم المخرج المقصود1 يناير/40 فقط. توضح الروابط المحلية الحد ولا تنشئ وسائط نموذج أو تقسيمات خدمة.

تحقق من المصدر والمعالجة الأولى

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

اختبر النوافذ المتجاورة

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

python مرجع نوافذ متجاورة افتراضي
from datetime import datetime
rows = [datetime(2026, 1, 1), datetime(2026, 1, 2)]
a, b, c = datetime(2026, 1, 1), datetime(2026, 1, 2), datetime(2026, 1, 3)
first = [row for row in rows if a <= row < b]
second = [row for row in rows if b <= row < c]
print(len(first), len(second))
print(len(set(first) & set(second)))
الناتج المتوقع
1 1
0

لكل نافذة صف والتقاطع صفر، دون الوصول لمصدر أو تقسيم أو تحديث.

سجل السياسة وحدودها

سجل أنواع الوسائط والعمود المرشح وعرف الحدود ونافذتي الاحتفاظ والتحديث وسياسة التصحيح ودليل الطي ونتائج معالجة الخدمة. احفظ نسخ الاسترجاع وخطط التوافق قبل استبدال نموذج منشور، لأن إعادة النشر قد تؤثر في التقسيمات المحتفظ بها وتوقعات المستهلكين. لا ينفذ المسار نشرا أو تحديثا ولا يقيس سعة. مقطع M غير قابل للتشغيل، ويفحص Python عضوية النافذة فقط. يحدد التسليم المفيد التغييرات التاريخية التي تحتاج ملئا صريحا ومالك العملية، ولا يدعي أن التزايدي يكتشف ويصلح كل تصحيح أو حذف قديم تلقائيا.

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

شمول تقسيمين متجاورين وقت الحد المشترك

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

عدم ظهور تصحيح قديم بعد تحديث النافذة الحديثة

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

اعتبار أسماء الوسائط دليلا على تصفية المصدر

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

اختبر فهمك

1. لماذا تستخدم نافذة <end لا <=end إذا بدأت التالية في اللحظة نفسها؟

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

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

2. هل يضمن تحديث أحدث شهر تصحيح معاملة العام الماضي؟

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

لا. قد يبقى الصف القديم داخل تقسيم مؤرشف خارج نطاق التحديث. عرف إجراء ملء تاريخي أو تصحيح مدعوما وتحقق من أثره على مجاميع التاريخ المحتفظ به كله. تأتي كفاءة السياسة من تقييد العمل، لذلك تحتاج معالجة التغيرات القديمة عقدا مكملا صريحا. لا يمكن توقع إصلاح سجل لم يعد يدخل في النطاق المعاد تحميله من دون إجراء يغطيه.

أهم ما تعلمته

  • تحتاج السياسة نوافذ بلا تداخل ومعالجة صريحة للتغير التاريخي.
  • منطق الوسائط المحلي ومعالجة الخدمة الفعلية ادعاءا دليل مختلفان.

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