
مرحبا ، habrozhiteli! لقد نشرنا كتابًا حول المرونة المكدس ، مخصص للأخصائيين الذين يعملون مع كميات كبيرة من البيانات ويريدون استخراجها بشكل موثوق من أي مصدر بأي شكل ، وكذلك البحث عن البيانات وتحليلها وتصورها في الوقت الفعلي. هذا الكتاب مناسب لك إذا كنت بحاجة إلى فهم أساسي لعمل المرنة المرنة في مجالات الحوسبة الموزعة ومعالجة البيانات في الوقت الفعلي.
أدناه سيتم توفير هيكل الكتاب عن مقطع حول التجميع.
هيكل الكتاب
يقدم الفصل 1 "مقدمة إلى كومة مرنة" المكونات الرئيسية من كومة مرنة ، ويشرح دورها في الهيكل العام ، ويصف الغرض من كل مكون. يناقش هذا الفصل أيضًا الحاجة إلى البحث والتحليل الموزعين القابلين للتحقيق مع Elasticsearch. في النهاية ، يوجد دليل لتنزيل وتثبيت Elasticsearch و Kibana بحيث يمكنك البدء باستخدام هذه الأدوات.
يقدم الفصل الثاني ، "الشروع في العمل باستخدام Elasticsearch" ، المبادئ الأساسية لمحرك بحث Elasticsearch ، الذي يعد أساس Stack Stack. سوف تصبح على دراية بالمفاهيم مثل الفهارس والأنواع والعقد والمجموعات. سوف تتعلم أيضًا كيفية استخدام واجهة برمجة تطبيقات REST لتنفيذ العمليات الأساسية.
يركز الفصل الثالث ، "البحث مهم" ، على طرق البحث التي توفرها Elasticsearch. سوف تتعلم عن أساسيات تحليل النص ، والرموز ، والمحللات ، وميزات البحث ذات الصلة. يقدم هذا الفصل أيضًا أمثلة عملية لعمليات البحث ذات الصلة.
الفصل 4 ، "تحليل البيانات باستخدام Elasticsearch" ، يتحدث عن الأنواع المختلفة للتجميع. يتضمن أمثلة من شأنها أن تساعدك على فهم مبادئ تحليل البيانات بشكل أفضل. سوف تتعلم كيفية استخدام أنواع مختلفة من المجموعات - من البسيط إلى المعقد ، للتنقل في مجموعات البيانات الضخمة. بعد قراءة هذا الفصل ، ستعرف متى وأي خيار التجميع هو الأفضل للاستخدام.
يوفر الفصل 5 ، تحليل السجل ، معلومات حول الحاجة إلى استخدام Logstash وهندستها وتركيبها وتكوينها. يوفر Elastic 5 أداة Ingest Node التي يمكن أن تحل محل تكوين Logstash. من خلال قراءة هذا الفصل ، سوف تتعلم كيفية إنشاء حاويات باستخدام العقدة المرنة.
يمنحك الفصل 6 ، "تصميم الحاويات باستخدام Logstash" ، فهمًا أساسيًا لـ Logstash ، والذي يتيح لك تحديد البيانات ديناميكيًا من مصادر مختلفة وتطبيعها باستخدام عوامل التصفية المحددة. سوف تتعلم كيف أن وجود مجموعة واسعة من المرشحات يضع Logstash على قدم المساواة مع أطر معالجة الدفق في الوقت الفعلي وفي الوقت الحقيقي تقريبا دون كتابة التعليمات البرمجية. سيتم تقديمك أيضًا إلى النظام الأساسي Beats ومكون FileBeat المستخدم لنقل ملفات السجل (ملفات السجل) من الأجهزة البعيدة.
يوضح الفصل 7 ، "تصور البيانات في Kibana" ، كيف يمكنك استخدام Kibana لتصور وتقديم بياناتك بشكل مثير للإعجاب. مثال لمجموعة بيانات بسيطة يصف إنشاء تصورات في بضع نقرات.
الفصل 8 ، حزمة مرنة X ، يتحدث عن امتداد Elasticsearch. بحلول هذا الوقت ، ستتعلم بالفعل Elasticsearch ومكوناته الرئيسية لإنشاء حاويات البيانات وستكون قادرًا على توصيل الإضافات لحل مشاكل محددة. في هذا الفصل ، سوف تقرأ كيفية تثبيت مكونات X-Pack وتكوينها في Elastic Stack ، وتعلم أساسيات الأمان والمراقبة ، وتعلم كيفية إضافة إشعارات متنوعة.
الفصل 9 ، "وضع المكدس Elatic في العمل" ، يقدم توصيات لوضع مجمع المرنة المكدس في العملية التجارية. سوف تتلقى توصيات حول كيفية تنفيذ التطبيق الخاص بك وتغيير الإعدادات القياسية وفقا لمتطلبات العملية. سوف تتعلم أيضًا كيفية استخدام خدمات Cloud Cloud السحابية.
يصف الفصل 10 "إنشاء تطبيق لتحليل البيانات من أجهزة الاستشعار" إنشاء تطبيق لتحليل ومعالجة البيانات من مصادر مختلفة. سوف تتعلم كيفية نمذجة البيانات في Elasticsearch ، وإنشاء حاويات البيانات وتصورها في Kibana. سوف تتعلم أيضًا كيفية الاستخدام الفعال لمكونات X-Pack لضمان أمان ومراقبة حاوياتك ، وتلقي إخطارات الأحداث المختلفة.
يوضح الفصل 11 ، مراقبة البنية التحتية للخادم ، إمكانيات استخدام التطبيق المرن Stack لتكوين المراقبة في الوقت الحقيقي للخوادم والتطبيقات التي يتم إنشاؤها بالكامل على حزمة مرنة. ستتعرف على مكون آخر من منصة Beats - Metricbeat ، والذي يستخدم لمراقبة الخوادم / التطبيقات.
تجميعات القيم ، المتوسط ، الحد الأقصى والحد الأدنى
العثور على مجموع الحقل ، أو الحد الأدنى أو الحد الأقصى للقيمة ، أو المتوسط هو عملية شائعة إلى حد ما. في SQL ، يكون استعلام حساب المجموع كما يلي:
SELECT sum(downloadTotal) FROM usageReport;
وبالتالي ، سيتم حساب مجموع الحقل downloadTotal لجميع الإدخالات في الجدول. للقيام بذلك ، راجع جميع السجلات في الجدول أو جميع السجلات في السياق المحدد وأضف قيم الحقول المحددة.
في Elasticsearch ، يمكنك كتابة استعلام مماثل باستخدام تجميع المجموع.
المبلغ التجميع
إليك كيفية كتابة تجميع بسيط للمبلغ:
GET bigginsight/_search { "aggregations": { 1 "download_sum": { 2 "sum": { 3 "field": "downloadTotal" 4 } } }, "size": 0 5 }
- يجب أن تكون aggs أو المجموعات في المستوى العلوي بمثابة غلاف للتجميع.
- إعطاء التجميع اسم. في هذه الحالة ، نقوم بتجميع المبلغ في الحقل downloadTotal وتحديد الاسم المناسب download_sum. يمكنك استدعاء لها أي شيء تريده. هذا الحقل مفيد عندما نحتاج إلى إيجاد هذا التجميع المحدد في نتائج الاستجابة.
- نقوم بتجميع المجموع ، وبالتالي ، يتم تطبيق عنصر المبلغ.
- نريد تجميع المصطلحات حسب الحقل downloadTotal.
- حدد الحجم = 0 لمنع دخول النتائج الأولية إلى الاستجابة. نحتاج فقط إلى نتائج التجميع ، وليس إلى نتائج البحث. نظرًا لأننا لم نحدد أي عناصر استعلام رفيعة المستوى ، فسيعمل الاستعلام مع جميع المستندات. لا نحتاج إلى مستندات غير معالجة (أو نتائج بحث) في الاستجابة.
يجب أن تبدو الإجابة كالتالي:
{ "took": 92, ... "hits": { "total": 242836, 1 "max_score": 0, "hits": [] }, "aggregations": { 2 "download_sum": { 3 "value": 2197438700 4 } } }
سوف نفهم المعلمات الرئيسية للإجابة.
- يعرض العنصر hits.total عدد المستندات المطابقة لسياق الطلب. إذا لم يتم تحديد استعلام أو مرشح إضافي ، فسيتم تضمين جميع المستندات في النوع أو الفهرس.
- قياسًا على الطلب ، يتم وضع هذه الإجابة داخل التجميع للعرض التقديمي في هذا النموذج.
- تسمى استجابة التجميع التي طلبناها download_sum ، وبالتالي ، نحصل على إجابتنا من تجميع المبلغ داخل العنصر بنفس الاسم.
- يتم عرض القيمة الفعلية بعد تطبيق مبلغ التجميع.
التجميعات من المتوسط والحد الأقصى والحد الأدنى للقيم متشابهة للغاية. سوف ننظر لفترة وجيزة لهم.
متوسط التجميع
يؤدي تجميع المتوسط إلى إيجاد متوسط القيمة لجميع المستندات في سياق الطلب:
GET bigginsight/_search { "aggregations": { "download_average": { 1 "avg": { 2 "field": "downloadTotal" } } }, "size": 0 }
الاختلافات الملحوظة عن تجميع المبلغ هي كما يلي.
- لقد اخترنا اسمًا آخر ، download_amediate ، بحيث يكون من الواضح أن هذا التجميع مصمم لحساب متوسط القيمة.
- نوع التجميع المطلوب تنفيذه هو avg بدلاً من sum ، كما في المثال السابق.
هيكل الاستجابة مطابق للإجابة من القسم الفرعي السابق ، ولكن في حقل القيمة سنرى متوسط قيمة الحقول المطلوبة.
تجميعات الحد الأدنى والحد الأقصى للقيم متشابهة.
الحد الأدنى من التجميع
ابحث عن الحد الأدنى لقيمة الحقل downloadTotal في الفهرس / النوع بالكامل:
GET bigginsight/_search { "aggregations": { "download_min": { "min": { "field": "downloadTotal" } } }, "size": 0 }
تجميع القيمة القصوى
ابحث عن الحد الأقصى لقيمة الحقل downloadTotal في الفهرس / النوع بالكامل:
GET bigginsight/_search { "aggregations": { "download_max": { "max": { "field": "downloadTotal" } } }, "size": 0 }
هذه تجمعات بسيطة جدا. الآن دعونا نلقي نظرة على مجموعات أكثر تعقيدًا من الإحصاءات والإحصائيات المتقدمة.
تجميع الإحصائيات والإحصائيات المتقدمة
تحسب هذه المجموعات بعض القيم الإحصائية الشائعة داخل استعلام واحد ودون إجراء استعلامات إضافية. نظرًا لحقيقة أن الإحصائيات تُحسب دفعة واحدة ، ولا تُطلب عدة مرات ، يتم حفظ موارد Elasticsearch. يصبح رمز العميل أسهل أيضًا إذا كنت مهتمًا بعدة أنواع من هذه البيانات. ألق نظرة على مثال لتجميع الإحصاءات.
تجميع الإحصاء
يقوم تجميع الإحصائيات بحساب المبلغ والمتوسط والحد الأقصى والقيمة الدنيا والعدد الإجمالي للمستندات في تشغيل واحد:
GET bigginsight/_search { "aggregations": { "download_stats": { "stats": { "field": "downloadTotal" } } }, "size": 0 }
طلب الإحصائيات على الهيكل مشابه للتجمعات الأخرى التي تعرفها بالفعل ؛ لا شيء خاص يحدث هنا.
يجب أن تبدو الإجابة كالتالي:
{ "took": 4, ..., "hits": { "total": 242836, "max_score": 0, "hits": [] }, "aggregations": { "download_stats": { "count": 242835, "min": 0, "max": 241213, "avg": 9049.102065188297, "sum": 2197438700 } } }
كما ترون ، تحتوي الإجابة بعنصر download_stats على الإجمالي والحد الأدنى والحد الأقصى والمتوسط والإجمالي. هذا الاستنتاج مناسب للغاية ، لأنه يقلل من عدد الطلبات ويبسط رمز العميل.
ألقِ نظرة على تجميع الإحصاءات المتقدمة.
تجميع الإحصاءات المتقدمة
يؤدي تجميع الإحصائيات الموسعة إلى عرض إحصاءات أكثر قليلاً بالإضافة إلى الخيار السابق:
GET bigginsight/_search { "aggregations": { "download_estats": { "extended_stats": { "field": "downloadTotal" } } }, "size": 0 }
الجواب سيبدو هكذا:
{ "took": 15, "timed_out": false, ..., "hits": { "total": 242836, "max_score": 0, "hits": [] }, "aggregations": { "download_estats": { "count": 242835, "min": 0, "max": 241213, "avg": 9049.102065188297, "sum": 2197438700, "sum_of_squares": 133545882701698, "variance": 468058704.9782911, "std_deviation": 21634.664429528162, "std_deviation_bounds": { "upper": 52318.43092424462, "lower": -34220.22679386803 } } } }
في الإجابة تحصل أيضًا على مجموع المربعات والتناقض والانحراف المعياري وحدوده.
تجميع الطاقة
يمكن أن يتم عد العناصر الفريدة باستخدام تجميع الطاقة. يشبه هذا البحث عن نتيجة استعلام ، كما هو موضح أدناه:
select count(*) from (select distinct username from usageReport) u;
تحديد قوة أو عدد القيم الفريدة لحقل معين مهمة شائعة إلى حد ما. على سبيل المثال ، إذا كان لديك تدفق نقرات (تدفق نقرة) من مختلف الزائرين لموقعك ، فقد ترغب في معرفة عدد الزوار الفريدين الموجودين على الموقع في يوم أو أسبوع أو شهر محددين.
دعنا نتعرف على كيفية العثور على عدد الزوار الفريدين الذين يستخدمون بيانات حركة مرور الشبكة المتاحة:
GET bigginsight/_search { "aggregations": { "unique_visitors": { "cardinality": { "field": "username" } } }, "size": 0 }
تبدو استجابة تجميع الطاقة كما هي في مجموعات المقاييس الأخرى:
{ "took": 110, ..., "hits": { "total": 242836, "max_score": 0, "hits": [] }, "aggregations": { "unique_visitors": { "value": 79 } } }
الآن وقد اكتشفنا أبسط أنواع المجموعات ، يمكننا النظر في بعض المجموعات المجمعة.
عن المؤلفين
براناف شوكلا هو مؤسس ورئيس Valens DataLabs ، وهو مهندس وزوج وأب لطفلين. كبير مهندسي البيانات والمبرمج المحترف باستخدام لغات البرمجة المعتمدة على JVM. يعمل Pranav على تطوير تطبيقات الشركات لشركات Fortune 500 والشركات الناشئة منذ أكثر من 14 عامًا ، وتخصصه الرئيسي هو إنشاء تطبيقات قابلة للتطوير تعتمد على البيانات استنادًا إلى JVM و Java / Scala ونظام Hadoop البيئي وقواعد بيانات Apache Spark و NoSQL. تطوير بنشاط في المجالات المتعلقة بتنظيم البيانات الكبيرة ، التحليلات والتعلم الآلي.
أسس Pranav Valens DataLabs لمساعدة الشركات الأخرى على استخدام البيانات لزيادة قدرتها التنافسية. Valens DataLabs متخصصة في إنشاء جيل جديد من التطبيقات السحابية للعمل مع تقنيات البيانات والويب الكبيرة. يعتمد عمل الشركة على استخدام الممارسات المرنة ، ومبادئ التصنيع اللين ، والتطوير على أساس الاختبارات والسلوك ، والتكامل المستمر ، والنشر المستمر لأنظمة البرمجيات المستدامة.
حصل شارات كومار م. ن على درجة الماجستير في علوم الكمبيوتر من جامعة تكساس ، دالاس ، الولايات المتحدة الأمريكية. يعمل في صناعة تكنولوجيا المعلومات منذ أكثر من عشر سنوات ، ويشغل حاليًا منصب مطور حلول أوراكل لشركة Elasticsearch ، وهو من مؤيدي Flex Stack. متحدثًا نشطًا ، تحدث في العديد من مؤتمرات العلوم والتكنولوجيا ، بما في ذلك Oracle Code Event. شارات - مدرس مرن معتمد (مدرب مرن معتمد) - أحد الخبراء التقنيين القلائل في العالم الذين قاموا بتطبيق Flex Inc. منح الحق الرسمي لإجراء التدريب "من المبدعين من مطاطا." وهو أيضًا متحمس في التعلم الآلي وعلوم البيانات.
حول محرر العلوم
مارسيلو أوتشوا يعمل في مختبر كلية العلوم الدقيقة في الجامعة الوطنية لوسط بوينس آيرس (جامعة المكسيك الوطنية في بوينس آيرس) ، الأرجنتين. وهو CTO of Scotas (www.scotas.com) ، وهو متخصص في حلول الوقت الحقيقي المزيفة باستخدام تقنيات Apache Solr و Oracle. تمكن مارسيلو من العمل في الجامعة والمشاركة في المشاريع المتعلقة بأوراكل وتقنيات البيانات الضخمة. سابقا ، كان يعمل مع قواعد البيانات وشبكة الإنترنت وتقنيات جافا. في عالم XML ، يُعرف Marcelo بمطور DB Generator لمشروع Apache Cocoon. شارك في إنشاء مشاريع مفتوحة المصدر مثل DBPrism و DBPrism CMS و Restlet.org ، حيث عمل على Oracle XDB Restlet Adapter ، والذي يعد بديلاً لكتابة خدمات الويب REST الأصلية داخل قاعدة بيانات JVM.
منذ عام 2006 ، شارك في برنامج Oracle ACE ، وانضم مؤخرًا إلى مشروع Docker Mentor.
»يمكن الاطلاع على مزيد من المعلومات حول الكتاب على
موقع الناشر»
المحتويات»
مقتطفاتخصم 25٪ على كوبون
الباعة المتجولين -
Elasticsearchعند دفع النسخة الورقية من الكتاب ، يتم إرسال نسخة إلكترونية من الكتاب عن طريق البريد الإلكتروني.