تفاوتهای اصلی بین نسخه 2 و نسخههای قبلی InfluxDB، هم در معماری و هم در کوئریها و عملکردها مشاهده میشود. در اینجا به برخی از تفاوتهای مهم اشاره میکنم:
1. معماری و احراز هویت
- نسخه 1.x:
- InfluxDB 1.x معماری سادهای داشت و فقط شامل یک سرور داده میشد که به طور مستقیم برای ذخیرهسازی دادهها و اجرای کوئریها استفاده میشد.
- احراز هویت به طور پیشفرض فعال نبود و برای تنظیم امنیت باید از پیکربندیهای اضافی استفاده میکردید.
- نسخه 2.x:
- InfluxDB 2.x به طور کامل بازسازی شده است و شامل قابلیتهای جدید مانند UI (واسط کاربری)، API جدید و ابزارهای نظارت میباشد.
- احراز هویت به صورت پیشفرض در نسخه 2.x فعال است و شامل امکاناتی مانند Token-based authentication میشود.
- Organization و Buckets در نسخه 2.x معرفی شدهاند که به طور ساختاری دادهها را از هم جدا میکنند.
2. زبان کوئری
- نسخه 1.x:
- در نسخه 1.x از زبان InfluxQL برای نوشتن کوئریها استفاده میشد. این زبان مشابه SQL است و برای انجام عملیاتهای پایهای مانند انتخاب، فیلتر، گروهبندی و محاسبه در دسترس بود.
- نسخه 2.x:
- نسخه 2.x از زبان Flux به عنوان زبان جدید کوئری استفاده میکند. Flux یک زبان برنامهنویسی پیچیدهتر است که قابلیتهای بیشتری مانند ترکیب دادهها، اعمال توابع پیچیده، و حتی ارتباط با منابع داده دیگر را فراهم میکند.
- Flux بسیار قدرتمندتر از InfluxQL است و به شما امکان میدهد تا کوئریهای پیچیدهتری بنویسید.
مثال مقایسه کوئری:
-
نسخه 1.x (InfluxQL):
SELECT mean("value") FROM "temperature" WHERE time > now() - 1h GROUP BY time(10m)
-
نسخه 2.x (Flux):
from(bucket: "my-bucket") |> range(start: -1h) |> filter(fn: (r) => r._measurement == "temperature") |> aggregateWindow(every: 10m, fn: mean)
3. تنظیمات ذخیرهسازی و دادهها
- نسخه 1.x:
- در نسخه 1.x، دادهها در Measurementها ذخیره میشدند و از Retention Policies برای تعیین مدت زمان ذخیرهسازی استفاده میشد.
- نسخه 2.x:
- در نسخه 2.x، دادهها در Buckets ذخیره میشوند. هر Bucket به یک Retention Policy خاص مرتبط است. علاوه بر این، مدیریت Retention Policies در نسخه 2.x به صورت بهبود یافتهای انجام میشود.
- همچنین در نسخه 2.x ویژگیهای جدیدی برای Tasks (وظایف زمانبندیشده) معرفی شدهاند که به شما اجازه میدهند تا کارهای خودکار مانند محاسبات یا پاکسازی دادهها را برنامهریزی کنید.
4. مدیریت کاربران و دسترسیها
- نسخه 1.x:
- در نسخه 1.x، مدیریت کاربران و دسترسیها به طور محدودتری انجام میشد و نیاز به تنظیمات بیشتری داشت.
- نسخه 2.x:
- در نسخه 2.x، Role-Based Access Control (RBAC) به طور کامل پیادهسازی شده است. شما میتوانید نقشهای مختلف برای دسترسی به دادهها و امکانات مختلف تنظیم کنید.
5. API و واسط کاربری
- نسخه 1.x:
- نسخه 1.x یک API REST ساده داشت که برای مدیریت دادهها، کوئریها و پیکربندیها استفاده میشد.
- واسط کاربری به طور مستقیم وجود نداشت.
- نسخه 2.x:
- InfluxDB 2.x دارای یک API جدید است که به شما امکان میدهد تا به راحتی دادهها را مدیریت کرده، وظایف را زمانبندی کنید و داشبوردهای گرافیکی را ایجاد کنید.
- UI جدید InfluxDB 2.x به شما امکان میدهد تا به راحتی کوئریها را بنویسید، دادهها را مشاهده کنید و داشبوردهای بصری ایجاد کنید.
6. پشتیبانی از انواع دادهها
- نسخه 1.x:
- نسخه 1.x از دادههای time series پشتیبانی میکرد، که دادههایی هستند که بهطور مداوم با گذر زمان ذخیره میشوند.
- نسخه 2.x:
- نسخه 2.x علاوه بر دادههای time series، از دادههای پیچیدهتری مانند log data و structured data پشتیبانی میکند.
7. مدیریت و نظارت
- نسخه 1.x:
- در نسخه 1.x، نظارت و مدیریت از طریق ابزارهایی مانند Kapacitor (برای پردازش جریان داده) و Chronograf (برای نمایش دادهها و داشبوردها) انجام میشد.
- نسخه 2.x:
- در نسخه 2.x، همه این امکانات یکپارچه شدهاند. علاوه بر این، امکان ایجاد Tasks برای پردازش خودکار دادهها و حتی ارسال اعلانها نیز فراهم شده است.
8. پشتیبانی از منابع خارجی
- نسخه 1.x:
- نسخه 1.x توانایی ادغام با منابع داده خارجی را بهطور محدود داشت.
- نسخه 2.x:
- نسخه 2.x با استفاده از زبان Flux، از اتصال به منابع داده خارجی (مانند دیتابیسهای SQL، فایلهای CSV و دیگر منابع) پشتیبانی میکند و میتوانید دادههای خارجی را هم در کوئریها پردازش کنید.
جمعبندی:
- نسخه 2.x InfluxDB از امکانات گستردهتری نسبت به نسخه 1.x برخوردار است. Flux به شما اجازه میدهد که کوئریهای پیچیدهتر و کارهای خودکار بیشتری را انجام دهید.
- نسخه 1.x برای کاربردهای ساده و سریع مناسب است، در حالی که نسخه 2.x برای استفاده در محیطهای پیچیدهتر و حرفهایتر طراحی شده است.
اگر به دنبال کوئریهای پیشرفتهتر و امکانات بیشتر برای تجزیه و تحلیل دادهها هستید، نسخه 2.x گزینه بهتری است.