Bigtable من Google: مخزن البيانات الأكثر استخدامًا والموجّه نحو الأعمدة

نشرت: 2022-12-19

Bigtable عبارة عن مخزن بيانات موجه نحو الأعمدة تم إنشاؤه بواسطة Google. إنه مصمم للتعامل مع كميات كبيرة من البيانات بدرجة عالية من المرونة. تم استخدام Bigtable بواسطة Google لأكثر من عقد ، وهو الأساس للعديد من خدماتها ، بما في ذلك Gmail وخرائط Google و YouTube. في حين أن Bigtable ليس أول مخزن بيانات موجه نحو الأعمدة ، فهو بالتأكيد الأكثر استخدامًا وشهرة.

في هذه المقالة ، سوف نفحص نموذج تخزين NoSQL ثلاثي الأبعاد الذي طورته Bigtable. للتحقق من أنه منظم بشكل صحيح ، سننظر أولاً في كيفية تنفيذه من الناحية النظرية ثم نستخدم عميل Node.js للقيام بذلك. يختلف نموذج التخزين في Bigtable عن الطريقة التي قد تجدها في قاعدة بيانات مماثلة. يمكن ترتيب خلايا متعددة في تركيبة صف / عمود حسب الطابع الزمني لكل خلية. بدلاً من حفظ الخلايا بترتيب عشوائي ، تحتوي كل خلية على القيمة والطابع الزمني لضمان حفظ الخلايا بترتيب مرتب. في هذا المثال ، سنستخدم Node.js وجافا سكريبت عادي لبناء Google Cloud Bigtable. في هذه المقالة ، سنتعرف على كيفية إنشاء مثيل Bigtable جديد باستخدام الشفرة.

نبدأ بخلق بيئة نظيفة ، القراءة والكتابة عليها ، ثم هدمها. عند تشغيل التعليمات البرمجية باستخدام عميل Node.js Bigtable ، قد يتسبب عميل Node.js Bigtable في حدوث خطأ رفض الإذن وإنشاء رابط لتمكين Cloud Bigtable Admin API. يجب عليك أيضًا إنشاء حساب خدمة منفصل في مشروع Google Cloud Platform الخاص بك للتعامل مع دور مسؤول Bigtable. لإنشاء جدول Bigtable ، يجب علينا أولاً إنشاء مثيل لقاعدة البيانات ومجموعة من الجداول. ما عليك سوى تحديد معرف الجدول وعائلة الأعمدة في عميل Node.js للقيام بذلك ، وأنت على ما يرام. يمكن إنشاء صفوف بسيطة باستخدام Bigtable في قاعدة بيانات. الطريقة الوحيدة للاستعلام عن البيانات هي استخدام مفتاح الصف للاستعلام عن صف معين أو مجموعة من الصفوف.

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

بعبارة أخرى ، تعد Cloud Bigtable قاعدة بيانات NoSQL مصممة للتحليلات وأعباء عمل العمليات. نظام قاعدة البيانات هذا عبارة عن نظام هجين عبر الأنظمة الأساسية يستخدم Hadoop بدلاً من HBase ، والذي يستخدم قاعدة بيانات عمودية. يمكن استخدام bigtable السحابي لتشغيل التطبيقات ذات الإنتاجية العالية وقابلية التوسع ، بسعة أقل من 10 ميجابايت.

تعد Apache Cassandra و ScyllaDB و Apache HBase و Google BigTable و Microsoft Azure CosmosDB أمثلة لمتاجر الأعمدة العريضة.

الجداول ليست هي نفسها مثل قواعد البيانات العلائقية من حيث تخزين المفتاح / القيمة. يمكن إجراء المعاملات مرة واحدة فقط ، ولا يتم دعم الصلات.

هل Google Bigtable هو قاعدة بيانات Nosql؟

هل Google Bigtable هو قاعدة بيانات Nosql؟
رصيد الصورة: slidesharecdn.com

Google Bigtable هي قاعدة بيانات NoSQL مصممة لتخزين وإدارة كميات كبيرة من البيانات. Bigtable هي قاعدة بيانات موجهة نحو الأعمدة ، مما يعني أن البيانات منظمة في أعمدة بدلاً من صفوف. وهذا يجعلها مناسبة تمامًا لتخزين البيانات التي تتغير باستمرار ، مثل سجلات الويب أو بيانات الوسائط الاجتماعية. Bigtable أيضًا قابل للتطوير بدرجة كبيرة ، مما يعني أنه يمكنه التعامل بسهولة مع كميات كبيرة من البيانات.

يمكن لقاعدة بيانات NoSQL تخزين مجموعة واسعة من أنواع البيانات وهي مستقرة للغاية. كما أنه يتعامل مع كل من التجزئة والنسخ المتماثل ، مما يضمن توفر قاعدة البيانات بشكل كبير ويمكن الاعتماد عليها. تستخدمه العديد من تطبيقات Google ، بما في ذلك Google Analytics وفهرسة الويب و MapReduce وخرائط Google وكتب Google وسجل بحثي و Google Earth و Blogger.com و Google Code Hosting و Google للتطبيقات التي تتطلب قاعدة بيانات قادرة على التعامل مع مجموعة كبيرة عدد عناصر البيانات ، يعد Datastore خيارًا رائعًا.

في أي ترتيب يتم تخزين البيانات في Bigtable؟

في أي ترتيب يتم تخزين البيانات في Bigtable؟
رصيد الصورة: janusgraph.org

لا يوجد ترتيب محدد يتم فيه تخزين البيانات في جدول كبير. يتم تخزين البيانات بترتيب عشوائي ، مما يجعل من الصعب الوصول إلى بيانات محددة.

Bigtable من Google: ليس فقط لتخزين البيانات

لا يمكن وضع البيانات في أي ترتيب محدد داخل igtable. نظرًا لأن Bigtable عبارة عن قاعدة بيانات موجهة نحو الصفوف ، يتم تنظيم جميع البيانات داخل الصف في أعمدة متبوعة بعمود. نظرًا لأنه يتم تخزين البيانات بترتيب زمني عكسي ، فمن السهل والسريع طلب أحدث قيمة ، ولكن من الصعب ويستغرق وقتًا طويلاً لطلب الأقدم.
يتم الاحتفاظ ببياناتك على Colossus ، وهو نظام ملفات داخلي طويل الأمد من Google ، والموجود داخل مراكز بيانات Google ، كنتيجة لاستخدام Bigtable لـ Colossus. Bigtable مجاني للاستخدام ، ولا تحتاج إلى استخدام مجموعة HDFS أو أي نظام ملفات آخر.
يمكن إجراء استعلام إلى مصدر بيانات خارجي بدون إنشاء جدول دائم مع دمج الأمر: ملف تعريف جدول مع استعلام. يوجد تعريف مخطط مضمن بالإضافة إلى استعلام. ملف تعريف مخطط JSON مع استعلام.

Bigtable مقابل Datastore

هناك بعض الاختلافات الرئيسية بين Bigtable و Datastore. أولاً ، Bigtable عبارة عن مخزن بيانات موجه نحو الأعمدة ، بينما Datastore موجه نحو الصفوف. هذا يعني أنه في Bigtable ، يتم تنظيم البيانات في أعمدة ، بينما في Datastore يتم تنظيمها في صفوف. ثانيًا ، لا يمتلك Bigtable مفهومًا للمعاملات ، في حين أن Datastore يفعل ذلك. هذا يعني أنه في Bigtable ، لا يمكنك التراجع عن التغييرات إلى حالة سابقة ، بينما يمكنك ذلك في Datastore. أخيرًا ، تم تصميم Bigtable لإنتاجية عالية وزمن انتقال منخفض ، بينما تم تصميم Datastore لتوفير مستوى عالٍ وقابلية للتوسع.

ما هو مخزن البيانات السحابي الذي يمكن استخدامه لبناء قواعد بيانات Google السحابية؟ نظرًا لأن Bigtable يدعم أحمال العمل الكبيرة مع أعباء العمل الخلفية المعقدة ، فهو مخصص للمؤسسات والشركات الأكبر حجمًا. على عكس SQL ، التي تستخدم لغة استعلام أكثر تقييدًا GQL ، تقوم مخازن البيانات بإجراء معاملات ACID على مجموعات فرعية من البيانات المعروفة باسم مجموعات الكيانات (على الرغم من أن لغة الاستعلام GQL مفتوحة بشكل أكبر). يعد Google Cloud Datastore و Google Cloud Bigtable خدمتين متميزتين لهما عدد من الميزات المميزة. بالإضافة إلى ذلك ، يمكن أن تساعدك المعلومات الواردة في الصورة أدناه في اختيار مزود الخدمة المناسب لك. الإجابات المذكورة أعلاه ، بالإضافة إلى ما تمت مناقشته في الكتاب المدرسي للبيانات الضخمة وأساسيات التعلم الآلي من Coursea Google Cloud Platform ، ستكون بمثابة دليلي لهذه المقالة.

ما هو الفرق بين Bigtable و Datastore؟

ما الفرق بين مخزن البيانات وقاعدة البيانات؟ تم تصميم كل من bigtable و datastore لمعالجة البيانات كبيرة الحجم والتحليلات ، على التوالي ، بينما تم تصميم مخزن البيانات لبيانات المعاملات عالية القيمة. يُعرف Datastore أيضًا باسم قاعدة بيانات NoSQL لأنه لا يلتزم بمعيار SQL التقليدي ، مما يسمح له بالاحتفاظ بالبيانات بطريقة أكثر مرونة وقابلية للتوسع. ما نوع مخزن البيانات Google Bigtable؟ يخزن نموذج تخزين Bigtable البيانات في جداول قابلة للتوسع بشكل كبير يتم فرزها حسب خرائط المفاتيح والقيم. يتكون الجدول من صفوف ، يصف كل منها كيانًا واحدًا ، وأعمدة ، ولكل منها قيمته الخاصة. هل مخزن البيانات مهمل؟ نظرًا لإصدار Cloud Datastore API v1beta3 ، لم يعد متاحًا. ومع ذلك ، فإن منتج Cloud Datastore يعمل بشكل كامل ويدعمه.

قاعدة بيانات Bigtable

Bigtable هو نظام تخزين موزع لإدارة البيانات المهيكلة المصممة لتناسب حجم كبير جدًا: بيتابايت من البيانات عبر آلاف الخوادم السلعية. Bigtable هي قاعدة بيانات موجهة نحو الأعمدة ، مما يعني أنه يتم تخزين البيانات حسب العمود بدلاً من الصف.

الجدول عبارة عن هيكل متناثر ومكتظ بالسكان به صفوف وأعمدة يمكن أن تصل إلى بلايين الصفوف. يعد bigtable خيارًا ممتازًا لتخزين كميات كبيرة من البيانات بزمن انتقال منخفض. نظرًا لأنه يدعم سرعة نقل القراءة والكتابة العالية بزمن انتقال منخفض ، فهو مصدر بيانات مناسب لعمليات MapReduce. عند استخدام جدول Bigtable ، يتم تقسيمه إلى كتل من الصفوف المتجاورة المعروفة باسم الأجهزة اللوحية لتسهيل الاستعلامات. في نظام ملفات يسمى Colossus ، والذي تستخدمه Google ، يتم تخزين الأجهزة اللوحية بتنسيق SSTable. عقدة Bigtable هي مجموعة فرعية من كل جهاز لوحي ، وهي جزء من مثيل Bigtable. يمكن أن تؤدي إضافة العقد إلى نظام مجموعة إلى زيادة عدد الطلبات المتزامنة التي يمكنه التعامل معها.

يحتوي الصف على مجموعة من إدخالات المفتاح أو القيمة ، وهي عبارة عن مجموعة من عائلة العمود والطابع الزمني للعمود والمفتاح. يعامل Bigtable جميع البيانات بنفس الطريقة: مثل سلاسل بايت خام. نظرًا لأن Bigtable يخزن الطفرات المتسلسلة ويضغطها على أساس منتظم ، فإن عدد الطفرات التي يمكن تخزينها في وقت معين يتطلب مساحة تخزين أكبر. يضغط Bigtable بياناتك باستخدام خوارزمية معقدة مؤتمتة. نظرًا لأن عمليات الحذف هي في الواقع أنواع جديدة من الطفرات ، فإنها تتطلب مساحة تخزين أكبر على المدى القصير. تمكّنها طرق التخزين المملوكة لشركة Google من تحقيق متانة البيانات التي تتجاوز تلك التي تم تحقيقها من خلال النسخ المتماثل ثلاثي الاتجاهات لـ HDFS القياسي. بالإضافة إلى إدارة الوصول إلى جداول Bigtable ، يمكنك إدارة الوصول إلى خدمات Google Cloud الأخرى عن طريق تعيين الأدوار للمستخدمين في قسم إدارة الهوية والوصول (IAM) في مشروع Google Cloud الخاص بك. وفقًا لسياسة التشفير الافتراضية الخاصة بـ Google Cloud ، يتم تشفير جميع البيانات الموجودة في السحابة في وضع الراحة باستخدام نفس أنظمة إدارة المفاتيح القوية التي نستخدمها لبياناتنا المشفرة. باستخدام نسخة احتياطية ، يمكنك حفظ نسخة من مخطط الجدول والبيانات ، ثم استعادة تلك النسخة من البيانات إلى جدول جديد في المستقبل.

Bigtable مقابل كاساندرا

تستخدم Cassandra و Bigtable طرقًا مختلفة لتحديد عقدة المعالجة التي يجب أن تؤدي عمليات القراءة والكتابة. في Cassandra ، يُشار إلى مفتاح القسم بالمفتاح ، بينما في Bigtable ، يُشار إلى مفتاح الصف على أنه مفتاح. يجب مراجعة سياسة موازنة التحميل الخاصة بـ Cassandra من قبل العميل كجزء من العملية.

قاعدة البيانات الموزعة هي تلك التي يشاركها عدة أشخاص. تدمج هذه الشركة مخازن متعددة الأبعاد ذات قيمة رئيسية في نظامها ، مما يسمح لها بمعالجة عشرات الآلاف من الاستعلامات في الثانية (QPS). الهدف من هذه الوثيقة هو المقارنة والتباين بين نظامي قاعدة البيانات. تشمل الميزات الرئيسية لـ Bigtable ما يلي: تم إنشاء نظام تخزين موزع لورقة البيانات المنظمة. إذا حدد Bigtable أن إعادة توازن النطاق مطلوبة لمجموعة بيانات ، فمن السهل على عقدة المعالجة تغيير نطاقات البيانات لأن طبقة التخزين منفصلة عن طبقة المعالجة. يمكن أيضًا استخدام Bigtable لدعم النسخ المتماثل غير المتزامن عبر مجموعات موزعة جغرافيًا لما يصل إلى أربع مجموعات في الطبولوجيا. يرتبط التسامح مع خطأ كاساندرا بمستوى تناسقها القابل للضبط.

من خلال تكوين إستراتيجية طبولوجيا النسخ المتماثل للبيانات ، يمكنك تحديد النسخ الجغرافي المتماثل. بشكل عام ، يتم استخدام إعداد aQUORUM (أو LOCAL_QUORUM في بعض مراكز البيانات). لكي يتم اعتباره ناجحًا ، يجب تلبية إعداد مستوى التناسق للعملية مع استجابة غالبية العقدة المتماثلة لعقدة المنسق. باستخدام تكوينات مركز البيانات والحامل ، فإن النسخ المتماثلة لـ Cassandra قادرة على تحمل المزيد من الضغط عند مقارنتها بالنسخ المتماثلة التقليدية. عند إجراء عمليات القراءة والكتابة ، تحدد الهيكلية العقد اللازمة لضمان الاتساق. يمكن أن يحتوي مثيل Bigtable على مجموعة واحدة أو مجموعة تصل إلى أربع نسخ متماثلة كبيرة. Bigtable و Cassandra هما مخازن بيانات NoSQL وهي عبارة عن مخازن أعمدة واسعة.

يتم استخدام مفتاح صف Bigtable لفرز البيانات العامة في جدول حسب الترتيب. تقوم عُقد Bigtable تلقائيًا بموازنة المسؤولية العقدية لنطاقات المفاتيح ، والمعروفة أيضًا باسم الأجهزة اللوحية ، كجزء من ميزة Bigtable Nodes. لا تفرض خدمة Bigtable للعميل أنواع بيانات الأعمدة التي يرسلها. في Bigtable ، يتم تعيين اسم عائلة لكل عمود في الجدول. على الرغم من حقيقة أن الجداول تحتوي بشكل متكرر على المزيد من مجموعات الأعمدة (الحد الأقصى لعدد الأعمدة لكل جدول هو 100) ، يتطلب كل جدول عائلة أعمدة واحدة على الأقل. يتكون تقاطع مفتاح الصف من خليتين (عائلة عمود مدمجة مع مؤهل عمود). في Cassandra و Bigtable ، توجد طريقة لاختيار عقدة المعالجة لعمليات القراءة والكتابة.

في Cassandra ، يتم تحديد مفتاح القسم ، بينما في Bigtable ، يتم استخدام مفتاح الصف. توفر سياسة موازنة الأحمال التي تدرك مراكز البيانات ، مثل نهج المجموعات المتعددة ، إمكانية تجاوز الفشل. تستخدم كلتا قاعدتي البيانات طريقة مماثلة لإنهاء الكتابة وتم تحسينهما للسرعة. يتم تخزين البيانات في قاعدتي البيانات من خلال ملفات SSTable غير القابلة للتغيير. في Cassandra ، يجب على المنسق إخطار العميل بأن الكتابة قد اكتملت قبل أن تستجيب عدة نسخ متماثلة. لا يمكن تأكيد الكتابة الناجحة في Bigtable إلا من خلال استجابة من عقدة واحدة ، حيث يتم تعيين كل مفتاح صف لعقدة واحدة فقط. قد لا يتم تضمين الخلايا الموجودة في أي من قاعدة البيانات في SSTable المدمج.

بسبب عبارة WHERE في استعلام CQL ، من المستحيل إرجاع أكثر من صف واحد في Cassandra. مطلوب فقط العقدة المسؤولة عن النطاق الرئيسي للاستشارة في Bigtable. في عقدة المعالجة ، من الممكن تحديد كمية البيانات التي يمكن قراءتها. خلال مرحلة الضغط ، يتم دمج SSTables بانتظام ، ويتم تخزين البيانات في Bigtable و Cassandra فيها. لا توجد قواعد تحكم عدد إصدارات الطابع الزمني لكل خلية ، ولكن قد تكون هناك حدود أخرى لحجم الصف. يتم توفير ضمانات استمرارية البيانات من خلال نظام النسخ المتماثل في Colossus. Bigtable ، مثل Cassandra ، لديه واجهة سطر أوامر ومكتبات عملاء للعديد من لغات البرمجة الشائعة.

يتم تعيين جدول SSTable لكل عقدة في Bigtable ، ويتم تقديم البيانات المخزنة فيه بواسطة تلك العقدة. عندما تقوم بتحديد حجم مجموعة Cassandra ، فلن تحتاج إلى حساب النسخ المتماثلة للتخزين كما تفعل مع Bigtable. تعد محركات الأقراص ذات الحالة الصلبة (SSD) أو محركات الأقراص الثابتة (HDD) أكثر أنواع التخزين شيوعًا لمثيلات Bigtable . كما أوضحت كاساندرا ، لا توجد خسارة في كثافة التخزين لتحقيق التسامح مع الخطأ. من الممكن توسيع نطاق Bigtable لتلبية متطلبات عبء العمل بأقل جهد وأقل وقت توقف. على الرغم من وجود أربع مجموعات فقط ، يمكن إنشاء كل مجموعة في أي منطقة سحابية مدعومة حول العالم. توصي Google باختبار أداء Bigtable باستخدام البيانات والاستعلامات التمثيلية لإنشاء مقياس QPS لكل عقدة.

تؤدي Cassandra عددًا كبيرًا من الوظائف الإدارية باستخدام مكونات Bigtable المُدارة. تُنشئ النسخ الاحتياطية الكبيرة نسخًا قابلة للاستعادة من الجدول ، والتي يتم تخزينها ككائنات في المجموعة. تستهلك النسخ الاحتياطية موارد عقد أقل وأقل تكلفة من التخزين السحابي. هناك طريقة أخرى لنسخ Bigtable وهي استخدام تصدير البيانات المُدارة إلى Cloud Storage. تتم معالجة مهام الصيانة الداخلية مثل تصحيح نظام التشغيل ، واستعادة العقدة ، وإصلاح العقدة ، ومراقبة ضغط التخزين ، ودوران شهادة SSL بسلاسة من خلال خدمة Bigtable. تتوفر لوحات التحكم لمراقبة الإنتاجية ومقاييس الاستخدام في المثيلات والمجموعات ومستويات الجدول في صفحة وحدة تحكم Bigtable Google Cloud . يمكنك استخدام لوحة المراقبة لإجراء ضبط متقدم للأداء.

تصف ورقة Bigtable نظام تخزين البيانات الذي يدعم التوسع الهائل. ينقسم كل جدول في البيانات إلى عدد من الأقسام. يمكنك الاستعلام عن الجدول باستخدام مفتاح صف أو باستخدام نطاق من مفاتيح الصفوف. تصف ورقة Bigtable أيضًا طريقة لتوزيع عمل الجدول عبر مجموعة من العقد. Apache Cassandra ، قاعدة بيانات مفتوحة المصدر ، مبنية على بعض المفاهيم من ورقة Bigtable. تستخدم مراكز البيانات بنية العقدة الموزعة ، حيث يتم مشاركة التخزين بين الخوادم التي تخدم البيانات. يتم توفير الوصول إلى نظام تخزين البيانات في Bigtable باستخدام واجهة سطر الأوامر cbt ومكتبات العميل. يتضمن Bigtable عددًا من لغات البرمجة بالإضافة إلى Python ، مما يسهل التكامل مع التطبيقات.

Datastax Astra Cassandra من Google كخدمة: سهولة النشر والتوسيع

تُعد DataStax Astra Cassandra كخدمة من Google خيارًا ممتازًا للتعرف على Cassandra. تجعل واجهة المستخدم الخاصة بمشغل Kubernetes من السهل تكوين وإدارة وتوسيع نطاق نشر Cassandra الخاص بك.

توثيق Bigtable

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

يعد Google Cloud Platform مسؤولاً عن استضافة قاعدة بيانات Bigtable من Google. من السهل استخدام OpenTSDB 2.1 والإصدارات الأحدث عند استخدامه مع الواجهة الخلفية لـ Google. كل ما عليك فعله هو إنشاء مثيل Bigtable ، وإعداد جداول TSDB باستخدام غلاف Bigtable HBase ، وبدء TSDs. عملاء Bigtable حاليًا في مرحلة تجريبية ويخضعون لمجموعة متنوعة من التغييرات.

تخطيط البيانات الفعال من Bigtable

Bigtable مناسب أيضًا لعمليات MapReduce. نظرًا لتخطيط البيانات الفعال ، يمكن لـ MapReduce معالجة كميات كبيرة من البيانات في فترة زمنية قصيرة.