آموزش ديتابيس مونگو و الستيك سرچ- MongoDB & Elasticsearch tutorial
240 subscribers
18 photos
به صورت كاربردي نحوه كار و استفاده از MongoDb و Elasticsearch رو ياد خواهيد گرفت.

No-SQL
MongoDB
Elasticsearch


ارتباط با من:

@RzaMlk7
Download Telegram
Bulk Wrire

🔹در ديتابيس مونگو اين قابليت وجود دارد تا با استفاده از دستور bulkWrite, چندين عمليات مختلف نظير اينسرت، آپديت ، حذف داده و … را بر روي يك كالكشن فراخواني نمود.

🔹با استفاده از مقدار دهي متغير ordered در اين كامند، مي توان مشخص نمود كه دستورات به ترتيب اجرا شوند ياخير. در صورت مقداردهي false, پرفورمنس بسيار مناسبي در استفاده از اين عملگر براي انجام عمليات batch خواهيم داشت.

🔹از ديگر مزاياي استفاده از اين دستور:
كاهش round trip( رفت و برگشت) بين اپليكيشن و ديتابيس و
كاهش latency لايه network بين ديتابيس و اپليكيشن مي باشد.
👇
مقدار objectid در يك
داكيومنت ديتابيس مونگو
👇
🔹 در ديتابيس مونگو، هر داكيومنت ذخيره شده در يك كالكشن، مي بايست داراي يك فيلد يونيك به نام _id به عنوان primary key باشد.

🔹در صورت اينكه براي داكيومنت insert شده اين مقدار مشخص نشده باشد، انجين ديتابيس مونگو به صورت اتوماتيك objectid را جهت مقدار دهي اين فيلد توليد مي كند.

🔹 مقدار objectid به صورت يونيك، با سايز ١٢ بايت مي باشد كه به صورت ordered بر روي يك كالكشن توليد مي شود.

- ٤ بايت اولtimestamp و بيانگر
زمان ايجاد مي باشد.
- ٥ بايت بعدي به صورت تصادفي ايجاد مي شود.
- ٣ بايت آخر يك شمارنده به صورت افزايشي مي باشد.
👇
🔹ماكزيمم سايز يك داكيومنت BSON در ديتابيس مونگو برابر 16 مگابايت مي باشد.
🛃 آزمون
آيا در ديتابيس مونگو مي توان داده اي با سايز بيشتر از 16 مگابايت ذخيره نمود؟
Anonymous Quiz
49%
بله
51%
خير
GridFs

🔹در ديتابيس مونگو جهت ذخيره سازي داده ها با سايز بالاتر 16 مگابايت، از GridFs استفاده مي شود

🔹 با استفاده از GridFs, فايل به chunk هايي با سايز 255 كيلوبايت تقسيم مي شود.

🔹 از دو كالكشن جهت ذخيره سازي داده ها استفاده ميكند، يك كالكشن براي ذخيره سازي File chunk و ديگري File metadata.
👇
👍1
🛃 آزمون
بعد از از دست رفتن نود primary در Replica Set ، كدام مكانيزم جهت انتخاب نود جديد به عنوان Primary استفاده مي شود؟
Anonymous Quiz
52%
Nodes Elections
48%
Nodes Heartbeats
Majority of members

🔹در يك كلاستر ديتابيس مونگو، طراحي، انتخاب تعداد نود و پيكربندي آن ها بسيار حائز اهميت مي باشد.

🔹براي نمونه، مفهوم majority بيانگر شرط در دسترس بودن نود primary در كلاستر مي باشد.

🔹به اين معني كه حداقل چه تعداد نود بايد در كلاستر باقي مانده باشند تا همچنان امكان انتخاب نود primary وجود داشته باشد.
🛃آزمون
در يك كلاستر ديتابيس مونگو كه داراي ١٠ نود مي باشد، حداكثر چه تعداد نود مي توانند در راي گيري جهت انتخاب نود Primary شركت كنند؟
Anonymous Quiz
30%
7
30%
9
41%
10
👍2
🛃 آزمون
در تصوير زير، كه نمايش دهنده دو ديتاسنتر داراي نودهاي يك كلاستر ديتايس مونگو مي باشد، در صورت قطع شدن ارتباط ديتاسنتر اول DC1 با ديتاسنتر دوم DC2، چه اتفاقي براي كلاستر مي افتد؟
Anonymous Quiz
51%
ديتاسنتر اول DC1 همچنان سرويس ميدهد، ديتاسنتر دوم Down مي شود.
17%
ديتاسنتر دوم DC2 همچنان سرويس ميدهد، ديتاسنتر اول Down مي شود.
32%
كل كلاستر Down مي شود.
پس از انتخاب گزينه مورد نظر و پاسخگويي به هر آزمون، جواب صحيح با توضيحات براي آن شخص
نمايش داده مي شود.

همچنين پاسخ دهي به آزمون به صورت Anonymous مي باشد.
آموزش ديتابيس مونگو و الستيك سرچ- MongoDB & Elasticsearch tutorial pinned « پس از انتخاب گزينه مورد نظر و پاسخگويي به هر آزمون، جواب صحيح با توضيحات براي آن شخص نمايش داده مي شود. همچنين پاسخ دهي به آزمون به صورت Anonymous مي باشد.»
آيا آموزش و نكات كاربردي ديتابيس Elastic Search هم ارايه شود؟
Final Results
83%
بله، Elastic Search هم باشه.
17%
نه، فقط Mongo باشه.
Channel name was changed to «آموزش ديتابيس مونگو و الستيك سرچ- MongoDB & Elasticsearch tutorial»
ELK Stack

🔹 واژه ELK بر گرفته از سرنام سه ماژول Logstash، Elasticsearch و Kibana می باشد.

🔹E= Elasticsearch
انجینی جهت ذخيره سازي،جستجو، آنالیز و ایندکس کردن داده ها می باشد که بر روی Apache Solr توسعه یافته است.

🔹L=Logstash
ابزاری open-source جهت جمع آوری داده ها از منابع مختلف (نظیر kafka، TCP Socket، RDBMS، Redis، syslog و ...) و انتقال به
مقصد مورد نظر می باشد.

این قابلیت وجود دارد تا هنگام فرآیند انتقال، تبدیل و تغییر فرمت داده ها (transform) نیز انجام گیرد.

🔹K=Kibana
ابزاری جهت ویژوالایز و ایجاد داشبورد های مختلف می باشد که از آن جهت مدیریت، تجزیه و تحلیل، مانیتورینگ بر اساس متریک های مختلف و ... بر روی داده های موجود در Elasticsearch استفاده می شود.
👇
1
Elasticsearch

🔹مفهوم Fuzzy Matching :
در الستيك سرچ اين امكان وجود دارد تا جستجوي كلمات بر اساس درصد مشابهت و به صورت فازي انجام شود.

🔹نزديكي تشابه لغات را Distance Levenshtein نيز مي نامند.

🔹 ا Levenshtein Distance اشاره به تعداد ویرایش های تک کاراکتری (درج، حذف یا جایگزینی) مورد نیاز برای تغییر یک کلمه به کلمه دیگر است.( اين تئوري توسط اقاي ولادمير ولشتاين روسي در سال ١٩٦٥ بيان شد)

🔹مثال:
▪️جايگزيني يك كاراكتر
(box → fox)

▪️حذف يك كاراكتر
(black → lack)

▪️درج يك كاراكتر
(sic → sick)

▪️جابه جايي دو كاراكتر
(act → cat)