Skip to main content
في الأدلة السابقة، أجريتَ استعلامات على تنسيقات الجداول المفتوحة في مكانها، وحمّلتَ البيانات إلى MergeTree لإجراء تحليلات سريعة. وفي كثير من البنى المعمارية، تحتاج البيانات أيضًا إلى التدفق في الاتجاه المعاكس، من ClickHouse عائدةً إلى تنسيقات الجداول المفتوحة. وهناك سيناريوهان شائعان يدفعان إلى ذلك:
  • نقل البيانات إلى التخزين طويل الأمد - تصل البيانات إلى ClickHouse بوصفها طبقة تحليلات فورية، تُغذّي لوحات المعلومات والتقارير التشغيلية. وبمجرد أن تتجاوز البيانات نافذتها الزمنية الفورية، يمكن كتابتها إلى Iceberg في التخزين الكائني للاحتفاظ بها بصورة دائمة وبتكلفة منخفضة وبتنسيق قابل للتشغيل البيني.
  • ETL العكسي - تنتج التحويلات وعمليات التجميع والإثراء التي تُنفَّذ داخل ClickHouse مجموعات بيانات مشتقة تحتاج الأدوات اللاحقة والفرق الأخرى إلى استهلاكها. وتؤدي كتابة هذه النتائج إلى جداول Iceberg إلى إتاحتها عبر منظومة البيانات الأوسع.
في كلتا الحالتين، يتيح لك INSERT INTO SELECT نقل البيانات من جداول ClickHouse إلى جداول Iceberg المخزنة في التخزين الكائني.
الكتابة إلى تنسيقات الجداول المفتوحة مدعومة حاليًا لجداول Iceberg فقط. ويجري حاليًا تطوير دعم جزئي لجداول Delta Lake. ويجب ألا تكون الجداول مُدارة بواسطة catalog.

إعداد مجموعة بيانات كمصدر

في هذا الدليل، سنستخدم مجموعة البيانات UK Price Paid — وهي سجل عام يتضمن كل معاملة بيع لعقار سكني في إنجلترا وويلز.

أنشئ جدول MergeTree واملأه

املأ الجدول مباشرةً من مصدر CSV عام:

كتابة البيانات في جدول Iceberg

إنشاء جدول Iceberg

للقراءة المباشرة من جدول Iceberg موجود، نوصي باستخدام دالة الجدول icebergS3. يوضّح هذا الدليل إنشاء جداول Iceberg مستقلة وتعبئتها، لذا يستخدم محرك الجدول IcebergS3 مع مخطط صريح. تحتوي مواقع S3 الواردة في المثال بالفعل على الجداول المكتملة؛ ولتشغيل عبارتي CREATE وINSERT، استبدل كلا الموقعين ببادئات S3 فارغة قابلة للكتابة وبيانات اعتماد تتحكم بها. لاحظ أنه يجب تبسيط المخطط مقارنةً بجدول MergeTree المصدر. يدعم ClickHouse نظام أنواع أكثر ثراءً من Iceberg وملفات Parquet الأساسية، لذا فإن الأنواع مثل Enum وLowCardinality وUInt8 غير مدعومة في Iceberg ويجب تحويلها إلى أنواع متوافقة.

إدراج مجموعة فرعية من البيانات

استخدم INSERT INTO SELECT لكتابة البيانات من جدول MergeTree إلى جدول Iceberg. في هذا المثال، نُدرِج معاملات لندن فقط: يتطلب هذا المثال إعداد allow_insert_into_iceberg. راجع مصفوفة الدعم لمعرفة مستوى النضج والقيود الحالية.

الاستعلام عن جدول Iceberg

تُخزَّن البيانات الآن بصيغة Iceberg في التخزين الكائني، ويمكن الاستعلام عنها عبر ClickHouse أو أي أداة أخرى تقرأ Iceberg:

كتابة النتائج المجمّعة

لا تقتصر جداول Iceberg على تخزين الصفوف الخام، بل يمكنها أيضًا الاحتفاظ بمخرجات عمليات التجميع والتحويل، أي نتائج عمليات ETL التي تُنفَّذ داخل ClickHouse. ويفيد ذلك في نشر الملخصات المحسوبة مسبقًا إلى lakehouse لاستخدامها في المراحل اللاحقة.

أنشئ جدول Iceberg للبيانات المجمّعة

إدراج البيانات المُجمَّعة

احسب متوسط أسعار العقارات حسب البلدة، ثم اكتب النتائج مباشرةً في Iceberg:

الاستعلام عن الجدول المجمّع

يمكن الآن للأدوات الأخرى — ولمثيلات ClickHouse الأخرى — قراءة مجموعة البيانات المحسوبة مسبقًا:
آخر تعديل في ٢٦ أغسطس ٢٠٢٦