قوالب مصدر البيانات: الصورة الكاملة
Data Source Templates The Complete Picture
شرح شامل لكيفية تكامل جميع مكونات قالب مصدر البيانات معًا، من الإعداد الأولي وحتى مراقبة جودة البيانات المستمرة.
نظرة عامة
تناولت المقالات السابقة في هذا القسم كل مكوّن من مكونات قالب مصدر البيانات بالتفصيل. تتراجع هذه المقالة خطوة إلى الوراء لتُظهر كيف تعمل كل هذه المكونات معًا — من لحظة إعداد القالب وحتى وصول المستخدمين إلى تشغيل الاختبارات وعرض نتائج التنميط مقابل مصادر البيانات الحية.
إذا لم تقرأ المقالات الأخرى بعد، توفر هذه المقالة خريطة مفيدة للموضوع. وإذا قرأتها بالفعل، فهذه هي النقطة التي تترابط فيها كل الأجزاء.
دورة حياة مصدر البيانات
يُمكّن قالب مصدر البيانات دورة حياة تنتقل من إعداد المنصة وصولًا إلى مراقبة جودة البيانات المستمرة:
┌─────────────────────┐
│ Data Source Template │
│ (Platform Blueprint) │
└──────────┬──────────┘
│ يحدد كيفية العمل مع هذه المنصة
▼
┌─────────────────────┐
│ Connection │
│ (Specific Instance) │
└──────────┬──────────┘
│ يتصل بقاعدة بيانات/واجهة API/نظام ملفات محدد
▼
┌─────────────────────┐
│ Data Source │
│ (Validatar Object) │
└──────────┬──────────┘
│ يستخدم سكربتات وتعريفات القالب
▼
┌─────────────────────┐
│ Metadata Ingestion │
│ (اكتشاف المخطط) │
└──────────┬──────────┘
│ يملأ كتالوج البيانات
▼
┌─────────────────────┐
│ Data Profiling │
│ (التحليل الإحصائي)│
└──────────┬──────────┘
│ يقيس خصائص البيانات
▼
┌─────────────────────────────────────────┐
│ Test Generation & Execution │
│ (التوصيات، القوالب، الـ Macros) │
└──────────┬──────────────────────────────┘
│ يتحقق من جودة البيانات
▼
┌─────────────────────┐
│ Trust Scores & │
│ Monitoring │
└─────────────────────┘تعتمد كل مرحلة على المرحلة التي تسبقها، وتساهم مكونات القالب في كل خطوة.
كيف يساهم كل مكوّن
أنواع البيانات ← تصنيف صحيح للبيانات الوصفية
عند اكتشاف الأعمدة أثناء استيعاب البيانات الوصفية، تترجم تخطيطات أنواع البيانات الأنواع الخاصة بالمنصة إلى نظام الأنواع الداخلي في Validatar. يحدد هذا التصنيف:
- أي مقاييس تنميط تنطبق على كل عمود (تنميطات رقمية للأعمدة الرقمية، تنميطات نصية للأعمدة النصية)
- ما هي توصيات الاختبار ذات الصلة
- كيفية ظهور الأعمدة في مستكشف البيانات
إذا كانت أنواع البيانات خاطئة: تُصنَّف الأعمدة بشكل غير صحيح، ويتخطى التنميط المقاييس المناسبة أو يشغّل مقاييس غير مناسبة، وتخطئ توصيات الاختبار الهدف.
سكربتات استيعاب البيانات الوصفية ← ملء الكتالوج
تكتشف سكربتات الاستيعاب (SQL أو Python) بنية كل مصدر بيانات وتملأ كتالوج بيانات Validatar. هذا الكتالوج هو الأساس لكل ما يليه:
- تحتاج مجموعات التنميط إلى معرفة الجداول والأعمدة الموجودة قبل أن تتمكن من تنميطها
- تحلل توصيات الاختبار الكتالوج لاقتراح اختبارات ذات صلة
- تستخدم اختبارات القالب البيانات الوصفية للعثور على بنى مطابقة وتوليد اختبارات فرعية
- تُملأ معاملات الـ macros (القوائم المنسدلة Schema، Table، Column) من الكتالوج
إذا كان الاستيعاب خاطئًا: يصبح الكتالوج ناقصًا أو غير دقيق، ويفوّت التنميط الكائنات، وتصبح توصيات الاختبار غير ذات صلة، وتُظهر القوائم المنسدلة للـ macros خيارات غير صحيحة.
تعريفات التنميط ← مقاييس جودة البيانات
يحدد إعداد التنميط (تعريفات SQL أو سكربتات Python) المقاييس المتاحة لجودة البيانات. تختار مجموعات التنميط على كل مصدر بيانات المقاييس التي تُشغَّل ووتيرة تشغيلها.
تخدم نتائج التنميط أغراضًا متعددة:
- مستكشف البيانات — يتصفح المستخدمون قيم التنميط الحالية والتاريخية لفهم بياناتهم
- درجات الثقة (Trust scores) — تغذي مقاييس التنميط نظام تسجيل الجودة
- مجموعات بيانات الاختبار — يمكن للاختبارات استخدام نتائج التنميط كحدود ديناميكية أو خطوط أساس للمقارنة
- كشف الحالات الشاذة — تساعد الاتجاهات التاريخية للتنميط في تحديد التغييرات غير المتوقعة
إذا كان التنميط سيئ الإعداد: تفتقد المقاييس الأساسية، وتصبح درجات الثقة ناقصة، ويفتقر المستخدمون إلى الأساس الإحصائي لاتخاذ قرارات جودة البيانات.
Macros ← أنماط اختبار قابلة لإعادة الاستخدام
تسدّ الـ macros الفجوة بين المعرفة الخاصة بالمنصة على مستوى القالب وإنشاء الاختبارات اليومي. فهي تُرمّز أنماط SQL كمقاطع مُعلمنة (parameterized) مع قوائم منسدلة مرتبطة بالبيانات الوصفية، مما يمكّن المستخدمين من إنشاء اختبارات فعّالة دون كتابة SQL من الصفر.
تعتمد الـ macros على استيعاب البيانات الوصفية لملء القوائم المنسدلة لمعاملاتها. الـ macro التي تحتوي على معاملات Schema وTable وColumn لا تفيد إلا بقدر اكتمال كتالوج البيانات الوصفية.
إذا كانت الـ macros سيئة التصميم: يلجأ المستخدمون لكتابة SQL مخصص، مما يفقدهم فوائد الاتساق وإعادة الاستخدام. ويرتفع حاجز إنشاء الاختبارات.
المعاملات وسكربتات التنفيذ ← إعداد الجلسة
توفّر المعاملات الافتراضية (Default parameters) لقوالب Python الإعدادات التي تحتاجها للاتصال بالأنظمة الخارجية. تضمن سكربتات التنفيذ أن جلسات قاعدة البيانات في الحالة الصحيحة قبل تشغيل أي استعلام.
هذه هي "البنية التحتية الخفية" التي تجعل كل شيء آخر يعمل. تستهلكها سكربتات الاستيعاب، والتنميط، وتنفيذ الـ macros.
إذا كانت المعاملات مفقودة أو سكربتات التنفيذ خاطئة: يفشل الاستيعاب في الاتصال، وتفشل استعلامات التنميط بأخطاء، وينتج تنفيذ الاختبار نتائج غير متوقعة.
قالب SQL مقابل قالب Python: جنبًا إلى جنب
| المكوّن | قالب SQL | قالب Python |
|---|---|---|
| General | متطابق: الاسم، الإصدار، الفئة، الفواصل | متطابق (الفواصل أقل أهمية) |
| Data Types | يخطط أنواع SQL إلى أنواع Validatar | يخطط أنواع مُرجَعة من السكربت إلى أنواع Validatar |
| Parameters | نادرًا ما تُستخدم (سلسلة الاتصال تتولى الإعداد) | أساسية — مفاتيح API، مسارات الملفات، معلومات الاتصال |
| Execution Scripts | SQL لإعداد الجلسة (عبارات SET، أوامر USE) | أقل شيوعًا — تدير السكربتات إعدادها الخاص |
| Metadata Ingestion | ثلاثة سكربتات SQL (المخطط، الجدول، العمود) | سكربت Python واحد يُعيد حتى 3 DataFrames |
| Profiling | تعريفات تنميط فردية بتعبيرات SQL | سكربتات تنميط تُعيد DataFrames للمقاييس |
| Macros | مقاطع SQL بمعاملات مرتبطة بالبيانات الوصفية | متطابقة — تعمل الـ macros بنفس الطريقة في كلا النوعين |
الفكرة الأساسية: الـ macros والإعداد العام (General) متطابقان بغض النظر عن نوع القالب. الاختلافات تكمن في كيفية اتصال القالب بالبيانات (المعاملات مقابل سلاسل الاتصال)، واكتشاف البيانات الوصفية (SQL مقابل Python)، وحساب التنميط (تعبيرات SQL مقابل سكربتات Python).
سيناريوهات شائعة
إعداد قالب Snowflake
Snowflake هو قالب SQL مع بعض الاعتبارات الخاصة بالمنصة:
- 1General — الفئة: Database. الفواصل: " / ". نوع الاتصال: Snowflake
- 2Data Types — تخطيط أنواع Snowflake بما فيها VARIANT وOBJECT وARRAY ومتغيرات NUMBER
- 3Execution Scripts — استخدم سكربت ما قبل التنفيذ لضبط المستودع (warehouse) والدور (role) ومعاملات الجلسة
- 4Metadata Ingestion — استعلم INFORMATION_SCHEMA.SCHEMATA وINFORMATION_SCHEMA.TABLES وINFORMATION_SCHEMA.COLUMNS، مع استبعاد مخطط INFORMATION_SCHEMA
- 5Profiling — تعمل تعريفات التنميط القياسية مع SQL الخاص بـ Snowflake. يمكن للدوال الخاصة بالمنصة مثل APPROX_PERCENTILE تحسين الأداء للجداول الكبيرة
- 6Macros — macros SQL قياسية. استخدم صياغة خاصة بـ Snowflake عند الحاجة (مثل FLATTEN للبيانات شبه المهيكلة)
USE WAREHOUSE VALIDATAR_WH;
USE ROLE VALIDATAR_ROLE;
ALTER SESSION SET TIMEZONE = 'UTC';إنشاء قالب Python لمصدر بيانات API
بالنسبة لواجهة REST API موثّقة بـ Swagger:
- 1General — الفئة: Script. نوع الاتصال: Python Script
- 2Parameters — عرّف api_base_url (String)، وapi_key (Secret)، وpage_size (Integer)، وenvironment (Dropdown: prod/staging/dev)
- 3Metadata Ingestion — سكربت Python يقرأ مواصفة Swagger لاكتشاف نقاط النهاية (المخططات)، والموارد (الجداول)، والحقول (الأعمدة)
- 4Profiling — سكربت Python يأخذ عينات من كل نقطة نهاية ويحسب عدد السجلات، وعدد القيم الفارغة، وعدد القيم المميزة
- 5Data Types — تخطيط أنواع JSON (string، integer، number، boolean، array، object) إلى أنواع Validatar
- 6Macros — قد تكون محدودة إذا لم تدعم الواجهة الاستعلامات المخصصة. فكّر في macros تُنشئ معاملات تصفية للـ API
تخصيص قالب موجود
عندما يعمل القالب المدمج لمعظم الأغراض ولكنه يحتاج إلى تعديلات:
- 1صدّر القالب الحالي كنسخة احتياطية
- 2عدّل المكوّن المحدد الذي يحتاج إلى تعديل: إضافة تخطيطات أنواع بيانات جديدة للأنواع المخصصة، ضبط سكربتات الاستيعاب لتضمين أو استبعاد مخططات معينة، إضافة macros مخصصة لأنماط اختبار خاصة بالمجال، إضافة تعريفات تنميط خاصة بالمنصة
- 3اختبر مع مصدر بيانات واحد قبل نشر التغييرات
- 4فكّر فيما إذا كان يجب أن يكون التخصيص تعديلًا على القالب أو تجاوزًا (override) على مستوى مصدر بيانات فردي
إذا كان التخصيص ينطبق فقط على مصدر بيانات واحد أو عدد قليل منها، استخدم التجاوزات على مستوى مصدر البيانات (في صفحتي Schema Metadata أو Profile Sets) بدلاً من تعديل القالب. تغييرات القالب تؤثر على جميع مصادر البيانات التي تستخدمه.
القالب كبنية تحتية حيّة
قوالب مصدر البيانات ليست إعدادًا يُضبط مرة واحدة ويُنسى. فهي تتطور مع منصة بياناتك:
- قد تُدخل إصدارات جديدة من قواعد البيانات أنواع بيانات جديدة تحتاج إلى تخطيطات
- قد تتطلب تغييرات المخطط تعديلات على سكربتات الاستيعاب
- تصبح أنماط الاختبار الجديدة macros تفيد جميع مستخدمي المنصة
- قد يحسّن ضبط الأداء كفاءة التنميط لقواعد البيانات الكبيرة
- قد تستدعي ميزات المنصة (مثل البيانات شبه المهيكلة في Snowflake أو Unity Catalog في Databricks) تعريفات تنميط أو أنماط macros جديدة
عامل القوالب كبنية تحتية مشتركة. أصدرها، واختبر التغييرات بعناية، وصدّر نسخًا احتياطية قبل تعديل القوالب في بيئة الإنتاج. عندما تطوّر قالبًا يعمل بشكل جيد، فكّر في تصديره لاستخدامه في بيئات أخرى أو نشره في Validatar Marketplace.
مقالات ذات صلة
- What Is a Data Source Template?
- Creating and Managing Data Source Templates
- Data Types
- Default Parameters and Execution Scripts
- Metadata Ingestion Scripts — SQL Templates
- Metadata Ingestion Scripts — Python Templates
- Macros
- Profiling Configuration — SQL Templates
- Profiling Configuration — Python Templates