Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

الترحيل بين ClickHouse مُدار ذاتيًا وClickHouse Cloud باستخدام remoteSecure

الترحيل من ClickHouse المُدار ذاتيًا

يوضح هذا الدليل كيفية الترحيل من خادم ClickHouse مُدار ذاتيًا إلى ClickHouse Cloud، وكذلك كيفية الترحيل بين خدمات ClickHouse Cloud. تُستخدم الدالة remoteSecure في استعلامات SELECT وINSERT لإتاحة الوصول إلى خوادم ClickHouse البعيدة، مما يجعل ترحيل الجداول بسيطًا بمجرد كتابة استعلام INSERT INTO يتضمن SELECT.

الترحيل من ClickHouse المُدار ذاتيًا إلى ClickHouse Cloud

ترحيل ClickHouse المُدار ذاتيًا

بغضّ النظر عمّا إذا كان جدول المصدر لديك مُجزّأً و/أو مُكرَّرًا، ففي ClickHouse Cloud لا تحتاج إلا إلى إنشاء جدول وجهة (يمكنك ترك معلمة Engine لهذا الجدول، إذ سيُختار SharedMergeTree تلقائيًا بوصفه محرك الجدول)، وسيتولى ClickHouse Cloud تلقائيًا التوسّع الرأسي والأفقي. ولا حاجة من جانبك للتفكير في كيفية تكرار الجدول أو تجزئته.

في هذا المثال، يكون ClickHouse server المُدار ذاتيًا هو المصدر، وتكون خدمة ClickHouse Cloud هي الوجهة.

نظرة عامة

العملية كالتالي:

  1. أضِف مستخدمًا للقراءة فقط إلى خدمة المصدر
  2. أنشئ بنية جدول المصدر نفسها على خدمة الوجهة
  3. اسحب البيانات من المصدر إلى الوجهة، أو ادفعها من المصدر، بحسب مدى توفّر الشبكة لدى المصدر
  4. أزل خادم المصدر من IP Access List على الوجهة (إن أمكن)
  5. أزل المستخدم المخصّص للقراءة فقط من خدمة المصدر

ترحيل الجداول من نظام إلى آخر:

يشرح هذا المثال كيفية ترحيل جدول واحد من خادم ClickHouse مُدار ذاتيًا إلى ClickHouse Cloud.

على نظام ClickHouse المصدر (النظام الذي يستضيف البيانات حاليًا)

  • أضف مستخدمًا بصلاحية القراءة فقط يمكنه قراءة الجدول المصدر (db.table في هذا المثال)
CREATE USER exporter
IDENTIFIED WITH SHA256_PASSWORD BY 'password-here'
SETTINGS readonly = 1;
GRANT SELECT ON db.table TO exporter;
  • انسخ تعريف الجدول
SELECT create_table_query
FROM system.tables
WHERE database = 'db' AND table = 'table'

في نظام ClickHouse Cloud الوجهة:

  • أنشئ قاعدة البيانات المستهدفة:
CREATE DATABASE db
  • باستخدام عبارة CREATE TABLE من المصدر، أنشئ الوجهة.
CREATE TABLE db.table ...
  • استخدم الدالة remoteSecure لسحب البيانات من المصدر المُدار ذاتيًا
ترحيل ClickHouse المُدار ذاتيًا
INSERT INTO db.table SELECT * FROM
remoteSecure('source-hostname', db, table, 'exporter', 'password-here')
  • استخدم الدالة remoteSecure لدفع البيانات إلى خدمة ClickHouse Cloud
ترحيل ClickHouse المُدار ذاتيًا
إدارة قائمة الوصول إلى IP

من قائمة خدمات ClickHouse Cloud، اختر الخدمة التي ستعمل عليها ثم انتقل إلى Settings. إذا كانت قائمة الوصول إلى IP لا تتضمن عنوان IP أو نطاق العناوين الخاص بالنظام البعيد الذي يحتاج إلى الاتصال بخدمة ClickHouse Cloud، يمكنك حل المشكلة باستخدام Add IPs:

تحقق مما إذا كانت الخدمة تسمح بمرور الزيارات من عنوان IP الخاص بك ضمن قائمة الوصول إلى IP

أضف عنوان IP الفردي أو نطاق العناوين الذي يحتاج إلى الاتصال بخدمة ClickHouse Cloud. عدّل النموذج بما يناسبك ثم انقر على Save.

أضف عنوان IP الحالي إلى قائمة الوصول إلى IP في ClickHouse Cloud
INSERT INTO FUNCTION
remoteSecure('HOSTNAME.clickhouse.cloud:9440', 'db.table',
'default', 'PASS') SELECT * FROM db.table

الترحيل بين خدمات ClickHouse Cloud

ترحيل ClickHouse المُدار ذاتيًا

فيما يلي بعض الاستخدامات الشائعة لترحيل البيانات بين خدمات ClickHouse Cloud:

  • ترحيل البيانات من نسخة احتياطية تمت استعادتها
  • نسخ البيانات من خدمة تطوير إلى خدمة مرحلية (أو من الخدمة المرحلية إلى بيئة production)

في هذا المثال، توجد خدمتان من ClickHouse Cloud، وسيُشار إليهما باسم المصدر والوجهة. ستُسحب البيانات من المصدر إلى الوجهة. ومع أنه يمكنك استخدام الدفع إذا رغبت، فإن السحب هو المعروض هنا لأنه يستخدم مستخدمًا للقراءة فقط.

ترحيل ClickHouse المُدار ذاتيًا

تتضمن عملية الترحيل بضع خطوات:

  1. حدِّد إحدى خدمتي ClickHouse Cloud لتكون المصدر، والأخرى لتكون الوجهة
  2. أضف مستخدمًا للقراءة فقط إلى الخدمة المصدر
  3. أنشئ بنية جدول المصدر نفسها على الخدمة الوجهة
  4. اسمح مؤقتًا بالوصول عبر IP إلى الخدمة المصدر
  5. انسخ البيانات من المصدر إلى الوجهة
  6. أعد تفعيل IP Access List على الوجهة
  7. أزل المستخدم المخصص للقراءة فقط من الخدمة المصدر

أضِف مستخدمًا للقراءة فقط إلى خدمة المصدر

  • أضِف مستخدمًا للقراءة فقط يمكنه قراءة الجدول المصدر (db.table في هذا المثال)

    CREATE USER exporter
    IDENTIFIED WITH SHA256_PASSWORD BY 'password-here'
    SETTINGS readonly = 1;
    GRANT SELECT ON db.table TO exporter;
  • انسخ تعريف الجدول

    select create_table_query
    from system.tables
    where database = 'db' and table = 'table'

انسخ بنية الجدول إلى خدمة الوجهة

على الوجهة، أنشئ قاعدة البيانات إذا لم تكن موجودة بالفعل:

  • أنشئ قاعدة بيانات الوجهة:

    CREATE DATABASE db
  • باستخدام عبارة CREATE TABLE من المصدر، أنشئ الجدول على الوجهة.

    على الوجهة، أنشئ الجدول باستخدام ناتج select create_table_query... من المصدر:

    CREATE TABLE db.table ...

اسمح بالوصول عن بُعد إلى خدمة المصدر

لكي تتمكن من سحب البيانات من المصدر إلى الوجهة، يجب أن تسمح خدمة المصدر بالاتصالات. عطّل مؤقتًا ميزة "IP Access List" على خدمة المصدر.

عدّل قائمة السماح واسمح بالوصول من Anywhere مؤقتًا. راجع وثائق IP Access List لمزيد من التفاصيل.

انسخ البيانات من المصدر إلى الوجهة

  • استخدم الدالة remoteSecure لسحب البيانات من خدمة ClickHouse Cloud المصدر اتصل بالوجهة. شغّل هذا الأمر على خدمة ClickHouse Cloud الوجهة:

    INSERT INTO db.table SELECT * FROM
    remoteSecure('source-hostname', db, table, 'exporter', 'password-here')
  • تحقّق من البيانات في خدمة الوجهة

أعد إعداد IP Access List على المصدر

إذا كنت قد صدّرت IP Access List سابقًا، فيمكنك إعادة استيرادها باستخدام Share، وإلا فأعد إضافة عناوينك إلى قائمة الوصول.

أزل المستخدم exporter ذو صلاحية القراءة فقط

DROP USER exporter
  • غيّر IP Access List الخاصة بالخدمة لتقييد الوصول
Navigation