عرض قاعده بيانات F1 لقسم الإعلانات في Google من ورقه VLDB

انقر علي "أعلاه"يطير مجموع الدردشة IT",اختر اتباع الرقم العام

يستغرق حوالي 20 دقيقه لقراءه النص.


وفي الاونه الاخيره ، تمت قراءه بعض ورقات VLDB بسبب عملها. ويشمل ذلك تحليلا لقاعده بيانات F1 المنشورة حديثا في Google. ليس من السهل دائما قراءه أوراق Google. لان جوجل وقال دائما نصف مخباه نصف. هذه الورقة هي مفتوحة نسبيا للكتابة ، أو لا يمكن تجنب ابتذال.


هذه الورقة هي متابعه ل2013 VLDB f1 الخاص ب Google: وهي قاعده بيانات SQL الموزعة التي تقدم صوره شامله لكيفيه تطور قاعده بيانات Google F1 علي مر السنتين. وتناقش هذه الورقة بالتفصيل في هذه الورقة.


F1 والمنافسين ' الخلفية

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


ثم ، في 2014 ، VLDB جوجل نشرت ميسا ، وهو نظام مستودع البيانات العالمية لمراكز البيانات متعددة. أصبح ميسا النظام الثاني في F1's التحام الأساسي. وقد تطورت F1 إلى يومنا هذا كنظام التي يمكن ان تدعم البيانات الاتحادية الاستعلامات للبيانات من ملفات CSV إلى BigTable إلى المفك.


وبعد سنوات عديده من التطوير ، شكلت غوغل أيضا عددا من أنظمه معالجه البيانات. ولنظم قواعد البيانات هذه علاقات تنافسيه قويه. وبعبارة أخرى ، يمكنني الاستيلاء علي عميل منك ، وفريقي سيكون أكبر. F1 ، كنظام متزايد داخل جوجل ، هو أيضا الفائز في هذه العلاقة التنافسية.


فهم التاريخ وخدمه الجماهير من قواعد البيانات هذه مهمة بالنسبة لنا للحصول علي فهم أعمق لدعم الاعمال والخيارات التقنية لأنظمه F1. لذلك أدناه انا وفهم F1 هذه الورقة المتعلقة ببعض من أنظمه قاعده بيانات Google الأخرى للقيام مقدمه.


تم وضع F1 أصلا لتحل محل الخلية العنقودية الابن مع قسم الإعلانات جوجل. مفتاح البراغي ، كالنظام الأساسي ل F1 ، هو مستوي تخزين يدعم معالجه المعاملات (يتم تنفيذه باستخدام مرحلتي التامين) و F1 موجود كمحرك حوسبة.


ولكن بعد ان وضعت فريق المفك نفسه طبقه التخزين ، بدات لجعل الاستعلامات البيانات وتطوير نظام الاستعلام الداخلي يسمي دنه. كيف تطورت المفك إلى ورقه نظام SQL كامله نشرت في SIGMOD 2017. وادي ذلك إلى علاقة تنافسيه بين F1 والمفك. حتى يومنا هذا ، لا تزال المنافسة بين الفريقين داخل جوجل شرسة.


Dremel هو نظام مستودع البيانات في المنزل لجوجل. قامت Google بتسويق Dremel ، المسمي "الاستعلام الكبير". يستخدم dremel نموذج بيانات شبه منظم مع تنسيق يستند إلى العمود ، الجيل الأول منه هو كولونيو.


الجيل الثاني شكل Capactior قدم بعد التسويق. كلا التنسيقين هما مصادر بيانات خارجيه مدعمه بواسطة F1. نجاح دريمل غير عادية داخل جوجل. حتى الآن ، لا يزال BigQuery أنجح منتج بيانات كبير علي سحابه Google.


Flume هو ترقيه إلى اطار العمل الداخلي للحد من خرائط Google. وضعت أصلا فقط علي جافا ، وكان يسمي أصلا جافا فلومي ، وفي وقت لاحق كانت متاحه أيضا في C. غيرت flume نموذج التطوير للخريطة والتقليل المكتوب في اطار MapReduce ، وإدخال المزيد من واجات برمجه التطبيقات عاليه المستوي ، والتي تم تطويرها مثل سبارك.


في بيئة التنفيذ الاساسيه ، تغيرت فلومي أيضا الوضع الجامد في MapReduce لدعم أنماط مثل الخريطة-تقليل-تقليل. ميزته هي انه مرن جدا لكتابه مجموعه متنوعة من أنابيب معالجه البيانات ، والعيب هو أشياء بسيطه أيضا ان اكتب الكثير من التعليمات البرمجية ، وليس ببساطه مثل SQL.


F1's تحديد المواقع التجارية

يدعم نظام F1 ثلاث طرق مختلفه للاستعلام عن البيانات:

1. الاستعلامات التي تؤثر فقط علي عدد قليل من السجلات من نوع OLTP

2. استعلامات OLAP منخفضه الكمون تتضمن كميات كبيره من البيانات

3. علي نطاق واسع ETL بيللاين


لا توفر ورقه F1's تحليل هذه الطرق استعلام بيانات مختلفه ثلاثه. انا الجمع بين 2013 F1 ورقه والخلفية الأخرى لتحليل أسباب ثلاثه أساليب الاستعلام بيانات مختلفه من أنصار F1.


نوع OLTP من الاستعلام نشات من F1'S الهدف الأصلي: لاستبدال التكتلات الخلية في الاعمال التجارية الإعلان. وفقا لورقه F1 2013 ، ودعمها OLTP محدوده. استعلام OLTP في نظام F1 قراءه العديد من العمليات متبوعا بعمليه كتابه 0 إلى 1. قوه معالجه المعاملات من OLTP من نظام F1 يعتمد علي دعم المفك الاساسيه لمعالجه الأشياء.


في الورقة 2018 ، لا تقدم المؤلفين وصفا مفصلا لنوع OLTP من الاستعلامات. ومع ذلك ، وفقا لتحليل الحس العام ، لا يمكن فصل مشغل استعلام عديم الجنسية الذي يحتاج إلى دعم معالجه المعاملات من دعم التخزين الأساسي للأشياء. لذلك محرك F1 من الواضح لا يمكن القيام بمعالجه المعاملات لأي مصدر البيانات التي يتصل بها. النظر إلى ان المفك نفسه بتنفيذ مشغل استعلام بيانات ، هناك دعم لمعالجه الأشياء. في هذا الصدد ، F1 والمفك لديها علاقة تنافسيه واضحة.


يتم وضع الكمون المنخفض واستعلامات OLAP التي تتضمن كميات كبيره من البيانات مثل BigQuery. ولتنفيذها أيضا تنفيذ BigQuery ، وذلك أساسا من خلال طريقه خط الأنابيب للاستعلام وإرجاع نتائج البيانات.


وفقا لتحليل هذه المادة ، الذي يعرض نفسه والمنافسين الآخرين داخل جوجل ، تم نقل الاعمال إلى Bigquery أو F1 بعد نظام جوجل يسمي تينزينغ إغلاق في السنوات الاولي. يمكننا ان نفهم ان BigQuery و F1 هي المنافسين في هذا النوع من الاستعلام. في الممارسة العملية ، BigQuery أكثر نجاحا.


في الأيام الاولي ، داخل جوجل ، وقد حققت خط أنابيب ETL علي نطاق واسع إلى حد كبير من خلال سلسله من البعثات MapReduce. (مع (فلومي (هذه الشركات انتقلت إلى (فلومي ولكن Flume هو نظام سيئه للغاية ، وانه ياخذ الكثير من التعليمات البرمجية لجعل الاستعلام بيانات بسيطه. في هذه الورقة ، يشير المؤلف اشاره صريحه إلى F1's الناجحة استبدال فلومي في بعض الشركات.


الاقتران مع التحليل الوارد أعلاه ، يمكننا ببساطه ان ناتي إلى الاستنتاج التالي. الاعمال OLTP في F1 الداخلية في جوجل هو في المقام الأول الهدف من F1's السنوات الاولي. F1 يعتمد علي دعم المفك ل OLTP. ثم وضعت المفك نفسه محرك مماثل. هذا لا يتعارض مع ما سمعت عن F1 ، والذي يستخدم في المقام الأول من قبل قسم الإعلان ، وقسم غير الإعلان ، والذي يستخدم المفك بشكل كبير.


في استعلامات OLAP منخفضه الكمون ، المنافسة الرئيسية ل F1 هي BigQuery. مع نجاح BigQuery اليوم. F1 يجب ان يكون فقط قاعده الاعمال في قسم الإعلانات المنزلية.


Flume هو نظام مختلط المتابعة داخل جوجل. أفضل من MapReduce ، ولكن ليس من السهل استخدامها. F1 هو قوه في الاعمال ETL ويمكن التقاط جزء من السوق. من وجهه نظر الهندسة المعمارية التقنية ، وكيفيه تحقيق أفضل استخدام ETL هو الورقة 2018 فريق F1 التكنولوجيا الأكثر اهميه.


هندسه النظام F1's

الصورة التالية هي الرسم التخطيطي لبنيه النظام F1 في الورقة 2018:

 

                            

الصورة التالية هي الرسم التخطيطي لبنيه نظام F1 في الورقة 2013:



يمكن نشر أنظمه F1 إلى مراكز بيانات مختلفه ، ولكن كل مركز بيانات لديه مجموعه كامله من مجموعات الحوسبة. تتكون الكتلة من 1 F1Master. وهي خدمه منتخبه غير أحاديه العقدة ، فريدة من نوعها لكل مركز بيانات. هو في المقام الأول لرصد تنفيذ الاستفسارات وأداره جميع F1Servers. يتكون النظام من عده ملقمات F1 بالفعل معالجه طلبات الاستعلام.


وهناك أيضا تجمع عامل F1. عندما يحتاج الاستعلام إلى تنفيذه في نفس الوقت ، يتم استخدام هؤلاء العمال لتنفيذ استعلام متوازي ، ويصبح خادم F1 المطابق رمز الاستعلام. دعات عامله عبده في ال 2013 نظامه بنيه مخططه. انه مجرد اسم مختلف المسؤوليات الفعلية لخادم F1 وقال أكثر وضوحا في ورقه 2013.


يحتوي النظام أيضا علي خدمه كتالوج وملقم UDF. هذه الأشياء هي بالنسبة لأضافه المهندسين المعماريين النظام في ورقه 2013. خدمه الكتالوج هي خدمه بيانات تعريف تعرف البيانات في مصادر بيانات مختلفه كمظهر. يمكننا ان نري انه في هيكل النظام من 2013 ، المفك فقط ، ولكن في ورقه 2018 ، يتم تنويع مصادر البيانات. لذلك خدمه كتالوج هو خدمه ضرورية لتصبح مصدر متعدد البيانات الاتحادية محرك الاستعلام في تطوير F1.


UDF الخادم هو شيء جديد F1 سوف تكشف في ورقتها 2018. أهميته الرئيسية هي لتحقيق الدعم لل ETL واستبدال فلومي. سنغطيها بمزيد من التفصيل لاحقا

وضع الاستعلام F1's

يمكن تقسيم أنماط الاستعلام F1's بسهوله إلى تفاعليه وغير تفاعليه. مزيج من 2013 و 2018 ورقه. التنفيذ التفاعلي هو في المقام الأول للاستعلامات التي تؤثر فقط علي عدد قليل من السجلات من نوع OLTP والاستعلامات OLAP الكمون المنخفض التي تتضمن كميات كبيره من البيانات. ينفذ النظام علي كلا النوعين من الاستعلامات من خلال خادم F1.


يتم إنشاء خطه التنفيذ بعد ملقم F1 برمجيا ويقوم بتحسين الاستعلام. هناك نوعان من خطط التنفيذ: تنفيذ ترابط واحد والتنفيذ المتوازي. يتم تنفيذ السابق مباشره بواسطة الملقم. يصبح الملقم الأخير الاستعلام المتوازي بأكمله ، الذي تم تنفيذه بواسطة عامل استدعاء RPC. تناقش هذه الورقة بعض القرارات المتعلقة باستراتيجية تقسيم النظام وكيفيه تحسين أداء النظام ، وذلك أساسا لانحراف البيانات ونمط عدم الوصول. وهذه الممارسة شائعه في قواعد البيانات الموزعة. يمكن للأشخاص المهتمين قراءه الورقة. لن تبدا بعد الآن

ويلاحظ المؤلفون ان التنفيذ التفاعلي مستقر لمده ساعة تقريبا أو انه قد يفشل. وفقا للورقة ، F1's تنفيذ التفاعل الموزع ليس لديه التسامح مع الخطا نفسه ، ولكن العميل F1 لديه وظيفة أعاده المحاولة. لنظام ناضجه ، وهذا هو إلى حد ما من المؤسف.

يتم استخدام التنفيذ غير التبادلي بشكل أساسي للاستعلامات طويلة الوقت. وهي تعتمد علي اطار عمل ماب للحد من الصور. يتم تحويل الاستعلام برمجيا إلى خطه استعلام وتخزينها في "الاستعلام القابل للتسجيل". الاستعلام التسجيل هو قاعده بيانات المفك الموزعة عالميا عبر مراكز البيانات التي تتعقب بيانات التعريف للاستعلامات في كافة الأوضاع الدفعيه. هناك أيضا خدمه موزع استعلام مركز البيانات العمومية العالمية ، الذي يقوم بتعيين خطط الاستعلام إلى مركز بيانات يقوم بتنفيذ الاستعلام باستخدام اطار عمل MapReduce.

在MapReduce的查询框架里,F1的优化引入了Map-Reduce-Reduce的模式,这个和Map-Reduce的框架不符合。F1团队的解决方式是把这个翻译成Map-Reduce后跟一个Map<identity>-Reduce任务。这显然不是最高效的办法。由此可见,长查询通过MapReduce来执行并非最有效的方式。而F1也无法摆脱执行框架的限制。


F1's محسن

يظهر هيكل محسن F1 أدناه. هذه عمليه تحسين الاستعلام الكلاسيكية أكثر. يحصل المحسن علي AST من المحول البرمجي كادخال ، أولا تحويله إلى خطه استعلام منطقيه ، وبعد ذلك ، بعد التحسين المنطقي ، يقوم بإنشاء خطه استعلام فعلي. يتم أخيرا إنشاء خطه الاستعلام هذه بواسطة منشئ خطه التنفيذ لإنتاج خطه تنفيذ.

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


محسن F1 ككل هو محسن بدائية نسبيا. يعتمد المحسن بأكمله بالبالكامل علي القاعدة ، بدون تحسين قاعده التكلفة. بالمقارنة مع نظم مستودع البيانات المشتركة ، وهذا يتطلب الكثير من التحسن.


قابليه التوسعة ل F1

يدعم F1 الدالة المعرفة من قبل المستخدم (UDF) ، داله التجميع المعرفة من قبل المستخدم (UDA) ووظيفة قيمه الجدول (TVF). هذه هي الملحقات المعتادة داخل نظام قاعده البيانات. يمكن تطبيق هذه الملحقات المعرفة من قبل المستخدم باستخدام البرامج النصية SQL أو LUA. أساسا ، هذه التطبيقات هي التطبيق الكلاسيكي في قاعده البيانات.


ولكن ما هو أكثر خاصه في F1 هو إدخال uDF خادم الابن. وهي تستخدم أساسا لتنفيذ TVF أكثر تعقيدا. خادم UDF هو خدمه يمكن تنفيذها بأي لغة ، ويوفر F1 مع واجهه الدالة TVF. بالاضافه إلى إرسال الإدخال المطابق وتلقي النتائج اثناء التشغيل ، توفر هذه الواجات F1 معلومات اضافيه لبرنامج التحويل البرمجي وللمحسن عند الاستعلام عن التحويل البرمجي. علي سبيل المثال ، ما هو مخطط الإخراج ، ما إذا كان يمكن تقسيم TVF بعد كل قسم وحده لتنفيذ وهلم جرا.


الخادم UDF لديه القليل جدا من الحبر في المقالة ، ولكن في رايي هذا هو الفرق الأكثر اهميه بين 2018 ورقه F1 وورقه 2013. مع خادم UDF ، منطق ETL معقده ممكن. ملقم UDF أيضا يحل المشكلة القديمة مجال قاعده البيانات مع UDF: أداره الموارد. إذا انا ذاهب لاختيار واحده من ألمع الأشياء ، واعتقد انه من الخادم UDF.


واعتقد ان المطورين F1 جوجل يجب ان تكون علي بينه جيده من اهميه الخادم UDF ، ولكن هناك القليل أكثر للكتابة عنها في الورقة. ومن المستحيل القول ان هذا قد يكون متعمدا.


استخدام خادم UDF يجعل من الممكن F1 لدعم المعقدة ETL. وفي الوقت نفسه ، يمكن تطبيق منطق معالجه البيانات القياسية في ETL مباشره عن طريق كتابه SQL. في نفس الوقت ، لان UDF الملقم خدمه منفصلة ، تم أيضا حل مشاكل أداره الموارد المشتركة UDF.


تلخيص

2018 VLDB F1 ورقه عن الهندسة المعمارية وتطوير قاعده بيانات F1 في Google. لقد تطورت F1 الآن إلى مشغل استعلام بيانات يدعم قدرات بيانات متعددة لمصادر بيانات متعددة. وتركز الاستعلامات الفئة OLTP في المقام الأول علي المهمة الاوليه ، واستبدال mySQL. الاستعلامات OLAP منخفضه الكمون بشكل رئيسي تتنافس مع Dremel. وهدفها في دعم المعقدة ETL يهدف في المقام الأول في Flume.


F1 لديه ثلاثه أوضاع التنفيذ: ترابط واحد ، التنفيذ التفاعلي الموزع ، والتنفيذ غير التبادلي استنادا إلى MapReduce. ومن المؤسف ان التفاعلات الموزعة أداء دون فشل-يتعافى. أداء التنفيذ غير التفاعلية استنادا إلى MapReduce له مساحة لمزيد من التحسين.


محسن F1 هو محسن قاعده بيانات كلاسيكية ، فقط الأمثل من قاعده قاعده ، وليس الأمثل من قاعده التكلفة. لذلك انا لا اعتقد ان التحسين مثل الانضمام-أعاده ترتيب يمكن القيام به. هذا المحسن هو بسيط جدا ولديه الكثير من المجال للتحسين.


من حيث قابليه التوسعة ، فان أساليب التوسيع UDF و UDA و TVF هي كافة ملحقات قواعد البيانات الكلاسيكية. خادم UDF هو اختراع مهم جدا. اعتقد ان كل الأشياء في هذه المقالة التي لها قيمه مرجعيه كبيره. ولكن يبدو ان هذه المقالة أغفلت هذه القطعة عمدا.


مقارنه الهندسة المعمارية F1's إلى 2013 ، مع أضافه خدمه بيانات التعريف ، كتالوج. كتالوج يلعب دورا هاما في مشهد بحيرة البيانات. ولا بد من اكتشاف البيانات وتقاسمها. وعندما يتعلق الأمر باداره الحقوق ، فان دور خدمات البيانات الوصفية العالمية لا يمكن الاستغناء عنه. يتطلب تحسين قاعده التكلفة أيضا الخدمات المستندة إلى بيانات التعريف. ومن المؤسف جدا ان F1 لم يذكر الإضافات الجديدة إلى هذه الورقة 2018.



مرحبا بكم في المخطط الصحفي الطويل لمتابعه رقم الاشتراكيطير مجموع الدردشة ITلمشاهده المزيد


المواد ذات الصلة:

بعيد النظر وشبه مقلق

كيف تعرف ما هو القائد الذي يفكر بك حقا

الاتصالات tcp المصافحة ، علي قدم المساواة مع المال والموت

أهم الأمور القيادية

لا تكن عملا أميا

كنس البيت وكنس العالم

ما يفتقد أكثر من الطلاب لرمز المزارعين

مرحبا بكم في كوكب المعرفة الإجمالي.