
على مدار الـ 16 عامًا الماضية ، ساعدت شركة Greenplum ، وهي نظام إدارة قواعد البيانات المفتوح المفتوح والمتوازي على نطاق واسع ، مجموعة متنوعة من الشركات على اتخاذ القرارات بناءً على تحليل البيانات.
خلال هذا الوقت ، اخترقت Greenplum في مجالات الأعمال المختلفة ، بما في ذلك: التجزئة ، fintech ، الاتصالات ، الصناعة ، التجارة الإلكترونية. التوسع إلى مئات العقد أفقياً ، والتسامح مع الخطأ ، والكود المفتوح المصدر ، والتوافق التام مع PostgreSQL ، والمعاملات و ANSI SQL - من الصعب تخيل مزيج أفضل من الخصائص لقواعد البيانات التحليلية. بدءًا من المجموعات الضخمة في الشركات العملاقة العالمية ، مثل Morgan Stanley (200 عقدة ، و 25 Pb من البيانات) أو Tinkoff (> 70 عقدة) ، وينتهي بالتركيبات الصغيرة ذات العقدين في الشركات الناشئة المريحة ، تختار المزيد والمزيد من الشركات Greenplum. من الجيد بشكل خاص ملاحظة هذا الاتجاه في روسيا - خلال العامين الماضيين ، تضاعف عدد الشركات المحلية الكبيرة التي تستخدم Greenplum ثلاث مرات.
في خريف عام 2019 ، تم إصدار إصدار رئيسي آخر من قواعد إدارة قواعد البيانات. في هذه المقالة ، سأتحدث بإيجاز عن الميزات الرئيسية الجديدة لبرنامج GP 6.
تم إصدار الإصدار الرئيسي السابق من Greenplum الإصدار 5 في سبتمبر 2017 ، ويمكن الاطلاع على التفاصيل في
هذه المقالة . إذا كنت لا تزال لا تعرف ماهية Greenplum ، فيمكن الحصول على مقدمة مختصرة من
هذه المقالة . إنه قديم ، لكن بنية DBMS تنعكس بشكل صحيح.
يمكن أن يطلق على الإصدار الحالي ، إلى اليمين ، من بنات أفكار جماعية: شاركت العديد من الشركات من جميع أنحاء العالم في التطوير - من بينها Pivotal ، Arenadata (حيث يعمل مؤلف هذا المقال) ، علي بابا.
إذن ما الجديد في Greenplum 6؟
الجداول المكررة
اسمحوا لي أن أذكرك أنه في Greenplum كان هناك نوعان من توزيع الجداول عبر كتلة:
- توزيع موحد عشوائي
- التوزيع على واحد أو عدة حقول
في معظم الحالات ، تم تنفيذ الانضمام إلى جدولين (JOINs) مع إعادة توزيع البيانات بين قطاعات الكتلة أثناء تنفيذ الاستعلام ، وفقط إذا تم توزيع كلا الجدولين في الأصل بواسطة مفتاح انضمام JOIN ، فقد حدث محليًا على مقاطع دون نقل البيانات بين المقاطع.
يوفر GP 6 للمهندسين المعماريين أداة جديدة لتحسين نظام التخزين - الجداول المنسوخة. يتم تكرار هذه الجداول بالكامل في جميع قطاعات المجموعة. سيتم إجراء أي اتصال بمثل هذا الجدول على الجانب الأيمن محليًا ، دون إعادة توزيع البيانات. في الأساس ، تم تصميم الميزة لتخزين الدلائل الضخمة.
مثال على الاستعلام مع جدول منسوخCREATE TABLE expand_replicated … DISTRIBUTED REPLICATED; CREATE TABLE expand_random … DISTRIBUTED RANDOMLY; explain select * from expand_rnd a2 left join expand_replicated a3 on a2.gen = a3.gen
خوارزمية ضغط Zstandard (ZSTD)
تم تقديم خوارزمية الضغط غير المفقودة التي تم تقديمها في عام 2016 من قِبل مطوري Facebook على الفور تقريبًا في قلب فريق Arenadata الخاص بنا ، لأنه مقارنة بـ Zlib (يستخدم افتراضيًا في Greenplum) فإنه يحتوي على نسب ضغط أعلى مع وقت أقل مطلوب للضغط وإلغاء الضغط:
المصدر: cnx-software.comتعد كفاءة الضغط واحدة من أهم معايير نظم إدارة قواعد البيانات التحليلية الحديثة. في الواقع ، يسمح لك بتقليل الحمل على النظام الفرعي للقرص المكلف نسبياً من الكتلة عن طريق تحميل وحدات المعالجة المركزية الرخيصة نسبيا. عند قراءة وكتابة كميات كبيرة من البيانات بشكل متسلسل ، ينتج عن ذلك انخفاض كبير في التكلفة الإجمالية للملكية للنظام.
في عام 2017 ، أضاف فريقنا دعم ZSTD لجداول الأعمدة في Greenplum ، ومع ذلك ، وفقًا لسياسة الإصدار ، لم تدخل هذه المراجعة في الإصدارات الثانوية الرسمية من Greenplum. حتى اليوم ، كان متاحًا فقط للعملاء التجاريين من Arenadata ، وبإصدار 6.0 ، يمكن للجميع استخدامه.
تحسين توسيع الكتلة (توسيع)
في الإصدارات السابقة من GP ، كان لتوسيع الكتلة الأفقية (إضافة عقد جديدة) بعض القيود:
- على الرغم من أن إعادة توزيع البيانات حدثت في الخلفية دون توقف ، فإن إعادة تشغيل النظام كانت ضرورية عند إضافة عقد جديدة
- تتطلب خوارزمية التجزئة وتوزيع البيانات إعادة توزيع كاملة لجميع الجداول أثناء التوسيع - قد تستغرق عملية توزيع البيانات الأساسية ساعات أو حتى أيام بالنسبة للمجموعات الكبيرة بشكل خاص
- أثناء توزيع الجداول في الخلفية ، تم توزيع أي صلة فقط
قدمت Greenplum 6 خوارزمية توسيع كتلة جديدة تمامًا ، وذلك بسبب:
- يحدث التوسع الآن دون إعادة تشغيل النظام - لا يلزم التوقف
- تسمح لك خوارزمية التجزئة المتسقة بإعادة توزيع جزء فقط من الكتل عند إضافة العقد ، أي أن إعادة توزيع الخلفية للجداول تعمل عدة مرات بشكل أسرع
- تم تغيير منطق تغيير دلائل النظام - الآن حتى أثناء عملية التوسعة ، تعمل جميع الاتصالات (JOINs) كالمعتاد - محليًا وموزعًا
الآن امتداد Greenplum هو مسألة دقائق ، وليس ساعات ، وهذا سيسمح للمجموعات باتباع شهية وحدات الأعمال المتزايدة.
أمان على مستوى العمود
من الممكن الآن توزيع الحقوق على أعمدة محددة في الجداول (جاءت الميزة من PostgreSQL):
grant all (column_name) on public.table_name to gpadmin;
JSONB
التخزين الثنائي الأمثل للكائنات من النوع JSON متوفر الآن في GP. اقرأ المزيد عن التنسيق
هنا .
شرح السيارات
ملحق رائع آخر جاء إلى GP من PostgreSQL. تم تعديله للعمل في الوضع الموزع على مجموعة Greenplum بواسطة فريق Arenadata.
يسمح تلقائيًا لكل طلب (أو تم التقاطه بشكل منفصل) في DBMS بحفظ المعلومات حول:
- خطة طلب
- الموارد المستهلكة في كل مرحلة من مراحل تنفيذ الاستعلام على كل قطعة (عقدة) ؛
- الوقت المستغرق
- عدد الصفوف التي تمت معالجتها في كل مرحلة من مراحل الاستعلام على كل قطعة (عقدة).
Diskquota
ملحق PostgreSQL الذي يسمح لك بالحد من مساحة التخزين المتوفرة على المستخدمين والمخططات الفردية:
select diskquota.set_schema_quota('schema_name', '1 MB'); select diskquota.set_role_quota('user_name', '1 MB');
جديد Arenadata DB ميزات التوزيع
إخلاء المسئولية - سيكون هناك بضعة خطوط للإعلان التالي :)
واسمحوا لي أن أذكركم ، نحن Arenadata ، نقوم بتطوير وتنفيذ ودعم منصة تخزين البيانات الخاصة بنا على أساس تقنيات مفتوحة المصدر - Greenplum ، Kafka ، Hadoop ، Clickhouse. عملائنا هم أكبر الشركات الروسية في مجالات البيع بالتجزئة ، والاتصالات ، و fintech وغيرها. من ناحية ، نحن المساهمون في مشاريع مفتوحة المصدر بأنفسهم (إجراء تغييرات على النواة) ، من ناحية أخرى ، نقوم بتطوير وظائف إضافية متاحة فقط لعملائنا التجاريين. كذلك سنتحدث عن الميزات الرئيسية.
Tkhemali رابط الملقب رابط Greenplum -> Clickhouse
في المشروعات ، غالبًا ما نستخدم مجموعة Greenplum + Clickhouse - من ناحية ، يتيح لنا ذلك استخدام أفضل النماذج الكلاسيكية لبناء مستودعات البيانات (من المصادر إلى علامات بيانات البيانات) التي تتطلب العديد من الاتصالات ، بناء جملة ANSI SQL المطوّل ، والمعاملات وغيرها من الرقائق التي لدى Greenplum ، من ناحية أخرى ، لتوفير الوصول إلى نوافذ المتاجر الواسعة المضمنة بأقصى سرعة لعدد كبير من المستخدمين - وليس لدى Clickhouse منافسين في هذا المجال.
من أجل الاستخدام الفعال لمثل هذه الحزمة ، قمنا بتطوير موصل مواز خاص ، والذي يتيح لك المعاملات (أي ، متناسق حتى في حالة معاملة الاستعادة) نقل البيانات من GP إلى KH. بشكل عام ، تستحق بنية هذا الموصل مقالة فنية بحتة منفصلة - في الواقع ، كان علينا داخلنا تنفيذ طوابير متزامنة متوازية مع نظام لاختيار عدد مؤشرات الترابط لكل إدخال وتدفق البيانات بشكل حيوي.
والنتيجة هي سرعة تفاعل رائعة: في اختباراتنا على أقراص SATA النموذجية ، نحصل على ما يصل إلى 1 جيجابت / ثانية لكل إدخال على زوج واحد من خوادم Greenplum - Clickhouse. بالنظر إلى أن مجموعة GP المتوسطة لعملائنا تتكون من 20 خادمًا ، فإن سرعة التفاعل أكبر من كافية.
موصل كافكا
لقد فعلنا نفس الشيء مع التكامل مع وسيط الرسائل Kafka - غالبًا ما نواجه مهمة التحميل الزائد للبيانات من Kafka إلى Greenplum في وضع الوقت الفعلي القريب (ثواني أو عشرات الثواني). ومع ذلك ، فإن بنية الموصل لكافكا مختلفة. الموصل عبارة عن مجموعة من العمليات المتزامنة المنفصلة (التي تم إطلاقها في Docker) مع الاكتشاف التلقائي ، من ناحية ، هم مستهلكو كافكا ، ومن ناحية أخرى ، يقومون بإدراج البيانات مباشرة في مقاطع Greenplum. يمكن للموصل العمل مع سجل كافكا ويضمن الاتساق التام للبيانات المنقولة حتى في حالة تعطل الأجهزة.
نظام الإدارة والرصد
يفرض تشغيل النظام في الإنتاج مطالب كبيرة على نشر المجموعة وتحديثها ومراقبتها. من المهم أن يكون كل ما يحدث في DBMS شفافًا للعمليات ومتخصصي DBA.
يوفر نظام إدارة ومراقبة Arenadata Cluster Manager (ADCM) لمتخصصي العمليات جميع الأدوات التي يحتاجونها. في الواقع ، يتم نشر وتحديث مجموعة Greenplum بنقرة زر واحدة في الواجهة الرسومية (تتم جميع أنظمة التشغيل والخدمات وتثبيت القرص وإعدادات الشبكة تلقائيًا) ، بالإضافة إلى ذلك ، تحصل على كومة مراقبة مكوّنة بالكامل ، وعلى استعداد للتكامل مع أنظمة الشركة. بالمناسبة ، لا يمكن لإدارة Arenadata Cluster Manager إدارة Greenplum فحسب ، بل أيضًا Hadoop ، و Kafka ، و Clickhouse (يلزم تجميع هذه الخدمات لدينا. يمكن تنزيل إصداراتها المجانية ، مثل ADCM نفسها ، مجانًا تمامًا على موقعنا على
الويب ، فقط عن طريق ملء النوافذ المنبثقة).
استنتاج
إذا كنت تستخدم Greenplum 5.X ، فإنني أوصي بالتفكير في ترقية نظامك إلى الإصدار الحالي 6.X في الأشهر 2-3 القادمة.
إذا كنت لا تستخدم Greenplum حتى الآن ، انضم إلينا! نحن ، Arenadata ، مستعدون دائمًا لمساعدتك في ذلك.
مراجع
Greenplum على جيثبقناة Greenplum Russia Telegram - اطرح أسئلتك مباشرة على مستخدمي Greenplum
Greenplum 6 الوثائق