يمكن أن تؤدي النماذج الدلالية (Semantic Models) المعطلة ومقاييس DAX الخاطئة إلى تدمير تقارير Power BI بصمت قبل أن يلاحظها أحد. تاريخياً، كان ضمان معايير اختبار متسقة يتطلب مراجعات يدوية مملة ونسخ مقاييس DAX بين المشاريع. تغير ذلك في أواخر عام 2025 عندما قدمت شركة Microsoft ميزة الدوال المعرفة من قبل المستخدم (User Defined Functions) في نظام Power BI، مما أتاح للمطورين بناء اختبارات آلية قابلة لإعادة الاستخدام.
من خلال دمج الدوال المخصصة مع مكتبة PQL.Assert مفتوحة المصدر، يمكن لفرق البيانات اكتشاف الصفوف المكررة، والعلاقات المعطلة، وأخطاء سياق التصفية قبل وصولها إلى بيئة الإنتاج. يوضح هذا الدليل كيفية توحيد معايير الاختبار عبر فريقك وأتمتة التنفيذ باستخدام أداة Power Automate أو بيئة Fabric Notebooks.
كيفية تفعيل الدوال المخصصة واستيراد مكتبة PQL.Assert
قبل بناء الاختبارات، يجب عليك تفعيل الدوال المخصصة، والتي لا تزال ميزة تجريبية حالياً، واستيراد مكتبة الاختبار.
- افتح تطبيق Power BI Desktop وتوجه إلى ملف > الخيارات والإعدادات > الخيارات. يتيح لك ذلك الوصول إلى إعدادات التطبيق الأساسية.
- حدد الميزات التجريبية (Preview Features)، وضع علامة في مربع الدوال المعرفة من قبل المستخدم، ثم أعد تشغيل التطبيق. يؤدي هذا إلى تفعيل القدرة على كتابة وحفظ الدوال المخصصة.
- انسخ نص TMDL البرمجي الخاص بمكتبة PQL.Assert من موقع DAXLib. توفر هذه المكتبة مفتوحة المصدر مجموعة شاملة من دوال التحقق، على غرار الطريقة التي تمتلك بها لغة Python مستودع PyPI.
- توجه إلى واجهة TMDL View في نموذجك، وأنشئ علامة تبويب جديدة، والصق النص البرمجي، ثم انقر على تطبيق. يؤدي هذا إلى دمج إطار عمل الاختبار مباشرة داخل نموذجك الدلالي.
بناء اختبارك الآلي الأول
بمجرد استيراد مكتبة PQL.Assert، يمكنك كتابة اختبارات للتحقق من جودة البيانات، مثل التأكد من أن مزودي قواعد بيانات SQL لا يقومون بحقن صفوف مكررة.
- أنشئ علامة تبويب جديدة في واجهة DAX Query View وقم بتسميتها باستخدام اصطلاح
[name].[environment].test(s)(على سبيل المثال،DataQuality.ANY.Tests). يؤدي هذا إلى توحيد عملية اكتشاف الاختبارات عبر بيئات العمل المختلفة. - عرّف الاختبار باستخدام كتلة
DEFINE FUNCTIONواستدعِ إحدى دوال PQL.Assert. يحدد هذا الشرط الدقيق الذي يجب أن تستوفيه البيانات.
DEFINE
FUNCTION DataQuality.ANY.Tests = () =>
PQL.Assert.Col.ShouldBeDistinct("Verify AlignmentID is distinct", 'AlignmentDim'[AlignmentID])
EVALUATE DataQuality.ANY.Tests()
لاختبار عدة أعمدة في وقت واحد، قم بتغليف دوال التحقق داخل دالة UNION:
DEFINE
FUNCTION DataQuality.ANY.Tests = () =>
UNION(
PQL.Assert.Col.ShouldBeDistinct("Verify AlignmentID is distinct", 'AlignmentDim'[AlignmentID]),
PQL.Assert.Col.ShouldBeDistinct("Verify Eye Color is distinct", 'EyeColorDim'[EyeID])
)
EVALUATE DataQuality.ANY.Tests()
انقر على تشغيل لتنفيذ الاختبار. ستُرجع النتائج مخططاً قياسياً يوضح اسم الاختبار، والنتيجة المتوقعة، والنتيجة الفعلية، وحالة النجاح أو الفشل المنطقية. يضمن النقر على "إضافة إلى النموذج" بقاء الاختبار مع مجموعة البيانات للتحقق المستقبلي.
أتمتة الاختبارات باستخدام أداة Power Automate
للمراقبة المستمرة، يمكنك أتمتة تنفيذ الاختبارات في خدمة Power BI باستخدام مسار عمل Power Automate مُعد مسبقاً. يعتمد هذا النهج على دوال الإصدار الأول (V1) ويُعد مثالياً للنماذج الدلالية القياسية.
- نزّل ملف الحل المضغوط من مجلد examples/power-automate. يوفر هذا منطق الأتمتة المُكوّن مسبقاً.
- استورد الحل إلى أداة Power Automate باتباع دليل الاستيراد الخاص بشركة Microsoft. يؤدي هذا إلى دمج مسار العمل في بيئتك.
- عيّن متغيرات البيئة لمعرف مساحة العمل (Workspace GUID) ومعرف النموذج الدلالي (Semantic Model ID) عند المطالبة بذلك. يوجه هذا مسار العمل إلى أصول Power BI الصحيحة.
بمجرد التكوين، يسترد مسار العمل الاختبارات باستخدام دالة PQL.Assert.RetrieveTestsByEnvironment، وينفذها، ويقيّم النتائج. يمكنك توسيع هذا المسار لحفظ النتائج في منصة SharePoint أو إرسال تنبيهات عبر تطبيق Microsoft Teams.
تنفيذ اختبارات أمان مستوى الصف عبر بيئة Fabric Notebooks
لا تدعم طريقة Power Automate اختبار أمان مستوى الصف (RLS). للتحقق من قواعد RLS عبر انتحال شخصية المستخدم، يجب عليك استخدام بيئة Fabric Notebook.
- أضف التعليق التوضيحي
PQLAssert_ImpersonatedUserNameإلى دالة الاختبار الخاصة بك في واجهة TMDL View. يوجه هذا النظام إلى هوية المستخدم التي يجب محاكاتها أثناء الاختبار.
createOrReplace
function 'RLS.ANY.Tests' =
() =>
PQL.Assert.ShouldEqualExactly("West Security Group Should Not See Other Groups",0,COUNTROWS(FILTER('Groups',Groups[Group Name]"West"))+0)
lineageTag: de968091-8b67-454c-bfa9-61fa543cbdad
annotation PQLAssert_ImpersonatedUserName = [email protected]
- نزّل دفتر الملاحظات
RunPQLAssertTests.ipynbمن مجلد examples/fabric-notebook وقم برفعه إلى مساحة العمل الخاصة بك. يعمل هذا كأداة تشغيل اختبارات متعددة لمساحات العمل. - حدّث معرفات مساحات العمل في الخطوة 3 من دفتر الملاحظات. يستهدف هذا البيئات المحددة التي ترغب في فحصها.
WORKSPACE_GUIDS: list[str] = [
"00000000-0000-0000-0000-000000000002" # Replace with your workspace GUID
]
ENVIRONMENT: str = "ANY" # Options: "DEV" | "TEST" | "PROD" | "ANY" | ""
يستخدم دفتر الملاحظات حزمة semantic-link-labs لاكتشاف النماذج، وقراءة التعليقات التوضيحية الخاصة بالانتحال، وتنفيذ الاختبارات كمستخدمين محددين. يضمن هذا أن قواعد الأمان الخاصة بك تعمل تماماً كما هو مقصود في بيئة الإنتاج.
التطور الهندسي لنظام Power BI
يؤدي إدخال الدوال المعرفة من قبل المستخدم إلى تحويل نظام Power BI جذرياً من مجرد طبقة لتصور البيانات إلى بيئة هندسة برمجيات ناضجة. من خلال التعامل مع مقاييس DAX وPower Query كأكواد برمجية تتطلب اختبارات آلية وصارمة، يمكن للمؤسسات أخيراً تطبيق ممارسات DataOps حقيقية. لم يعد الاعتماد على التحقق اليدوي عنق زجاجة ضرورياً.
ومع ذلك، تسلط الفجوة بين طرق الأتمتة الضوء على خيار معماري حاسم لفرق المؤسسات. فبينما توفر أداة Power Automate نقطة دخول سهلة للاختبارات الأساسية، فإن عدم قدرتها على التعامل مع انتحال شخصية أمان مستوى الصف يجعلها غير كافية لعمليات النشر المعقدة. تبرز بيئة Fabric Notebooks كمعيار إلزامي لحوكمة المؤسسات، مما يثبت أن شركة Microsoft تضع منصة Fabric كعمود فقري غير قابل للتفاوض لعمليات البيانات الآمنة والقابلة للتطوير.