الخميس، 4 ديسمبر 2014


ظهر هذا المفهوم منذ عدد بسيط من السنوات، وهو معني بتخزين البيانات في الأعمدة بدلا من الصفوف. على المستوى الشخصي فأنا قد تركت البرمجة منذ سنوات عديدة، ولايمكنني الحكم على الموضوع من خلال تجربة عملية اقوم بها بنفسي.
بدأت معرفتي بهذا المفهوم من خلال رسالة على البريد الألكتروني من شركة memsql وهي المالكة لاسم النطاق Columnardatabase.org . واحد المروجين لهذا المفهوم.

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

تقريبا اهم ميزة لهذه الأنظمة هي كفاءتها في التعامل مع وسائط التخزين.

اهم عيوب انظمة قواعد البيانات المعتادة (Row based DB)، ان قاعدة البيانات لابد ان تقرأ كامل الصف حتى تستخرج منه احد معاملاته (بيانات عمود ما)، اي query ستقوم بكتابته سينهي غالبا بقراءة معلومات اكثر من المفروض عليه قراءته. ومن هنا تأتي فكرة قواعد بيانات الأعمدة، حيث ان الفارق الجوهري بينها وبين قواعد بيانات الصفوف، هو ان كل الأعمدة في جدول ما لا تخزن بشكل متتالي في صفحات البيانات. هذا بدوره يلغي كمية كبيرة من البيانات التعريفية Meta Data والتي يتم تخزينها في صفحة بيانات. الأمر الذي يجعل مكون ادارة البيانات Data management component في انظمة قواعد بيانات الأعمدة قادرة وبشكل كبير على تصفح العديد من اعمدة البيانات بشكل اسرع واكفأ.

انظمة قواعد بيانات الأعمدة تخزن البيانات وتنظمها على شكل اعمدة بدلا من صفوف، وبالتالي حال البحث عن اي معلومة يتم الوصول لها وحدها وليس لكامل البيانات الموجودة في الصف. اما عن الفهرسة Indexing فإن قيم البيانات نفسها الموجودة في كل عمود هي التي تشكل الفهرس، الأمر الذي يخفض عمليات I/O ويزيد من كفاءة قاعدة البيانات. ويجعل هذه الأنظمة مناسبة جدا لعمليات ضغط البيانات.

الا ان انظمة قواعد بيانات الأعمدة لازال يواجهها العديد من التحديات منها صعوبة عمل تراكيب مختلفة من العلاقات relational structure ، ايضا تواجه مشاكل كبيرة في حال تضخم قواعد البينات، ولذلك فهي -حتى الآن - مناسبة لقواعد البيانات الصغيرة التي لا يتجاوز حجمها بضع عشرات من الجيجا بايت.

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

0 comments:

إرسال تعليق

Subscribe to RSS Feed Follow me on Twitter!