مقدمه
دادههای Time-Series مجموعهای از نقاط داده جمع آوریشده در بازههای زمانی هستند که به ما توانایی ردیابی تغییرات در طول زمان را میدهند. دادههای Time-Series میتوانند تغییرات را در طول میلی ثانیه، روز یا حتی سال ردیابی کنند.
در گذشته، دیدگاه ما از دادههای Time-Series ثابتتر بود: بالا و پایین رفتن روزانه دما، ارزش باز و بسته شدن بازار سهام، یا حتی بستری شدن روزانه یا تجمعی در بیمارستان به دلیل کووید-۱۹.
بیایید یک مثال را در نظر بگیریم:
اگر من ۱۰ دلار برای شما بفرستم، یک بانک اطلاعاتی سنتی از حساب من پول برداشته و به حساب شما اعتبار میدهد. سپس، اگر ۱۰ دلار برای من بفرستید، همان فرآیند به صورت معکوس انجام میشود. در پایان این فرآیند، موجودی بانک ما یکسان به نظر میرسد، بنابراین بانک ممکن است فکر کند «هیچ چیز در این ماه تغییر نکرده است.» اما، در دیتابیس Time-Series، بانک میبیند: «این دو نفر مدام ۱۰ دلار برای یکدیگر ارسال میکنند، احتمالاً یک رابطه عمیقتر در اینجا وجود دارد.» با ردیابی این تفاوت، موجودی حساب آخر ماه ما معنای بیشتری پیدا میکند.
این مثال نشان میدهد که چگونه دادههای Time-Series مدرن با آنچه در گذشته میشناختیم متفاوت میباشد. تجزیه و تحلیل دادههای Time-Series بسیار عمیقتر از نمودار دایرهای یا کتاب کار اکسل با ستونهایی از مجموع خلاصه شده است.
دیتابیس Time-Series چیست؟
دیتابیس Time-Series (TSDB) یک سیستم کامپیوتری است که برای ذخیره و بازیابی سوابق دادهای که بخشی از «سریهای زمانی» (مجموعهای از نقاط داده مرتبط با مُهرهای زمانی یا Timestamps) هستند، طراحی شده است. مُهرهای زمانی یک زمینه حیاتی برای هر یک از نقاط داده در ارتباط آنها با دیگران فراهم میکنند. دادههای Time-Series اغلب یک جریان پیوسته از دادهها مانند اندازهگیریهای حسگرها و قیمتهای سهام در روز است. دیتابیس Time-Series به شما امکان میدهد حجم زیادی از دادههای مُهر زمانی را در قالبی ذخیره کنید که امکان درج و بازیابی سریع را برای پشتیبانی از تجزیه و تحلیل پیچیده روی آن دادهها فراهم میکند.
دیتابیس Time-Series چگونه کار میکند؟
دیتابیسهای Time-Series با گرفتن مجموعهای از مقادیر ثابت همراه با مجموعهای از مقادیر پویا کار میکنند. به عنوان مثال، در یک چاه نفت که در آن معیارهای بسیاری از دکل گرفته شده است، یک مجموعه از نقاط داده ممکن است دارای برچسب “Oil Pressure Rig #1” بوده و مقادیر دینامیکی مرتبط اندازهگیری فشار همراه با مهر زمانی باشد. این دادههای Time-Series برای ردیابی روند فشار نفت مفید هستند که وقتی همراه با سایر معیارها تجزیه و تحلیل شوند، میتوانند منجر به پیشبینی در مورد نیازهای تعمیر و نگهداری و همچنین تصمیمگیری در مورد رها شدن چاه شوند. این رکوردها در یک رسانه ذخیرهسازی با فرمتی نوشته میشوند که امکان خواندن و نوشتن سریع بر اساس زمان را فراهم کند.
از آنجایی که تمام رکوردها دارای مهر زمانی هستند، ترتیب نقاط داده مشخصه اصلی دادهها است. از این سفارش میتوان برای تحویل دادهها به یک موتور پردازش جریانی استفاده کرد که میتواند با دادههای سفارش داده شده به گونهای رفتار کند که گویی یک جریان داده است. از آنجایی که یکی از اهداف اصلی دیتابیسهای Time-Series سریع بودن است، استفاده از موتور پردازش جریان سریع به طور کلی ایده آل میباشد.
نمونههایی از موارد استفاده دیتابیس Time-Series
یک مثال استفاده گسترده، دیتابیس اینترنت اشیا برای محیطهای اینترنت اشیا (IoT) است که در آن دستگاههای راه دور به طور مداوم معیارها را برای اهداف تحلیلی ثبت میکنند. مثال چاه نفت فوق یک مورد رایج استفاده از اینترنت اشیا است که در آن تجزیه و تحلیل معیارهای متعدد از یک چاه نفت میتواند به پیشبینی تعمیر و نگهداری کمک کند، که در آن تجزیه و تحلیل منجر به پیشبینی زمان خرابی تجهیزات به دلیل روندها و عوامل میشود. از دیتابیسهای Time-Series برای جمعآوری حجم وسیعی از دادهها استفاده میشود، سپس برنامهها بر روی پایگاه داده اجرا میگردند تا تجزیه و تحلیل را ارائه دهند.
یکی دیگر از موارد استفاده از دیتابیسهای Time-Series، تجزیه و تحلیل معیارهای سیستم کامپیوتری است. در این شرایط، قرائتهای سیستمهای کامپیوتری در دیتابیس Time-Series ذخیره میشوند که به متخصصان فناوری اطلاعات اجازه میدهد بر وضعیت سیستمهای مختلف نظارت کنند. معیارهایی مانند میزان استفاده از حافظه یا تعداد فرآیند را میتوان برای مشاهده اینکه آیا منابع کامپیوتری جدید باید مستقر شوند یا برنامهها نیاز به تخصیص مجدد دارند ردیابی کرد.
چرا به دیتابیس Time-Series نیاز داریم؟
ممکن است بپرسید: چرا من نمیتوانم از پایگاه داده «عادی» (به عنوان مثال، غیر Time-Series) استفاده کنم؟
حقیقت این است که میتوانید، و برخی افراد این کار را انجام میدهند. اما، حداقل دو دلیل وجود دارد که چرا امروزه دیتابیسهای Time-Series سریعترین دسته از پایگاههای داده در حال رشد هستند: مقیاس و قابلیت استفاده.
مقیاس: دادههای Time-Series خیلی سریع جمع میشوند و پایگاههای داده معمولی برای مدیریت آن مقیاس طراحی نشدهاند (حداقل نه به صورت خودکار). به طور سنتی، پایگاههای داده رابطهای با مجموعه دادههای بسیار بزرگ عملکرد ضعیفی دارند، در حالی که پایگاههای داده NoSQL در مقیاس بهتر هستند (اگرچه یک پایگاهداده رابطهای که برای دادههای Time-Series دقیق تنظیم شده است، در واقع میتواند عملکرد بهتری داشته باشد). در مقابل، دیتابیسهای Time-Series – چه رابطهای باشند و چه مبتنی بر NoSQL – کاراییهایی را معرفی میکنند که تنها زمانی امکانپذیر است که شما با زمان به عنوان یک شهروند درجه یک رفتار کنید. این کاراییها به آنها اجازه میدهد مقیاس وسیعی را ارائه دهند، از بهبود عملکرد، از جمله نرخ دریافت بالاتر و جستجوهای سریعتر در مقیاس (اگرچه برخی از کوئریهای بیشتری نسبت به دیگران پشتیبانی میکنند) گرفته تا فشردهسازی بهتر دادهها.
قابلیت استفاده: دیتابیسهای Time-Series معمولاً شامل توابع داخلی و عملیات مشترک برای تجزیه و تحلیل دادههای Time-Series هستند، مانند سیاستهای حفظ دادهها، کوئریهای مداوم، تجمعهای زمانی انعطافپذیر، و غیره. حتی اگر تازه شروع به جمعآوری این نوع دادهها و مقیاس کردهاید، در حال حاضر نگران کننده نیست. این ویژگیها همچنان میتوانند تجربه کاربری بهتری را ارائه دهند و وظایف تجزیه و تحلیل دادهها را آسانتر کنند. داشتن توابع و ویژگیهای داخلی برای تجزیه و تحلیل روندها که به راحتی در لایه داده در دسترس هستند، اغلب شما را به کشف فرصتهایی سوق میدهند که نمیدانستید وجود دارند، صرف نظر از اینکه مجموعه داده شما چقدر بزرگ یا کوچک است.
به همین دلیل است که توسعهدهندگان به طور فزایندهای از دیتابیسهای Time-Series برای موارد مختلف استفاده میکنند:
- سیستمهای نرمافزاری مانیتورینگ: ماشینهای مجازی، کانتینرها، خدمات، برنامهها
- نظارت بر سیستمهای فیزیکی: تجهیزات، ماشین آلات، دستگاههای متصل، محیط زیست، خانههای ما، بدن ما
- برنامههای ردیابی دارایی: وسایل نقلیه، کامیونها، ظروف فیزیکی، پالتها
- سیستمهای معاملات مالی: اوراق بهادار کلاسیک، ارزهای دیجیتال جدیدتر
- برنامههای رویداد: ردیابی دادههای تعامل کاربر/مشتری
- ابزار هوش تجاری: ردیابی معیارهای کلیدی و سلامت کلی کسب و کار
وقتی شروع به دیدن اطلاعات بیشتری از برنامههایتان به عنوان دادههای Time-Series میکنید، همچنان باید یک دیتابیس Time-Series را انتخاب نمایید که به بهترین وجه با مدل داده، الگوی نوشتن/خواندن و مجموعه مهارتهای توسعهدهنده شما مطابقت داشته باشد. اگرچه گزینههای پایگاهداده سری زمانی NoSQL در دهه گذشته بهعنوان وسیله ذخیرهسازی منتخب غالب بوده است، توسعهدهندگان بیشتری در ذخیرهسازی دادههای Time-Series جدا از دادههای کسب و کار (بیشتر پایگاههای داده سری زمانی پشتیبانی خوبی برای دادههای رابطهای ارائه نمیکنند) نقطه ضعف را میبینند. در واقع، این تجربه ضعیف توسعهدهنده یکی از عوامل محرک در راهاندازی Timescale بود. نگه داشتن تمام دادهها در یک سیستم میتواند زمان توسعه اپلیکیشن و سرعت تصمیمگیری کلیدی را به شدت کاهش دهد.
این در هیچ کجا به اندازه ظهور ابزارهای هوش تجاری سلف سرویس متعدد مانند Tableau، Power BI، و حتی اکسل مشهود نیست. زمانی که دادههای Time-Series گرانبها از دادههای کسب و کار جدا نگهداری میشوند، کاربران برای انجام مشاهدات به موقع و حیاتی برای کسب و کار تلاش میکنند. در عوض، کاربران متوجه میشوند که باید به این ابزارهای شخص ثالث تکیه نمایند تا دادهها را به چیزی معنادار تبدیل کنند. دلایل معتبر و خوبی برای استفاده از این ابزارهای قدرتمند وجود دارد، اما اینکه بتوانید به سرعت دادههای Time-Series خود را در کنار اطلاعات فراداده معنیدار جستجو کنید، نباید یکی از آنها باشد. SQL طی دههها ساخته و تقویت شده است تا راههای کارآمدی برای تولید این مجموعهها و تحلیلهای ارزشمند ارائه دهد.
جایگزینهایی برای دیتابیس Time-Series
سیستمهای مدیریت پایگاه داده رابطهای (RDBS)، که اغلب سیستمهای پایگاه داده همهمنظوره در نظر گرفته میشوند، میتوانند برای ذخیره و بازیابی دادههای Time-Series استفاده شوند. با انعطافپذیری سیستمهای مدیریت پایگاه داده رابطهای، میتوان دادههای مشابه دیتابیس Time-Series را ذخیره کرد، با یک تفاوت کلیدی که نحوه نوشتن دادهها در رسانه ذخیرهسازی است. از آنجایی که سیستمهای مدیریت پایگاه داده رابطهای اهداف طراحی متفاوتی نسبت به دیتابیس Time-Series دارند، برای دادههای Time-Series بهینه نیستند و برای درج و بازیابی دادههای Time-Series کندتر عمل میکنند.
نوع دیگری از پایگاه داده، NoSQL، نیز اغلب برای ذخیره دادههای Time-Series استفاده میشود. از آنجایی که پایگاههای داده NoSQL از نظر قالب داده برای هر رکورد انعطافپذیرتر هستند، برای گرفتن دادههای Time-Series از تعدادی منابع مجزا مفید میباشند. پیادهسازی یک پایگاه داده NoSQL برای دادههای Time-Series اغلب جایگزین بسیار خوبی برای دیتابیسهای Time-Series است و در عین حال میتواند قابلیتهایی را ارائه دهد که فراتر از دادههای Time-Series اعمال میشوند.
سخن پایانی
دیتابیس Time-Series، پایگاه دادهای است که برای دادههای دارای مُهر زمانی یا سری زمانی بهینه شده است. دادههای Time-Series نیز رویدادهایی هستند که در طول زمان ردیابی، نظارت، نمونهبرداری و جمعآوری میشوند.