استخدام Facebook لقواعد بيانات NoSQL
نشرت: 2022-11-22نفذ Facebook عددًا من قواعد بيانات NoSQL لمساعدته على توسيع نطاق الرسم البياني الاجتماعي الضخم. تتضمن قواعد البيانات هذه Apache HBase و Apache Cassandra و Apache Thrift. باستخدام قواعد بيانات NoSQL هذه ، يكون Facebook قادرًا على توفير تجربة سريعة وسريعة الاستجابة لمستخدميه مع الحفاظ على كمية كبيرة من البيانات.
يتم تخزين الملفات الشخصية لأكثر من ملياري شخص في قاعدة بيانات Facebook. اليوم ، تعتمد العديد من تطبيقات المؤسسات المهمة للأعمال ، مثل SaaS متعددة المستأجرين ، على نطاق الإنترنت على Facebook ، والبنية الموزعة عالميًا ، وهناك دروس يمكن تعلمها من فهم تطور قاعدة بيانات Facebook. Mystria ، قاعدة بيانات مفتوحة المصدر شهيرة ، هي أساس FB's NoSQL Graph API ، TAO. نتيجة لذلك ، حولت TAO إلى 1000 عبيد MySQL الرئيسيين الذين تم تقويتهم يدويًا في FB إلى عبيد مقسمين. ونتيجة لذلك ، لم يعد التطبيق يستخدم قاعدة البيانات لإجراء المعاملات المشتركة والعمليات المشتركة. بالإضافة إلى ذلك ، إذا تم تنفيذ التجاوز الفاشل ، فستفقد البيانات التي تم الالتزام بها مؤخرًا. يتم تخزين الكائنات والجمعيات على نفس مجموعة الخادم ، دون إجراء أي تغييرات على الجزء.
تم تحديد درجة تجميع البيانات على أنها تقنية تحسين مهمة لتسهيل الوصول إلى البيانات بزمن وصول منخفض. عندما قررت FB التخلي عن SQL باعتبارها واجهة برمجة تطبيقات للاستعلام واعتماد NoSQL API المخصص لـ TAO ، تخلى مطوروها عن SQL تمامًا. Google ، على عكس Facebook ، كانت تنشئ قاعدة بيانات جديدة تمامًا تسمى Spanner ، وهي متسقة عالميًا. اعتمد نموذج بيانات Spanner على OLTP التقليدي ذي الوصول العشوائي بدلاً من الرسم البياني الاجتماعي. تم دمج قابلية التوسع الهائلة وتوزيع البيانات العالمية في طبقة قاعدة البيانات للجيل الثاني من قواعد البيانات الموزعة. يستخدم Spanner إجماعًا موزعًا لكل جزء لضمان توفر كل جزء (وليس مثيلًا واحدًا فقط) بشكل كبير في حالة حدوث فشل. يتم إجراء تغيير التكوين هذا في سياق التطبيق ويستمر في العمل بشكل طبيعي.
يمكن أن تظل البيانات ذات الصلة بالمنطقة المحلية موجودة في نفس المنطقة إذا تم تمكين الميزات الجغرافية المكانية ، مثل التقسيم الجغرافي على مستوى الجدول والصف. يتم استخدام الالتزام المكون من مرحلتين في المعاملات متعددة الأجزاء ، ويتتبع مدير المعاملات الموزع انحرافات الساعة في جميع أنحاء العقد. لقد أنشأنا TAO في FB للحفاظ على استثمارنا الحالي في MySQL المُقسَّم. قررت Google كسر التقليد من خلال إنشاء Spanner ، وهي قاعدة بيانات جديدة تمامًا يمكنها التوسع أفقيًا وتكرار النسخ الجغرافي والتعامل مع أعطال البنية التحتية كما لو كانت تحدث.
نستخدم MySQL في Facebook لعدة أسباب. باستخدام MySQL ، يمكن لفريق صغير إدارة آلاف الخوادم مع توفير خدمة عالية الجودة بأقل تكلفة ممكنة.
تم تصميم TAO ، وهو API للرسم البياني NoSQL أنشأه FB في أوائل عام 2009 ، للعمل على Apache Cassandra المستندة إلى MySQL. كان الهدف الأساسي من هذا القسم هو التخلص من المشكلات التي تم إبرازها في القسم السابق. يشير اختصار TAO إلى الجمعيات والكائنات ، إلى الجمعيات والأشياء.
اعتمد تخزين البيانات المبكرة على Facebook بشكل كبير على قاعدة بيانات MySQL العلائقية. على الرغم من استلهام مهندسي Facebook من ورقة Google حول قواعد بيانات Google BigTable NoSQL ، إلا أنهم أنشأوا Cassandra ، وهو متجر عائلي قائم على قاعدة بيانات NoSQL على Facebook.
Facebook لديه نظام قاعدة بيانات علائقية في مكانه للاحتفاظ ببياناته الأساسية. إنها تحافظ على الرسم البياني الاجتماعي وبيانات Facebook messenger (أكثر من مليار مستخدم) لأكثر من مليار مستخدم يستخدمون fork of MySql 5.6.
هل يستخدم Facebook Nosql؟
لا توجد إجابة واحدة تناسب الجميع على هذا السؤال ، لأن استخدام قواعد بيانات NoSQL يختلف باختلاف الاحتياجات المحددة لكل تطبيق فردي. ومع ذلك ، من المقبول عمومًا أن Facebook يستخدم مزيجًا من قواعد بيانات SQL و NoSQL لتخزين وإدارة الحجم الكبير من البيانات.
يعد كل من Cloud Datastore و Cloud Firestore اختيارات ممتازة للشركات التي تبحث عن قاعدة بيانات موجهة للمستندات يمكن استخدامها لتحليلات البيانات في الوقت الفعلي. يعد Cloud Firestore خيارًا ممتازًا للمستندات الصغيرة نظرًا لبنيته المحسّنة وسهولة استخدامه على الأجهزة المحمولة. تم تصميم Cloud Datastore للتعامل مع أعباء العمل العالية للغاية والتوسع تلقائيًا. هناك أيضًا الكثير من الاستخدام لها.
كيف يقوم Facebook بتخزين البيانات في قاعدة البيانات؟
يخزن Facebook البيانات في قاعدة بيانات علائقية منظمة في جداول. ثم يتم تخزين البيانات في أعمدة وصفوف داخل الجداول. يتم تخزين البيانات في شكل نصوص وأرقام وتواريخ.
منشأة تخزين بيانات Facebook في برينفيل ، أوريغون. تتبع كل شيء من الأحداث التي تحضرها إلى حالتك (أو الحب ، هاها ، واو ، حزين ، أو وجه غاضب) ، وصولاً إلى الجدول الزمني الخاص بك. قد تحتوي منشأة فيسبوك في ولاية أوريغون على ما يصل إلى 300 بيتابايت من سعة التخزين ، وفقًا للتقديرات. بهذه الكمية من البيانات ، يمكننا تخزين حوالي 100 مليار صورة متوسطة الحجم عليها. إذا لم يكن لدى Facebook طريقة للاحتفاظ بجميع منشوراتك وصورك ومقاطع الفيديو وتحديثات الحالة وما إلى ذلك بأمان. إذا اخترت عدم القيام بذلك ، فلن يتمكن Facebook من تذكر هويتك. هناك مساحة صغيرة (أو بضعة ملايين) مخصصة لك للتعبير عن نفسك بالطريقة التي تريدها حقًا.
يتم استخدامه لتخصيص الإعلانات وزيادة وتيرة تفاعلك مع Facebook. هناك مواقع ويب معينة يعرفها Facebook عنك ، بالإضافة إلى الإعلانات التي تراها والمنشورات التي تعجبك.
يقوم Facebook أيضًا ببيع هذه البيانات إلى شركات تابعة لجهات خارجية. حصلت Cambridge Analytica ، وهي شركة بيانات عملت في حملة دونالد ترامب الرئاسية ، على معلومات شخصية من 87 مليون مستخدم على Facebook.
لكي تكون آمنًا ، يجب أن تكون على دراية بكيفية قيام Facebook بجمع بياناتك واستخدامها ، وكذلك اتخاذ خطوات لحماية خصوصيتك. يمكنك حذف حسابك على Facebook باستخدام أداة خصوصية Facebook ، أو يمكنك تعطيل Facebook Pixel وزر Facebook Like ، من بين أشياء أخرى.
أثيرت مخاوف بشأن Facebook وشركات الطرف الثالث نتيجة لفضيحة البيانات الأخيرة.
خلال فضيحة Cambridge Analytica ، تعرض Facebook لانتقادات لعدم شفافيته وعدم التصرف بالسرعة الكافية. أعلن مارك زوكربيرج ، الرئيس التنفيذي لشركة Facebook ، يوم الثلاثاء أنه سيأخذ إجازة للتعامل مع الفضيحة.
منذ الكشف عن الانتهاكات الهائلة للبيانات في Facebook و WhatsApp ، تعرض مارك زوكربيرج للتدقيق بسبب افتقاره للمساءلة وفشله في معالجة مخاوف الخصوصية.
وفقًا للاتهامات ، كان Facebook يتلاعب بالرأي السياسي من خلال استخدام بيانات المستخدم.
نتيجة لقضايا الخصوصية التي أثيرت ، تعرض فيسبوك لانتقادات شديدة بسبب افتقارها للشفافية وعدم معالجتها.
زُعم أن Facebook تلاعب بالرأي السياسي لمستخدميه من خلال جمع بيانات المستخدم.
يتم منح المستخدمين خيار اتخاذ سلسلة من الخطوات.
كيف يستخدم الفيسبوك كاساندرا؟
تستخدم Cassandra مجموعة من التقنيات المعروفة للتوسع والتوافر. كان هدف Cassandra هو معالجة متطلبات التخزين لمشكلة Inbox Search. In-box Search هي ميزة جديدة تسمح لمستخدمي Facebook بالبحث في رسائلهم من صندوق الوارد الخاص بهم.
يستخدم Facebook Cassandra كمحرك بحث للبريد الإلكتروني ، مع 25 تيرابايت وأكثر من 100 مليون صندوق بريد. أصدر Facebook Cassandra كمصدر مفتوح بموجب ترخيص Apache في 1 يوليو 2017. في هذا الفيديو ، سنلقي نظرة متعمقة على هندسة وتصميم Cassandra. كان الهدف من Cassandra في الأصل هو حل مشكلة العثور على عناوين البريد الإلكتروني في صندوق الوارد. عند الكتابة إلى جدول ذاكرة ، ستكتب دائمًا إلى سجل الالتزام (تسلسلي) ، والذي يكون تسلسليًا لكل عقدة في المجموعة. أثناء الإعداد ، اقرأ الخطوات التالية لمسح الجدول من القرص: * نفاد المساحة * مفاتيح متجاوزة (128 افتراضيًا) * مدة الوقت (يتم توفير العميل بدون ساعة). يتوافق مع الهندسة المعمارية القائمة على الأحداث المرحلية (SEDA) واكتشاف الفشل عبر بروتوكول القيل والقال. لديها 100 مليون مستخدم ، 4B خيوط ، و 25 تيرابايت من البيانات ، ويمكنها تشغيل Hadoop بسرعة 1.5 تيرابايت في الساعة.
The Sheen Is Off: Facebook يتخلى عن Cassandra For Mysql
بدلاً من Cassandra ، اختار Facebook Hbase لبناء نظام المراسلة الخاص به. نظرًا للهندسة المعمارية الموزعة ، فقد كان اختيارًا طبيعيًا لشركة Netflix لاستخدام Cassandra ، وبحلول عام 2013 ، كانت معظم بياناتها موجودة هناك ، وتستمر في استخدامها اليوم. يستخدم Facebook MySQL ، بدلاً من Cassandra ، عندما يتعلق الأمر بتخزين البيانات. قاعدة البيانات الأساسية التي يستخدمها Facebook لتخزين جميع بيانات الوسائط الاجتماعية الخاصة به هي MySQL. قاموا بإنشاء أول محرك قاعدة بيانات ، MyRocksDB ، ثم محرك قاعدة بيانات MySQL ، InnoDB. تم دمج MySQL و Memcache لإنشاء ذاكرة تخزين مؤقت.
قاعدة بيانات Nosql المستخدمة بواسطة Facebook
يخزن Facebook جميع بيانات الوسائط الاجتماعية الخاصة به في MySQL ، قاعدة البيانات الأساسية التي يعتمد عليها.
تُعرف عملية جمع البيانات من قاعدة البيانات بجمعها. يمكن استخدامه بعدة طرق لتخزين البيانات وتحليلها. DBMS هو نظام إدارة قاعدة البيانات الذي يعمل في قاعدة بيانات محددة. لتتبع الأنواع المختلفة من المعلومات التي يشاركها الأشخاص في جميع أنحاء العالم مع بعضهم البعض ، يستخدم Facebook عددًا من قواعد البيانات. يهدف نظام التخزين Cassandra إلى إدارة كميات كبيرة من بنية البيانات. تم إنشاء هذا التطبيق لحل مشكلة العثور على أفضل نتائج بحث Inbox ، والتي نتجت عن نقص مساحة التخزين. تستخدم طريقة التخزين المؤقت هذه الحلول الموجودة في الذاكرة فقط. في هذه الحالة ، يتم توفير الوصول إلى التجمع المشترك للتخزين بسعر مناسب.
كاساندرا مقابل. سحابة Bigtable مقابل. أمازون دينامودب
Cassandra هي واحدة من أكثر خيارات التخزين الخلفية شيوعًا على Facebook ، بعد Google و Amazon فقط. باستخدام Cloud Bigtable ، يمكنك تشغيل أحمال العمل التحليلية والتشغيلية على خدمة قاعدة بيانات NoSQL عالية الأداء. Amazon DynamoDB هي قاعدة بيانات NoSQL بدون خادم وذات قيمة رئيسية يمكن نشرها على أي نطاق وهي مثالية للتطبيقات عالية الأداء.
قاعدة البيانات المستخدمة من قبل Facebook
يستخدم Facebook نظام إدارة قواعد البيانات الارتباطية (RDBMS) لتخزين البيانات وتنظيمها. RDBMS هو نوع من قواعد البيانات يخزن البيانات في جداول ، ويرتبط كل جدول بجداول أخرى حسب العلاقات. يستخدم Facebook نظام RDBMS مصممًا خصيصًا للتعامل مع الكميات الهائلة من البيانات التي ينشئها مستخدمو Facebook.
هناك أكثر من مليار شخص يستخدمون Facebook. يعبر المستخدمون عن أنفسهم ويتفاعلون مع أقرانهم وأصدقائهم من خلال استخدام منشورات الحائط. على الرغم من التعامل مع مئات الملايين من المستخدمين ، فقد اضطر مهندسو Facebook إلى الحفاظ على تشغيل الموقع بسلاسة. يقدم هذا المقال للقراء بعض الأدوات والأساليب التي يستخدمونها لتحقيق أهدافهم. يستخدم Facebook مجموعة متنوعة من الأنظمة للحفاظ على موقعه على الويب ديناميكيًا قدر الإمكان ، مع أكثر من 500 مليون مستخدم. إذا كنت تحتاج إلى قابلية التوسع والتوافر العالي مع الحفاظ أيضًا على أدائك على مستوى عالٍ ، فإن Apache Cassandra يعد خيارًا ممتازًا. يسمح نظام تسجيل Scribe لـ Facebook بتسجيل الدخول لعدة أسباب داخليًا. يمكن استخدام الورنيش كمسرع HTTP لخدمة موازنة التحميل السريع ومحتوى ذاكرة التخزين المؤقت.
ما هو الفيس بوك؟
هذا الكشف عن البنية التحتية لمركز بيانات Facebook له آثار كبيرة لعدد من الأسباب. أولاً ، يوضح التزام Facebook بجودة الخدمة المستمرة. علاوة على ذلك ، يتمتع مركز البيانات بمستوى غير مسبوق من الوصول إلى عمليات Facebook. أخيرًا ، يؤكد على أهمية Autoscale ، الذي يستخدمه Facebook لإدارة حركة المرور وتحسين الأداء.
لماذا يستخدم Facebook Mysql
مع نمو Facebook وانتشار SQL و MySQL في كل مكان ، تطورت إلى تطبيق PHP يستخدم MySQL كقاعدة بيانات ثابتة و memcache باعتباره ذاكرة التخزين المؤقت "lookaside". يستخدم Facebook أكثر من 1000 خادم MySql اليوم لإيواء بياناته ، والتي يشار إليها بقاعدة بيانات عالمية (متعددة المستأجرين). يتم تقسيم قاعدة البيانات بشكل كبير وتكرارها. لتقليل عدد الأجزاء المطلوبة للعثور على البيانات ، يتم الاحتفاظ بجميع البيانات ذات الصلة في جزء. ما هي قاعدة البيانات التي تستخدمها Netflix؟ Oracle هو أكثر أنظمة استمرارية البيانات شيوعًا في مركز بيانات Netflix. يتم استخدام MySQL في البنية التحتية لتوصية الأفلام في بعض المناطق. قواعد البيانات في كلاهما قواعد بيانات علائقية .
قاعدة بيانات Facebook
قاعدة بيانات Facebook هي مجموعة من البيانات التي يتم تنظيمها وتخزينها بواسطة موقع التواصل الاجتماعي Facebook. يمكن أن تتضمن هذه البيانات معلومات حول المستخدمين وأصدقائهم ونشاطهم على الموقع. تُستخدم قاعدة بيانات Facebook لتشغيل ميزات الموقع ووظائفه.
كيف أصبحت Cassandra مخزن البيانات لـ Facebook
بسبب مرونة نمذجة البيانات في SQL ، والاستخدام الواسع النطاق لـ MySQL عند إطلاق FB لأول مرة ، تم استخدام MySQL في البداية كقاعدة بيانات ثابتة ، وتم استخدام memcache كذاكرة تخزين مؤقت "lookaside" للرسم البياني الاجتماعي.
يزن بيتابايت من البيانات حوالي مليون غيغابايت على Facebook كل يوم. يساوي البيتابايت ما يقرب من 300 بيتابايت من البيانات ، وكلها موجودة داخل منشأة Hive.
على الرغم من تخلي Facebook الكامل عن Cassandra ، إلا أنه لا يزال قيد الاستخدام من قبل الشركات الكبرى مثل Twitter و Netflix و Apple ، على سبيل المثال لا الحصر. من ناحية أخرى ، تمتلك DataStax إصدارًا من الأداة متاحًا لمجموعة متنوعة من الشركات الأخرى.
نتيجة لذلك ، بينما لم يعد Facebook يخزن بياناته الخاصة في Cassandra ، تقوم الشركات الأخرى بذلك.
قاعدة بيانات نوصل جديدة
تُعرَّف قاعدة بيانات NoSQL ، التي لا تستند إلى SQL ، على أنها قاعدة تجمع البيانات بطريقة مختلفة عن قاعدة البيانات العلائقية. لا تحتاج قواعد بيانات الجدول إلى مجموعة أعمدة ثابتة في الجداول ، وهي متوافقة مع القياس الأفقي ، ولا تتطلب JOINs مثل قواعد البيانات العلائقية. تختلف أنواع قواعد بيانات NoSQL وفقًا لنموذج البيانات المستخدم.
إنها واحدة من أكثر أنواع قواعد البيانات استخدامًا في الصناعة لمجموعة متنوعة من الأغراض. هناك العديد من المزايا لاستخدام الحوسبة السحابية على قواعد البيانات التقليدية مثل سهولة الاستخدام وزيادة سعة التخزين السحابية وتحسين أمان البيانات. تُستخدم قواعد بيانات NoSQL لمجموعة واسعة من الأغراض ، بما في ذلك سجلات الرعاية الصحية والسجلات المالية وقواعد البيانات الأخرى. تدعم قاعدة بيانات مستندات RavenDB NoSQL معاملات ACID (الذرية والاتساق والعزل والمتانة) وهي قاعدة بيانات NoSQL صلبة تتمتع بقدرات قوية على نوع المستند. باستخدام Couchbase ، يمكنك إنشاء تطبيق للهاتف المحمول وإنترنت الأشياء (IoT). يمكنك أيضًا استخدام ArangoDB للبحث عن الرسوم البيانية والمستندات والبيانات الأخرى وعرضها. تعد OrientDB واحدة من أولى قواعد بيانات NoSQL التي تتضمن دعمًا متعدد النماذج للرسوم البيانية والمستندات.
قد تجد Neo4j خيارًا قابلاً للتطبيق إذا كنت بحاجة إلى مزيد من السياق في قاعدة البيانات الخاصة بك من أجل الحصول على رؤى حول بياناتك. يوفر MongoDB نظامًا أساسيًا مختلفًا يسمى Realm يتيح لك إنشاء تطبيقات الهاتف المحمول واختبارها وإصدارها بسرعة. تم تصميم قاعدة بيانات MarkLogic للتعامل مع قواعد البيانات متعددة النماذج بالإضافة إلى أعباء العمل التي تتطلب قدرات NoSQL. قاعدة بيانات MarkLogic هي منصة قاعدة بيانات NoSQL جيدة لتخزين بيانات العلاقات وتشغيل العمل التحليلي. إذا كنت لا تريد التنازل ، فإن الحل المُدار بالكامل هو الخيار الأفضل.
هندسة قاعدة بيانات Fb
تعد بنية قاعدة بيانات fb أداة قوية يمكنها مساعدتك في تنظيم وإدارة بياناتك. إنه نظام مرن يمكن تخصيصه ليناسب احتياجاتك. باستخدام fb ، يمكنك بسهولة تخزين البيانات واستردادها من مجموعة متنوعة من المصادر.
يستخدم Facebook بنية مكدس مع رسوم بيانية مخزنة مؤقتًا لكل شيء فوق النهاية السفلية لـ MySQL. بمعنى آخر ، هذا يعني أن قاعدة البيانات العلائقية لا تؤدي أفضل من قاعدة بيانات الرسم البياني . بالإضافة إلى أصدقاء الأصدقاء ، يكون إجراء استعلامات معقدة أكثر صعوبة من تنفيذ استعلامات بسيطة مثل "جميع المواقع حول تنسيق معين". الرسم البياني هو الحل الأفضل في هذه الحالة. بالنسبة إلى ما يزيد قليلاً عن مليون مستخدم ، سيتم إنفاق 1.8 ثانية ، بينما سيتم إنفاق 18 ثانية لما يزيد قليلاً عن 100 ألف مستخدم. إذا كان لديك أكثر من مستخدم واحد يقوم بتشغيل نفس الاستعلام ، فضع في اعتبارك أن هذا ليس الاستعلام الوحيد الذي تحاول القيام به. الجواب على السؤال حول كيفية تصميم Facebook لعلاقته مع الأصدقاء هو أنه مصمم جيدًا للغاية. أعتذر بشدة عن حقيقة أنني غير قادر على مساعدتك في تنفيذه.