DSPL Gen

DSPL Gen هي أداة سطر أوامر تساعد في تحويل جدول بيانات CSV إلى مجموعة بيانات DSPL بسيطة. تقوم الأداة بتحليل الإدخال وينشئ جميع جداول البيانات اللازمة ويضع ملف DSPL XML. والنتيجة هي مجموعة بيانات شبه كاملة "نموذج" يتطلب تحسينًا بسيطًا فقط قبل التحميل التصور.

الافتراض الأساسي وراء DSPL Gen هو أن كل عمود في مع مفهوم DSPL واحد، ويمثل كل صف ملاحظة واحدة لمجموعة من الأبعاد. تعمل الأداة عن طريق وتكرارها من خلال الأعمدة، وإنشاء بيانات التعريف المناسبة لكل العمود / المفهوم (على سبيل المثال، رقم تعريفه ونوعه، سواء كان سمة أو مقياسًا، إلخ) ثم إنشاء كل تعريف المفهوم وتقسيم الجداول.

جارٍ تشغيل DSPL Gen

البنية

ملاحظة: تفترض هذه التوجيهات أن لقد اتبعت بالفعل تعليمات التثبيت الواردة في صفحة أدوات DSPL.

لتشغيل DSPL Gen، انتقِل إلى الوحدة الطرفية أو الطلب في النظام واكتب ما يلي:

python dsplgen.py -o [output path] [path to CSV file] 

حيث يتم استبدال المصطلحات الموضوعة بين قوسين على النحو التالي:

  • [output path]: المسار إلى الدليل الذي تريده وضع ملفات الإخراج الخاصة بك؛ يجب أن يكون هذا الدليل موجودًا من قبل في نظام الملفات لديك.
  • [path to CSV file]: مسار إلى ملف CSV الذي تم إدخاله يمكنك الاطّلاع على أدناه للاطّلاع على المزيد من التفاصيل حول كيفية تنسيق هذا الملف.

المكوِّن -o [output path] اختياري، إذا تم حذفها، وسيتم وضع ملفات الإخراج في الدليل الحالي.

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

وأخيرًا، افتح ملف XML في محرر النصوص الذي تختاره، وأي تغييرات مطلوبة. على الأقل، يجب عليك ملء الأسماء، والأوصاف والقيم الأخرى التي ميّزتها الأداة رمز ** INSERT ... **

مثال بسيط

ولنفترض أن لدينا ملف CSV يقدم العدد الإجمالي للحالات المرض مقسَّمة حسب الشهر والبلد والفئة العمرية. للتبسيط، ولنفترض فقط أنّ هناك قيمتَين لكلّ سمة:

date,country,age_group,disease_cases
01/2000,US,old,102030
01/2000,MX,old,192939
01/2000,US,young,23131
01/2000,MX,young,12311
02/2000,US,old,143135
02/2000,MX,old,203131
02/2000,US,young,22990
02/2000,MX,young,12591

يؤدي تشغيل الأداة على المُدخل أعلاه إلى إنشاء 4 ملفات:

  • dataset.xml: نموذج DSPL XML
  • country_table.csv: قيم country المفهوم
  • age_group_table.csv: قيم مفهوم age_group
  • slice_0_table.csv: جدول لشريحة مجموعة البيانات (متطابقة مع جدول الإدخال، باستثناء الفرز)

وفي هذه الحالة بالتحديد، يكون بإمكان الأداة تخمين جميع قيم وأنواع الأعمدة والتنسيقات. إذًا، كل ما عليك فعله هو التحرك إلى ملف XML وتحرير الأسماء والأوصاف وعناوين URL المختلفة في البيانات الوصفية لمجموعة البيانات.

إضافة تعليقات توضيحية إلى ملف CSV الذي تم إدخاله

الخيارات الأساسية

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

للتعامل مع هذه الحالات، تتيح الأداة إضافة إنشاء DSPL. الخيارات / "التلميحات" في صف رأس ملف CSV. تكون صيغة هذه على النحو التالي:

column1[option1=value1;option2=value2;...],column2[option1=value1;option2=value2;...],column3[...],...

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

تتوافق خدمة DSPL Gen حاليًا مع الخيارات الأساسية التالية:

Option الوصف تلقائي
type نوع بيانات DSPL لهذا العمود؛ يجب أن يكون واحدًا من date، float أو integer أو string التخمين من البيانات
format تنسيق عمود التاريخ هذا؛ كما في DSPL، يجب أن يكون هذا التنسيق مشفرة باستخدام ملف Joda DateTime standard. التخمين من البيانات
slice_role دور هذا العمود في أي شرائح يجب أن يكون إما dimension أو metric dimension إذا كان العمود من النوع date أو string، أو metric
concept المفهوم الأساسي الذي يمثله هذا العمود، على سبيل المثال: geo:country؛ إذا تم توفيره، فسيتم استيراد المفهوم تعريف في ملف XML. لا ينطبق
extends يشير ذلك المصطلح إلى المفهوم الأساسي الذي يوسّعه هذا العمود، على سبيل المثال entity:entity لا ينطبق
parent

المفهوم الرئيسي لهذا العمود. يجب أن يكون هذا العنصر الرئيسي بُعدًا. المفهوم المحدّد داخل مجموعة البيانات (أي غير المستوردة) إذا تم تقديمها، ستُستخدم هذه المعلومات لتحديد تسلسل هرمي لمفهوم ما في مجموعة البيانات الأصلية.

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

لا ينطبق

مواقع البيانات المجمّعة

بالإضافة إلى المعلومات الأساسية، "التلميح" الخيارات الموضحة أعلاه، تتيح خدمة DSPL Gen أيضًا عرض البيانات المجمّعة للشرائح: في جدول واحد. المدخلات، يمكن للأداة إنشاء جداول إضافية تلقائيًا ذات مجموعات فرعية للأبعاد. لذلك، على سبيل المثال، إذا كان جدول الإدخال الخاص بك يتجاوب مع شريحة بها ثلاثة أبعاد ليست زمنية (مثل dimension1, dimension2 وdimensions3) يمكن للأداة لإنشاء بعض الشرائح الإضافية أيضًا: dimension1 فقط، dimension2 فقط، فقط dimension1 و dimension2، إلخ.

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

تبدأ عملية الدمج من خلال تضمين بعض الخيارات الإضافية في عنوان إدخال CSV:

Option الوصف تلقائي
aggregation طريقة التجميع المستخدمة عند دمج قيم متعددة من هذا العمود؛ يجب أن تكون واحدة من AVG أو COUNT أو MAX أو MIN أو SUM فقط مفيد للمقاييس. SUM
rollup إذا كانت القيمة true، فإن مفهوم هذا العمود "مجمَّعة" (أي يتم تجميعها بعيدًا) مفيدة فقط لمفاهيم السمات. خطأ
total_val القيمة في هذا العمود التي تشير إلى الصفوف التي يجب الاحتفاظ بها عند بشكل مجمّع؛ مفيدة فقط لمفاهيم السمات. None

بعد ذلك، تحتسب DSPL Gen البيانات المجمّعة باستخدام الخوارزمية التالية:

  • باستخدام قيم علامات rollup، يتم احتساب جميع القيم الممكنة. مجموعات الأعمدة
  • لكل مجموعة مواد:
    • إذا كانت أيّ من الأعمدة المجمّعة التي تحتوي على مَعلمة total_val معيّنة، ثم قم بتصفية الصفوف حسب هذه القيمة؛ وإلا حدّد جميع الصفوف
    • إفلات الأعمدة المجمّعة
    • تجميع الصفوف حسب قيم أعمدة السمات المتبقية
    • تجميع كل مقياس باستخدام الطريقة المحددة في مَعلمة aggregation
    • إنشاء شريحة وجدول مرتبط للنتيجة

لاحظ أنه إذا كانت هناك قيمة واحدة فقط في كل مجموعة تم تعيين دالة التجميع على SUM (القيمة التلقائية)، ثم ستكون قيم المقاييس في الجدول المصدر والجداول التي تم إنشاؤها متطابقة، أي لن تكون هناك قيم جديدة. يتم إنشاؤها. وبالتالي، فإن استخدام معلَمة total_val وضمان أن هناك "إجمالي" واحد فقط لكل مجموعة من المجموعات الأخرى تسمح لك بتخزين البيانات المحسوبة مسبقًا مباشرةً في المصدر.

تحذير: يبلغ عدد الشرائح التي تم إنشاؤها يساوي عمودَين مضمّنَين. يُعد تطبيق هذا الخيار على قد يؤدي عدد الأعمدة إلى أوقات تشغيل طويلة جدًا و/أو ومجموعات البيانات.

مثال متقدم

لنفترض أن لدينا نفس بيانات الإدخال كما في المثال السابق، ولكن تشمل الآن البيانات المجمّعة على مستوى البلدان:

date,country,age_group,disease_cases
01/2000,US,old,102030
01/2000,MX,old,192939
01/2000,total,old,152012
01/2000,US,young,23131
01/2000,MX,young,12311
01/2000,total,young,241011
02/2000,US,old,143135
02/2000,MX,old,203131
02/2000,total,old,211310
02/2000,US,young,22990
02/2000,MX,young,12591
02/2000,total,young,240131

قد لا يتطابق الإجمالي لكل فئة عمرية مع مجموع قيم البلدان. لأنه، على سبيل المثال، للاختلافات في المنهجية أو التواجد من البلدان الأخرى غير المُدرجة في القائمة

نريد الآن إنشاء مجموعة بيانات DSPL تحتوي على الجديدة:

  1. "عرض إجمالي" البلدان حتى نحصل على إجمالي المرض الحالات حسب الفئة العمرية وحدها
  2. استخدام عنوان URL الأساسي geo:country المفهوم لعمود country، حتى نتمكن من في الحصول على الأسماء الكاملة والمواقع الجغرافية وغيرها
  3. اجعل مفهوم disease_cases يتسع نطاق quantity:amount، لكي نتمكّن (يدويًا) من إضافة معلومات وحدة إلى ملف XML

للقيام بذلك، نُعدِّل صف العنوان لملف CSV المُدخَل على النحو التالي:

date,country[concept=geo:country;rollup=true;total_val=total],age_group,disease_cases[extends=quantity:amount]

عند تشغيل الأداة مرة أخرى، نحصل الآن على جدول شرائح إضافي، وهو جدول يزيل الفرق حسب البلد:

date,age_group,disease_cases
01/2000,old,152012
02/2000,old,211310
01/2000,young,241011
02/2000,young,240131

لاحظ أنه إذا لم نقم بتضمين القيم الإجمالية total_val في جدول المصدر، فسنحصل على المجموع المحسوب لكل فئة عمرية.

فضلاً عن ذلك، يمكن تعريف disease_cases في ملف XML. يتضمن الآن الإضافة من quantity:amount على النحو المطلوب. تشير رسالة الأشكال البيانية تم حذف تعريف country من ملف XML بسبب نستخدم مفهومًا مستوردًا لهذا بدلاً من ذلك.

بعد ملء مختلف الأسماء والأوصاف ومعلومات الوحدة، ضغط حزمة مجموعة البيانات وتحميلها إلى Public Data Explorer مؤثرات عرض البيانات.