المقدمة
- PUSH إرسال البيانات إلى ClickHouse باستخدام أداة أو خدمة ETL/ELT من جهة خارجية
- PULL سحب البيانات من Redshift بالاستفادة من ClickHouse JDBC Bridge
- PIVOT استخدام تخزين الكائنات S3 وفق آلية “التفريغ ثم التحميل”
استخدمنا Redshift كمصدر بيانات في هذا البرنامج التعليمي. ومع ذلك، فإن أساليب الترحيل المعروضة هنا لا تقتصر على Redshift، ويمكن استنباط خطوات مماثلة لأي مصدر بيانات متوافق.
إرسال البيانات من Redshift إلى ClickHouse
المزايا
- يمكنه الاستفادة من فهرس الموصلات الحالي في أدوات ETL/ELT.
- إمكانات مدمجة للحفاظ على مزامنة البيانات (منطق الإلحاق/الاستبدال/التحديث التزايدي).
- يتيح سيناريوهات تحويل البيانات (على سبيل المثال، راجع دليل التكامل الخاص بنا لـ dbt).
العيوب
- تحتاج إلى إعداد بنية تحتية لعمليات ETL/ELT وصيانتها.
- يضيف عنصرًا من طرف ثالث إلى البنية المعمارية، ما قد يصبح عنق زجاجة محتملًا يحدّ من قابلية التوسع.
سحب البيانات من Redshift إلى ClickHouse
INSERT INTO ... SELECT:
المزايا
- ينطبق بشكل عام على جميع الأدوات المتوافقة مع JDBC
- حل أنيق يتيح الاستعلام عن عدة مصادر بيانات خارجية من داخل ClickHouse
السلبيات
- يتطلب مثيلًا من ClickHouse JDBC Bridge، مما قد يصبح عنق زجاجة محتملًا من ناحية قابلية التوسع
على الرغم من أن Redshift يستند إلى PostgreSQL، فلا يمكن استخدام دالة الجدول PostgreSQL أو محرك الجدول في ClickHouse، لأن ClickHouse يتطلب PostgreSQL بالإصدار 9 أو أحدث، بينما تستند واجهة برمجة تطبيقات Redshift إلى إصدار أقدم (8.x).
البرنامج التعليمي
نشر ClickHouse JDBC Bridge
قم بنشر ClickHouse JDBC Bridge. لمزيد من التفاصيل، راجع دليل المستخدم الخاص بنا حول JDBC لمصادر البيانات الخارجيةإذا كنت تستخدم ClickHouse Cloud، فستحتاج إلى تشغيل ClickHouse JDBC Bridge في بيئة منفصلة والاتصال بـ ClickHouse Cloud باستخدام الدالة remoteSecure
تكوين مصدر بيانات Redshift الخاص بك
كوّن مصدر بيانات Redshift لاستخدامه مع ClickHouse JDBC Bridge. على سبيل المثال:/etc/clickhouse-jdbc-bridge/config/datasources/redshift.json الاستعلام عن مثيل Redshift الخاص بك من ClickHouse
بمجرد نشر ClickHouse JDBC Bridge وتشغيله، يمكنك البدء في الاستعلام عن مثيل Redshift الخاص بك من ClickHouseاستيراد البيانات من Redshift إلى ClickHouse
فيما يلي، نعرض كيفية استيراد البيانات باستخدام تعليمةINSERT INTO ... SELECTترحيل البيانات بأسلوب Pivot من Redshift إلى ClickHouse باستخدام S3
المزايا
- يتمتع كلٌّ من Redshift وClickHouse بميزات قوية للتكامل مع S3.
- يستفيد من الميزات الحالية، مثل الأمر
UNLOADفي Redshift ودالة الجدول S3 / محرك الجدول في ClickHouse. - يتوسع بسلاسة بفضل القراءات المتوازية وإمكانات الإنتاجية العالية من/إلى S3 في ClickHouse.
- يمكنه الاستفادة من تنسيقات متقدمة ومضغوطة مثل Apache Parquet.
السلبيات
- خطوتان في العملية (تفريغ البيانات من Redshift ثم تحميلها إلى ClickHouse).
البرنامج التعليمي
أنشئ الجدول في ClickHouse
أنشئ الجدول في ClickHouse:CREATE TABLE ... EMPTY AS SELECT:حمّل ملفات S3 إلى ClickHouse
حمّل ملفات S3 إلى ClickHouse باستخدام عبارةINSERT INTO ... SELECT:يستخدم هذا المثال CSV كتنسيق وسيط. ومع ذلك، نوصي في أحمال العمل الإنتاجية باستخدام Apache Parquet باعتباره الخيار الأفضل لعمليات الترحيل الكبيرة، لأنه يدعم الضغط ويمكن أن يوفّر بعض تكاليف التخزين مع تقليل أزمنة النقل. (افتراضيًا، تُضغط كل مجموعة صفوف باستخدام SNAPPY). كما يستفيد ClickHouse من البنية العمودية في Parquet لتسريع إدخال البيانات.