- اللقطة الأولية عبر S3 ClickPipes
- التحديثات في الوقت الفعلي عبر Kinesis ClickPipes
ReplacingMergeTree. ويُستخدم table engine هذا عادةً في سيناريوهات CDC للسماح بتطبيق عمليات التحديث. ويمكنك الاطّلاع على مزيد من التفاصيل حول هذا النمط في مقالات المدوّنة التالية:
- التقاط بيانات التغيير (CDC) باستخدام PostgreSQL وClickHouse - الجزء 1
- التقاط بيانات التغيير (CDC) باستخدام PostgreSQL وClickHouse - الجزء 2
1. إعداد دفق Kinesis
2. إنشاء اللقطة
3. تحميل اللقطة إلى ClickHouse
أنشئ الجداول اللازمة
JSONExtract في ClickHouse داخل عرض مادي.
سنحتاج إلى إنشاء ثلاثة جداول:
- جدول لتخزين البيانات الخام من DynamoDB
- جدول لتخزين البيانات النهائية بعد تسطيحها (جدول الوجهة)
- عرض مادي لتسطيح البيانات
- يجب أن يكون هذا الجدول من نوع
ReplacingMergeTree - يجب أن يحتوي الجدول على عمود
version- في الخطوات اللاحقة، سنربط الحقل
ApproximateCreationDateTimeمن Kinesis Stream بالعمودversion.
- في الخطوات اللاحقة، سنربط الحقل
- ينبغي أن يستخدم الجدول مفتاح التقسيم بوصفه مفتاح الترتيب (المحدَّد بواسطة
ORDER BY)- ستُزال تكرارات الصفوف ذات مفتاح الترتيب نفسه استنادًا إلى العمود
version.
- ستُزال تكرارات الصفوف ذات مفتاح الترتيب نفسه استنادًا إلى العمود
أنشئ ClickPipe للّقطة
- مسار الاستيعاب: ستحتاج إلى تحديد مسار ملفات JSON المُصدَّرة في S3. سيبدو المسار على النحو التالي تقريبًا:
- التنسيق: JSONEachRow
- الجدول: جدول اللقطة الخاص بك (مثل
default.snapshotفي المثال أعلاه)
4. إنشاء Kinesis ClickPipe
- Stream: دفق Kinesis المستخدم في الخطوة 1
- Table: جدول الوجهة (مثل
default.destinationفي المثال أعلاه) - Flatten object: true
- Column mappings:
ApproximateCreationDateTime:version- عيّن الحقول الأخرى إلى أعمدة الوجهة المناسبة كما هو موضح أدناه