این مطلب به عنوان تحقیق درس پایگاهداده دکتر حقیقی در ترم پاییز ۹۹ نوشته میشود.
در جستوجو برای پایگاهدادههای پسا-رابطهای (post-relational) به عبارتها و تکنولوژیهای گوناگونی برمیخوریم. معمولا عبارات برپازدید NoSQL، ردیس، مونگو-دیبی و BSON هستند اما در این مطلب به موضوعی که کمتر به آن پرداختهشده و شاید برای بسیاری از ما ناشناخته باشد میپردازیم.
دادههایی که یک ماشین خودران جمعآوری میکند را در نظر بگیرید. قاعدتا حجم زیادی داده خام به ذهنمان میرسداین دادهها که یک ویژگی مهم دارند، آنها برچسب زمانی که داده تولید (گردآوری) شده را نیز به همراه دارند. بسیاری از دادههایی که از دستگاهای اینترنت چیزها (IoT) تولید میشوند چنین خاصیتی دارند.
این دادهها گاهی خاصیت پیوستگی هم دارند مثلا شاخصهای بورس یا دمای یک محیط در طی زمان میتوانند به صورت (تقریبا) پیوسته ذخیره شوند.
این دادهها ۳ ویژگی مهم دارند:
به بیان دیگر تنها عملیات، الحاق دادههای جدید به دادههای قبلی است. (با صرف نظر از بررسی و رفع خطا و ..)
پایگاهدادههای سریزمانی (TSDB) پایگاهدادههایی هستند که به طور خاص برای نگهداری و کاوش در دادههای سریهای زمانی طراحی میشوند. این دادهها عموما به شکل زوجِ مقدار-زمان نگهداری میشوند.
پایگاهدادههای TSDB برای کار با زوج مقدار-زمان بهینه شدهاند، مثلا از الگوریتمهای فشردهسازی برای مدیریت بهینهتر داده استفاده میکنند.
برخی از این پایگاهدادهها، قابلیت بررسی تغییرات دادهها و در آوردن به شکل گراف را نیز میدهند.
از مهمترین پایگاهدادههای TSDB میتوان به موارد زیر اشاره کرد:
در مورد مزایا و معایب هر کدام میتوان زیاد صحبت کرد برای مثال TimescaleDB قابلیت پشتیبانی از SQL سنتی و ادغام با PostgresSQL را دارد. من در اینجا قصد معرفی پرکاربردترین آنها که InfluxDB است را دارم.
سوالی که پیش میآید این است که مگر دیتابیسهای رابطهای (یا معمولی!) نمیتوانند دادهای که برچسب زمان داشتهباشد را مدیریت کنند؟ جواب این است که چرا میتوانند اما دیتابیسهای مخصوص TSDB که برای همینکار بهینهشدهاند از ۲ جهت بهتر هستند.
دو بازیگر اصلی TSDBها، Prometheus و InfluxDB هستند، هر دو متنباز هستند. ما در اینجا کمی بیشتر در مورد InfluxDB میخوانیم.
این TSDM محصول شرکت InfluxData واقع در سانفرانسیسکو است. در سال ۲۰۱۳ به عنوان یک پروژه کاملا متنباز عرضه شد که روی تمام سیستمعاملهای مرسوم کنونی کار میکند. همچنین مجموعه بزرگی از زبانهای برنامهنویسی (حتی لیسپ و کلوژر) را پشتیبانی میکند. برای بار سنگینِ نوشتن بهینه شده و به صورت هم روند بسیار موثر عمل میکند. از مزیتهای دیگر آن این است که بعد از نصب با ۵ دقیقه خواندن داکیومنتها، میتوانید کار با آن را شروع کنید.
این TSDB با زبان Go نوشتهشده و برای سرعت و دسترسپذیری بالا بهینه شده. از انواع دادهی زیر هم پشتیبانی میکند: