الانتقال إلى المحتوى الرئيسي
يمكن إنشاء خدمات ClickHouse Managed Postgres وإدارتها باستخدام المورد clickhouse_postgres_service في موفّر Terraform لـ ClickHouse. تتناول هذه الصفحة إعداد الموفّر وأمثلة على تهيئة هذا المورد ومصادر البيانات المرتبطة به.
هذا المورد في مرحلة alpha، وقد يتغير سلوكه في الإصدارات المستقبلية من الموفّر. وهو متضمن في الإصدار الاعتيادي للموفّر ومتاح بدءًا من إصدار الموفّر v3.17.1 — راجع إصدارات الموفّر للاطلاع على التفاصيل.

إعداد الموفّر

أضِف موفّر ClickHouse إلى إعدادات Terraform الخاصة بك:
terraform {
  required_providers {
    clickhouse = {
      source  = "ClickHouse/clickhouse"
      version = ">= 3.17.1"
    }
  }
}

provider "clickhouse" {
  organization_id = var.organization_id
  token_key       = var.token_key
  token_secret    = var.token_secret
}
راجع إدارة مفاتيح API للاطّلاع على إرشادات إنشاء مفتاح API لاستخدامه مع موفّر الخدمة.

نظرة عامة على المورد

يحتوي المورد clickhouse_postgres_service على الوسيطات التالية:
الوسيطةمطلوبالوصف
nameنعماسم سهل القراءة للخدمة. غير قابل للتغيير — ويؤدي تغييره إلى حذف الخدمة وإعادة إنشائها.
cloud_providerعند إنشاء خدمة عاديموفّر السحابة الذي يستضيف المثيل. لا يتوفر الدعم حاليًا إلا لـ aws. احذف هذه القيمة عند إنشاء نسخة متماثلة للقراءة أو عند الاستعادة إلى نقطة زمنية (تُورث من المصدر).
regionعند إنشاء خدمة عاديمنطقة السحابة (على سبيل المثال، us-east-1). احذف هذه القيمة عند إنشاء نسخة متماثلة للقراءة أو عند الاستعادة إلى نقطة زمنية (تُورث من المصدر).
sizeعند إنشاء خدمة عاديحجم المثيل (VM SKU)، على سبيل المثال m6gd.large. يمكن تغيير حجمه في مكانه. احذف هذه القيمة عند الاستعادة إلى نقطة زمنية (إذ يعمل المثيل المُستعاد بحجم النسخة الاحتياطية).
postgres_versionلاالإصدار الرئيسي من Postgres (على سبيل المثال، 18). يؤدي تغيير الإصدار الرئيسي إلى حذف الخدمة وإعادة إنشائها.
ha_typeلاوضع التوافر العالي: none أو async أو sync. راجع التوافر العالي.
passwordلاكلمة مرور المستخدم الخارق. احذفها إذا أردت أن يُنشئ الخادم كلمة مرور تلقائيًا. وتُخزَّن في الحالة باعتبارها قيمة حساسة.
pg_configلامعاملات خادم Postgres على هيئة خريطة مفاتيح-قيم.
pgbouncer_configلامعاملات مُجمِّع الاتصالات PgBouncer على هيئة خريطة مفاتيح-قيم.
tagsلاعلامات المورد على هيئة خريطة مفاتيح-قيم.
read_replica_ofلامعرّف الخدمة الأساسية المطلوب النسخ المتماثل منها. راجع النسخ المتماثلة للقراءة. ولا يمكن استخدامه مع restore_to_point_in_time.
restore_to_point_in_timeلاأنشئ الخدمة عبر استعادة خدمة أخرى إلى نقطة زمنية محددة. راجع الاستعادة إلى نقطة زمنية. ولا يمكن استخدامه مع read_replica_of.
السمات التالية للقراءة فقط، ويقوم ClickHouse Cloud بتعبئتها بعد الإنشاء: id وstate وcreated_at وis_primary وhostname وport وusername وconnection_string (حساس).
تُخزَّن قيمة password كنص عادي في حالة Terraform لديك. لذلك احمِ ملف الحالة بالشكل المناسب — على سبيل المثال، باستخدام backend بعيد مع التشفير عند السكون. وإذا حذفت password، فسينشئ الخادم كلمة مرور ويعيد المزوّد قراءتها إلى الحالة عند كل refresh.

إنشاء خدمة

resource "clickhouse_postgres_service" "example" {
  name           = "my-postgres"
  cloud_provider = "aws"
  region         = "us-east-1"
  size           = "m6gd.large"

  # High-availability mode — number of standby replicas:
  #   "none"  – primary only, no standby (default)
  #   "async" – 1 standby, asynchronous replication
  #   "sync"  – 2 standbys, synchronous replication
  ha_type = "async"

  tags = {
    environment = "production"
    team        = "data"
  }
}
لإدارة كلمة المرور بنفسك، عيِّن password — يجب ألا يقل طوله عن 12 حرفًا، وأن يتضمن حرفًا صغيرًا واحدًا على الأقل، وحرفًا كبيرًا واحدًا على الأقل، ورقمًا واحدًا. وإذا حذفته، فسينشئ الخادم كلمة مرور.

التوافر العالي

تتحكم الوسيطة ha_type في عدد النسخ الاحتياطية الجاهزة:
ha_typeالنسخ الاحتياطية الجاهزةالنسخ المتماثل
noneلا شيء (الأساسي فقط)
asyncنسخة احتياطية جاهزة واحدةغير متزامن — تُثبَّت عمليات الكتابة دون انتظار النسخة الاحتياطية الجاهزة
syncنسختان احتياطيتان جاهزتانمتزامن — ينتظر الأساسي تأكيدًا من نسخة احتياطية جاهزة واحدة على الأقل
يمكن تغيير ha_type بعد الإنشاء؛ ويؤدي تغييرها إلى انتقال في التوافر العالي. راجع التوافر العالي للتفاصيل.

النسخ المتماثلة للقراءة

عيّن read_replica_of إلى قيمة id الخاصة بخدمة أساسية لإنشاء نسخة متماثلة للقراءة بتدفّق مستمر. ترث النسخة المتماثلة cloud_provider وregion وpostgres_version ومستخدم فائق الصلاحيات من الخدمة الأساسية، لذا اترك هذه القيم (وpassword) فارغة:
resource "clickhouse_postgres_service" "replica" {
  name            = "my-postgres-replica"
  size            = "m6gd.large"
  read_replica_of = clickhouse_postgres_service.example.id
}
راجع النسخ المتماثلة للقراءة لمزيد من التفاصيل.

الاستعادة إلى نقطة زمنية

عيّن restore_to_point_in_time لإنشاء خدمة من خلال استعادة نسخة احتياطية لخدمة أخرى إلى نقطة زمنية محددة. تكون cloud_provider وregion وpostgres_version موروثة من المصدر (لذا احذفها)، كما يجب حذف size وha_type:
resource "clickhouse_postgres_service" "restored" {
  name = "my-postgres-restored"

  restore_to_point_in_time = {
    source_id      = clickhouse_postgres_service.example.id
    restore_target = "2026-06-01T12:00:00Z"
  }
}
هذه الكتلة بأكملها مخصّصة لوقت الإنشاء فقط: إن تغيير source_id أو restore_target، أو إزالة الكتلة، يؤدي إلى حذف الخدمة وإعادة إنشائها. راجع النسخ الاحتياطي والاستعادة للاطلاع على التفاصيل.

مصادر البيانات

تتيح لك ثلاثة مصادر بيانات مرافقة العثور على الخدمات الحالية:
# A single service by ID.
data "clickhouse_postgres_service" "example" {
  id = clickhouse_postgres_service.example.id
}

# All Managed Postgres services in the organization.
data "clickhouse_postgres_services" "all" {}

# The CA certificates for a service, for TLS connections.
data "clickhouse_postgres_service_ca_certificates" "certs" {
  service_id = clickhouse_postgres_service.example.id
}

استيراد الخدمات الحالية

يمكن استيراد خدمات Managed Postgres الحالية إلى حالة Terraform باستخدام معرّف الخدمة. وتُستعاد كلمة المرور عند الاستيراد — إذ يعرضها الخادم عند GET:
terraform import clickhouse_postgres_service.example xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

العمليات غير المدعومة

العناصر التالية غير موجودة عمدًا في مخطط المورد:
  • الأوامر التشغيلية (إعادة التشغيل، ترقية العقدة، تبديل الأدوار).
  • قوائم السماح لعناوين IP، ونقاط النهاية الخاصة، وإعدادات النسخ الاحتياطي، ونوافذ الصيانة، ومفاتيح التشفير التي يديرها العميل، وBYOC.
  • مهل دورة الحياة القابلة للتهيئة — لا توجد كتلة timeouts {}.
آخر تعديل في ٢٥ يونيو ٢٠٢٦