لغة البرمجة ECL (لغة برمجة تركز على البيانات)
لغة التحكم المؤسسي ( ECL ) هي لغة برمجة تصريحية تركز على البيانات، صُممت عام 2000 لتمكين فريق من المبرمجين من معالجة البيانات الضخمة عبر مجموعة حوسبة عالية الأداء دون تدخل المبرمج في العديد من القرارات الإجرائية على المستوى الأدنى. [ 1 ] [ 2 ]
تاريخ
صُممت تقنية ECL وطُورت في البداية عام 2000 على يد ديفيد بايليس كأداة إنتاجية داخلية في شركة Seisint Inc، واعتُبرت سلاحًا سريًا مكّن Seisint من زيادة حصتها السوقية في مجال بياناتها. كانت لدى Equifax عملية تعتمد على لغة SQL للتنبؤ بمن سيُعلن إفلاسه خلال الثلاثين يومًا القادمة، إلا أن معالجة البيانات كانت تستغرق 26 يومًا. أما أول تطبيق لتقنية ECL فقد حلّ المشكلة نفسها في 6 دقائق فقط. وقد ذُكرت هذه التقنية كقوة دافعة وراء استحواذ LexisNexis على Seisint ، ثم مرة أخرى كمصدر رئيسي للتكامل عندما استحوذت LexisNexis على ChoicePoint Inc. [ 3 ]
تراكيب اللغة
لغة ECL، على الأقل في أبسط صورها، هي لغة تصريحية تركز على البيانات. لا توجد برامج بالمعنى الدقيق للكلمة، بل يحدد تطبيق ECL عددًا من مجموعات البيانات الأساسية (أو قيم البيانات) ثم العمليات التي ستُجرى على تلك القيم.
مرحبا بالعالم
تتميز لغة ECL بتقديم حلول موجزة للمشاكل وقيم افتراضية منطقية. وبرنامج "Hello World" قصير بشكل ملحوظ:
'مرحبا بالعالم'
ربما يكون المثال الأكثر إثارة للاهتمام هو أخذ قائمة من السلاسل النصية، وفرزها حسب الترتيب، ثم إرجاع ذلك كنتيجة بدلاً من ذلك.
// أولاً، قم بتعريف مجموعة بيانات تحتوي على عمود واحد يتضمن قائمة من السلاسل النصية . // يمكن أن تكون مجموعات البيانات ثنائية أو CSV أو XML أو هياكل مُعرَّفة خارجيًا.D := DATASET ([{ 'ECL' }, { 'Declarative' }, { 'Data' }, { 'Centric' }, { 'Programming' }, { 'Language' }], { STRING Value ;}); SD := SORT ( D , Value ); output ( SD )تُعرَّف العبارات التي تحتوي على "a" :=في لغة ECL على أنها تعريفات للسمات. فهي لا تدل على إجراء، بل على تعريف مصطلح. وبالتالي، منطقيًا، يمكن قراءة برنامج ECL من الأسفل إلى الأعلى.
مخرج (SD)
ما هو SD؟
SD := SORT ( D , Value );SD هو D تم فرزه حسب "القيمة".
ما هو الحرف D؟
D := DATASET ([{ 'ECL' },{ 'Declarative' },{ 'Data' },{ 'Centric' },{ 'Programming' },{ 'Language' }],{ STRING Value ;});D عبارة عن مجموعة بيانات تحتوي على عمود واحد بعنوان "القيمة" وتحتوي على قائمة البيانات التالية.
العناصر الأولية ECL
تتضمن العمليات الأساسية في لغة ECL التي تعمل على مجموعات البيانات ما يلي: SORT، ROLLUP، DEDUP، ITERATE، PROJECT، JOIN، NORMALIZE، DENORMALIZE، PARSE، CHOSEN، ENTH، TOPN، DISTRIBUTE
التغليف الكهروكيميائي
على الرغم من أن لغة ECL مختصرة، وتدّعي LexisNexis أن سطرًا واحدًا منها يُعادل تقريبًا 120 سطرًا من لغة C++، إلا أنها لا تزال تدعم بشكل كبير البرمجة واسعة النطاق، بما في ذلك تغليف البيانات وإعادة استخدام التعليمات البرمجية. وتشمل البنى المتاحة: MODULE، وFUNCTION، وFUNCTIONMACRO، وINTERFACE، وMACRO، وEXPORT، وSHARED.
دعم التوازي في اللغة الإنجليزية كلغة ثانية
في تطبيق HPCC ، تُنفَّذ معظم بنيات ECL افتراضيًا بالتوازي على جميع الأجهزة المستخدمة. كما تحتوي العديد من العمليات الأساسية على خيار LOCAL لتحديد أن العملية ستُنفَّذ محليًا على كل عقدة.
مقارنة بتقنية MapReduce
يتكون نموذج Hadoop Map-Reduce من ثلاث مراحل ترتبط بعناصر ECL الأساسية على النحو التالي.
| اسم/مصطلح هادوب | مكافئ ECL | تعليقات |
|---|---|---|
| رسم الخرائط داخل برنامج رسم الخرائط | مشروع/تحويل | يأخذ سجلًا ويحوله إلى تنسيق مختلف؛ في حالة Hadoop، يكون التحويل إلى زوج مفتاح-قيمة |
| خلط الأوراق (المرحلة 1) | DISTRIBUTE(,HASH(KeyValue)) | يتم توزيع السجلات من أداة الربط بناءً على قيمة المفتاح. |
| خلط الأوراق (المرحلة الثانية) | فرز (محلي) | يتم فرز السجلات التي تصل إلى مُخفِّض معين وفقًا لترتيب المفتاح. |
| يقلل | ROLLUP(,Key,LOCAL) | تم الآن دمج السجلات الخاصة بقيمة مفتاح معينة |
مراجع
- ^ دليل لخسائر الائتمان المتوقعة ، Lexis-Nexis .
- ↑ "تقييم استخدام أنظمة تدفق البيانات لتحليل الرسوم البيانية الكبيرة"، بقلم أ. يو، وإ. كابلان. وقائع ورشة العمل الثانية حول الحوسبة متعددة المهام على الشبكات والحواسيب العملاقة، MTAGS، 2009
- ↑ "الاستحواذ على سيسينت" . مؤرشف من الأصل بتاريخ 21-06-2011 . تم الاطلاع عليه بتاريخ 24-03-2011 .
روابط خارجية
- لغات البرمجة التصريحية
- لغات البرمجة التي تركز على البيانات
- البيانات الضخمة
- لغات البرمجة ذات الكتابة الثابتة
