دليل Validatar

أنواع البيانات (Data Types)

Data Types

شرح تبويب Data Types في قوالب مصادر البيانات، وكيفية ربط أنواع البيانات الخاصة بكل منصة بأنواع Validatar الداخلية وتأثير ذلك على التنميط والتوصيات والكتالوج.

لوحة المتابعة

نظرة عامة

لكل منصة قاعدة بيانات مجموعة أنواع بيانات خاصة بها؛ فـ SQL Server لديه NVARCHAR وBIGINT وDATETIME2، وSnowflake لديه VARIANT وNUMBER(38,0) وTIMESTAMP_NTZ، وPostgreSQL لديه JSONB وSERIAL وTIMESTAMPTZ. تحتاج Validatar إلى فهم هذه الأنواع الخاصة بكل منصة حتى تتمكن من تصنيف الأعمدة بشكل صحيح لأغراض التنميط (profiling) وتوصيات الاختبارات وعرض الكتالوج.

يقوم تبويب Data Types في قالب مصدر البيانات (data source template) بربط كل نوع بيانات خاص بالمحرك بأحد أنواع Validatar الداخلية للبيانات الوصفية (metadata types). عند اكتشاف الأعمدة أثناء استيعاب البيانات الوصفية (metadata ingestion)، تستخدم Validatar هذه الروابط لتعيين تصنيف لكل عمود تفهمه Validatar.

لماذا تُعد ربط أنواع البيانات مهمًا

تؤثر عمليات ربط أنواع البيانات الصحيحة على عدة سلوكيات تالية، منها:

التنميط (Profiling)

التنميطات (data profiles) حساسة لنوع البيانات. ينطبق تنميط distinct_count على جميع الأعمدة، لكن mean وmedian وstandard_deviation لا تنطبق إلا على الأعمدة الرقمية. كما لا ينطبق blank_count وblank_percent إلا على أعمدة النصوص (string). إذا لم يتم ربط عمود VARCHAR بشكل صحيح، فلن تعرف Validatar تقديم تنميطات خاصة بالنصوص لذلك العمود.

شكل 1: التنميط (Profiling)

توصيات الاختبارات (Test Recommendations)

عندما توصي Validatar باختبارات لبياناتك، فإنها تأخذ أنواع البيانات بعين الاعتبار. قد يحصل عمود مصنَّف كنوع تاريخ على توصية "no future dates"، وقد يحصل عمود رقمي على توصية اكتشاف القيم الشاذة (outlier detection). تؤدي عمليات الربط غير الصحيحة إلى توصيات غير مناسبة أو فرص ضائعة.

عرض الكتالوج (Catalog Display)

يعرض كتالوج Validatar أنواع بيانات الأعمدة في مستكشف البيانات (data explorer). تحدد عمليات الربط كيفية تصنيف الأعمدة وتصفيتها وعرضها للمستخدمين أثناء تصفح الكتالوج.

تعبيرات شرط التنميط (Profile Condition Expressions)

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

كيفية عمل عمليات الربط

يربط كل صف في شبكة Data Types اسم نوع بيانات واحد خاص بالمحرك بنوع Validatar الداخلي:

الحقلالوصف
Engine Type Nameاسم نوع البيانات كما هو مُبلَّغ عنه بالضبط من كتالوجات النظام الخاصة بالمنصة (مثل varchar، int، timestamp_ntz)
Validatar Typeالتصنيف الداخلي الذي تخصصه Validatar للأعمدة من هذا النوع

أنواع Validatar الداخلية هي فئات عامة واسعة:

النوع الداخلييشمل
Stringأنواع النصوص: VARCHAR، CHAR، NVARCHAR، TEXT، STRING، إلخ.
Integerأنواع الأعداد الصحيحة: INT، BIGINT، SMALLINT، TINYINT، إلخ.
Decimalأنواع الأعداد الكسرية: DECIMAL، NUMERIC، FLOAT، DOUBLE، REAL، إلخ.
Dateأنواع التاريخ فقط: DATE
DateTimeأنواع التاريخ والوقت: DATETIME، TIMESTAMP، DATETIME2، إلخ.
Timeأنواع الوقت فقط: TIME
Booleanالأنواع المنطقية: BIT، BOOLEAN، BOOL
Binaryالأنواع الثنائية: VARBINARY، BINARY، BLOB، BYTEA، إلخ.
Otherالأنواع التي لا تندرج ضمن الفئات الأخرى: XML، JSON، VARIANT، GEOGRAPHY، إلخ.
ملاحظة

يجب أن يطابق اسم نوع المحرك (engine type name) تمامًا ما تُعيده نصوص استيعاب البيانات الوصفية (metadata ingestion scripts). فإذا كانت نصوص الاستيعاب SQL تعيد varchar (بحروف صغيرة)، فيجب أن يستخدم الربط varchar وليس VARCHAR. تعتمد حساسية حالة الأحرف على منصتك.

إدارة عمليات ربط أنواع البيانات

إضافة ربط

لإضافة ربط نوع بيانات جديد:

  1. 1افتح القالب وانتقل إلى تبويب Data Types
  2. 2انقر على Add لإنشاء صف جديد
  3. 3أدخل اسم نوع المحرك (engine type name) بالضبط كما يظهر في كتالوجات نظام منصتك
  4. 4اختر نوع Validatar الداخلي المناسب من القائمة المنسدلة
  5. 5احفظ (Save)

متى تحتاج إلى إضافة روابط

تحتاج إلى إضافة ربط عندما:

  • تحتوي منصتك على نوع بيانات غير مرتبط بعد (مثل نوع مخصص أو نوع من إصدار قاعدة بيانات أحدث)
  • يعيد استيعاب البيانات الوصفية أعمدة بأنواع غير مرتبطة (ستظهر هذه كغير مصنَّفة unclassified في الكتالوج)
  • تقوم ببناء قالب جديد من الصفر

تعديل عمليات الربط وحذفها

يمكنك تعديل عمليات الربط الموجودة بتغيير تعيين نوع Validatar أو حذف الروابط التي لا تنطبق. توخَّ الحذر عند تعديل عمليات الربط على قالب مستخدَم بالفعل — فتغيير الربط لن يُحدِّث بأثر رجعي الأعمدة التي تم استيعابها مسبقًا. ستحتاج إلى إعادة تشغيل استيعاب البيانات الوصفية على مصادر البيانات المتأثرة لالتقاط التصنيف المحدَّث.

الأنماط الشائعة حسب المنصة

SQL Server

يمتلك SQL Server نظام أنواع كبيرًا. الروابط الرئيسية التي يجب ضبطها بشكل صحيح:

  • nvarchar، varchar، nchar، char، text، ntext ← String
  • int، bigint، smallint، tinyint ← Integer
  • decimal، numeric، float، real، money، smallmoney ← Decimal
  • date ← Date
  • datetime، datetime2، smalldatetime، datetimeoffset ← DateTime
  • time ← Time
  • bit ← Boolean
  • varbinary، binary، image ← Binary
  • xml، uniqueidentifier، sql_variant، geography، geometry ← Other

Snowflake

نظام أنواع Snowflake أبسط لكنه يحتوي على بعض الأنواع الفريدة:

  • VARCHAR، STRING، TEXT، CHAR ← String
  • NUMBER (بدرجة عشرية scale تساوي 0)، INTEGER، BIGINT ← Integer
  • NUMBER (بدرجة عشرية scale أكبر من 0)، FLOAT، DOUBLE، DECIMAL ← Decimal
  • DATE ← Date
  • TIMESTAMP_NTZ، TIMESTAMP_LTZ، TIMESTAMP_TZ ← DateTime
  • TIME ← Time
  • BOOLEAN ← Boolean
  • BINARY، VARBINARY ← Binary
  • VARIANT، OBJECT، ARRAY ← Other
ملاحظة

عند إعداد قالب Snowflake، انتبه لأنواع NUMBER. يستخدم Snowflake النوع NUMBER(38,0) كنوع صحيح افتراضي. يعتمد ما إذا كان هذا يُربط بـ Integer أو Decimal على درجة العشرية (scale) — فـ NUMBER(38,0) هو فعليًا عدد صحيح، بينما NUMBER(10,2) هو عدد عشري (decimal).

PostgreSQL

يمتلك PostgreSQL أسماء مستعارة (aliases) عديدة لنفس الأنواع الأساسية:

  • varchar، character varying، text، char، character ← String
  • integer، int4، bigint، int8، smallint، int2، serial، bigserial ← Integer
  • numeric، decimal، real، float4، double precision، float8 ← Decimal
  • date ← Date
  • timestamp، timestamp without time zone، timestamp with time zone، timestamptz ← DateTime
  • time، time without time zone، time with time zone ← Time
  • boolean، bool ← Boolean
  • bytea ← Binary
  • json، jsonb، xml، uuid، inet، cidr، macaddr ← Other

كيف يندرج هذا ضمن الصورة الأكبر

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

للاطلاع على الصورة الكاملة لكيفية عمل أنواع البيانات جنبًا إلى جنب مع الاستيعاب والتنميط والماكرو (macros)، راجع مقالة Data Source Templates: The Complete Picture.