الانتقال إلى المحتوى الرئيسي

الخلفية

يُعد TimescaleDB امتدادًا مفتوح المصدر لـ Postgres طوّرته Timescale Inc، ويهدف إلى تحسين أداء استعلامات التحليلات دون الحاجة إلى مغادرة Postgres. ويتحقق ذلك من خلال إنشاء “الجداول الفائقة” التي يديرها الامتداد وتدعم التقسيم التلقائي إلى “chunks”. كما تدعم “الجداول الفائقة” أيضًا الضغط الشفاف والتخزين الهجين الصفّي-العمودي (المعروف باسم “hypercore”)، إلا أن هذه الميزات تتطلب إصدارًا من الامتداد بترخيص احتكاري. وتقدّم Timescale Inc أيضًا خدمتين مُدارتين لـ TimescaleDB:
  • Managed Service for Timescale
  • Timescale Cloud.
كما توجد جهات خارجية تقدّم خدمات مُدارة تتيح لك استخدام امتداد TimescaleDB، ولكن بسبب قيود الترخيص، لا تدعم هذه الجهات سوى الإصدار مفتوح المصدر من الامتداد. وتعمل “الجداول الفائقة” في Timescale بطريقة تختلف عن جداول Postgres العادية من عدة نواحٍ. وهذا يفرض بعض التعقيدات على عملية النسخ المتماثل لها، ولذلك ينبغي اعتبار القدرة على النسخ المتماثل لـ “الجداول الفائقة” في Timescale مبنية على أفضل جهد ممكن.

إصدارات Postgres المدعومة

تدعم ClickPipes الإصدار 12 من Postgres وما بعده.

تفعيل النسخ المتماثل المنطقي

تعتمد الخطوات التي ينبغي اتباعها على طريقة نشر مثيل Postgres لديك مع TimescaleDB.
  • إذا كنت تستخدم خدمة مُدارة وكان موفّر الخدمة مدرجًا في الشريط الجانبي، فيُرجى اتباع الدليل الخاص به.
  • إذا كنت تنشر TimescaleDB بنفسك، فاتبع الدليل العام.
بالنسبة إلى الخدمات المُدارة الأخرى، يُرجى فتح تذكرة دعم لدى موفّر الخدمة للمساعدة في تفعيل النسخ المتماثل المنطقي إذا لم يكن مفعّلًا بالفعل.
لا يدعم Timescale Cloud تفعيل النسخ المتماثل المنطقي، وهو مطلوب لمسارات Postgres في وضع CDC. ونتيجةً لذلك، لا يمكن لمستخدمي Timescale Cloud سوى إجراء تحميل بيانات لمرة واحدة (Initial Load Only) باستخدام Postgres ClickPipe.

التهيئة

لا تخزّن الجداول الفائقة في Timescale أي بيانات تُدرَج فيها. وبدلًا من ذلك، تُخزَّن البيانات في عدة جداول “chunk” مقابلة ضمن المخطط _timescaledb_internal. لا يمثّل هذا مشكلة عند تشغيل الاستعلامات على الجداول الفائقة. لكن أثناء النسخ المتماثل المنطقي، نكتشف التغييرات في جداول “chunk” بدلًا من اكتشافها في الجدول الفائق نفسه. ويتضمن Postgres ClickPipe منطقًا يعيد تلقائيًا ربط التغييرات من جداول “chunk” بالجدول الفائق الأب، لكن ذلك يتطلب خطوات إضافية.
إذا كنت تريد فقط تنفيذ تحميل لمرة واحدة لبياناتك (Initial Load Only)، فيُرجى تخطي الخطوة 2 وما يليها.
  1. أنشئ مستخدمًا مخصصًا لـ ClickPipes:
    CREATE USER clickpipes_user PASSWORD 'some-password';
    
  2. امنح المستخدم الذي أنشأته في الخطوة السابقة وصولًا للقراءة فقط على مستوى المخطط. يوضّح المثال التالي الأذونات الخاصة بالمخطط public. كرر هذه الأوامر لكل مخطط يحتوي على الجداول التي تريد تضمينها في النسخ المتماثل:
    GRANT USAGE ON SCHEMA "public" TO clickpipes_user;
    GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user;
    ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user;
    
  3. امنح المستخدم امتيازات النسخ المتماثل:
    ALTER USER clickpipes_user WITH REPLICATION;
    
  4. بصفتك مستخدم Postgres فائق الصلاحيات/مسؤولًا، أنشئ منشورًا يتضمن الجداول الفائقة التي تريد نسخها متماثلًا. يجب أن يتضمن المنشور أيضًا المخطط _timescaledb_internal بالكامل حتى يتمكن المسار من تلقي التغييرات من جداول “chunk” الأساسية. ونوصي بشدة بقصر المنشور على الجداول التي تحتاج إليها فقط لتجنب العبء الإضافي على الأداء.
يجب أن يكون لأي جدول مُدرج في المنشور إما مفتاح أساسي معرّف أو أن تكون replica identity الخاصة به مضبوطة على FULL. راجع الأسئلة الشائعة الخاصة بـ Postgres للحصول على إرشادات حول تحديد النطاق.
   -- When adding new tables to the ClickPipe, you'll need to add them to the publication manually as well.
   CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2, TABLES IN SCHEMA _timescaledb_internal;
سيحتوي المنشور clickpipes على مجموعة أحداث التغيير الناتجة عن الجداول المحددة، وسيُستخدم لاحقًا لاستيعاب تدفق النسخ المتماثل.
لا تمنح بعض الخدمات المُدارة المستخدمين الإداريين لديها الأذونات المطلوبة لإنشاء منشور لمخطط كامل. إذا كان هذا هو الحال، فأنشئ تذكرة دعم لدى مزودك. وبدلًا من ذلك، يمكنك تخطي هذه الخطوة (والخطوات التالية) وإجراء تحميل لمرة واحدة لبياناتك.
بعد إكمال هذه الخطوات، ينبغي أن تتمكن من المتابعة إلى إنشاء ClickPipe.

تكوين الوصول إلى الشبكة

إذا كنت تريد تقييد حركة المرور إلى مثيل Timescale الخاص بك، فيُرجى إضافة عناوين IP الثابتة لـ NAT الموثّقة إلى قائمة السماح. تختلف التعليمات اللازمة لذلك باختلاف مزوّدي الخدمة، لذا يُرجى الرجوع إلى الشريط الجانبي إذا كان مزوّدك مدرجًا، أو فتح تذكرة دعم لديهم.
آخر تعديل في ٢٩ يونيو ٢٠٢٦