اینفلاکس دی بی InfluxDB یکی از دیتابیس های معروف مبتنی بر زمان است. برای رسیدن به کارایی بالاتر در سیستم گرافانا یا پرامتیوس حتما از دیتابیس ابری اینفلاکس استفاده کنید.

سرویس پایگاه داده چیست؟

پایگاه داده به عنوان سرویس که بیشتر با عنوان سرویس دیتابیس یا پایگاه داده مدیریت شده نیز شناخته می‌شود اولین بار در سال ۲۰۰۹ با معرفی یکی از سرویس های AWS معرفی شد. از آن زمان تاکنون تخمین زده می‌شود که تا سال ۲۰۲۵، مارکت این سرویس به ۳۲۰ میلیارد دلار رسیده و سریع‌ترین سرویس ابری در حال رشد در دنیا باشد. دلیل اصلی این رشد، قابلیت‌هایی است که سرویس پایگاه داده در بهبود بهره‌وری،‌ استانداردسازی و امنیت داده‌ها روانه بازار کرده است.

اصطلاح پایگاه داده به عنوان سرویس (DBaaS)، به نرم‌افزاری اطلاق می‌شود که کاربران را قادر می‌سازد بدون آن که به پیاده‌سازی دیتابیس احتیاج داشته باشند، پایگاه داده‌ خود را راه‌اندازی کرده و مقیاس‌بندی کنند. به عنوان مثال یک توسعه دهنده می‌تواند پایگاه داده مورد نظر خودش را با چند کلیک ایجاد کرده و مدیریت و سایر امور مثل بک آپ گرفتن را به تیم پشتیبانی سرویس مربوطه بسپارد. وقتی مدیریت پایگاه داده خود را برون سپاری کنید، پلتفرمی که از آن استفاده می‌کنید مسئولیت تهیه بک‌آپ‌، تغییر اندازه کلاسترها و مفاهیم دیگری از این قبیل را پشتیبانی می‌کند.

 

راه اندازی

پس از راه اندازی پایگاه داده، وظیفه تمام عملیات بک‌اند، که قبل از آن به عهده شما بود دیگر به عهده پلتفرمی است که از آن استفاده می‌کنید. مواردی که از آن صحبت می‌کنیم شامل مدیریت پیکربندی، پشتیبان‌گیری خودکار (که امکان بازگرداندن داده های شما را در هر زمان فراهم می‌سازد)، آپدیت‌ها، مانیتورینگ دیتابیس می‌شوند. تمام این موارد که قبل از این پیچیده به نظر می‌رسیدند، اکنون با در اختیار داشتن یک DBaaS خوب، تنها چند کلیک با شما فاصله دارند.

 

مقیاس گذاری

برای انطباق هر چه بیشتر با اپلیکیشن یا سایتی که در حال رشد است بایستی بتوانید به طور اتوماتیک دیتابیس خود را مقیاس‌بندی کنید. برای مثال با رشد بیش از حد داده‌ها، بایستی آن‌ها را در اینستنس‌های مختلف توزیع کنید. هنگامی که داده ها در چندین نمونه توزیع شد امکان خطا نیز کم‌تر می‌شود.

 

DBaaS بر روی IaaS

دیتابیس به عنوان سرویس اغلب به عنوان مولفه‌ای از یک بستر جامع‌تر ارائه می‌شود که خدماتی تحت عنوان IaaS (زیرساخت به عنوان سرویس) ارائه می‌دهد. راه حلی که سرویس پایگاه داده در نظر می‌گیرد به این صورت است که از زیرساخت موجود تحت شبکه، منابع لازم برای انجام اموری مانند محاسبه، ذخیره سازی و امور شبکه را درخواست کرده و اساسا نیاز به بخشی تحت عنوان IT در یک سازمان برای انجام امور دیتابیس را از بین خواهد برد.

چه افرادی از سرویس دیتابیس استفاده می‌کنند؟

درک این نکته مهم است که بدانیم مانند سایر فناوری های ابری، DBaaS‌ دارای دو نوع مصرف کننده اصلی است:

  • سازمان های IT که مدیریت و نگهداری فضای ابری را بر عهده دارند.
  • End-user هایی که منابع ابری را مصرف میکنند که به طور معمول توسعه دهندگان هستند.

سازمان‌هایی که سرویس دیتابیس ارائه می‌دهند، کاربران نهایی و توسعه دهندگان را قادر می‌سازند تا از فهرست انواع پایگاه داده‌ها، یک دیتابیس را به دلخواه خودشان (رابطه ای یا غیر رابطه‌ای) تهیه کنند. پیکربندی این سرویس ها می‌تواند متنوع بوده و با سطح دسترسی مختلف ارائه شود. به عنوان مثال می‌توان محدودیتی ایجاد کرد که توسعه دهندگان فقط بتوانند روی فضاهای هارد معمولی دیتابیس بسازند. به طور معمول، کاربر نهایی از طریق یک پورتال به سیستم DBaaS دسترسی پیدا می‌کند که در آن جا مجموعه‌ای از پایگاه داده‌های مختلف و پیکربندی‌های مختلف را در اختیار دارد. با چند کلیک، کاربر، پایگاه داده مورد نیاز خود و پیکربندی مربوطه را مشخص می‌کند که در نتیجه آن سرویس پایگاه داده به سرعت پایگاه داده را تهیه کرده و به کاربر اطلاع می‌دهد. پس از آن نیز سیستم DBaaS مجوزهای مختلفی نظیر اضافه کردن کاربران و ایجاد طرح واره‌ها را به کاربر خواهد داد.

 

مزایای سرویس پایگاه داده

سرویس دیتابیس مزایای بسیاری را برای سازمان به همراه می آورد. مزایای اصلی آن عبارت اند از:

  • سرعت بالاتر در توسعه
  • بهره وری بالاتر
  • قابلیت اطمینان و عملکرد برنامه
  • امنیت برنامه

حال بیایید به هرکدام از موارد بالا نگاهی بیاندازیم.

 

چابکی توسعه دهنده

استقرار پایگاه داده یک فرآیند چند مرحله‌ای است که شامل تهیه اجزای مناسب برای محاسبه، ذخیره‌سازی و پیکربندی صحیح آن‌ها و در نهایت نصب نرم افزار پایگاه داده است. در بیشتر شرکت‌ها این پروسه شامل موارد زیر می‌شود:

  • توسعه‌دهنده سازمان یک درخواست (تیکت) باز می‌کند
  • قسمت IT سازمان تیکت را بررسی کرده و به اختصاص منابع محاسبه، ذخیره‌سازی و شبکه مورد نیاز برای پایگاه داده توسعه دهنده می‌پردازد
  • قسمت IT منابع تخصیص یافته را پیکربندی می‌کند
  • قسمت IT پایگاه داده را به توسعه دهنده می‌دهد و توسعه‌دهنده از این مرحله به بعد را بر عهده می‌گیرد

 

پروسه بالا نه تنها مستعد خطا است، که بسیار زمان‌بر نیز هست. در واقع مجموعه اقداماتی که ممکن است بتوان طی چند ساعت یا چند روز انجام شود، می‌تواند روزها و هفته‌ها طول بکشد. همه این موارد برای توسعه دهندگانی که در محدودیت زمانی قرار دارند قابل قبول نیست.

یک سرویس پایگاه داده (DBaaS)، با اتوماسیون موارد ذکر شده، زمان را بهبود می‌بخشد و نه تنها به توسعه دهنده چابکی لازم را می‌بخشد، بلکه پایگاه داده همیشه منطبق با بهترین روش‌ها اداره شده و در دسترس نیز هست. سرویس دیتابیس، تمام موارد ذکر شده که عامل کندی هستند را کنترل کرده و به توسعه دهنده اجازه می‌دهد تا انرژی خود را به جای دیتابیس، برروی برنامه اصلی متمرکز کند.

 

بهره وری IT

بخش آی‌تی مسئول عملیات دیتابیس سازمان است؛ این عملیات شامل مواردی مثل تنظیم، پیکربندی، مانیتورینگ، به روزرسانی، بک آپ‌ها و به طور کلی تمام اموری که بایستی برای حفظ پایگاه داده در زمان مناسب انجام شوند، می‌باشد. با رشد شرکت و تعداد پایگاه داده‌هایی که بایستی مدیریت و نگهداری شوند، منابع آی تی شرکت محدود خواهد شد.  با انجام اقدامات مناسب، قسمت فناوری سازمان در نهایت نفس راحتی خواهد کشید و از انجام فعالیت‌های خرد مربوط به دیتابیس کنار خواهد رفت و در نهایت این فرصت را پیدا می‌کند که استانداردهای عملکردی سازمان را بهبود بخشیده و بر ارائه خدمات بهتر و سریع تر به مشتریان خود تمرکز کند.

 

قابلیت اطمینان و عملکرد برنامه

سرویس دیتابیس به راحتی می‌تواند پایگاه داده شرکت را در بهترین سطح دسترسی قرار داده و با نظارت بر عملکرد آن، همیشه پایگاه داده را در بالاترین سطح از عملکرد قرار دهد. با انجام مواردی نظیر تهیه رپلیکیشن، در هنگام خرابی، سیستم به صورت اتوماتیک، ترافیک را به سمت دیگری هدایت می‌کند تا این اطمینان حاصل شود که سیستم همیشه در دسترس است. DBaaS همواره پایگاه داده شما را مانیتور می‌کند تا افزایش تقاضا را کنترل کرده و منابع شما را در جهت منافع سازمان‌تان افزایش یا کاهش دهد. با استفاده از سیاست‌گذاری‌های مشابه نیز می‌توانید با تهیه منابع اضافه تر سیستم را پیکربندی کنید تا به طور خودکار مقیاس بندی شود.

 

امنیت برنامه

یک DBaaS خوب با ویژگی هایی که دارد می‌تواند مدیریت مداوم امنیت را برای انواع پایگاه داده‌هایی که ممکن است در سازمان‌تان استفاده کنید را به همراه بیاورد؛ این در حالی است که برخی ویژگی‌های امنیتی جدید نیز به آن اضافه خواهد کرد. علاوه بر رمزگذاری داده‌ها به صورت بومی، ممکن است به دنبال مواردی مانند امنیت شبکه به صورت end-to-end و شبکه های خصوصی مجازی نیز باشید. DBaaS قادر است تا برای تایید هویت کاربر با استفاده از سیاست های مختلف کنترل دسترسی مختلف ایجاد کند.

 

حل چالش های ابر با استفاده از DBaaS‌ داخلی

اگر داده های خود را روی یک ابر عمومی نگه دارید، هزینه‌هایی که مرتبط با این داده ها است احتمالا بسیار بالا خواهد بود. اما تنها مشکل این نیست؛ قیمت ها می‌توانند در مناطق مختلف با توجه به دسترسی شما متفاوت باشند. این هزینه‌ها میتوانند تا جایی بالا بروند که بعضی کمپانی ها مجبور اند سالانه میلیون ها دلار برای پابلیک کلود هزینه کنند. اما این هزینه ها چطور تاثیر گذار هستند؟ بیایید با یک مثال ساده جواب این سوال را بدهیم. فرض کنید که کمپانی شما به حد خوبی از رشد رسیده و اکنون نیازمند آن هستید که داده های‌تان را برون سپاری کنید چرا که مدیریت آن‌ها زمان و هزینه زیادی از شما می‌گیرد. راه حل چیست؟ اگر مقاله را به دقت مطالعه کرده باشید جواب ساده است : سرویس دیتابیس (DBaaS).

اما مشکل سازمان‌ها در چیست؟ مشکل اینجا است که پاسخ‌شان به سوال قبلی احتمالا خریداری محیطی تحت عنوان زیرساخت است. اگر تنها به دنبال مدیریت داده‌۲ها هستید و دسترسی سرویس و مقیاس گذاری و بک‌آپ ها و همه مواردی که قبل تر به آن اشاره کردیم برای‌تان اهمیت دارد، خریداری زیرساخت یا همان (IaaS) تنها یک هزینه اضافی خواهد بود. شما تنها به سرویس دیتابیس احتیاج دارید.

 

DBaaS برای توسعه دهندگان و تیم آی‌تی

امروزه اکثر شرکت‌ها، فناوری‌هایی را به مشتریان خود ارائه می‌دهند که به چندین پایگاه داده مختلف احتیاج دارد. پایگاه داده به عنوان سرویس چارچوبی را فراهم می‌‌آورد که در آن شرکت‌ها می‌توانند پایگاه داده‌های مختلف خود را به بهترین شکل و با بازدهی بیشتر نسبت به گذشته مدیریت کنند. سرویس پایگاه داده از طریق ایجاد اتوماسیون و استانداردسازی، به سازمان های فناوری اطلاعات این امکان را می‌دهد که با خیال آسوده به کاربران خود سرویس های مختلفی را ارائه دهند که هزینه کمتری نسبت به گذشته داشته و اطمینان دارند که در محیطی امن و همیشه در دسترس قرار دارند.

 

پیشنهاد ما

پنکیک به عنوان یک استارت آپ دانش بنیان، اولین ارائه کننده سرویس دیتابیس به صورت تخصصی در ایران بوده که با ارائه سرویس پایگاه داده مدیریت شده، پیاده سازی، نگهداری و مدیریت پایگاه داده های شما را بسیار آسان می‌کند. تیم پنکیک مفتخر است که تاکنون پایگاه داده‌های مورد نیاز شرکت‌های معتبری را فراهم کرده است. شما نیز جهت استفاده از خدمات پنکیک میتوانید همیشه با کارشناسان ما در این تیم تماس بگیرید تا با توجه به نیازتان سرویس مناسبی برای دیتابیس‌تان دریافت کنید.

استفاده از InfluxDB و Grafana برای مانیتور کردن داده‌ها

گرافانا پلتفرمی است که برای نمایش اطلاعات به دست آمده از طریق دیتابیس‌هایی که بر اساس گذشت زمان دیتا را نشان می‌دهند کار می‌کند. گرافانا از دیتابیس‌های مختلفی پشتیبانی می‌کند که از جمله آن‌ها می‌توان InfluxDB را نام برد.

InfluxDB یک دیتابیس Time-series (پایگاه داده سری زمانی) است که به طور ویژه برای ذخیره داده‌های این چنینی طراحی شده است و گرافانا نیز ابزاری گرافیکی برای نمایش این نوع دیتا است.

مروری بر عملکرد مانیتورینگ توسط گرافانا

گرافانا یکی از محبوب ترین ابزارهای گرافیکی برای نمایش داده‌های دیتابیس‌های Time-Serie است که با InfluxDB نیز هم‌خوانی دارد. در ادامه به تنظیم و ست کردن داشبورد گرافانا و InfluxDB می‌پردازیم و می‌‌بینیم که چطور از گرافانا به منظور بهره‌برداری بیشتر از داده‌های زمانی InfluxDB استفاده کنیم و چطور داده‌ها را دقیقا به شیوه‌ای که نیاز داریم نمایش دهیم.

داشبورد گرافانا

برای شروع بایستی InfluxDB و گرافانا را به هم دیگر وصل کنیم. InfluxDB و Grafana هر دو یک API داشته که در پورت های مختلف قرار دارند و گرافانا به منظور کوئری گرفتن داده‌ها، از API ای که برای InfluxDB تخصیص داده شده استفاده می‌کند. زمانی که InfluxDB را نصب می‌کنید به ابزاری برای جمع آوری اطلاعات نیاز دارید که برای این منظور از Telegraf استفاده می‌کنیم.

تنظیمات امنیتی گرافانا چطور عمل می‌کند؟

در مورد تنظیمات امنیتی، هر سرویس گرافانا یک ادمین و پسورد به صورت پیش فرض در اختیار دارد. اگر سرویس مانتیورینگ گرافانا شما به نوعی قابل دسترس است، ترجیحا یوزرنیم و پسورد را تغییر داده تا از دسترسی بقیه جلوگیری کنید.

در اینجا به بعضی از تنظیمات امنیتی گرافانا اشاره می‌کنیم:

• به طور پیش فرض، گرافانا به کاربران اجازه ثبت نام داده و همچنین به کاربران غیر ادمین نیز اجازه ثبت سازمان می‌دهد. بنابراین ما توصیه میکنیم که مقدار “enable anonymous access” را False قرار دهید تا به کاربران اجازه ثبت سازمان داده نشود.

• به طور پیش فرض مقدار anonymous access غیرفعال است ولی اگر داشبوردی در اختیار دارید که می‌خواهید آن را تبلیغ کنید بهتر است که آن را enable کنید.

• اگر می‌خواهید زمانی که پسورد را ریست می‌کنید یوزرها ایمیل دریافت کنند باید این مورد را در قسمت SMTP مشخص کنید.

• گرافانا مقادیر به دست آمده را در اختیارتان می‌گذارد. تلگراف نیز از یک ورودی به نام Prometheus استفاده می‌کند که می‌توانید به آن مراجعه کنید و مقادیر گرافانا را جمع آوری کنید.

تنظیم کردن نمودار برای مقادیر Grafana

• در قسمت پیکربندی یک data source اضافه کنید، Influx Type را انتخاب کنید و نامی برای آن Source انتخاب کنید. همچنین می‌توانید این سورس را به عنوان منبع داده پیش فرض برای سرویس گرافانا خود انتخاب کنید. سپس URL مربوطه را بگیرید و دیتابیس، یوزر و اعتبارنامه را وارد می‌کنید و هنگامی که اعلان “موفقیت” را دریافت کردید، داشبورد گرافانا را اضافه می‌کنید.

• داشبورد گرافانا از ردیف ها و پنل ها تشکیل شده است. شما می‌توانید چندین پنل در یک ردیف داشته باشید و میتوانید پنل ها را نیز ویرایش کنید.

• از دیگر ویژگی‌های اندازه‌گیری در گرافانا، دسته بندی این اندازه گیری‌ها ست. به طور پیش فرض مقادیر گرافانا با فواصل زمانی پیش فرض گروه بندی شده است که بر اساس صفحه و عرض پنل محاسبه میشود.

• همچنین میتوانید نحوه نمایش گراف‌ها را برای خودتان شخصی سازی کنید و از تنظیمات مختلفی که برای صفحه وجود دارد بهره ببرید.

نظارت بر دیتاهای Time-series را با استفاده از گرافانا بهینه کنید.

هر نمودار در گرافانا در واقع یک کوئری به InfluxDB است. هرچه تعداد نمودارهای بیشتری داشته باشید، بار بیشتری در سرور InfluxDB شما وجود دارد. بنابراین اگر یک داشبورد با 30 گراف دارید به این معنی است که تعداد 30 کوئری به اینفلاکس دی‌بی می‌فرستید و نتایج جمع‌آوری شده توسط InfluxDB را به دست آورند و سپس برای مانیتورینگ به گرافانا ارسال شوند.

در نتیجه برای بهتر کردن عملکرد InfluxDB و گرافانا در کنار هم می‌توانید از نکات زیر استفاده کنید:

• ردیف های خود را به صورت collapsible تنظیم کنید. وقتی ردیف‌ها به صورت جمع شده قرار دارند، گرافانا آن نمودار را نشان نداده و ارائه نمی‌کند و بنابراین کوئری به سمت InfluxDB نیز ارسال نمی‌شود. بنابراین اگر یک داشبورد گرافانا در اختیار دارید که نمودارهای بسیاری در بر دارد، ممکن است همه آن‌ها برای تان مفید نباشد و یک راه عالی برای سرعت بخشیدن به عملکرد گرافانا، استفاده از ردیف‌های قابل جمع شدن است.

• اگر یک کوئری گسترده برای محاسبه دارید و InfluxDB زمان زیادی برای پاسخ دادن صرف میکند و یا دچار time out میشود و یا بر روی نمودار گرافانا خطا مشاهده می‌کنید قبل از Refresh کردن بیشتر صبر کنید.

• InfluxDB کوئری ها را cache نمی‌کند، بنابراین هر زمان یک کوئری ارسال می‌کنید، نتایج دوباره محاسبه می‌شوند. به طور مثال اگر بازه های زمانی بلندتری برای مانیتورینگ انتخاب کنید، به دست آوردن نتایج توسط اینفلاکس دی‌بی طولانی تر خواهد شد و هرچه داده‌ها بیشتر دچار تجمیع شوند، گرافانا و InfluxDB بایستی زمان بیشتری برای محاسبه وقت بگذارند.

نتیجه

همانطور که گفتیم، محدودیتی در تعداد مقادیر اندازه گیری شده در نمودارهای گرافانا وجود ندارد، اما به یاد داشته باشید که همواره مقادیری که بیشتر برای شما اهمیت دارند و بر روی عملکرد دیتابیس شما تاثیر دارند را دنبال کنید و از دنبال کردن مقادیر اضافه که اهمیتی ندارند بپرهیزید.

در صورتی که پنل گرافانای شما شامل تعداد زیادی گراف و نمودار هست یا سرویس مانیتورینگ مورد استفاده شما، سرویس ها و سرورهای زیادی را مانیتور می‌کند، شما نیاز به یک میزبان قوی برای پایگاه داده اینفلاکس (influxdb) خود خواهید داشت. با استفاده از دیتابیس ابری اینفلاکس پنکیک، نه تنها به کارایی بسیار بالایی در خواندن و نوشتن روی پایگاه داده سری زمانی خود دست خواهید یافت، بلکه تنها با چند کلیک می توانید منابع پایگاه داده خود را افزایش دهید.

مروری بر دیتابیس‌های Time-Series

 دیتابیس‌های Time-Series

دیتابیس‌های بر پایه‌ی زمان (Time-Series) که از جمله آن‌‌ها میتوان InfluxDB را نام برد برای نظارت دقیق بر داده‌‌هایی که با گذشت زمان تغییر می‌کنند ایده ‌آل هستند.
زیرساخت‌های شما تقریبا هر ساله به تغییراتی احتیاج دارند و سیستم‌ها همواره در حال پیچیده شدن و تغییرات عمده هستند، هرچند این رشد سیستم‌ها بدون نظارت ما بی معنی خواهد بود. این دقیقا همان نقطه‌ای است که ابزارهای مدیریتی به کمک می‌آیند و به مدیران و ادمین ها امکان مشاهده تغییرات به صورت real-time را می‌دهند.

اما اگر بخواهیم مشکلات را قبل از وقوع پیش‌بینی کنیم چه اقداماتی پیش روی خود داریم؟ جمع‌آوری اطلاعات در مورد محیط دیتابیس، پنجره‌ای رو به زیرساخت‌های نرم‌افزار و چگونگی عملکرد آن به روی ما باز می‌کند و به ما توانایی پیش‌بینی داده ها را می‌دهد؛ زمانی که از این روند باخبر باشیم‌ می‌‌توانیم از بروز مشکلات جلوگیری کنیم.
قبل از اینکه بخواهیم از این داده ها استفاده کنیم بایستی یاد بگیریم که چگونه آن را جمع آوری و ذخیره کنیم. برای مثال اگر بخواهیم اطلاعات کارکرد 100 پردازنده را هر 10 ثانیه جمع‌آوری کنیم، مقادیر زیادی داده خواهیم داشت. علاوه بر آن اگر هر پردازنده شامل 15 کانتینر باشد و بخواهیم داده های آنها را نیز جمع اوری کنیم چه؟ اگر بخواهیم به ازای هر پردازش داده ها را جمع اوری کنیم چه؟
اینجا است که دیتابیس های Time-series به کار می آیند، این دیتابیس‌ها داده ها را بر اساس زمان ذخیره میکنند. اما این دقیقا به چه معنا است؟

در ادامه این مطلب به بررسی این موضوع و همچنین معرفی یکی از مشهورترین دیتابیس‌های time-series به نام InfluxDB می‌پردازیم. در ادامه متوجه خواهید شد که:
• به چه داده ها و دیتابیس هایی time-series میگوییم.
• اطلاعات پایه ای در مورد این دیتابیس ها به دست می اورید.

معرفی مفهموم Time-Series

اگر با مفهوم دیتابیس‌های رابطه‌ای مانند MySQL آشنا باشید، مفاهیمی مانند جداول، ستون ها و کلید اصلی برای شما اشنا هستند. گستره استفاده از دیتابیس‌های رابطه‌ای بسیار فراوان است، شما می‌توانید داده‌ها را به راحتی با بازنوشت و جای‌گذاری آپدیت کنید.
ولی اگر قرار باشد داده‌های تولیدی توسط یک ماشین را جمع آوری کنید با داده‌های بسیاری سر و کار خواهید داشت و قادر نخواهید بود که داده‌ها را دنبال کنید چرا که ماشین همواره در حال تغییر و تحول و جمع آوری داده‌ها برای ارائه ی عملکردی بهتر است، این مقدار داده ممکن است ده‌ها گیگابایت در هر ساعت باشد. هرچند توسط یک دیتابیس رابطه ای میتوانید این مقادیر را جمع اوری کنید، اما در صورت تمایل به افزایش مقیاس یا افزایش کارایی این داده ها دارید استفاده از یک دیتابیس رابطه ای، گزینه مناسبی نخواهد بود.

چه زمان از دیتابیس های Time-Series استفاده کنیم؟

با توجه به مثال قبل متوجه شدیم که جمع آوری و افزایش مقیاس داده ها مشکل خواهد بود، فرض کنید به جای جمع آوری داده‌ها در ستون و ردیف های یک جدول سیستمی در اختیار داریم که ردیف‌هایی از داده را بر اساس یک مقیاس زمانی برای ما جمع آوری می‌کند.

وقتی داده ها به این شکل در اختیار ما قرار بگیرند، طبیعتا دنبال کردن آن ها آسان‌تر خواهد بود. با جمع آوری چنین داده‌هایی در طول زمان متوجه تغییر رفتار یک سیستم در گذشته و نحوه کنونی عملکرد آن خواهید شد و حتی پیش بینی از تغییر وضعیت آن در آینده نیز ممکن خواهد بود.

InfluxDB: یک دیتابیس Time-Serie

InfluxDB یک دیتابیس از نوع Time-series و متن باز است که توسط تیم InfluxData توسعه پیدا کرده است. InfluxDB به کمک زبان Go توسعه پیدا کرده و شما می‌توانید بدون نصب هیچ متعلقاتی آن را نصب کنید. برای جمع آوری داده ها محدودیتی پیش روی شما نیست و مهم نیست که داده های خود را چگونه و با چه فرمتی به InfluxDB می‌دهید.
InfluxDB نسبت به بقیه دیتابیس های time-Serie رشد بهتری داشته و همچنین کد منبع آن نیز به راحتی قابل استفاده است.

ویژگی‌های InfluxDB

مواردی هستنند که باعث می‌شوند InfluxDB از بقیه دیتابیس‌ها متمایز شود.
• عملکرد:
عملکرد خوب یکی از مشخصه‌های اصلی InfluxDB است. این عملکرد خوب به شما این امکان را می‌دهد که حتی زیر بارهای سنگین داده‌ای، با سرعت و کیفیت خوب از داده ها استفاده کنید. برای انجام این کار InfluxDB از فشرده سازی برای مدیریت داده‌ها استفاده میکند و قادر است تا 1 میلیون داده را در هر ثانیه جمع آوری و مدیریت کند.

• کوئری‌های SQL مانند:
اگر با سینتکس SQL آشنا هستید، کوئری گرفتن از InfluxDB نیز برایتان آشنا خواهد بود. InfluxDB از سینتکس خاص خود به نام InfluxQL استفاده می‌کند. به عنوان مثال تصور کنید در حال جمع آوری داده‌های یک ماشین از روی یک حافظه هستید، اگر می‌خواهید آن داده را مشاهده کنید باید یک کوئری به شکل زیر بنویسید که داده‌ها را از 3 ماه گذشته گرفته و در بسته های 10 روزه گروه بندی میکند.

SELECT mean(diskspace_used) as mean_disk_used
FROMe disk_stats
WHERE time() >= 3m
GROUP BY time(10d)

کوچک کردن و نگهداری داده‌ها:

وقتی با داده‌های عظیم سر و کار داریم، ذخیره و نگهداری از آنها مشکل خواهد بود و با گذشت زمان نیز این داده ها پیچیده تر خواهند شد. InfluxDB میتواند این داده‌ها را در اندازه‌های کوچک‌تر و به صورت دقیق‌تر در مدت زمان‌های طولانی ذخیره کند.
با استفاده از سیاست‌های نگهداری داده که در InfluxDB به آن دسترسی دارید، میتوانید تنظیمات خود را طوری تعیین کنید که داده های شما تا 30 روز به طور دقیق در دسترس باشند، بعد از این مدت می‌توانید داده ها را تا 6 ماه و یا مدت زمان طولانی تر و یا برای همیشه نگهداری کنید. این عملکرد باعث میشود که از داده ها نگهداری کنید و همزمان حافظه دیسک را نیز حفظ کنید.