جداول TimescaleDB فائقة التقسيم
حوّل جدول Postgres إلى جدول فائق في TimescaleDB، مع تقسيم زمني تلقائي حسب الفاصل الزمني للقطع
جداول TimescaleDB فائقة التقسيم درس مجاني في SQL Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في SQL Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة SQL Academy 4 دروس في المجموع.
ما هو TimescaleDB؟
امتداد لـ PostgreSQL صُمم لبيانات السلاسل الزمنية. يضيف التقسيم التلقائي حسب الوقت، والضغط، والاحتفاظ بالبيانات، والتجميعات المستمرة. ويمكن استخدامه مستقلاً أو إلى جانب Postgres العادي.
الجدول فائق الحجم
هو جدول واحد منطقياً، لكنه مقسّم فعلياً إلى "أجزاء" حسب الوقت:
CREATE EXTENSION IF NOT EXISTS timescaledb;
CREATE TABLE metrics (
ts TIMESTAMPTZ NOT NULL,
device_id BIGINT NOT NULL,
value DOUBLE PRECISION
);
SELECT create_hypertable('metrics', 'ts');
-- metrics is now a hypertable, chunks created automatically.الفاصل الزمني للجزء
الجزء الافتراضي = 7 أيام. اضبطه وفق سرعة تدفق بياناتك (أجزاء أصغر للبيانات عالية السرعة):
SELECT create_hypertable('metrics', 'ts', chunk_time_interval => INTERVAL '1 day');
-- One chunk per day, smaller and faster to drop.إدراج البيانات
استخدم INSERT العادي فحسب — إذ يوجّه TimescaleDB الصفوف إلى الجزء الصحيح:
INSERT INTO metrics (ts, device_id, value)
VALUES (NOW(), 1, 42.5);الاستعلام عن الجداول فائقة الحجم
تبدو كأنها جداول عادية. ويستبعد المخطط الأجزاء غير اللازمة للاستعلامات المقيّدة زمنياً:
SELECT * FROM metrics
WHERE ts >= NOW() - INTERVAL '7 days'
ORDER BY ts DESC LIMIT 100;
-- Only the relevant chunks are read.time_bucket: بديل أذكى لـ date_trunc
مساعد التجميع في TimescaleDB:
SELECT time_bucket('1 hour', ts) AS hour,
AVG(value) AS avg_value
FROM metrics
WHERE device_id = 42
AND ts >= NOW() - INTERVAL '24 hours'
GROUP BY hour
ORDER BY hour;التقسيم متعدد الأعمدة
بالنسبة إلى أحمال العمل متعددة المستأجرين، قسّم أيضاً حسب device_id:
SELECT create_hypertable('metrics', 'ts', 'device_id', 4);
-- Hash-partitions device_id into 4 space partitions per time chunk.الاستعلام باستخدام كلا المرشحين
تحصل على أفضل أداء عند تطبيق التصفية على بُعدَي التقسيم معاً:
SELECT * FROM metrics
WHERE device_id = 42
AND ts >= NOW() - INTERVAL '7 days';
-- Prunes by both time and space.الفهارس على الجداول فائقة الحجم
تنتشر الفهارس إلى كل جزء:
CREATE INDEX metrics_device_idx ON metrics (device_id, ts DESC);
-- Composite index ideal for 'recent data for one device' queries.تحديث الجداول فائقة الحجم
تعمل عمليات UPDATE وDELETE، لكن ينبغي أن تكون نادرة في بيانات السلاسل الزمنية. فالبيانات القديمة عادةً ما تكون للإلحاق فقط وغير قابلة للتغيير.
الترحيل من الجداول العادية
يمكن تحويل الجداول الموجودة إلى جداول فائقة الحجم:
SELECT create_hypertable('metrics', 'ts', migrate_data => true);مراجعة
الجداول فائقة الحجم = تقسيم تلقائي حسب الوقت في Postgres.
- جدول منطقي واحد، وأجزاء فعلية متعددة
- create_hypertable + chunk_time_interval
- time_bucket للتجميعات المجمّعة في دلاء زمنية
- تنتشر الفهارس إلى جميع الأجزاء
تحقق سريع
تُدخل مقاييس إنترنت الأشياء بمعدل 100k صف في الثانية. لماذا تحوّل الجدول إلى جدول فائق الحجم في TimescaleDB؟
الأسئلة الشائعة
هل درس «جداول TimescaleDB فائقة التقسيم» مجاني؟
نعم — نص درس «جداول TimescaleDB فائقة التقسيم» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة SQL Academy، انتقل إلى CoddyKit PRO. تتضمن دورة SQL Academy 4 دروس في المجموع.
ماذا ستتعلم في «جداول TimescaleDB فائقة التقسيم»؟
حوّل جدول Postgres إلى جدول فائق في TimescaleDB، مع تقسيم زمني تلقائي حسب الفاصل الزمني للقطع تتمرن على SQL Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ SQL Academy؟
لا تُشترط خبرة سابقة. SQL Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «جداول TimescaleDB فائقة التقسيم»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس SQL Academy هذا؟
نعم. كل درس في SQL Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- جداول TimescaleDB فائقة التقسيم
- التجميعات المستمرة
- سياسات الضغط والاحتفاظ
- اختيار فهارس السلاسل الزمنية