بخشی از مقاله
چکیده
با توجه به رشد حجم دادهها، پیشروی تکنولوژی و حجم اطلاعاتی که نیاز به ذخیرهسازی دارند، مدیریت جامع دادهها نیاز میباشد. Big Data به اندازه اینترنت برای کسبوکار و جامعه مهم است. دادههای بیشتر منجر به تحلیلهای دقیقتر و در نتیجه کاهش هزینهها و کاهش ریسکها خواهد شد. مسئله واقعی این نیست که مقدار زیادی داده به دست آید؛ بلکه این است که چگونه میتوان به بهترین شکل آنها را تحلیل کرد.
امروزه پردازش دادههای سری زمانی یکی از چالشهای بزرگ است که بخش بسیار وسیعی از تحقیقات Big Data را تشکیل میدهد. چالش دیگر شیوهی ذخیرهسازی دادهها است. استفاده از دیسکهای سخت برای ذخیرهسازی دادهها، و حتی ظهور فناوری SSD، پاسخگوی حجم بالای دادههای مبادلهای در جستارها نیست. ازاین رو گرایش به استفاده از حافظهی RAM برای ذخیرهی دادهها رو به افزایش است.
ازین رو کار با Big Data با استفاده از سیستمهای مدیریت دیتابیسهای رابطهای ، دشوار بوده و نیازمند نرمافزار بسیار موازی در حال کار بر روی تعداد زیادی سرور است. دراین راستا این تحقیق، منجر به پیادهسازی نرمافزار کرونوس شده است. کرونوس یک پایگاهدادهی زمانی پیشینهمند و در-حافظه برای جفتهای کلید-مقدار است که دراین تحقیق به زبان C++ در لینوکس پیادهسازی و گسترش داده شده است.
-1 مقدمه
مدیریت دادههای زمانی برای کاربردهای زیادی به شدت اهمیت یافته است. سیستمهای پایگاهداده بسیاری تا کنون از بعد زمان حمایت کردهاند، ولی فقط تعداد کمی از آنها اپراتورهای زمانی را ارایه دادهاند، که آن هم اغلب ویژگیهای عملکردی را ضعیف نشان میدهد. در جامعهی دانشگاهی تعداد زیادی از الگوریتمها و ساختار دادهها پیشنهاد شده است، ولی اغلب آنها فقط یک زیرمجموعه اپراتور زمانی را رسیدگی میکنند. شاخص جدول زمانی یک روش متحد ساختار دادههاست که به صورت بسیار موثری اپراتورهای زمانی را حمایت میکند، به عنوان مثال: temporal aggregation، Time Travel،.Temporal Join از آنجاییکه شاخص جدول زمانی از ترتیب فیزیکی دادهها مستقل است؛ انعطاف در طراحی فیزیکی را فراهم میکند.
1-1 تعریف Big Data
Big Data به حجم عظیمیاز دادهها اطلاق میشود که پردازش آنها به وسیله پایگاهدادههای سنتی مانند SQL و ابزارهای آن غیرقابل انجام بوده و شامل انواع مختلفی از دادههای چندرسانهای، متن و . . .میشود که به شکل غیرقابل تصوری حجم آن در حال افزایش است. البته تشخیص وجه تمایز یک مجموعه اطلاعاتی که آن را Big Data نامگذاری میکنیم و یک سیستم اطلاعاتی حجیم که ظاهراً شرایط آن را دارد بسیار مهم است. دیدگاه امیدوارانه این است که سازمانها قادر به تحصیل داده از هر منبعی بوده، دادههای مرتبط را تهیه کرده و آن را تحلیل کنند تا پاسخ سؤالاتی را بیابند که کاهش هزینهها، کاهش زمان، توسعه محصولات جدید و پیشنهادات جدید و تصمیمگیری هوشمندانهتر کسبوکار را مقدور میسازند.
2-1 مسائل حوزه تحلیل اطلاعات در :Big Data
1-2-1 عدم کاربرد روشهای سنتی تحلیل اطلاعات در :Big Data
در علم تجزیه و تحلیل سنتی دادهها - داده کاوی - ، دادههای اولیه به طور معمول در انبارهای دادهای قرار میگیرد، استفاده از انبار دادهای در تحلیل اطلاعات معایبی را با توجه به کاربردهای امروز فناوری در تصمیمگیری دارد. مشکل اول این است که دادههای آن به روز نبوده و از عمر تولید آن مدت زمان زیادی میگذرد و در بعضی از کاربردهای تحلیل Big Data نیاز به دادههای جدید و برخط وجود دارد.
مشکل دوم مربوط به مدیریت اطلاعات در انبار دادهای است که به شکل متمرکز بوده و توسط یک تیم مدیریت و کنترل میشود، اما در Big Data، حجم عظیمیاز دادهها به شکل غیرمتمرکز و توزیعشده قرار دارد که هر عمل پردازشی و تحلیلی روی این حجم از داده باید قابلیت اجرای موازی بر روی تعداد زیادی خوشهها در شبکه را داشته باشد. با توجه به تعاریف ذکر شده در بالا، در این تحقیق به ایجاد یک پایگاه دادهی temporal پرداخته شده است.
3-1 مفهوم پایگاهداده temporal
دادهی Temporal به دادهای اطلاق میشود که با گذشت زمان تغییر میکند و پایگاهداده temporal به نوعی پایگاهداده اطلاق میشود که این نوع دادهها را نگهداری میکند. پایگاهداده temporal پایگاهدادهای است که جنبههایی از زمان را پشتیبانی میکند که به طور صریح توسط کاربر تعریف نشده باشد. برای مثال اگر یک متغیر زمانی مانند تاریخ تولد توسط کاربر به سیستم اعلام شود سیستم به گونهای مشابه به هر نوع متغیر دیگر با آن برخورد میکند. در واقع برای اینکه بتوان پایگاه-داده ای را temporal نامید باید مفهوم زمان در مدل داده آن مطرح شده باشد. پایگاه داده ی ارایه شده در این تحقیق اهداف زیر را محقق میکند:
.1ایجاد یک سیستم مقیاسپذیر برای ذخیرهی داده های وابسته به زمان
.2ارایه راه حلی موثر برای ذخیره داده های زمانی با استفاده از ساختار دادهی.[2] Timeline Index
.3 مدیریت داده زمانی در این سیستم و بهبود تحلیل دادههای سری زمانی
.4ایجاد سیستمای با امکان پرسش و پاسخ سریع با توجه به تاخیر در سیستم پایگاهدادههای سنتی دراین تحقیق اهداف ذکر شده در بالا با استفاده از ساختمان دادهای بنام Timeline Index محقق شده است. Timeline Index ساختمان دادهای است که برای مدیریت کارآمد داده زمانی و انجام query روی دادهها استفاده میشود.
4-1 جنبهی نوآوری این تحقیق
طرح جدید این تحقیق در رابطه با ساخت نرم افزار ذخیرهسازی کرونوس[1] شامل 3 ویژگی زیر به طور همزمان است:
1. این نرمافزار یک پایگاهداده در-حافظه ست، یعنی اطلاعات را روی RAM ذخیره میکند و نه دیسک.
2. این نرمافزار مختص دادههای کلید-مقدار است.
3. این نرمافزار یک پایگاهداده پیشینهمند است.
این ویژگیها به نوبهی خود منحصر به فرد نیستند، مثلا برای مورد 1 میشود RAMCloud را مثال زد، برای مورد Redis 2و برای مورد 3 InfluxDB را مثال زد، اما این سه ویژگی یکجا در هیچ نرمافزاری در حال حاضر موجود نیست. بخصوصاینکه الگوریتم اندیس زمانی، که الگوریتمینوآورانه و جدید هست در این تحقیق پیادهسازی شده است و این هم از ویژگیهای منحصر به فرد کرونوس است.
5-1 فرضیهها
پردازش دادههای سری زمانی بخش بسیار وسیعی از تحقیقات Big Dataرا تشکیل میدهد. کرونوس ابزاری است که با سرعت بالایی که در نگاهداری و پردازش دادههای سری زمانی دارد - در متن هم نتایج مقایسه این را نشان میدهد - ، میتواند نقش بسیار مهمیدر پردازش دادههای بزرگ ایفا کند. دادههای سری زمانی غالباً دادههایی به صورت جفت کلید-مقدار هستند و ویژگی ذاتی پیشنهمندی دارند. با در نظر گرفتن این موارد،در این تحقیق سیستمی با ویژگیهای زیر پیادهسازی شده است. جایگزینی سیستم پایگاهدادهی سنتی با ذخیرهسازی مدرن Nosql بر اساس .key-value استفاده از ساختمان داده جدید Timeline Index برای ذخیرهسازی و مدیریت داده های زمانی بهکارگیری RAM برای ذخیرهسازی دادهها به جای استفاده از دیسک سخت و استفاده از الگوریتم Temporal Table
6-1 ساختارتحقیق
در قسمت مقدمه به تعریف مفاهیم Big Data ،اهمیت دادههای زمانی پیشینه کار بر روی آنها اشاره شده است. در زیر بخشهای مقدمه برخی مسایل حوزه تحلیل اطلاعات در Big Data بررسی شده است و مفاهیم مرتبط با آن آورده شده است.در بخش بعدی جنبه نوآوری این تحقیق و فرضیهها آورده شده است. در قسمت روش اجرای تحقیق به بررسی ساختمان دادهی جدید مورد استفاده در این طرح پرداخته شده در ادامه آن ویژگیها ،اصوا و معماری طرح و الگوریتم مدیریت دادهها در بخش سوم بیان شده است.
در بخش چهارم اجزای سازنده طرح پایگاهداده کرونوس شرح داده شده است.در بخش پنجم نمودار جریان داده به منظور آشنایی با روند طرح از زمان دریافت ورودی تا گرفتن خروجی آورده شده است. در بخش ششم نتیجهگیری از دادههای تصادفی ایجاد شده توسط قطعه کدهای مربوط به هریک از پایگاه دادههای مورد مقایسه توسط جدول و نمودارها بیان شده است و در پایان منابع تحقیق ذکر شده است.
یا به طور خاص برای یک پرسوجوی مشخص است، که این برای سیستم ضروری است. شاخص داده ی زمانی مستقل از جهت فیزیکی داده است، بنابراین انعطاف پذیری در طراحی فیزیکی - طراحی - Schema را فراهم میکند. شاخص داده زمانی عملکرد قابل پیش بینی را نشان میدهد که بهتر از نتایج به دست آمده از روشهای دیگر است. 3 نوع از درخواست یا پرسوجوها را فراهم میکند: temporal aggregation، Temporal Join، .Time Travel
1-2 اصول و معماری کلی شاخص جدول زمانی
شکل زیر نشان میدهد که چگونه دادههای زمانی مدیریت میشود.[3] برای هر جدول، دیتابیس نسخه فعلی از جدول را نگه میدارد و کل تاریخ نسخههای قبلی از جدول را جداگانه درساختارهایی نگهداری میکند. برای سادهسازی فرض میکنیم، که نسخه فعلی همیشه تکرار جدول زمانی است. جدول فعلی دسترسی کارآمد به وضعیت فعلی پایگاهداده را فراهم میکند، این دسترسیها مهم ترین موارد برای استفاده هستند. ویژگیهای زمانی - به عنوان مثال، - Time Travel با استفاده از جدول زمانی - Temporal Table - اجرا میشوند، و این جایی است که شاخص جدول زمانی اتفاق میافتد : این یک شاخص است که عملیات انجام شده را در جدول زمانی شتاب میدهد. برای هر جدول زمانی، دقیقا یک شاخص جدول زمانی وجود دارد.جداول زمانی و شاخص جدول زمانی هدف اینکار هستند.
-2 روش اجرای تحقیق
بررسی اجمالی شاخص زمانی
شاخص زمانی ساختمان دادهای است که برای مدیریت کارآمد داده زمانی و انجام query روی دادهها استفاده میشود. دراین تحقیق ما فقط روی زمان سیستم تمرکز میکنیم. این بدان معناست که ورژنهای مختلفی از اشیا یکسان ذخیره شده است. به روز رسانی در محل معمول نیست، اما هربار نسخه جدیدی از شی ایجاد میشود. بنابراین مقایسه دیتای جاری با دیتای گذشته ممکن است. مدیریت دادههای زمانی با توسعه وب اهمیت بیشتری پیدا کرده است.
2-2 ویژگیهای شاخص جدول زمانی
شاخص جدول زمانی مسیر تمامیدرجها، آپدیتها وحذفها را در پایگاهداده نگه میدارد. پایگاهداده زمانی نیاز به پیگیری اعتبار مطالب ورودیها، با توجه به نسخهها دارد. بنابراین غیر از دادهها که در پایگاهداده نگهداری میشود، پایگاهداده اطلاعاتی نظیر from و to مربوط به هر سطر، با اشاره به زمان سیستم مربوط به تاپل را نگه میدارد.