Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

واجهة PostgreSQL

غير مدعوم في ClickHouse Cloud

يدعم ClickHouse بروتوكول PostgreSQL الشبكي، مما يتيح لك استخدام عملاء PostgreSQL للاتصال بـ ClickHouse. وبمعنى ما، يمكن لـ ClickHouse أن يتظاهر بأنه مثيل PostgreSQL، ما يتيح لك توصيل تطبيق عميل PostgreSQL بـ ClickHouse إذا لم يكن مدعومًا مباشرةً من ClickHouse أصلًا (على سبيل المثال، Amazon Redshift).

لتمكين بروتوكول PostgreSQL الشبكي، أضِف الإعداد postgresql_port إلى ملف تهيئة الخادم. على سبيل المثال، يمكنك تحديد المنفذ في ملف XML جديد داخل مجلد config.d:

<clickhouse>
    <postgresql_port>9005</postgresql_port>
</clickhouse>

شغّل خادم ClickHouse وابحث في السجل عن رسالة مشابهة لما يلي تشير إلى الاستماع إلى بروتوكول التوافق مع PostgreSQL:

{} <Information> Application: Listening for PostgreSQL compatibility protocol: 127.0.0.1:9005

ربط psql بـ ClickHouse

يوضح الأمر التالي كيفية ربط عميل PostgreSQL ‏psql بـ ClickHouse:

psql -p [port] -h [hostname] -U [username] [database_name]

مثال:

psql -p 9005 -h 127.0.0.1 -U alice default

يطلب عميل psql إدخال كلمة المرور:

Password for user alice:
psql (14.2, server 22.3.1.1)
WARNING: psql major version 14, server major version 22.
         Some psql features might not work.
Type "help" for help.

default=>

وهذا كل ما في الأمر! أصبح لديك الآن عميل PostgreSQL متصل بـ ClickHouse، وتُنفَّذ جميع الأوامر والاستعلامات على ClickHouse.

استخدام SSL

إذا كان SSL/TLS مُعدًّا على مثيل ClickHouse لديك، فسيستخدم postgresql_port الإعدادات نفسها (إذ إن المنفذ مشترك لكلٍّ من العملاء الآمنين وغير الآمنين).

لكل عميل طريقته الخاصة للاتصال باستخدام SSL. يوضّح الأمر التالي كيفية تمرير الشهادات والمفتاح لتوصيل psql بـ ClickHouse بشكل آمن:

psql "port=9005 host=127.0.0.1 user=alice dbname=default sslcert=/path/to/certificate.pem sslkey=/path/to/key.pem sslrootcert=/path/to/rootcert.pem sslmode=verify-ca"

تكوين مصادقة مستخدم ClickHouse باستخدام SCRAM-SHA-256

لضمان مصادقة آمنة للمستخدمين في ClickHouse، يُوصى باستخدام بروتوكول SCRAM-SHA-256. قم بتكوين المستخدم بتحديد العنصر password_scram_sha256_hex في ملف users.xml. يجب إنشاء قيمة hash لكلمة المرور باستخدام num_iterations=4096.

تأكد من أن عميل psql يدعم SCRAM-SHA-256 ويجري التفاوض عليه أثناء الاتصال.

مثال على التكوين للمستخدم user_with_sha256 بكلمة المرور abacaba:

<user_with_sha256>
    <password_scram_sha256_hex>04e7a70338d7af7bb6142fe7e19fef46d9b605f3e78b932a60e8200ef9154976</password_scram_sha256_hex>
</user_with_sha256>

اطّلع على وثائق PostgreSQL لمزيد من التفاصيل حول إعدادات SSL فيها.

Navigation