يوفّر هذا المحرك تكاملًا مع جداول Delta Lake الموجودة في S3 وGCP وAzure Storage، ويدعم عمليتَي القراءة والكتابة كلتيهما (بدءًا من v25.10).
لإنشاء جدول DeltaLake، يجب أن يكون الجدول موجودًا مسبقًا في S3 أو GCP أو Azure Storage. لا تقبل الأوامر أدناه معلمات DDL لإنشاء جدول جديد.
البنيةCREATE TABLE table_name
ENGINE = DeltaLake(url, [aws_access_key_id, aws_secret_access_key,] [extra_credentials])
معلمات المحرك
url — عنوان URL للـ bucket مع المسار إلى جدول Delta Lake الحالي.
aws_access_key_id, aws_secret_access_key - بيانات اعتماد طويلة الأجل لمستخدم حساب AWS. يمكنك استخدامها لمصادقة طلباتك. هذه المعلمة اختيارية. وإذا لم يتم تحديد بيانات الاعتماد، فسيتم استخدامها من ملف الإعدادات.
extra_credentials - اختياري. يُستخدم لتمرير role_arn للوصول المستند إلى الأدوار في ClickHouse Cloud. راجع تأمين S3 لمعرفة خطوات الإعداد.
يمكن تحديد معلمات المحرك باستخدام المجموعات المسماة.مثالCREATE TABLE deltalake
ENGINE = DeltaLake('http://mars-doc-test.s3.amazonaws.com/clickhouse-bucket-3/test_table/', 'ABC123', 'Abc+123')
باستخدام المجموعات المسماة:<clickhouse>
<named_collections>
<deltalake_conf>
<url>http://mars-doc-test.s3.amazonaws.com/clickhouse-bucket-3/</url>
<access_key_id>ABC123</access_key_id>
<secret_access_key>Abc+123</secret_access_key>
</deltalake_conf>
</named_collections>
</clickhouse>
CREATE TABLE deltalake
ENGINE = DeltaLake(deltalake_conf, filename = 'test_table')
البنية-- استخدام عنوان URL عبر HTTPS (موصى به)
CREATE TABLE table_name
ENGINE = DeltaLake('https://storage.googleapis.com/<bucket>/<path>/', '<access_key_id>', '<secret_access_key>')
مُعرّف URI الخاص بـ gsutil غير مدعوممُعرّف URI الخاص بـ gsutil مثل gs://clickhouse-docs-example-bucket غير مدعوم. يُرجى استخدام عنوان URL يبدأ بـ https://storage.googleapis.com
الوسائط
url — عنوان URL لـ GCS bucket المؤدي إلى جدول Delta Lake. يجب استخدام التنسيق https://storage.googleapis.com/<bucket>/<path>/
(وهو API endpoint الخاص بـ GCS XML)، أو gs://<bucket>/<path>/ الذي يُحوَّل تلقائيًا.
access_key_id — مفتاح الوصول إلى GCS. أنشِئه عبر Google Cloud Console → Cloud Storage → Settings → Interoperability.
secret_access_key — المفتاح السري لـ GCS.
المجموعات المسماةيمكنك أيضًا استخدام المجموعات المسماة.
على سبيل المثال:CREATE NAMED COLLECTION gcs_creds AS
access_key_id = '<access_key>',
secret_access_key = '<secret>';
CREATE TABLE gcpDeltaLake
ENGINE = DeltaLake(gcs_creds, url = 'https://storage.googleapis.com/<bucket>/<path>')
البنيةCREATE TABLE table_name
ENGINE = DeltaLake(connection_string|storage_account_url, container_name, blobpath, [account_name, account_key, format, compression])
الوسائط
connection_string — سلسلة اتصال Azure
storage_account_url — عنوان URL لحساب Azure Storage (على سبيل المثال، https://account.blob.core.windows.net)
container_name — اسم Azure container
blobpath — المسار إلى جدول Delta Lake داخل الـ container
account_name — اسم حساب Azure Storage
account_key — مفتاح حساب Azure Storage
كتابة البيانات باستخدام جدول DeltaLake
بعد إنشاء جدول باستخدام محرك جدول DeltaLake، يمكنك إدراج البيانات فيه باستخدام:
SET allow_experimental_delta_lake_writes = 1;
INSERT INTO deltalake(id, firstname, lastname, gender, age)
VALUES (1, 'John', 'Smith', 'M', 32);
لا تُدعَم الكتابة باستخدام محرك الجدول إلا عبر delta kernel.
الكتابة إلى Azure غير مدعومة بعد، لكنها تعمل مع S3 وGCS.
ذاكرة التخزين المؤقت للبيانات
يدعم محرك جدول DeltaLake ودالة الجدول التخزين المؤقت للبيانات، تمامًا كما هو الحال مع أنظمة التخزين S3 وAzureBlobStorage وHDFS. راجع “محرك جدول S3” لمزيد من التفاصيل.