دکتر مصطفی امینی
بحثی که امروز قرار است با هم داشته باشیم بیشتر حول موضوعات فنی مدیریت داده است که بیتوجهی به آنها در کیفیت بازیابی دادهها نمایانگر میشود. سازمانها اغلب هزینههای فراوانی برای زیرساختهای سخت افراری فناوری اطلاعات خود صرف میکنند تا یک توان ذخیره سازی و سرعت بازیابی قابل قبولی داشته باشند اما چه بسا با تمام هزینههای صرف شده خروجی مطلوبشان را دریافت نمیکنند. یکی از دلایل اصلی بروز چنین مشکلی به تنظیمات نادرست لایه های نرم افزاری همچون تنظیمات پایگاه داده بر میگردد و ممکن است اشکالی در لایه سختافزار وجود نداشته باشد. به بیان بهتر ، شرکتها برای حل مسائل مرتبط با کیفیت بازیابی اطلاعات را در لایه سخت افزار پیگیر می کنند در حالی که جواب آن در لایه نرم افزار و طراحی است. چنین مسئلهای ملاحضاتی از جنس مدیریتی با خود به همراه دارد که موضوع بحث امروز ما است. البته در بحث عملیات ذخیره سازی و نگهداری پایگاه های داده یکسری ملاحظات از جنس سیاستگذاری و حکمرانی نیز مطرح می شوند که عموماً به موضوعات مرتبط با تعیین و تعریف شاخصها (همچون تعریف شاخص های عملکردی، کیفیت سرویس و کیفیت تجربه و سایر موارد) مرتبط هستند.
موضوع گفتگوی ما در نسخه اول مدل موسسه داما (DAMA-DMBOK)، با نام مدیریت عملیات داده یا Data Operation Management ذکر شده است که در نسخه دوم این مدل این موضوع با عنوان مدیریت عملیاتها و ذخیرهسازی داده آمده است و به مباحثی همچون تنظیم پایگاه داده با هدف رسیدن به کارایی و سرعت بالا میپردازد. طبیعتا بخشی از این موضوعات با دیسیپلین معماری داده و مدیریت داده های اصلی ارتباط دوسویه دارند اما غالب مباحث مطرح در دیسیپلین ذخیره سازی و عملیات داده موضوعات فنی-مدیریتی هستند. در نسخه اول، داما بیشتر به پایگاه دادههای ساخت یافته یا همان رابطهای پرداخته شده اما نسخه دوم، اشاراتی به پایگاه داده غیرساختیافته هم دارد و تصمیماتی که در این نوع پایگاهها باید گرفته شود. مباحث مطرح شده در مدل مدیریت داده داما عموما پاسخ به «چه چیز»ها است و از «چرایی و چگونگی» انجام کارها صحبتی نکرده است.
موسسه داما هدف اصلی بحث مدیریت عملیاتهای داده را طراحی، پیادهسازی و پشتیبانی از دادههای ذخیرهسازی شده برای بیرون کشیدن حداکثر ارزش از آنها مطرح میکند. یکی از موضوعات مهمی که موسسه داما ذیل موضوع مدیریت عملیات داده مطرح میکند، انتخاب تکنولوژی پایگاه داده است. متخصصانی که در حوزه دادههای عظیم کار میکنند، در گام ذخیرهسازی دادهها، همواره با این مسئله روبرو هستند که متناسب با ماهیت داده و استفاده های آتی از آنها از چه پایگاههای دادهای باید استفاده کرد؟ و این پایگاههای داده را چگونه باید با یکدیگر متصل کرد تا سیستم یکپارچه شده ، کارایی قابل قبولی داشته باشد؟. «کارایی قابل قبول » یک عبارت کیفی است و می بایست به یکسری شاخص های کمی قابل اندازه گیری تبدیل شود و برای همه این شاخص ها یک مقدار سقف و کف معین گردد. تعریف این شاخصها و تعیین مقادیر کف و سقف آنها می بایست مبتنی بر محدودیتها فنی و انتظارات کسب و کار صورت پذیرد. به همین خاطر مسئولیت تعیین این موارد به شورای حکمرانی داده می سپارند.
یک نگاه اولیه این هست که همه دادههای از یک نوع، به یک نوع پایگاه داده و یک تکنولوژی نیاز دارند. این طرز تفکر بالاخص در حوزه داده های عظیم، اشتباه است. اما آنهایی که در پروژههای عملیاتی و واقعی داده های عظیم (Big Data) فعالیت داشتند، وابسته به نوع خروجی و کاربرد مورد نظرشان از دادهها، از چندین پایگاه داده (یعنی انواع پایگاه داده در لایه های مختلف) استفاده میکنند.
مهندس علی رحمانی
خوشحالم از اینکه در این جلسه شرکت میکنم. مطرح شدن چنین مباحثی در جلساتی اینچنین فرصت خوبی است تا صحبتهایی که فقط در داخل شرکتها گفته میشود در جایی خارج از شرکتها هم به بحث و اشتراک گذاشته شود. به طور کلی سه نقش (role) مشخص در محیط های دادهای داریم که در دنیا بسیار شناخته شده است و مبدع آن آمریکاییها بودند اما در ایران چندان استفاده نمیشوند. موقعیتهای شغلی افرادی که در این حوزه کار میکنند عبارتند از Data Architect, Data Scientist, Data Engineer و دنبال سوپرمن نیستند. آنچه ما امروز در مورد آن صحبت خواهیم کرد نقش Data Engineer است. کاری که Data Engineer انجام میدهد همان مدیریت عملیات داده است. روش کار Data Engineer به اینصورت است که ابتدا سعی میکند موضوع را بفهمد، سپس Data Structure های مورد نیاز موضوع را تشخیص دهد و انتخاب کند، سپس متناسب با آن Data Structure ها ابزار مناسب را انتخاب کند. بعد از انتخاب ابزار به یکپارچه سازی آنها میاندیشد.
در ایران متاسفانه دیده میشود برخی متخصصان حوزه علاقه شدیدی به برخی ابزار نشان میدهند و بقیه ابزارها را کنار میگذارند. در کشور آمریکا اینطور نیست و بعد از شناخت موضوع به سراغ ساختمان داده میروند و انتخاب ابزار بعد از تحلیل ساختمان داده و متناسب با آن انتخاب میشوند. این اشتباه حتی در کشورهای دیگر هم تکرار میشود و دیده میشود که متخصصان درگیر اسامی و برند های معروف میشوند. آنچه در کشور آمریکا در رابطه با ابزار اهمیت دارد بلوغ آن ابزار است، اینکه یک ابزار چقدر توانسته در محیط های عملیاتی امتحان خودش را پس دهد و اینکه چه مقدار متخصص آن را پشتیبانی و پیگیری میکنند و هرگز گول ظواهر، قابلیتها، بنچمارکها و ادعاهای تولیدکنندگان را نمیخورند.
دو اصل را Data Engineer ها باید مدام در موردش فکر کنند و برای آنها راهکار داشته باشند و آنها عبارتند از Scalability و Performance. در مورد Scalability من شرکت فیسبوک را مثال میزنم. این شرکت کار خودش را در سال ۲۰۰۴ با ۱ میلیون کاربر شروع کرده است و تا آخر سال ۲۰۱۷ این تعداد کاربران به ۲ میلیارد نفر رسید با این همه در این ۱۳ سال هیچ گزارشی مبنی بر Downtime فیسبوک گزارش نشده است. قطعا اون افرادی که فیسبوک را پایه ریزی کردند فکرش را هم نمیکردند روزی تعداد کاربرانشان به این عدد برسد. اما زیر ساخت را به گونهای طراحی کردند که تقریبا هر ۳ سال یک مهاجرت عظیم (Massive Migrate) به یک زیرساخت جدید را داشته باشند و حتی برای مهاجرتشان هم برنامه داشتند. در دنیا وقتی برای ارتقا و طراحی یک زیرساخت فکر میکنند، پارامترهای Scalability و Availability را به شدت در نظر می گیرند.
در مورد Performance من شرکت لینکدین را مثال میزنم. یک ماژولی که طراحی کرده و این سایت در اختیار شما قرار میدهد نمایش Friend of Friend هست که با وجود پیچیدگی محاسبات این کار در ۲ میلی ثانیه برای کاربران انجام میشود. در اینجا یک توافقنامه ای وجود دارد بین کاربر (سفارش دهنده) نرم افزار و تیم پایگاهداده. تیم پایگاه داده باید بداند دقیقا چه چیزی از او خواسته شده است. هدف من از این مثال این هست که Performance تعریف دارد.
دکتر داریوش مطلبی
همانطور که مهندس رحمانی اشاره کردند، هر دادهای طول عمری دارد و طبیعتا در طراحی پایگاه داده باید به آن توجه داشته باشیم. این در حالی است که در بسیار از سازمانها میبینیم که برای یک پایگاه داده بسیار ساده هیچ طول عمر مشخصی تعریف نکردند و در نتیجه بعد از مدتی با انباشت دادهها پایگاه دادهها را با مشکل روبرو میکند. پس هر دادهای که قطعا یک دارایی با ارزشی برای هر سازمان است طول عمری دارد که بعد از آن ممکن است دیگر ارزشمند نباشد.
دادهها ایجاد میشوند، کسر میشوند، ذخیره و نگهداری و استفاده میشوند و نهایتا از بین میروند. فقط زمانی دادهها برای سازمان ارزشمند باقی میمانند که آن داده در فرایند استفاده باقی بمانند. در این چرخه حیات داده، اتفاقات زیادی بر سر داده میآید، دادهها عموما ادغام میشوند، روزآمد و ویرایش میشوند، منتقل میشوند و به شکلهای مختلفی در میآیند و به نوعی در آن پایگاه داده نگهداری میشوند. به همین دلایل توجه به طول عمر داده بسیار اهمیت دارد و باید بدانیم سازمان برای چه میخواهد دادهها را نگهداری کند.
در بسیاری از سازمانها پایگاه داده دقیقا برای همان کاری که داده برای آن تولید شده، طراحی میشود. البته میشود از همان ابتدا یک دادههای جانبی از همان ابتدا پیشبینی کرد تا در فرایند کار مورد استفاده قرار بگیرند. دادههای جانبی در پایگاههای داده میتواند تاثیر بسیار زیادی در ارزش افزایی سازمان ایفا کند و کمک کند تا در بلندمدت مسیر و افق راه سازمان را پیشبینی و هدایت کند.
برای شنیدن فایل صوتی این نشست اینجا و برای مشاهده اسلاید ها اینجا را کلیک کنید.