به‌زودی

TimescaleDB: داده‌های سری‌زمانی، روی قدرت PostgreSQL

TimescaleDB افزونهٔ سری‌زمانی PostgreSQL است — همان SQL و همان ابزارها، با hypertable و توابع زمانی برای متریک، دادهٔ حسگر و رویدادهای زمان‌دار. نسخهٔ مدیریت‌شده روی PostgreSQL 17 به‌زودی در پنل فعال می‌شود.

لوگوی TimescaleDB

TimescaleDB (سری‌زمانی)

افزونهٔ سری‌زمانی PostgreSQL،به‌زودی

هنوز قابل سفارش نیست

جایگزین امروز: سرور ابری mini از ۱٬۱۰۰ تومان در ساعت؛ نصب و نگه‌داری با خودتان.

  • PostgreSQL 17،  با افزونهٔ TimescaleDB 2
  • پورت ۵۴۳۲،  پروتکل استاندارد PostgreSQL
  • یک نود اختصاصی،  بدون replica

معرفی سرویس

TimescaleDB: سری‌زمانی روی قدرت PostgreSQL

TimescaleDB یک افزونهٔ سری‌زمانی روی PostgreSQL است — همان SQL، همان ابزارها و همان اکوسیستم، اما بهینه‌شده برای متریک، دادهٔ سنسور و رویدادهای زمان‌دار با حجم بالا. مفهوم hypertable داده را خودکار بر اساس زمان پارتیشن‌بندی می‌کند. نسخهٔ مدیریت‌شده آماده است و به‌زودی قابل سفارش می‌شود.

فشرده‌سازی ستونی chunk‌های قدیمی حجم دیسک را کم می‌کند و query‌های بازهٔ زمانی فقط بخش لازم داده را می‌خوانند. مناسب IoT، مانیتورینگ، داده‌های مالی و هر باری که زمان محور اصلی داده است.

امکانات

چه دریافت می‌کنید؟

hypertable خودکار

پارتیشن‌بندی زمانی خودکار در chunkها؛ insert پیوسته و query بازه‌ای بدون مدیریت دستی پارتیشن.

همان SQL پستگرس

تمام SQL‏، driver‌ها و ابزارهای PostgreSQL کار می‌کنند — بدون یادگیری زبان جدید.

فشرده‌سازی سری‌زمانی

با سیاست فشرده‌سازی، chunk‌های قدیمی به‌صورت ستونی فشرده می‌شوند و فضای دیسک کمتری می‌گیرند.

continuous aggregates

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

تنظیم خودکار

timescaledb-tune حافظه و تنظیمات PostgreSQL را بر اساس منابع همان اندازه تنظیم می‌کند.

داده داخل ایران

روی زیرساخت داخل ایران؛ تأخیر کم برای جمع‌آوری داده از دستگاه‌ها و سرورهای داخلی.

تا راه‌اندازی، همین حالا شروع کنید

PostgreSQL مدیریت‌شدهٔ ما همین حالا در دسترس است (بدون افزونهٔ TimescaleDB)؛ اگر hypertable لازم دارید، TimescaleDB را روی سرور ابری خودتان نصب کنید. وقتی نسخهٔ مدیریت‌شده فعال شد، انتقال با pg_dump ساده است.

برای نمونهٔ اولیه سرور ابری mini کافی است: از ۱٬۱۰۰ تومان در ساعت، صورت‌حساب ساعتی از کیف پول.

حساب دارید؟ ورود و سفارش سرور

راهنمای کامل

راهنمای کامل TimescaleDB مدیریت‌شده در ایران‌کلاد

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

۱۲ بخش حدود ۷ دقیقه مطالعه

فهرست مطالب

TimescaleDB چیست و چرا برای دادهٔ سری زمانی ساخته شده است؟

دادهٔ سری زمانی یعنی اندازه‌گیری‌هایی که هر کدام یک برچسب زمان دارند: دمای یک حسگر در هر دقیقه، مصرف CPU یک سرور در هر ده ثانیه یا قیمت یک دارایی در هر معامله. این داده‌ها تقریباً همیشه اضافه می‌شوند و کمتر ویرایش می‌شوند، و بیشتر query‌ها روی یک بازهٔ زمانی مشخص زده می‌شوند.

TimescaleDB یک افزونه برای PostgreSQL است که دقیقاً برای همین الگو بهینه شده است. به‌جای یادگیری یک دیتابیس و زبان جدید، با همان SQL آشنا کار می‌کنید و جدول زمانی را به hypertable تبدیل می‌کنید. افزونه داده را پشت صحنه بر اساس زمان به chunk‌های جداگانه تقسیم می‌کند تا هم insert پیوسته و هم حذف دادهٔ قدیمی سریع بماند.

نسخهٔ مدیریت‌شدهٔ ایران‌کلاد یعنی یک سرور اختصاصی که PostgreSQL 17 و TimescaleDB روی آن نصب و تنظیم شده و شما فقط رشتهٔ اتصال را در اپلیکیشن قرار می‌دهید.

وضعیت فعلی سرویس: چه چیزی آماده است و چه چیزی نه؟

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

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

بازگشت به فهرست مطالب

کاربردهای رایج TimescaleDB

هر جا که «زمان» محور اصلی داده باشد، TimescaleDB به کار می‌آید. چند نمونهٔ رایج:

  • مانیتورینگ زیرساخت: ذخیرهٔ متریک سرورها و سرویس‌ها و نمایش آن در Grafana
  • اینترنت اشیا: دادهٔ حسگرهای دما، رطوبت، مصرف برق یا موقعیت خودروها
  • دادهٔ مالی: قیمت لحظه‌ای، کندل‌های زمانی و تاریخچهٔ معاملات
  • تحلیل رفتار کاربر: رویدادهای کلیک و بازدید با برچسب زمان برای گزارش‌های روزانه و ساعتی
  • لاگ رویدادهای کسب‌وکار: ثبت سفارش، پرداخت و ارسال برای گزارش روند
  • داده‌های صنعتی: خروجی دستگاه‌های خط تولید برای پایش و نگه‌داری پیشگیرانه

بازگشت به فهرست مطالب

امکانات کلیدی: hypertable، فشرده‌سازی و تجمیع پیوسته

hypertable مفهوم مرکزی TimescaleDB است. شما یک جدول معمولی با ستون زمان می‌سازید و با تابع create_hypertable آن را تبدیل می‌کنید. از آن به بعد INSERT و SELECT مثل قبل نوشته می‌شوند، اما دیتابیس فقط chunk‌هایی را می‌خواند که در بازهٔ زمانی query قرار دارند و حذف دادهٔ قدیمی هم به‌جای DELETE سنگین، با حذف کل chunk انجام می‌شود.

تابع time_bucket داده را به بازه‌های دلخواه مثل پنج دقیقه یا یک ساعت گروه‌بندی می‌کند و نوشتن گزارش‌های زمانی را ساده می‌کند. continuous aggregate نتیجهٔ این گروه‌بندی‌ها را به‌صورت پیوسته و افزایشی به‌روز نگه می‌دارد تا داشبورد هر بار کل داده را از نو حساب نکند. فشرده‌سازی ستونی هم برای chunk‌های قدیمی‌تر حجم دیسک را کم می‌کند؛ میزان آن به ساختار دادهٔ شما بستگی دارد.

نکتهٔ مهم در طراحی، انتخاب ستون‌هایی است که با آن‌ها فیلتر می‌کنید. اگر بیشتر query‌ها روی یک دستگاه یا یک سرور خاص زده می‌شوند، روی ترکیب شناسهٔ سری و زمان ایندکس بسازید و هنگام فعال کردن فشرده‌سازی، همان شناسه را به‌عنوان ستون segmentby معرفی کنید. با این کار هم query روی یک سری سریع می‌ماند و هم دادهٔ فشرده‌شده به‌خوبی گروه‌بندی می‌شود.

بازگشت به فهرست مطالب

پیکربندی هر instance چگونه خواهد بود؟

مشخصات زیر همان چیزی است که اسکریپت نصب آماده‌شده پیاده می‌کند:

موردمقدارتوضیح
نسخهٔ PostgreSQL17با بستهٔ contrib
افزونهTimescaleDB 2در دیتابیس postgres فعال؛ در دیتابیس‌های جدید با CREATE EXTENSION
تنظیم حافظهtimescaledb-tuneبر اساس RAM و هستهٔ همان اندازه
احراز هویتscram-sha-256رمز کاربر postgres تصادفی ۳۲ کاراکتری
پورت5432پروتکل استاندارد PostgreSQL
معماریتک‌نود اختصاصیبدون replica و failover

در دیتابیسی که خودتان می‌سازید، پیش از تعریف hypertable یک بار دستور CREATE EXTENSION IF NOT EXISTS timescaledb را اجرا کنید.

بازگشت به فهرست مطالب

تعرفهٔ پیش‌بینی‌شده و نحوهٔ محاسبه

هزینه مانند سایر دیتابیس‌های مدیریت‌شده ساعتی خواهد بود و از کیف پول کسر می‌شود: هزینهٔ سرور اختصاصی با اندازهٔ انتخابی به‌علاوهٔ هزینهٔ ثابت مدیریت. جدول زیر تعرفهٔ فعلی سامانه را نشان می‌دهد؛ چون سرویس هنوز فعال نشده، این ارقام تا زمان راه‌اندازی ممکن است تغییر کنند. معادل ماهانه بر مبنای ۷۳۰ ساعت است.

برای دادهٔ سری زمانی، حافظه و دیسک معمولاً زودتر از پردازنده محدود می‌شوند. اگر ده‌ها هزار سری مختلف دارید یا داده را ماه‌ها نگه می‌دارید، از standard یا plus شروع کنید. برای مقایسه با سایر سرویس‌ها صفحهٔ قیمت‌ها را ببینید.

اندازهمنابع سرورساعتی (تومان)تقریبی ماهانه (تومان)
mini۱ هسته، ۱ گیگ RAM، ۲۰ گیگ دیسک۱٬۳۰۰۹۴۹٬۰۰۰
standard۲ هسته، ۲ گیگ RAM، ۴۰ گیگ دیسک۲٬۴۰۰۱٬۷۵۲٬۰۰۰
plus۲ هسته، ۴ گیگ RAM، ۸۰ گیگ دیسک۳٬۷۰۰۲٬۷۰۱٬۰۰۰

بازگشت به فهرست مطالب

TimescaleDB‏، PostgreSQL معمولی یا ClickHouse؟

سه گزینه برای ذخیرهٔ دادهٔ زمانی کنار هم؛ انتخاب به حجم داده و نوع query بستگی دارد:

معیارTimescaleDBPostgreSQL معمولیClickHouse
زبان querySQL کامل PostgreSQLSQL کامل PostgreSQLدیالکت SQL خود ClickHouse
تقسیم خودکار بر اساس زماندارد (hypertable)باید دستی پارتیشن بسازیدبا کلید پارتیشن جدول
JOIN با جدول‌های رابطه‌ایکاملکاملمحدودتر
مناسب برایمتریک و IoT کنار دادهٔ رابطه‌ایحجم کم دادهٔ زمانیرویدادهای بسیار پرحجم و تحلیل
وضعیت در ایران‌کلادبه‌زودیفعالبه‌زودی

بازگشت به فهرست مطالب

از همین امروز چطور شروع کنید؟

لازم نیست برای شروع منتظر بمانید. اگر حجم داده کم است، می‌توانید با PostgreSQL مدیریت‌شده و یک جدول معمولی با ایندکس روی ستون زمان شروع کنید. وقتی TimescaleDB فعال شد، داده را با pg_dump منتقل و جدول را به hypertable تبدیل می‌کنید؛ query‌های شما تغییر زیادی نمی‌کنند.

اگر از روز اول به hypertable و continuous aggregate نیاز دارید، یک سرور ابری بگیرید و PostgreSQL و TimescaleDB را خودتان روی آن نصب کنید. در این حالت نگه‌داری، تنظیم و بکاپ با خود شماست، اما کنترل کامل هم دارید.

  1. یک حساب کاربری در ایران‌کلاد بسازید و کیف پول را شارژ کنید
  2. مدل داده را مشخص کنید: ستون زمان، شناسهٔ سری و مقدارها
  3. با PostgreSQL مدیریت‌شده یا سرور ابری خودتان نمونهٔ اولیه را بسازید
  4. پس از فعال شدن سرویس، instance مدیریت‌شده بسازید و داده را منتقل کنید

بازگشت به فهرست مطالب

امنیت و دسترسی

احراز هویت با scram-sha-256 انجام می‌شود که روش امن فعلی PostgreSQL برای نگه‌داری رمز است و رمز کاربر postgres به‌صورت تصادفی ساخته می‌شود. اطلاعات اتصال پس از ساخت از پنل دریافت می‌شود و رمز در پنل رمزنگاری‌شده نگه‌داری خواهد شد.

برای هر اپلیکیشن یا جمع‌آوری‌کنندهٔ داده یک نقش جداگانه با کمترین دسترسی لازم بسازید؛ مثلاً نقشی که فقط حق INSERT روی جدول متریک دارد برای agent‌های حسگر، و نقشی با فقط SELECT برای داشبورد. این کار با دستورهای استاندارد CREATE ROLE و GRANT انجام می‌شود. برای ساخت رمزهای قوی از ابزار تولید رمز کمک بگیرید.

بازگشت به فهرست مطالب

نگه‌داری داده، سیاست حذف و بکاپ

دادهٔ سری زمانی معمولاً سریع رشد می‌کند، پس از ابتدا تصمیم بگیرید هر داده را چه مدت نگه دارید. TimescaleDB با سیاست retention می‌تواند chunk‌های قدیمی‌تر از یک بازهٔ مشخص را خودکار حذف کند و با continuous aggregate خلاصهٔ آن‌ها را برای گزارش‌های بلندمدت نگه دارد.

بکاپ شبانهٔ خودکار در طراحی فعلی برای این سرویس پیش‌بینی نشده است. با pg_dump و فرمت custom به‌صورت دوره‌ای از دیتابیس خروجی بگیرید و فایل را در فضای ذخیره‌سازی ابری نگه دارید. برای بازگردانی hypertableها، پیش از pg_restore تابع timescaledb_pre_restore و پس از آن timescaledb_post_restore را اجرا کنید.

بازگشت به فهرست مطالب

مهاجرت از InfluxDB‏، PostgreSQL یا فایل CSV

اگر داده در PostgreSQL معمولی است، جدول را با pg_dump منتقل کنید و سپس با create_hypertable و گزینهٔ migrate_data آن را به hypertable تبدیل کنید. برای جدول‌های بزرگ بهتر است hypertable خالی بسازید و داده را با INSERT ... SELECT یا COPY در چند مرحله منتقل کنید.

از InfluxDB یا سامانه‌های دیگر، ساده‌ترین مسیر خروجی گرفتن به CSV و بارگذاری با دستور COPY است. پیش از انتقال، نام‌گذاری ستون‌ها و نوع دادهٔ زمان (timestamptz) را مشخص کنید تا منطقهٔ زمانی ایران و تغییرات ساعت در گزارش‌ها دردسرساز نشود.

بازگشت به فهرست مطالب

محدودیت‌هایی که باید از قبل بدانید

سرویس هنوز قابل سفارش نیست. پس از فعال شدن هم هر instance تک‌نودی است و replica‏، failover خودکار، بکاپ خودکار و بازیابی به نقطهٔ زمانی ندارد. نسخهٔ ارائه‌شدهٔ PostgreSQL فقط ۱۷ است و تغییر اندازه پس از ساخت از پنل ممکن نیست.

افزونهٔ TimescaleDB روی PostgreSQL مدیریت‌شده فعلی نصب نمی‌شود؛ این دو سرویس جدا هستند. اگر به چند نود یا تنظیمات خاص نیاز دارید، کلاستر اختصاصی یا نصب روی سرور ابری خودتان گزینهٔ مناسب‌تری است.

بازگشت به فهرست مطالب بازگشت به ابتدای راهنما

پرسش و پاسخ،  ۱۲ پرسش

سؤالات متداول

پاسخ پرسش خود را پیدا نکردید؟ با پشتیبانی در تماس باشید.

تفاوت TimescaleDB با PostgreSQL معمولی چیست؟
TimescaleDB یک افزونه روی PostgreSQL است؛ تمام SQL‏، driver‌ها و ابزارهای PostgreSQL کار می‌کنند. تفاوت در hypertable است: جدولی که به‌طور خودکار بر اساس زمان به بخش‌های کوچک‌تر (chunk) تقسیم می‌شود تا insert پیوسته و query روی بازهٔ زمانی سریع بماند. فشرده‌سازی دادهٔ قدیمی و continuous aggregate هم از امکانات خود افزونه است.
برای چه کاربردهایی مناسب است؟
متریک و مانیتورینگ سرور، دادهٔ حسگرهای IoT، قیمت و معاملات مالی، تله‌متری دستگاه و هر داده‌ای که با زمان شناخته می‌شود، پیوسته اضافه می‌شود و بعداً روی بازه‌های زمانی خوانده و تجمیع می‌شود.
چطور راه‌اندازی می‌شود و از چه زمانی در دسترس است؟
این سرویس هنوز قابل سفارش نیست و پس از فعال شدن از بخش پایگاه‌های دادهٔ تحلیلی پنل ساخته می‌شود. تا آن زمان می‌توانید PostgreSQL و TimescaleDB را خودتان روی یک سرور ابری نصب کنید یا اگر hypertable لازم ندارید از PostgreSQL مدیریت‌شدهٔ فعلی استفاده کنید. افزونهٔ TimescaleDB روی PostgreSQL مدیریت‌شده نصب نمی‌شود.
هزینه چگونه محاسبه می‌شود؟
مانند سایر دیتابیس‌های مدیریت‌شده، ساعتی و بر اساس اندازهٔ سرور (mini‏، standard یا plus) به‌علاوهٔ هزینهٔ مدیریت. تعرفهٔ پیش‌بینی‌شده در راهنمای همین صفحه آمده و تا زمان راه‌اندازی ممکن است تغییر کند.
TimescaleDB مدیریت‌شده دقیقاً با چه تنظیماتی ساخته خواهد شد؟
هر instance یک سرور اختصاصی با PostgreSQL 17 و افزونهٔ TimescaleDB است. ابزار timescaledb-tune هنگام نصب حافظه و بارگذاری افزونه را بر اساس RAM سرور تنظیم می‌کند، احراز هویت با scram-sha-256 انجام می‌شود، پورت ۵۴۳۲ برای اتصال remote باز است و افزونه در دیتابیس پیش‌فرض postgres فعال شده است.
تعرفهٔ پیش‌بینی‌شده چقدر است؟
طبق تعرفهٔ فعلی سامانه، اندازهٔ mini ۱٬۳۰۰‏، standard ۲٬۴۰۰ و plus ۳٬۷۰۰ تومان در ساعت خواهد بود؛ شامل سرور اختصاصی و هزینهٔ مدیریت. چون سرویس هنوز فعال نشده، این ارقام تا زمان راه‌اندازی ممکن است تغییر کنند.
آیا بکاپ خودکار خواهد داشت؟
در طراحی فعلی، بکاپ شبانهٔ خودکار فقط برای MySQL‏، MariaDB و PostgreSQL مدیریت‌شده انجام می‌شود و برای TimescaleDB پیش‌بینی نشده است. باید با pg_dump به‌صورت دوره‌ای خروجی بگیرید و آن را جای دیگری، مثلاً در فضای ذخیره‌سازی ابری، نگه دارید.
آیا driver و ORM فعلی من با TimescaleDB کار می‌کند؟
بله. TimescaleDB از پروتکل استاندارد PostgreSQL استفاده می‌کند؛ psycopg، node-postgres، pgx، JDBC‏، PDO و ORM‌هایی مثل Django ORM‏، SQLAlchemy یا Prisma بدون تغییر وصل می‌شوند. فقط ساخت hypertable با تابع create_hypertable یک بار در migration انجام می‌شود.
TimescaleDB را انتخاب کنم یا ClickHouse؟
اگر دادهٔ زمانی را کنار جدول‌های رابطه‌ای معمولی (کاربر، دستگاه، سفارش) نگه می‌دارید و به JOIN و تراکنش نیاز دارید، TimescaleDB انتخاب طبیعی‌تری است چون خود PostgreSQL است. اگر حجم رویدادها بسیار زیاد است و بیشتر query تحلیلی روی ستون‌های محدود می‌زنید، ClickHouse را بررسی کنید.
آیا خوشهٔ چندنودی یا replica ارائه می‌شود؟
خیر. هر instance تک‌نودی خواهد بود و replica خواندنی یا failover خودکار در طراحی فعلی وجود ندارد. برای بیشتر پروژه‌های مانیتورینگ و IoT در مقیاس کوچک تا متوسط یک نود کافی است.
آیا Grafana و ابزارهای BI مستقیم به TimescaleDB وصل می‌شوند؟
بله. Grafana منبع دادهٔ PostgreSQL دارد و گزینهٔ TimescaleDB را هم در همان تنظیمات می‌شناسد؛ کافی است آدرس، پورت ۵۴۳۲ و یک نقش فقط‌خواندنی بدهید. ابزارهایی مثل Metabase هم از طریق اتصال PostgreSQL با آن کار می‌کنند و تابع time_bucket را می‌توانید مستقیم در query‌های داشبورد بنویسید.
چطور از راه‌اندازی سرویس باخبر شوم؟
یک حساب کاربری بسازید؛ وقتی پایگاه‌های دادهٔ تحلیلی فعال شوند، از بخش مربوط در پنل قابل سفارش خواهند بود. تغییرات سرویس‌ها در صفحهٔ تغییرات سایت هم اعلام می‌شود.

پاسخ پرسش خود را پیدا نکردید؟ با پشتیبانی در تماس باشید.

TimescaleDB مدیریت‌شده به‌زودی

تا باز شدن سفارش، PostgreSQL و TimescaleDB را روی سرور ابری خودتان اجرا و مدل داده و hypertable‌ها را آزمایش کنید؛ بعداً داده را با pg_dump منتقل می‌کنید.